{
  "match_info": {
    "home_team": "Espanyol",
    "away_team": "Elche",
    "tournament": "LaLiga",
    "date": "20260918",
    "timezone": "America/New_York",
    "home_formation": "3-5-2",
    "away_formation": "4-2-3-1",
    "lineup_status": "projected_from_squad",
    "lineup_source": "/teams/get-squad",
    "lineup_confirmed": false,
    "lineup_confidence": 0.45
  },
  "prediction": {
    "most_likely_score": "1-0",
    "home_goals": 1,
    "away_goals": 0,
    "most_likely_score_probability": 0.1243,
    "match_resolution": "regulation",
    "predicted_winner": "Espanyol",
    "tiebreaker": {
      "applies": false,
      "method": "none",
      "regulation_draw_probability": 0.2739,
      "shootout_home_win_probability": null,
      "shootout_away_win_probability": null,
      "penalty_home_goals": null,
      "penalty_away_goals": null,
      "penalty_score": null,
      "penalty_winner": null,
      "penalty_winner_goals": null,
      "penalty_loser_goals": null,
      "penalty_result": null,
      "home_advance_probability": null,
      "away_advance_probability": null,
      "projected_winner": null,
      "projected_winner_probability": null,
      "final_score_after_penalties": null,
      "reason": "Tie-breaker not required for this match context."
    },
    "top_5_scorelines": [
      {
        "score": "1-0",
        "probability": 0.1243
      },
      {
        "score": "1-1",
        "probability": 0.129
      },
      {
        "score": "0-0",
        "probability": 0.0924
      },
      {
        "score": "0-1",
        "probability": 0.0921
      },
      {
        "score": "2-1",
        "probability": 0.0878
      }
    ],
    "scoreline_probabilities": {
      "0-0": 0.0924,
      "0-1": 0.0921,
      "0-2": 0.0475,
      "0-3": 0.0162,
      "0-4": 0.0041,
      "0-5": 0.0008,
      "1-0": 0.1243,
      "1-1": 0.129,
      "1-2": 0.0652,
      "1-3": 0.0222,
      "1-4": 0.0057,
      "1-5": 0.0012,
      "2-0": 0.0861,
      "2-1": 0.0878,
      "2-2": 0.0448,
      "2-3": 0.0152,
      "2-4": 0.0039,
      "2-5": 0.0008,
      "3-0": 0.0394,
      "3-1": 0.0402,
      "3-2": 0.0205,
      "3-3": 0.007,
      "3-4": 0.0018,
      "4-0": 0.0135,
      "4-1": 0.0138,
      "4-2": 0.007,
      "4-3": 0.0024,
      "4-4": 0.0006,
      "5-0": 0.0037,
      "5-1": 0.0038,
      "5-2": 0.0019,
      "5-3": 0.0007,
      "6-0": 0.0009,
      "6-1": 0.0009
    },
    "outcome": {
      "home_win": 0.4483,
      "draw": 0.2739,
      "away_win": 0.2778
    },
    "markets": {
      "over_2_5_goals": 0.4285,
      "under_2_5_goals": 0.5715,
      "btts_yes": 0.4785,
      "btts_no": 0.5215,
      "home_clean_sheet": 0.3606,
      "away_clean_sheet": 0.2533
    },
    "home_ratings": {
      "DR": 6.84,
      "MCR": 6.84,
      "ATR": 6.68,
      "GK": 7.02
    },
    "away_ratings": {
      "DR": 6.51,
      "MCR": 6.79,
      "ATR": 6.58,
      "GK": 6.8
    },
    "insights": {
      "summary": "Antagonist matchup analysis for Espanyol vs Elche. Most likely scoreline: 1-0. Lambdas derived from 5 home and 5 away individual player duels.",
      "key_player": "Projected scorer(s): Roberto Fernández",
      "tactical_analysis": "Tactical parity between 3-5-2 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Urko González vs Facundo Buonanotte will be the pivotal duel. Total antagonist xG — Home: 0.45, Away: 0.47. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Left Wing vs Right Wingback — Compact Flank."
    },
    "confidence": 0.58,
    "home_lambda": 1.373,
    "away_lambda": 1.02,
    "modal_scoreline": "1-1",
    "modal_scoreline_probability": 0.129,
    "headline_policy": "decisive_score_substitution"
  },
  "pregame_baseline": {
    "fair_win_probability": {
      "home_win": 0.4483,
      "draw": 0.2739,
      "away_win": 0.2778
    },
    "favorite": "Espanyol",
    "favorite_win_probability": 0.4483,
    "fair_spread": 0.353,
    "fair_total": 2.393,
    "prop_estimates": [
      {
        "market": "team_total_goals",
        "selection": "Espanyol",
        "estimate": 1.373,
        "probability": null,
        "unit": "goals"
      },
      {
        "market": "team_total_goals",
        "selection": "Elche",
        "estimate": 1.02,
        "probability": null,
        "unit": "goals"
      },
      {
        "market": "over_2_5_goals",
        "selection": "yes",
        "estimate": 2.5,
        "probability": 0.4285,
        "unit": "probability"
      },
      {
        "market": "both_teams_to_score",
        "selection": "yes",
        "estimate": 1.0,
        "probability": 0.4785,
        "unit": "probability"
      },
      {
        "market": "clean_sheet",
        "selection": "Espanyol",
        "estimate": 1.0,
        "probability": 0.3606,
        "unit": "probability"
      },
      {
        "market": "clean_sheet",
        "selection": "Elche",
        "estimate": 1.0,
        "probability": 0.2533,
        "unit": "probability"
      },
      {
        "market": "anytime_goal",
        "selection": "Roberto Fernández (Espanyol)",
        "estimate": 0.3859,
        "probability": 0.3924,
        "unit": "xG"
      },
      {
        "market": "anytime_goal",
        "selection": "Facundo Buonanotte (Elche)",
        "estimate": 0.1842,
        "probability": 0.0,
        "unit": "xG"
      },
      {
        "market": "assist",
        "selection": "Quilindschy Hartman (Espanyol)",
        "estimate": 0.2153,
        "probability": 0.0708,
        "unit": "xA"
      },
      {
        "market": "assist",
        "selection": "Lucas Cepeda (Elche)",
        "estimate": 0.1392,
        "probability": 0.0,
        "unit": "xA"
      }
    ],
    "expected_pace": {
      "tempo": "balanced",
      "expected_total_goals": 2.393,
      "expected_total_shots": 20,
      "expected_total_passes": 595,
      "expected_pressing_actions_per_90": 13.0,
      "possession_home_pct": 50.8,
      "possession_away_pct": 49.2,
      "notes": "possession projects near even"
    },
    "expected_game_script": {
      "favorite": "Espanyol",
      "favorite_win_probability": 0.4483,
      "script": "Espanyol is the fair winner side, but the baseline remains narrow: fair spread +0.35 goals and fair total 2.39.",
      "first_half": "Expect balanced tempo while both sides test the matchup thesis; shot baseline is about 10 first-half attempts.",
      "second_half": "If level after halftime, midfield control and bench quality should decide territory; Elche must keep the match inside one goal.",
      "late_game": "A Espanyol lead likely shifts toward control and counters; a draw state keeps set pieces and transition chances live."
    },
    "key_matchup_thesis": "Espanyol chance creation leans on Roberto Fernández against Buba Sangaré, Roy Revivo in Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle; possession projects near even.",
    "expected_rotation_usage_behavior": [
      "Espanyol: starters carry the main goal usage through Roberto Fernández; bench watchlist: Marcos Fernández, Kike García.",
      "Elche: starters carry the main goal usage through the highest xG attackers; bench watchlist: Grady Diangana, Fernando Niño, Tete Morente.",
      "Assist usage should flow through Javi Puado; late lineup changes should re-score these allocations."
    ],
    "pregame_play_by_play": [
      "0-15: Espanyol tries to establish the projected edge; track possession and first-shot share.",
      "15-45: Baseline expects balanced tempo, about 10 total first-half shots, and 1.20 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 Elche 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 Espanyol.",
      "Elche 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": {
    "Espanyol": {
      "formation": "3-5-2",
      "players": {
        "Marko Dmitrović": {
          "player_id": 94527,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 13,
          "height": 194,
          "market_value": 650000,
          "stats": {
            "saves": 3,
            "goals_prevented": 0.0,
            "rating": 7.0166,
            "minutes": 88,
            "total_pass": 22,
            "accurate_pass": 15,
            "duels_won": 0,
            "total_long_balls": 13,
            "accurate_long_balls": 5,
            "touches": 37,
            "clearances": 0,
            "ball_recovery": 11,
            "high_claims": 0,
            "punches": 0.0,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 7.3592,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 14,
            "accurate_own_half_passes": 12,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "total_shots": 0,
            "shots_on_target": 0,
            "goalsAgainst": 1.33,
            "shotsOnTargetAgainst": 5.6667,
            "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": 76.5,
            "cleanSheetPct": 33.3,
            "minutesPct": 100.0,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.33,
            "expected_saves": 0.99,
            "high_pressure_saves": 0.38,
            "shots_faced": 2.1,
            "opponent_faced": "Facundo Buonanotte, Germán Valera",
            "matchup_zone": "Goalkeeper shot-stopping context",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416327.0,
              "match_date": "2026-09-12 14:15: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": "Osasuna",
              "away_team": "Espanyol",
              "home_score_current": 0.0,
              "away_score_current": 2.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Espanyol",
              "opponent": "Osasuna",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416323.0,
              "match_date": "2026-09-06",
              "home_team": "Espanyol",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.0007,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 22,
                "duels_won": 1,
                "ball_recovery": 18,
                "saves": 2,
                "goals_prevented": -0.0956
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 7.9,
                "assists": 0,
                "expected_assists": 0.0003,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 16,
                "interceptions": 1,
                "ball_recovery": 9,
                "saves": 7,
                "goals_prevented": 1.0653
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_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": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0012,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 9,
                "clearances": 1,
                "ball_recovery": 8,
                "saves": 6,
                "goals_prevented": -0.0185
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421053.0,
              "match_date": "2026-08-16",
              "home_team": "Espanyol",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0013,
                "total_shots": 0,
                "total_pass": 19,
                "accurate_pass": 14,
                "ball_recovery": 10
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1310,
            "combined_rank_score": 568.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 180.0,
            "sofascore_rating": 7.2333,
            "sofascore_appearances": 3.0,
            "fifa_rank": 957.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "starter",
            "projected_match_rating": 7.0166,
            "source_file": "data/player_rankings.csv",
            "player_name": "Marko Dmitrović",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Mario Gila",
                  "ranking": 1305
                },
                {
                  "player_name": "Son Heung Min",
                  "ranking": 1306
                },
                {
                  "player_name": "Bazoumana Touré",
                  "ranking": 1307
                },
                {
                  "player_name": "Emil Audero",
                  "ranking": 1308
                },
                {
                  "player_name": "Lukáš Haraslín",
                  "ranking": 1309
                }
              ],
              "lower": [
                {
                  "player_name": "Tino Livramento",
                  "ranking": 1311
                },
                {
                  "player_name": "Yéremy Pino",
                  "ranking": 1312
                },
                {
                  "player_name": "Cecilio Waterman",
                  "ranking": 1313
                },
                {
                  "player_name": "Javier Guerra",
                  "ranking": 1314
                },
                {
                  "player_name": "Pedro Gonçalves",
                  "ranking": 1315
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.53,
          "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.53,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "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 4 historical appearances across 3 target models; FBref 2026-2027 prior blended (La Liga, Espanyol, 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.0,
                "rating": 7.1508,
                "minutes": 90,
                "total_pass": 23,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 13,
                "accurate_long_balls": 5,
                "touches": 37,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 7.5,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:40.064367+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 113,
                    "rows": 393
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Sevilla",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 6.9
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "sweeper_actions_p90": 1.0871,
                  "touches": 37.9582,
                  "totalOwnHalfPasses": 15.1795,
                  "punches": 0.2267,
                  "distribution_accuracy": 0.8484,
                  "accurateKeeperSweeper": 1.0871
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 2.9339187145233154,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0587
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0534
                      },
                      {
                        "name": "touches",
                        "importance": 0.0497
                      },
                      {
                        "name": "totalOwnHalfPasses",
                        "importance": 0.049
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.043
                      }
                    ],
                    "decomposition": {
                      "base": 2.9806,
                      "items": [
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.1039
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": -0.0582
                        },
                        {
                          "name": "commanding_index",
                          "contribution": 0.037
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0313
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": -0.0277
                        }
                      ],
                      "others": 0.0748,
                      "total": 2.9339
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": 0.0,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.053
                      },
                      {
                        "name": "punches",
                        "importance": 0.051
                      },
                      {
                        "name": "touches",
                        "importance": 0.0482
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0468
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0432
                      }
                    ],
                    "decomposition": {
                      "base": -0.0536,
                      "items": [
                        {
                          "name": "commanding_index",
                          "contribution": -0.0668
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0415
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.0387
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0266
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0227
                        }
                      ],
                      "others": -0.0414,
                      "total": -0.1629
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.150845527648926,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0593
                      },
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.0484
                      },
                      {
                        "name": "savedShotsFromInsideTheBox",
                        "importance": 0.0468
                      },
                      {
                        "name": "punches",
                        "importance": 0.0464
                      }
                    ],
                    "decomposition": {
                      "base": 7.0716,
                      "items": [
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.1014
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.0493
                        },
                        {
                          "name": "commanding_index",
                          "contribution": 0.0456
                        },
                        {
                          "name": "save_contribution",
                          "contribution": -0.025
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0203
                        }
                      ],
                      "others": -0.0138,
                      "total": 7.1508
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9812, quality 0.437)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.0166,
                "minutes": 88,
                "total_pass": 22,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 13,
                "accurate_long_balls": 5,
                "touches": 37,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 7.3592,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12
              },
              "params": {
                "market_value_eur": 650000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0722)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.0166,
                "minutes": 88,
                "total_pass": 22,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 13,
                "accurate_long_balls": 5,
                "touches": 37,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 7.3592,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.33,
                "shotsOnTargetAgainst": 5.6667,
                "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": 76.5,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33
              },
              "params": {
                "blend_weight": 0.0722,
                "history_matches": 4,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Espanyol"
              },
              "changes": [
                {
                  "stat": "saves",
                  "before": 2.8788,
                  "after": 2.9838
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.0166,
                "minutes": 88,
                "total_pass": 22,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 13,
                "accurate_long_balls": 5,
                "touches": 37,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 7.3592,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.33,
                "shotsOnTargetAgainst": 5.6667,
                "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": 76.5,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.0166,
                "minutes": 88,
                "total_pass": 22,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 13,
                "accurate_long_balls": 5,
                "touches": 37,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 7.3592,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.33,
                "shotsOnTargetAgainst": 5.6667,
                "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": 76.5,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33,
                "expected_saves": 0.99,
                "high_pressure_saves": 0.38,
                "shots_faced": 2.1,
                "opponent_faced": "Facundo Buonanotte, Germán Valera",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Facundo Buonanotte, Germán Valera",
                  "matchup_zone": "Goalkeeper shot-stopping context"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.0166,
                "minutes": 88,
                "total_pass": 22,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 13,
                "accurate_long_balls": 5,
                "touches": 37,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 7.3592,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.33,
                "shotsOnTargetAgainst": 5.6667,
                "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": 76.5,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33,
                "expected_saves": 0.99,
                "high_pressure_saves": 0.38,
                "shots_faced": 2.1,
                "opponent_faced": "Facundo Buonanotte, Germán Valera",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 17, fifa_overall 79.0)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.0166,
                "minutes": 88,
                "total_pass": 22,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 13,
                "accurate_long_balls": 5,
                "touches": 37,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 7.3592,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.33,
                "shotsOnTargetAgainst": 5.6667,
                "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": 76.5,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33,
                "expected_saves": 0.99,
                "high_pressure_saves": 0.38,
                "shots_faced": 2.1,
                "opponent_faced": "Facundo Buonanotte, Germán Valera",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1310,
                "fifa_rank": 957.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 79.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.0166,
                "minutes": 88,
                "total_pass": 22,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 13,
                "accurate_long_balls": 5,
                "touches": 37,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 7.3592,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.33,
                "shotsOnTargetAgainst": 5.6667,
                "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": 76.5,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33,
                "expected_saves": 0.99,
                "high_pressure_saves": 0.38,
                "shots_faced": 2.1,
                "opponent_faced": "Facundo Buonanotte, Germán Valera",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.0,
                "squad_weight_total": 10.5411,
                "weight_share": 0.0,
                "position_multiplier": 0.0
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.0166,
                "minutes": 88,
                "total_pass": 22,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 13,
                "accurate_long_balls": 5,
                "touches": 37,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 7.3592,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.33,
                "shotsOnTargetAgainst": 5.6667,
                "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": 76.5,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33,
                "expected_saves": 0.99,
                "high_pressure_saves": 0.38,
                "shots_faced": 2.1,
                "opponent_faced": "Facundo Buonanotte, Germán Valera",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0,
                "squad_weight_total": 9.1036,
                "weight_share": 0.0,
                "position_multiplier": 0.0
              }
            }
          ]
        },
        "Omar El Hilali": {
          "player_id": 1064026,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 23,
          "height": 183,
          "market_value": 15900000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 3,
            "aerial_won": 1,
            "rating": 6.8859,
            "minutes": 89,
            "total_pass": 26,
            "accurate_pass": 21,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 15,
            "accurate_own_half_passes": 13,
            "total_opp_half_passes": 11,
            "accurate_opp_half_passes": 8,
            "crosses_total": 3,
            "crosses_accurate": 0,
            "touches": 53,
            "possession_lost": 11.2934,
            "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,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0411,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 9,
            "total_progression": 14,
            "progressive_carries": 0,
            "key_pass": 0,
            "offsides": 1,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 100.0,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.33,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 1.2,
            "interceptions_in_zone": 0.9,
            "clearances_in_zone": 0.8,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82,
            "opponent_faced": "Ezequiel Ponce",
            "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.0152,
            "projected_assists": 0,
            "assist_probability": 0.014,
            "fifa_overall": 75.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416327.0,
              "match_date": "2026-09-12 14:15: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": "Osasuna",
              "away_team": "Espanyol",
              "home_score_current": 0.0,
              "away_score_current": 2.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Espanyol",
              "opponent": "Osasuna",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416323.0,
              "match_date": "2026-09-06",
              "home_team": "Espanyol",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 75,
                "rating": 7.4,
                "assists": 0,
                "expected_assists": 0.0659,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 5,
                "key_pass": 1,
                "tackles": 4,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 2,
                "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": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "assists": 0,
                "expected_assists": 0.0954,
                "total_shots": 0,
                "total_pass": 42,
                "accurate_pass": 33,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assists": 0,
                "expected_assists": 0.0098,
                "total_shots": 0,
                "total_pass": 19,
                "accurate_pass": 17,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 5,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421053.0,
              "match_date": "2026-08-16",
              "home_team": "Espanyol",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0066,
                "total_shots": 0,
                "total_pass": 31,
                "accurate_pass": 26,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3547,
            "combined_rank_score": 1516.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 622.0,
            "sofascore_rating": 6.7667,
            "sofascore_appearances": 3.0,
            "fifa_rank": 2410.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "starter",
            "projected_match_rating": 6.8859,
            "source_file": "data/player_rankings.csv",
            "player_name": "Omar El Hilali",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Sergio Camello",
                  "ranking": 3542
                },
                {
                  "player_name": "Mio Backhaus",
                  "ranking": 3543
                },
                {
                  "player_name": "Jindřich Staněk",
                  "ranking": 3544
                },
                {
                  "player_name": "Janis Blaswich",
                  "ranking": 3545
                },
                {
                  "player_name": "Jobe Bellingham",
                  "ranking": 3546
                }
              ],
              "lower": [
                {
                  "player_name": "Matt Turner",
                  "ranking": 3548
                },
                {
                  "player_name": "Jack Rudoni",
                  "ranking": 3549
                },
                {
                  "player_name": "Nemanja Matić",
                  "ranking": 3550
                },
                {
                  "player_name": "Reiss Nelson",
                  "ranking": 3551
                },
                {
                  "player_name": "Tolu Arokodare",
                  "ranking": 3552
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.53,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.53,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0267,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 270.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (D_service) evaluated 4 historical appearances across 6 target models; FBref 2026-2027 prior blended (La Liga, Espanyol, rel: 0.20, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.7071,
                "minutes": 86,
                "total_pass": 25,
                "accurate_pass": 20,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 8,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 52,
                "possession_lost": 11.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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.04,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 14,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Sevilla",
                    "minutes": 75.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 19.2366,
                  "touches_p90": 52.3221,
                  "possessionLostCtrl": 10.8658,
                  "totalClearance": 3.3324,
                  "aerialWon": 1.2327
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9163944721221924,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.041
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0212
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.02
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0132
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0116
                        }
                      ],
                      "others": -0.035,
                      "total": 0.9164
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.4692037105560303,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.1002
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0721
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0634
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0655
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0538
                        }
                      ],
                      "others": 0.0107,
                      "total": 1.4692
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.9396054744720459,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.1305
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.088
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0627
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0578
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0355
                        }
                      ],
                      "others": -0.001,
                      "total": 0.9396
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.892015218734741,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.3111
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.1914
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.1406
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.1123
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.1044
                        }
                      ],
                      "others": -0.2736,
                      "total": 2.892
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.9567938446998596,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.0575
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0511
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0466
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0464
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0289
                        }
                      ],
                      "others": -0.1476,
                      "total": 0.9568
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.7070631980896,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0816
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0603
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0229
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0214
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0195
                        }
                      ],
                      "others": 0.0019,
                      "total": 6.7071
                    }
                  }
                ],
                "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.0267, quality 0.589)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.8859,
                "minutes": 89,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 53,
                "possession_lost": 11.2934,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0411,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 14,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 15900000,
                "quality_factor": 0.5889,
                "boost_factor": 1.0267
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0722)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.8859,
                "minutes": 89,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 53,
                "possession_lost": 11.2934,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0411,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 14,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33
              },
              "params": {
                "blend_weight": 0.0722,
                "history_matches": 4,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Espanyol"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.1685
                },
                {
                  "stat": "totalCross",
                  "before": 3.08,
                  "after": 3.1224
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.9408,
                  "after": 0.9691
                },
                {
                  "stat": "wonTackle",
                  "before": 0.9647,
                  "after": 0.9432
                }
              ]
            },
            {
              "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,
                "rating": 6.8859,
                "minutes": 89,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 53,
                "possession_lost": 11.2934,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0411,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 14,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33
              },
              "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,
                "rating": 6.8859,
                "minutes": 89,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 53,
                "possession_lost": 11.2934,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0411,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 14,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.2,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ezequiel Ponce",
                "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": "Ezequiel Ponce",
                  "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.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.8859,
                "minutes": 89,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 53,
                "possession_lost": 11.2934,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0411,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 14,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.2,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ezequiel Ponce",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 1, fifa_overall 75.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.8859,
                "minutes": 89,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 53,
                "possession_lost": 11.2934,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0411,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 14,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.2,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ezequiel Ponce",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 1,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3547,
                "fifa_rank": 2410.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 75.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.8859,
                "minutes": 89,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 53,
                "possession_lost": 11.2934,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0411,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 14,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.2,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ezequiel Ponce",
                "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.0152,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0152,
                "scorer_weight": 0.1603,
                "squad_weight_total": 10.5411,
                "weight_share": 0.0152,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.8859,
                "minutes": 89,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 53,
                "possession_lost": 11.2934,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0411,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 14,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.2,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ezequiel Ponce",
                "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.0152,
                "projected_assists": 0,
                "assist_probability": 0.014,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.014,
                "provider_weight": 0.1274,
                "squad_weight_total": 9.1036,
                "weight_share": 0.014,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Quilindschy Hartman": {
          "player_id": 1392044,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 3,
          "height": 183,
          "market_value": 15500000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 3,
            "aerial_won": 1,
            "rating": 6.9818,
            "minutes": 16,
            "total_pass": 9,
            "accurate_pass": 9,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 1,
            "total_opp_half_passes": 8,
            "accurate_opp_half_passes": 8,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 14,
            "possession_lost": 3.0761,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 2,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.2153,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 1,
            "xgot": 0.0,
            "ball_carries": 6,
            "total_progression": 50,
            "progressive_carries": 2,
            "key_pass": 1,
            "opponent_faced": "Ezequiel Ponce",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0206,
            "projected_assists": 0,
            "assist_probability": 0.0708,
            "fifa_overall": 75.0
          },
          "latest_10_games": [
            {
              "match_id": 16416323.0,
              "match_date": "2026-09-06",
              "home_team": "Espanyol",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 16,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.2068,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 9,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3658,
            "combined_rank_score": 1619.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 822.0,
            "sofascore_rating": 6.6,
            "sofascore_appearances": 1.0,
            "fifa_rank": 2417.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "starter",
            "projected_match_rating": 6.9818,
            "source_file": "data/player_rankings.csv",
            "player_name": "Quilindschy Hartman",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Miguel Almirón",
                  "ranking": 3653
                },
                {
                  "player_name": "Marko Livaja",
                  "ranking": 3654
                },
                {
                  "player_name": "Víctor Chust",
                  "ranking": 3655
                },
                {
                  "player_name": "Kevin Lomónaco",
                  "ranking": 3656
                },
                {
                  "player_name": "Giorgi Kochorashvili",
                  "ranking": 3657
                }
              ],
              "lower": [
                {
                  "player_name": "Oscar Dorley",
                  "ranking": 3659
                },
                {
                  "player_name": "Mykola Matviienko",
                  "ranking": 3660
                },
                {
                  "player_name": "Hamed Junior Traorè",
                  "ranking": 3661
                },
                {
                  "player_name": "Andrés Cubas",
                  "ranking": 3662
                },
                {
                  "player_name": "Raúl Rangel",
                  "ranking": 3663
                }
              ]
            }
          },
          "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",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0254,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "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 6 target models; FBref 2026-2027 prior blended (La Liga, Espanyol, rel: 0.00, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.809,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 8,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 3.0,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.21,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 49,
                "progressive_carries": 2,
                "key_pass": 1
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Sevilla",
                    "minutes": 16.0,
                    "is_starting": false,
                    "weight": 1.0,
                    "rating": 6.9
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 9.0,
                  "touches_p90": 78.75,
                  "possessionLostCtrl": 3.0,
                  "totalClearance": 0.0,
                  "aerialWon": 1.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9065801501274109,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0556
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0357
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.023
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0178
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0178
                        }
                      ],
                      "others": -0.0367,
                      "total": 0.9066
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.2446930408477783,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "totalProgression",
                          "contribution": 0.0597
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0539
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0503
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0383
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0361
                        }
                      ],
                      "others": 0.0083,
                      "total": 1.2447
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.6981543302536011,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.093
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0545
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0502
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0376
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0339
                        }
                      ],
                      "others": 0.0999,
                      "total": 0.6982
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.5152270793914795,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.3657
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.2795
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.2355
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.213
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.1725
                        }
                      ],
                      "others": -0.6068,
                      "total": 2.5152
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.083571434020996,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.0702
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0504
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0498
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0455
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0441
                        }
                      ],
                      "others": -0.1785,
                      "total": 1.0836
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.808956146240234,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.06
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0584
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0336
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0304
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0218
                        }
                      ],
                      "others": 0.0093,
                      "total": 6.809
                    }
                  }
                ],
                "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.0254, quality 0.585)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.9818,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 8,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 3.0761,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2153,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 50,
                "progressive_carries": 2,
                "key_pass": 1
              },
              "params": {
                "market_value_eur": 15500000,
                "quality_factor": 0.5846,
                "boost_factor": 1.0254
              }
            },
            {
              "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,
                "rating": 6.9818,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 8,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 3.0761,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2153,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 50,
                "progressive_carries": 2,
                "key_pass": 1
              },
              "params": {
                "blend_weight": 0.0,
                "history_matches": 1,
                "prior_reliability": 0.0,
                "competition": "La Liga",
                "squad": "Espanyol"
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.9818,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 8,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 3.0761,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2153,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 50,
                "progressive_carries": 2,
                "key_pass": 1
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.9818,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 8,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 3.0761,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2153,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 50,
                "progressive_carries": 2,
                "key_pass": 1,
                "opponent_faced": "Ezequiel Ponce",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Ezequiel Ponce",
                  "matchup_zone": "Shape fallback"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.9818,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 8,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 3.0761,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2153,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 50,
                "progressive_carries": 2,
                "key_pass": 1,
                "opponent_faced": "Ezequiel Ponce",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 2, fifa_overall 75.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.9818,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 8,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 3.0761,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2153,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 50,
                "progressive_carries": 2,
                "key_pass": 1,
                "opponent_faced": "Ezequiel Ponce",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 2,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3658,
                "fifa_rank": 2417.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 75.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.9818,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 8,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 3.0761,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2153,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 50,
                "progressive_carries": 2,
                "key_pass": 1,
                "opponent_faced": "Ezequiel Ponce",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0206,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0206,
                "scorer_weight": 0.217,
                "squad_weight_total": 10.5411,
                "weight_share": 0.0206,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.9818,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 8,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 3.0761,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2153,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 50,
                "progressive_carries": 2,
                "key_pass": 1,
                "opponent_faced": "Ezequiel Ponce",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0206,
                "projected_assists": 0,
                "assist_probability": 0.0708,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0708,
                "provider_weight": 0.6446,
                "squad_weight_total": 9.1036,
                "weight_share": 0.0708,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Vanja Drkušić": {
          "player_id": 908617,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 16,
          "height": 186,
          "market_value": 5500000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 4,
            "aerial_won": 1,
            "rating": 6.653,
            "minutes": 56,
            "total_pass": 32,
            "accurate_pass": 26,
            "duels_won": 3,
            "total_long_balls": 6,
            "accurate_long_balls": 1,
            "total_own_half_passes": 21,
            "accurate_own_half_passes": 19,
            "total_opp_half_passes": 11,
            "accurate_opp_half_passes": 7,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 42,
            "possession_lost": 6.4382,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 2,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 10,
            "total_progression": 12,
            "progressive_carries": 0,
            "key_pass": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 42.6,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 1.1,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.7,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82,
            "opponent_faced": "Ezequiel Ponce",
            "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.023,
            "projected_assists": 0,
            "assist_probability": 0.0055,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.0026,
                "total_shots": 0,
                "total_pass": 56,
                "accurate_pass": 45,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 24,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0046,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 7,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 4,
                "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": 811,
            "combined_rank_score": 532.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 391.0,
            "sofascore_rating": 6.95,
            "sofascore_appearances": 6.0,
            "fifa_rank": 673.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "starter",
            "projected_match_rating": 6.653,
            "source_file": "data/player_rankings.csv",
            "player_name": "Vanja Drkušić",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Chang-woo Park",
                  "ranking": 806
                },
                {
                  "player_name": "Ronan",
                  "ranking": 807
                },
                {
                  "player_name": "Roy Revivo",
                  "ranking": 808
                },
                {
                  "player_name": "Hugo Magallanes",
                  "ranking": 809
                },
                {
                  "player_name": "Dženis Burnić",
                  "ranking": 810
                }
              ],
              "lower": [
                {
                  "player_name": "Hugo Souza",
                  "ranking": 812
                },
                {
                  "player_name": "Teddy Teuma",
                  "ranking": 813
                },
                {
                  "player_name": "Yoel Bárcenas",
                  "ranking": 814
                },
                {
                  "player_name": "Piero Quispe",
                  "ranking": 815
                },
                {
                  "player_name": "Seung-wan Ryu",
                  "ranking": 816
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.388,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.388,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9905,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 1.0,
              "minutes": 115.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.0867
            },
            "rationale": "XGBoost regressor (D_service) evaluated 2 historical appearances across 6 target models; FBref 2026-2027 prior blended (La Liga, Espanyol, rel: 0.09, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.7169,
                "minutes": 57,
                "total_pass": 32,
                "accurate_pass": 26,
                "duels_won": 4,
                "total_long_balls": 6,
                "accurate_long_balls": 2,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 6.5,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 12,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.5405,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Real Madrid",
                    "minutes": 24.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 27.5405,
                  "touches_p90": 64.3243,
                  "possessionLostCtrl": 6.8649,
                  "totalClearance": 4.0,
                  "aerialWon": 1.0811
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9857770204544067,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0553
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.053
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0361
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0302
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0129
                        }
                      ],
                      "others": -0.0263,
                      "total": 0.9858
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.2531903982162476,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.053
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0528
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.049
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0411
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0383
                        }
                      ],
                      "others": 0.0265,
                      "total": 1.2532
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.4897051155567169,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0873
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0527
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0491
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0428
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0334
                        }
                      ],
                      "others": -0.1125,
                      "total": 0.4897
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.446970462799072,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.4516
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4031
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.2791
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.1437
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.1178
                        }
                      ],
                      "others": 0.1715,
                      "total": 4.447
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.3985207080841064,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.087
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0676
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0707
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0366
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0368
                        }
                      ],
                      "others": 0.0317,
                      "total": 1.3985
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.716866970062256,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0847
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0634
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0235
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0204
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0173
                        }
                      ],
                      "others": 0.0143,
                      "total": 6.7169
                    }
                  }
                ],
                "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.9905, quality 0.468)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.653,
                "minutes": 56,
                "total_pass": 32,
                "accurate_pass": 26,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 1,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 6.4382,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 12,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 5500000,
                "quality_factor": 0.4683,
                "boost_factor": 0.9905
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0403)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.653,
                "minutes": 56,
                "total_pass": 32,
                "accurate_pass": 26,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 1,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 6.4382,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 12,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 42.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -1.57
              },
              "params": {
                "blend_weight": 0.0403,
                "history_matches": 2,
                "prior_reliability": 0.0867,
                "competition": "La Liga",
                "squad": "Espanyol"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0929
                },
                {
                  "stat": "wonTackle",
                  "before": 0.4851,
                  "after": 0.5275
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.9764,
                  "after": 0.9371
                },
                {
                  "stat": "fouls",
                  "before": 1.4857,
                  "after": 1.5188
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.653,
                "minutes": 56,
                "total_pass": 32,
                "accurate_pass": 26,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 1,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 6.4382,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 12,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 42.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.653,
                "minutes": 56,
                "total_pass": 32,
                "accurate_pass": 26,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 1,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 6.4382,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 12,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 42.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ezequiel Ponce",
                "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": "Ezequiel Ponce",
                  "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.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.653,
                "minutes": 56,
                "total_pass": 32,
                "accurate_pass": 26,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 1,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 6.4382,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 12,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 42.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ezequiel Ponce",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 10, fifa_overall 80.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.653,
                "minutes": 56,
                "total_pass": 32,
                "accurate_pass": 26,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 1,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 6.4382,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 12,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 42.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ezequiel Ponce",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "match_squad_rank": 10,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 811,
                "fifa_rank": 673.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 80.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.653,
                "minutes": 56,
                "total_pass": 32,
                "accurate_pass": 26,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 1,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 6.4382,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 12,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 42.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ezequiel Ponce",
                "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.023,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.023,
                "scorer_weight": 0.2429,
                "squad_weight_total": 10.5411,
                "weight_share": 0.023,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.653,
                "minutes": 56,
                "total_pass": 32,
                "accurate_pass": 26,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 1,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 6.4382,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 12,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 42.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ezequiel Ponce",
                "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.023,
                "projected_assists": 0,
                "assist_probability": 0.0055,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0055,
                "provider_weight": 0.0496,
                "squad_weight_total": 9.1036,
                "weight_share": 0.0055,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Urko González": {
          "player_id": 1064009,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 4,
          "height": 189,
          "market_value": 11600000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0514,
            "assists": 0,
            "expected_goals": 0.0699,
            "rating": 6.9432,
            "minutes": 56,
            "total_pass": 25,
            "accurate_pass": 23,
            "duels_won": 2,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 12,
            "accurate_own_half_passes": 11,
            "total_opp_half_passes": 13,
            "accurate_opp_half_passes": 11,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 33,
            "possession_lost": 5.0616,
            "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,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 10,
            "total_progression": 42,
            "progressive_carries": 1,
            "total_shots": 1,
            "offsides": 0,
            "yellowCards": 0.9524,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 70.4,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.95,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.8,
            "crosses_attempted": 2.4,
            "duel_win_rate": 0.471,
            "pressing_faced": "LOW",
            "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
            "numerical_situation": "1v1",
            "opponent_defenders": "Víctor Chust",
            "opponent_faced": "Víctor Chust",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.038,
            "projected_assists": 0,
            "assist_probability": 0.1299,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_id": 16416323.0,
              "match_date": "2026-09-06",
              "home_team": "Espanyol",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 31,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.0109,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 16,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 45,
                "rating": 6.3,
                "assists": 0,
                "expected_assists": 0.0017,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 19,
                "tackles": 1,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 75,
                "rating": 6.3,
                "assists": 0,
                "expected_assists": 0.0151,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 28,
                "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": 16421053.0,
              "match_date": "2026-08-16",
              "home_team": "Espanyol",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 72,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0196,
                "total_shots": 0,
                "total_pass": 31,
                "accurate_pass": 27,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 2,
                "duels_won": 3,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3267,
            "combined_rank_score": 1211.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 445.0,
            "sofascore_rating": 6.9,
            "sofascore_appearances": 1.0,
            "fifa_rank": 1978.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "projected_match_rating": 6.9432,
            "source_file": "data/player_rankings.csv",
            "player_name": "Urko González",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Félix Correia",
                  "ranking": 3262
                },
                {
                  "player_name": "Kenneth Taylor",
                  "ranking": 3263
                },
                {
                  "player_name": "Johan Vásquez",
                  "ranking": 3264
                },
                {
                  "player_name": "Mamadou Sarr",
                  "ranking": 3265
                },
                {
                  "player_name": "Yoan Bonny",
                  "ranking": 3266
                }
              ],
              "lower": [
                {
                  "player_name": "Tasos Douvikas",
                  "ranking": 3268
                },
                {
                  "player_name": "Sam Beukema",
                  "ranking": 3269
                },
                {
                  "player_name": "Máximo Perrone",
                  "ranking": 3270
                },
                {
                  "player_name": "Federico Viñas",
                  "ranking": 3271
                },
                {
                  "player_name": "Marco Reus",
                  "ranking": 3272
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.521,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.521,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0123,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 190.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.14
            },
            "rationale": "XGBoost regressor (M_service) evaluated 4 historical appearances across 5 target models; FBref 2026-2027 prior blended (La Liga, Espanyol, rel: 0.14, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0508,
                "assists": 0,
                "expected_goals": 0.0385,
                "rating": 6.8587,
                "minutes": 56,
                "total_pass": 25,
                "accurate_pass": 22,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 33,
                "possession_lost": 5.0,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 41,
                "progressive_carries": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Sevilla",
                    "minutes": 31.0,
                    "is_starting": false,
                    "weight": 0.3138,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Real Sociedad",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Real Madrid",
                    "minutes": 75.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Levante UD",
                    "minutes": 72.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 6.9
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 2.7844,
                  "ballRecovery": 1.9165,
                  "intensity_index": 3.5503,
                  "expectedAssists": 0.0111,
                  "kilometersCovered": 5.9234
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.8468706607818604,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0752
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0672
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0554
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0251
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0227
                        }
                      ],
                      "others": -0.0612,
                      "total": 0.8469
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.050777237862348557,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0211
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0053
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0049
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0049
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0035
                        }
                      ],
                      "others": -0.0122,
                      "total": 0.0508
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07566778361797333,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0067
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.006
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0053
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0038
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0037
                        }
                      ],
                      "others": -0.0094,
                      "total": 0.0757
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.03850242495536804,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0192
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0132
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0111
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0078
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0054
                        }
                      ],
                      "others": -0.0135,
                      "total": 0.0385
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.8586649894714355,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0255
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0254
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0186
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0164
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.015
                        }
                      ],
                      "others": 0.0068,
                      "total": 6.8587
                    }
                  }
                ],
                "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.0123, quality 0.541)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0514,
                "assists": 0,
                "expected_goals": 0.039,
                "rating": 6.9432,
                "minutes": 56,
                "total_pass": 25,
                "accurate_pass": 23,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 33,
                "possession_lost": 5.0616,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 42,
                "progressive_carries": 1
              },
              "params": {
                "market_value_eur": 11600000,
                "quality_factor": 0.5411,
                "boost_factor": 1.0123
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0506)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0514,
                "assists": 0,
                "expected_goals": 0.039,
                "rating": 6.9432,
                "minutes": 56,
                "total_pass": 25,
                "accurate_pass": 23,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 33,
                "possession_lost": 5.0616,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 42,
                "progressive_carries": 1,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.9524,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 70.4,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.95
              },
              "params": {
                "blend_weight": 0.0506,
                "history_matches": 4,
                "prior_reliability": 0.14,
                "competition": "La Liga",
                "squad": "Espanyol"
              },
              "changes": [
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0241
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0514,
                "assists": 0,
                "expected_goals": 0.039,
                "rating": 6.9432,
                "minutes": 56,
                "total_pass": 25,
                "accurate_pass": 23,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 33,
                "possession_lost": 5.0616,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 42,
                "progressive_carries": 1,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.9524,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 70.4,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.95
              },
              "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.0514,
                "assists": 0,
                "expected_goals": 0.039,
                "rating": 6.9432,
                "minutes": 56,
                "total_pass": 25,
                "accurate_pass": 23,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 33,
                "possession_lost": 5.0616,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 42,
                "progressive_carries": 1,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.9524,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 70.4,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.95,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.4,
                "duel_win_rate": 0.471,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "numerical_situation": "1v1",
                "opponent_defenders": "Víctor Chust",
                "opponent_faced": "Víctor Chust",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Víctor Chust",
                  "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                  "duel_win_rate": 0.471,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.3
                },
                {
                  "stat": "totalShots",
                  "before": 0.0,
                  "after": 1.1
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0514,
                "assists": 0,
                "expected_goals": 0.0699,
                "rating": 6.9432,
                "minutes": 56,
                "total_pass": 25,
                "accurate_pass": 23,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 33,
                "possession_lost": 5.0616,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 42,
                "progressive_carries": 1,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.9524,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 70.4,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.95,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.4,
                "duel_win_rate": 0.471,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "numerical_situation": "1v1",
                "opponent_defenders": "Víctor Chust",
                "opponent_faced": "Víctor Chust",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.039,
                  "after": 0.0699
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 3, fifa_overall 76.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0514,
                "assists": 0,
                "expected_goals": 0.0699,
                "rating": 6.9432,
                "minutes": 56,
                "total_pass": 25,
                "accurate_pass": 23,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 33,
                "possession_lost": 5.0616,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 42,
                "progressive_carries": 1,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.9524,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 70.4,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.95,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.4,
                "duel_win_rate": 0.471,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "numerical_situation": "1v1",
                "opponent_defenders": "Víctor Chust",
                "opponent_faced": "Víctor Chust",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "match_squad_rank": 3,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3267,
                "fifa_rank": 1978.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 76.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0514,
                "assists": 0,
                "expected_goals": 0.0699,
                "rating": 6.9432,
                "minutes": 56,
                "total_pass": 25,
                "accurate_pass": 23,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 33,
                "possession_lost": 5.0616,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 42,
                "progressive_carries": 1,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.9524,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 70.4,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.95,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.4,
                "duel_win_rate": 0.471,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "numerical_situation": "1v1",
                "opponent_defenders": "Víctor Chust",
                "opponent_faced": "Víctor Chust",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.038,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.038,
                "scorer_weight": 0.4001,
                "squad_weight_total": 10.5411,
                "weight_share": 0.038,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0514,
                "assists": 0,
                "expected_goals": 0.0699,
                "rating": 6.9432,
                "minutes": 56,
                "total_pass": 25,
                "accurate_pass": 23,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 33,
                "possession_lost": 5.0616,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 42,
                "progressive_carries": 1,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.9524,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 70.4,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.95,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.4,
                "duel_win_rate": 0.471,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "numerical_situation": "1v1",
                "opponent_defenders": "Víctor Chust",
                "opponent_faced": "Víctor Chust",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.038,
                "projected_assists": 0,
                "assist_probability": 0.1299,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1299,
                "provider_weight": 1.1828,
                "squad_weight_total": 9.1036,
                "weight_share": 0.1299,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Tyrhys Dolan": {
          "player_id": 1063015,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 24,
          "height": 170,
          "market_value": 10800000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0827,
            "assists": 0,
            "expected_goals": 0.1847,
            "rating": 6.878,
            "minutes": 87,
            "total_pass": 22,
            "accurate_pass": 19,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 9,
            "accurate_own_half_passes": 7,
            "total_opp_half_passes": 14,
            "accurate_opp_half_passes": 12,
            "crosses_total": 3,
            "crosses_accurate": 0,
            "touches": 41,
            "possession_lost": 11.3574,
            "dispossessed": 0.0,
            "duels_lost": 6,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 2,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 3,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 2,
            "fouls_drawn": 0,
            "goal_rate": 0.0241,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 18,
            "total_progression": 112,
            "progressive_carries": 5,
            "total_shots": 2,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 25.0,
            "shotConversion": 0.25,
            "minutesPct": 93.3,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.36,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.8,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.475,
            "pressing_faced": "LOW",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "Germán Valera",
            "opponent_faced": "Germán Valera",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0822,
            "projected_assists": 0,
            "assist_probability": 0.148,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416327.0,
              "match_date": "2026-09-12 14:15: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": "Osasuna",
              "away_team": "Espanyol",
              "home_score_current": 0.0,
              "away_score_current": 2.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Espanyol",
              "opponent": "Osasuna",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416323.0,
              "match_date": "2026-09-06",
              "home_team": "Espanyol",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assists": 0,
                "expected_assists": 0.0118,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 19,
                "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": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 83,
                "rating": 6.5,
                "assists": 0,
                "expected_assists": 0.1341,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 15,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 5,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 5.8,
                "assists": 0,
                "expected_assists": 0.1023,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 18,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421053.0,
              "match_date": "2026-08-16",
              "home_team": "Espanyol",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 81,
                "rating": 7.7,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.2108,
                "expected_assists": 0.0398,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 29,
                "accurate_pass": 24,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "duels_won": 2,
                "ball_recovery": 11
              },
              "has_player_stats": true,
              "league_name": "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": 3488,
            "combined_rank_score": 1474.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 52.0,
            "sofascore_rating": 7.7,
            "sofascore_appearances": 1.0,
            "fifa_rank": 2897.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "starter",
            "projected_match_rating": 6.878,
            "source_file": "data/player_rankings.csv",
            "player_name": "Tyrhys Dolan",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Leandro González Pírez",
                  "ranking": 3483
                },
                {
                  "player_name": "Mahdi Camara",
                  "ranking": 3484
                },
                {
                  "player_name": "Saud Abdulhamid",
                  "ranking": 3485
                },
                {
                  "player_name": "Orel Mangala",
                  "ranking": 3486
                },
                {
                  "player_name": "Lassine Sinayoko",
                  "ranking": 3487
                }
              ],
              "lower": [
                {
                  "player_name": "Yann Gboho",
                  "ranking": 3489
                },
                {
                  "player_name": "Ansu Fati",
                  "ranking": 3490
                },
                {
                  "player_name": "Marcus Edwards",
                  "ranking": 3491
                },
                {
                  "player_name": "Ismaël Doukouré",
                  "ranking": 3492
                },
                {
                  "player_name": "Unai Marrero",
                  "ranking": 3493
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.528,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.528,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0095,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 252.0,
              "goals_per90": 0.3571428571428571,
              "assists_per90": 0.0,
              "shots_per90": 1.43,
              "shots_on_target_pct": 25.0,
              "prior_reliability": 0.1867
            },
            "rationale": "XGBoost regressor (M_service) evaluated 4 historical appearances across 5 target models; FBref 2026-2027 prior blended (La Liga, Espanyol, rel: 0.19, gls/90: 0.3571428571428571, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0819,
                "assists": 0,
                "expected_goals": 0.102,
                "rating": 6.813,
                "minutes": 86,
                "total_pass": 22,
                "accurate_pass": 19,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 11.25,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 2,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 111,
                "progressive_carries": 4
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Sevilla",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Real Sociedad",
                    "minutes": 83.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 5.8
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Levante UD",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 7.7
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 5.4233,
                  "ballRecovery": 5.0752,
                  "intensity_index": 8.5401,
                  "expectedAssists": 0.0703,
                  "kilometersCovered": 9.9607
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.9994722008705139,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0556
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0261
                        },
                        {
                          "name": "cross_accuracy",
                          "contribution": 0.0245
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0233
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0229
                        }
                      ],
                      "others": -0.024,
                      "total": 0.9995
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.08189975470304489,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0096
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0081
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0073
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0046
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0041
                        }
                      ],
                      "others": -0.0127,
                      "total": 0.0819
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.09299205243587494,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0142
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0043
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0042
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0037
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0029
                        }
                      ],
                      "others": -0.0103,
                      "total": 0.093
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1020328477025032,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0172
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.007
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0056
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0058
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0061
                        }
                      ],
                      "others": -0.0,
                      "total": 0.102
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.812989711761475,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0376
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0205
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0182
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0172
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0141
                        }
                      ],
                      "others": 0.018,
                      "total": 6.813
                    }
                  }
                ],
                "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.0095, quality 0.532)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0827,
                "assists": 0,
                "expected_goals": 0.103,
                "rating": 6.878,
                "minutes": 87,
                "total_pass": 22,
                "accurate_pass": 19,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 12,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 11.3574,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 2,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 112,
                "progressive_carries": 5
              },
              "params": {
                "market_value_eur": 10800000,
                "quality_factor": 0.5318,
                "boost_factor": 1.0095
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0674)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0827,
                "assists": 0,
                "expected_goals": 0.103,
                "rating": 6.878,
                "minutes": 87,
                "total_pass": 22,
                "accurate_pass": 19,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 12,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 11.3574,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 2,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 112,
                "progressive_carries": 5,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.25,
                "minutesPct": 93.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.36
              },
              "params": {
                "blend_weight": 0.0674,
                "history_matches": 4,
                "prior_reliability": 0.1867,
                "competition": "La Liga",
                "squad": "Espanyol"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0963
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0482
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0243
                },
                {
                  "stat": "goals",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "totalCross",
                  "before": 2.5239,
                  "after": 2.5464
                },
                {
                  "stat": "interceptionWon",
                  "before": 1.5143,
                  "after": 1.5326
                },
                {
                  "stat": "fouls",
                  "before": 1.5143,
                  "after": 1.5326
                },
                {
                  "stat": "goalAssist",
                  "before": 0.0939,
                  "after": 0.0876
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0827,
                "assists": 0,
                "expected_goals": 0.103,
                "rating": 6.878,
                "minutes": 87,
                "total_pass": 22,
                "accurate_pass": 19,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 12,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 11.3574,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 2,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 112,
                "progressive_carries": 5,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.25,
                "minutesPct": 93.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.36
              },
              "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.0827,
                "assists": 0,
                "expected_goals": 0.103,
                "rating": 6.878,
                "minutes": 87,
                "total_pass": 22,
                "accurate_pass": 19,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 12,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 11.3574,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 2,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 112,
                "progressive_carries": 5,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.25,
                "minutesPct": 93.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.36,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.475,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Germán Valera",
                "opponent_faced": "Germán Valera",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Germán Valera",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                  "duel_win_rate": 0.475,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 0.8
                },
                {
                  "stat": "totalShots",
                  "before": 1.43,
                  "after": 1.7
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0827,
                "assists": 0,
                "expected_goals": 0.1847,
                "rating": 6.878,
                "minutes": 87,
                "total_pass": 22,
                "accurate_pass": 19,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 12,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 11.3574,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 2,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 112,
                "progressive_carries": 5,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.25,
                "minutesPct": 93.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.36,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.475,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Germán Valera",
                "opponent_faced": "Germán Valera",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.103,
                  "after": 0.1847
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 4, fifa_overall 74.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0827,
                "assists": 0,
                "expected_goals": 0.1847,
                "rating": 6.878,
                "minutes": 87,
                "total_pass": 22,
                "accurate_pass": 19,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 12,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 11.3574,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 2,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 112,
                "progressive_carries": 5,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.25,
                "minutesPct": 93.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.36,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.475,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Germán Valera",
                "opponent_faced": "Germán Valera",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 4,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3488,
                "fifa_rank": 2897.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0827,
                "assists": 0,
                "expected_goals": 0.1847,
                "rating": 6.878,
                "minutes": 87,
                "total_pass": 22,
                "accurate_pass": 19,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 12,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 11.3574,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 2,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 112,
                "progressive_carries": 5,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.25,
                "minutesPct": 93.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.36,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.475,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Germán Valera",
                "opponent_faced": "Germán Valera",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0822,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0822,
                "scorer_weight": 0.866,
                "squad_weight_total": 10.5411,
                "weight_share": 0.0822,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0827,
                "assists": 0,
                "expected_goals": 0.1847,
                "rating": 6.878,
                "minutes": 87,
                "total_pass": 22,
                "accurate_pass": 19,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 12,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 11.3574,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 2,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 112,
                "progressive_carries": 5,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.25,
                "minutesPct": 93.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.36,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.475,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Germán Valera",
                "opponent_faced": "Germán Valera",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0822,
                "projected_assists": 0,
                "assist_probability": 0.148,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.148,
                "provider_weight": 1.347,
                "squad_weight_total": 9.1036,
                "weight_share": 0.148,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Gabriel Moscardo": {
          "player_id": 1485309,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 20,
          "height": 185,
          "market_value": 7500000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0342,
            "assists": 0,
            "expected_goals": 0.0748,
            "rating": 6.7605,
            "minutes": 52,
            "total_pass": 21,
            "accurate_pass": 17,
            "duels_won": 6,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 13,
            "accurate_own_half_passes": 11,
            "total_opp_half_passes": 8,
            "accurate_opp_half_passes": 6,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 32,
            "possession_lost": 6.9846,
            "dispossessed": 0.9978,
            "duels_lost": 4,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 3,
            "clearances": 2,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 8,
            "total_progression": 0,
            "progressive_carries": 0,
            "total_shots": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 100.0,
            "shotConversion": 0.0,
            "minutesPct": 16.7,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.9,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.487,
            "pressing_faced": "LOW",
            "matchup_zone": "CDM vs CDM",
            "numerical_situation": "1v1",
            "opponent_defenders": "Germán Valera",
            "opponent_faced": "Germán Valera",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0387,
            "projected_assists": 0,
            "assist_probability": 0.1172,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416327.0,
              "match_date": "2026-09-12 14:15: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": "Osasuna",
              "away_team": "Espanyol",
              "home_score_current": 0.0,
              "away_score_current": 2.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Espanyol",
              "opponent": "Osasuna",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416323.0,
              "match_date": "2026-09-06",
              "home_team": "Espanyol",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 59,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0136,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 17,
                "tackles": 2,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 5,
                "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": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 45,
                "rating": 6.9,
                "assists": 0,
                "expected_goals": 0.0453,
                "expected_assists": 0.006,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 21,
                "accurate_pass": 18,
                "tackles": 4,
                "tackles_won": 1,
                "clearances": 2,
                "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"
            }
          ],
          "ranking": {
            "global_player_rank": 4340,
            "combined_rank_score": 2356.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 445.0,
            "sofascore_rating": 6.9,
            "sofascore_appearances": 1.0,
            "fifa_rank": 4267.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "starter",
            "projected_match_rating": 6.7605,
            "source_file": "data/player_rankings.csv",
            "player_name": "Gabriel Moscardo",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Fabiano Parisi",
                  "ranking": 4335
                },
                {
                  "player_name": "Mandela Keita",
                  "ranking": 4336
                },
                {
                  "player_name": "Jay Idzes",
                  "ranking": 4337
                },
                {
                  "player_name": "Obed Vargas",
                  "ranking": 4338
                },
                {
                  "player_name": "Mateo Joseph",
                  "ranking": 4339
                }
              ],
              "lower": [
                {
                  "player_name": "Akor Jerome Adams",
                  "ranking": 4341
                },
                {
                  "player_name": "Ezequiel Ponce",
                  "ranking": 4342
                },
                {
                  "player_name": "Anass Salah-Eddine",
                  "ranking": 4343
                },
                {
                  "player_name": "Fabio Miretti",
                  "ranking": 4344
                },
                {
                  "player_name": "Tommaso Baldanzi",
                  "ranking": 4345
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.38,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.38,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9978,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 0.0,
              "minutes": 45.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 2.0,
              "shots_on_target_pct": 100.0,
              "prior_reliability": 0.0333
            },
            "rationale": "XGBoost regressor (M_service) evaluated 2 historical appearances across 5 target models; FBref 2026-2027 prior blended (La Liga, Espanyol, rel: 0.03, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0343,
                "assists": 0,
                "expected_goals": 0.0418,
                "rating": 6.7754,
                "minutes": 52,
                "total_pass": 21,
                "accurate_pass": 18,
                "duels_won": 6,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 13,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 7.0,
                "dispossessed": 1.0,
                "duels_lost": 4,
                "aerial_won": 3,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 3,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 0,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Sevilla",
                    "minutes": 59.0,
                    "is_starting": true,
                    "weight": 0.5405,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Real Sociedad",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.9
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 1.8378,
                  "ballRecovery": 0.9189,
                  "intensity_index": 2.7106,
                  "expectedAssists": 0.0101,
                  "kilometersCovered": 5.7019
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.914621889591217,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0554
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0577
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0448
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0373
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0352
                        }
                      ],
                      "others": -0.1207,
                      "total": 0.9146
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.03429697826504707,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0173
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0072
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0061
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0052
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0044
                        }
                      ],
                      "others": -0.0184,
                      "total": 0.0343
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07654460519552231,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.007
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0044
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0039
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0034
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0027
                        }
                      ],
                      "others": 0.0023,
                      "total": 0.0765
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.04182770103216171,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0207
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0148
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0107
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0058
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0042
                        }
                      ],
                      "others": -0.0107,
                      "total": 0.0418
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.775380611419678,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0273
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0206
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0203
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0177
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0151
                        }
                      ],
                      "others": -0.021,
                      "total": 6.7754
                    }
                  }
                ],
                "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": {
                "key_pass": 1,
                "expected_assists": 0.0342,
                "assists": 0,
                "expected_goals": 0.0417,
                "rating": 6.7605,
                "minutes": 52,
                "total_pass": 21,
                "accurate_pass": 17,
                "duels_won": 6,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 13,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 6.9846,
                "dispossessed": 0.9978,
                "duels_lost": 4,
                "aerial_won": 3,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 3,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 0,
                "progressive_carries": 0
              },
              "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.0155)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0342,
                "assists": 0,
                "expected_goals": 0.0417,
                "rating": 6.7605,
                "minutes": 52,
                "total_pass": 21,
                "accurate_pass": 17,
                "duels_won": 6,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 13,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 6.9846,
                "dispossessed": 0.9978,
                "duels_lost": 4,
                "aerial_won": 3,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 3,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 16.7,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -2.0
              },
              "params": {
                "blend_weight": 0.0155,
                "history_matches": 2,
                "prior_reliability": 0.0333,
                "competition": "La Liga",
                "squad": "Espanyol"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0309
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0309
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0342,
                "assists": 0,
                "expected_goals": 0.0417,
                "rating": 6.7605,
                "minutes": 52,
                "total_pass": 21,
                "accurate_pass": 17,
                "duels_won": 6,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 13,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 6.9846,
                "dispossessed": 0.9978,
                "duels_lost": 4,
                "aerial_won": 3,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 3,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 16.7,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0342,
                "assists": 0,
                "expected_goals": 0.0417,
                "rating": 6.7605,
                "minutes": 52,
                "total_pass": 21,
                "accurate_pass": 17,
                "duels_won": 6,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 13,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 6.9846,
                "dispossessed": 0.9978,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 3,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 16.7,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.487,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Germán Valera",
                "opponent_faced": "Germán Valera",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Germán Valera",
                  "matchup_zone": "CDM vs CDM",
                  "duel_win_rate": 0.487,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 2.9934,
                  "after": 1.2
                },
                {
                  "stat": "totalShots",
                  "before": 2.0,
                  "after": 1.1
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0342,
                "assists": 0,
                "expected_goals": 0.0748,
                "rating": 6.7605,
                "minutes": 52,
                "total_pass": 21,
                "accurate_pass": 17,
                "duels_won": 6,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 13,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 6.9846,
                "dispossessed": 0.9978,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 3,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 16.7,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.487,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Germán Valera",
                "opponent_faced": "Germán Valera",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0417,
                  "after": 0.0748
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 6, fifa_overall 72.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0342,
                "assists": 0,
                "expected_goals": 0.0748,
                "rating": 6.7605,
                "minutes": 52,
                "total_pass": 21,
                "accurate_pass": 17,
                "duels_won": 6,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 13,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 6.9846,
                "dispossessed": 0.9978,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 3,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 16.7,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.487,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Germán Valera",
                "opponent_faced": "Germán Valera",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 6,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4340,
                "fifa_rank": 4267.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 72.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0342,
                "assists": 0,
                "expected_goals": 0.0748,
                "rating": 6.7605,
                "minutes": 52,
                "total_pass": 21,
                "accurate_pass": 17,
                "duels_won": 6,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 13,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 6.9846,
                "dispossessed": 0.9978,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 3,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 16.7,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.487,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Germán Valera",
                "opponent_faced": "Germán Valera",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0387,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0387,
                "scorer_weight": 0.4079,
                "squad_weight_total": 10.5411,
                "weight_share": 0.0387,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0342,
                "assists": 0,
                "expected_goals": 0.0748,
                "rating": 6.7605,
                "minutes": 52,
                "total_pass": 21,
                "accurate_pass": 17,
                "duels_won": 6,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 13,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 6.9846,
                "dispossessed": 0.9978,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 3,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 16.7,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.487,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Germán Valera",
                "opponent_faced": "Germán Valera",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0387,
                "projected_assists": 0,
                "assist_probability": 0.1172,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1172,
                "provider_weight": 1.0667,
                "squad_weight_total": 9.1036,
                "weight_share": 0.1172,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Javi Puado": {
          "player_id": 891511,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 7,
          "height": 178,
          "market_value": 7000000,
          "stats": {
            "key_pass": 2,
            "assists": 1,
            "expected_assists": 0.137,
            "expected_goals": 0.1578,
            "total_shots": 1,
            "total_pass": 51,
            "accurate_pass": 42,
            "ball_recovery": 5,
            "duels_won": 6,
            "rating": 6.9,
            "minutes": 90,
            "total_long_balls": 4,
            "accurate_long_balls": 2,
            "total_own_half_passes": 21,
            "accurate_own_half_passes": 16,
            "total_opp_half_passes": 20,
            "accurate_opp_half_passes": 15,
            "crosses_total": 1,
            "crosses_accurate": 1,
            "touches": 67,
            "possession_lost": 8.4,
            "dispossessed": 0.8,
            "duels_lost": 4,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 2,
            "clearances": 1,
            "total_contest": 4,
            "won_contest": 2,
            "challenges_lost": 1,
            "fouls": 2,
            "fouls_drawn": 1,
            "goal_rate": 0.07,
            "goals": 0,
            "shots_on_target": 1,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.059,
            "ball_carries": 30,
            "total_progression": 79,
            "progressive_carries": 7,
            "opponent_faced": "Marc Aguado",
            "matchup_zone": "Midfield lane",
            "antagonist_source": "midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.1055,
            "projected_assists": 1,
            "assist_probability": 0.2628,
            "fifa_overall": 79.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 2281,
            "combined_rank_score": 901.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 834.0,
            "sofascore_rating": 6.5889,
            "sofascore_appearances": 10.0,
            "fifa_rank": 968.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "projected_match_rating": 6.9,
            "source_file": "data/player_rankings.csv",
            "player_name": "Javi Puado",
            "ranking_neighbors": {
              "upper": [
                {
                  "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
                },
                {
                  "player_name": "Endrick",
                  "ranking": 2280
                }
              ],
              "lower": [
                {
                  "player_name": "Bekhruz Jumatov",
                  "ranking": 2282
                },
                {
                  "player_name": "Odilon Kossounou",
                  "ranking": 2283
                },
                {
                  "player_name": "Lennart Karl",
                  "ranking": 2284
                },
                {
                  "player_name": "André",
                  "ranking": 2285
                },
                {
                  "player_name": "Tim Payne",
                  "ranking": 2286
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "M_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "market_value_adjustment": 0.4866,
            "fbref_prior_metrics": null,
            "rationale": "Market-value baseline (€7,000,000) applied for position M (quality factor 0.49)."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position M (quality 0.49)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.137,
                "expected_goals": 0.088,
                "total_shots": 1,
                "total_pass": 51,
                "accurate_pass": 42,
                "ball_recovery": 5,
                "duels_won": 6,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 67,
                "possession_lost": 8.4,
                "dispossessed": 0.8,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 1,
                "total_contest": 4,
                "won_contest": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "goal_rate": 0.07,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.059,
                "ball_carries": 30,
                "total_progression": 79,
                "progressive_carries": 7
              },
              "params": {
                "market_value_eur": 7000000,
                "quality_factor": 0.4866
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.137,
                "expected_goals": 0.088,
                "total_shots": 1,
                "total_pass": 51,
                "accurate_pass": 42,
                "ball_recovery": 5,
                "duels_won": 6,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 67,
                "possession_lost": 8.4,
                "dispossessed": 0.8,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 1,
                "total_contest": 4,
                "won_contest": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "goal_rate": 0.07,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.059,
                "ball_carries": 30,
                "total_progression": 79,
                "progressive_carries": 7
              },
              "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,
                "assists": 0,
                "expected_assists": 0.137,
                "expected_goals": 0.088,
                "total_shots": 1,
                "total_pass": 51,
                "accurate_pass": 42,
                "ball_recovery": 5,
                "duels_won": 6,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 67,
                "possession_lost": 8.4,
                "dispossessed": 0.8,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 1,
                "total_contest": 4,
                "won_contest": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "goal_rate": 0.07,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.059,
                "ball_carries": 30,
                "total_progression": 79,
                "progressive_carries": 7,
                "opponent_faced": "Marc Aguado",
                "matchup_zone": "Midfield lane",
                "antagonist_source": "midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Marc Aguado",
                  "matchup_zone": "Midfield lane"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.137,
                "expected_goals": 0.1578,
                "total_shots": 1,
                "total_pass": 51,
                "accurate_pass": 42,
                "ball_recovery": 5,
                "duels_won": 6,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 67,
                "possession_lost": 8.4,
                "dispossessed": 0.8,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 1,
                "total_contest": 4,
                "won_contest": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "goal_rate": 0.07,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.059,
                "ball_carries": 30,
                "total_progression": 79,
                "progressive_carries": 7,
                "opponent_faced": "Marc Aguado",
                "matchup_zone": "Midfield lane",
                "antagonist_source": "midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.088,
                  "after": 0.1578
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 8, fifa_overall 79.0)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.137,
                "expected_goals": 0.1578,
                "total_shots": 1,
                "total_pass": 51,
                "accurate_pass": 42,
                "ball_recovery": 5,
                "duels_won": 6,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 67,
                "possession_lost": 8.4,
                "dispossessed": 0.8,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 1,
                "total_contest": 4,
                "won_contest": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "goal_rate": 0.07,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.059,
                "ball_carries": 30,
                "total_progression": 79,
                "progressive_carries": 7,
                "opponent_faced": "Marc Aguado",
                "matchup_zone": "Midfield lane",
                "antagonist_source": "midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 8,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2281,
                "fifa_rank": 968.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 79.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.137,
                "expected_goals": 0.1578,
                "total_shots": 1,
                "total_pass": 51,
                "accurate_pass": 42,
                "ball_recovery": 5,
                "duels_won": 6,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 67,
                "possession_lost": 8.4,
                "dispossessed": 0.8,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 1,
                "total_contest": 4,
                "won_contest": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "goal_rate": 0.07,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.059,
                "ball_carries": 30,
                "total_progression": 79,
                "progressive_carries": 7,
                "opponent_faced": "Marc Aguado",
                "matchup_zone": "Midfield lane",
                "antagonist_source": "midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1055,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.1055,
                "scorer_weight": 1.1122,
                "squad_weight_total": 10.5411,
                "weight_share": 0.1055,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 2,
                "assists": 1,
                "expected_assists": 0.137,
                "expected_goals": 0.1578,
                "total_shots": 1,
                "total_pass": 51,
                "accurate_pass": 42,
                "ball_recovery": 5,
                "duels_won": 6,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 67,
                "possession_lost": 8.4,
                "dispossessed": 0.8,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 1,
                "total_contest": 4,
                "won_contest": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "goal_rate": 0.07,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.059,
                "ball_carries": 30,
                "total_progression": 79,
                "progressive_carries": 7,
                "opponent_faced": "Marc Aguado",
                "matchup_zone": "Midfield lane",
                "antagonist_source": "midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1055,
                "projected_assists": 1,
                "assist_probability": 0.2628,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 1,
                "assist_probability": 0.2628,
                "provider_weight": 2.3928,
                "squad_weight_total": 9.1036,
                "weight_share": 0.2628,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Pol Lozano": {
          "player_id": 826010,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 10,
          "height": 176,
          "market_value": 5800000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0339,
            "assists": 0,
            "expected_goals": 0.0665,
            "rating": 6.7064,
            "minutes": 16,
            "total_pass": 9,
            "accurate_pass": 7,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 5,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 11,
            "possession_lost": 1.4874,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 1,
            "total_progression": 0,
            "progressive_carries": 0,
            "total_shots": 1,
            "offsides": 0,
            "yellowCards": 2.5,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 13.0,
            "pointsPerMatch": 1.5,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.6,
            "crosses_attempted": 2.3,
            "duel_win_rate": 0.327,
            "pressing_faced": "LOW",
            "matchup_zone": "Right Wingback vs Left Back — Overlapping Run",
            "numerical_situation": "1v1",
            "opponent_defenders": "Kevin Lomónaco",
            "opponent_faced": "Kevin Lomónaco",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0361,
            "projected_assists": 0,
            "assist_probability": 0.1148,
            "fifa_overall": 75.0
          },
          "latest_10_games": [
            {
              "match_id": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 15,
                "rating": 6.5,
                "assists": 0,
                "expected_assists": 0.0025,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 6,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 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": 16421053.0,
              "match_date": "2026-08-16",
              "home_team": "Espanyol",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 18,
                "rating": 6.8,
                "assists": 0,
                "expected_goals": 0.0579,
                "expected_assists": 0.0198,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 11,
                "accurate_pass": 9,
                "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": 3515,
            "combined_rank_score": 1491.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 578.0,
            "sofascore_rating": 6.8,
            "sofascore_appearances": 1.0,
            "fifa_rank": 2405.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "starter",
            "projected_match_rating": 6.7064,
            "source_file": "data/player_rankings.csv",
            "player_name": "Pol Lozano",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Filip Ugrinić",
                  "ranking": 3510
                },
                {
                  "player_name": "Robin Zentner",
                  "ranking": 3511
                },
                {
                  "player_name": "Kevin Diks",
                  "ranking": 3512
                },
                {
                  "player_name": "Zuriko Davitashvili",
                  "ranking": 3513
                },
                {
                  "player_name": "Grischa Prömel",
                  "ranking": 3514
                }
              ],
              "lower": [
                {
                  "player_name": "Aurèle Amenda",
                  "ranking": 3516
                },
                {
                  "player_name": "Manu Morlanes",
                  "ranking": 3517
                },
                {
                  "player_name": "Alexis Claude-Maurice",
                  "ranking": 3518
                },
                {
                  "player_name": "Sebastián Cáceres",
                  "ranking": 3519
                },
                {
                  "player_name": "Anthony Caci",
                  "ranking": 3520
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.379,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.379,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9916,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "minutes": 35.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 2.57,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.0267
            },
            "rationale": "XGBoost regressor (M_service) evaluated 2 historical appearances across 5 target models; FBref 2026-2027 prior blended (La Liga, Espanyol, rel: 0.03, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0342,
                "assists": 0,
                "expected_goals": 0.0374,
                "rating": 6.7632,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 8,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 11,
                "possession_lost": 1.5,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 0,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Real Madrid",
                    "minutes": 15.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Levante UD",
                    "minutes": 18.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 12.027,
                  "ballRecovery": 2.0811,
                  "intensity_index": 1.4566,
                  "expectedAssists": 0.0104,
                  "kilometersCovered": 2.2878
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.6949451565742493,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0763
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.062
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.055
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0437
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0347
                        }
                      ],
                      "others": -0.1265,
                      "total": 0.6949
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.03419629484415054,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0162
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0088
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0058
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0052
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0043
                        }
                      ],
                      "others": -0.0184,
                      "total": 0.0342
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07061541825532913,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0064
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.005
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0041
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0039
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.003
                        }
                      ],
                      "others": -0.0164,
                      "total": 0.0706
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.0374101921916008,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0172
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0103
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0089
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0068
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0052
                        }
                      ],
                      "others": -0.0229,
                      "total": 0.0374
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.763171195983887,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0404
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0337
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0255
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0224
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0204
                        }
                      ],
                      "others": -0.0384,
                      "total": 6.7632
                    }
                  }
                ],
                "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.9916, quality 0.472)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0339,
                "assists": 0,
                "expected_goals": 0.0371,
                "rating": 6.7064,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 11,
                "possession_lost": 1.4874,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 5800000,
                "quality_factor": 0.472,
                "boost_factor": 0.9916
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0124)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0339,
                "assists": 0,
                "expected_goals": 0.0371,
                "rating": 6.7064,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 11,
                "possession_lost": 1.4874,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 3,
                "offsides": 0,
                "yellowCards": 2.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 13.0,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0124,
                "history_matches": 2,
                "prior_reliability": 0.0267,
                "competition": "La Liga",
                "squad": "Espanyol"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 0.9916,
                  "after": 1.0413
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.031
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0339,
                "assists": 0,
                "expected_goals": 0.0371,
                "rating": 6.7064,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 11,
                "possession_lost": 1.4874,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 3,
                "offsides": 0,
                "yellowCards": 2.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 13.0,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0339,
                "assists": 0,
                "expected_goals": 0.0371,
                "rating": 6.7064,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 11,
                "possession_lost": 1.4874,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 2.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 13.0,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.327,
                "pressing_faced": "LOW",
                "matchup_zone": "Right Wingback vs Left Back — Overlapping Run",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kevin Lomónaco",
                "opponent_faced": "Kevin Lomónaco",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Kevin Lomónaco",
                  "matchup_zone": "Right Wingback vs Left Back — Overlapping Run",
                  "duel_win_rate": 0.327,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.57,
                  "after": 0.9
                },
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 0.9
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0339,
                "assists": 0,
                "expected_goals": 0.0665,
                "rating": 6.7064,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 11,
                "possession_lost": 1.4874,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 2.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 13.0,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.327,
                "pressing_faced": "LOW",
                "matchup_zone": "Right Wingback vs Left Back — Overlapping Run",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kevin Lomónaco",
                "opponent_faced": "Kevin Lomónaco",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0371,
                  "after": 0.0665
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 9, fifa_overall 75.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0339,
                "assists": 0,
                "expected_goals": 0.0665,
                "rating": 6.7064,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 11,
                "possession_lost": 1.4874,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 2.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 13.0,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.327,
                "pressing_faced": "LOW",
                "matchup_zone": "Right Wingback vs Left Back — Overlapping Run",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kevin Lomónaco",
                "opponent_faced": "Kevin Lomónaco",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3515,
                "fifa_rank": 2405.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 75.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0339,
                "assists": 0,
                "expected_goals": 0.0665,
                "rating": 6.7064,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 11,
                "possession_lost": 1.4874,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 2.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 13.0,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.327,
                "pressing_faced": "LOW",
                "matchup_zone": "Right Wingback vs Left Back — Overlapping Run",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kevin Lomónaco",
                "opponent_faced": "Kevin Lomónaco",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0361,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0361,
                "scorer_weight": 0.3804,
                "squad_weight_total": 10.5411,
                "weight_share": 0.0361,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0339,
                "assists": 0,
                "expected_goals": 0.0665,
                "rating": 6.7064,
                "minutes": 16,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 11,
                "possession_lost": 1.4874,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 2.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 13.0,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.327,
                "pressing_faced": "LOW",
                "matchup_zone": "Right Wingback vs Left Back — Overlapping Run",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kevin Lomónaco",
                "opponent_faced": "Kevin Lomónaco",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0361,
                "projected_assists": 0,
                "assist_probability": 0.1148,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1148,
                "provider_weight": 1.0451,
                "squad_weight_total": 9.1036,
                "weight_share": 0.1148,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Roberto Fernández": {
          "player_id": 1392592,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 9,
          "height": 186,
          "market_value": 10300000,
          "stats": {
            "expected_goals": 0.3859,
            "goal_rate": 0.2929,
            "goals": 1,
            "shots_on_target": 1,
            "expected_assists": 0.0413,
            "key_pass": 1,
            "rating": 6.8071,
            "minutes": 89,
            "total_pass": 12,
            "accurate_pass": 9,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 8,
            "accurate_opp_half_passes": 6,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 24,
            "possession_lost": 6.8026,
            "dispossessed": 0.0,
            "duels_lost": 5,
            "aerial_lost": 3,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 2,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 2,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 7,
            "total_progression": 7,
            "progressive_carries": 0,
            "total_shots": 2,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 50.0,
            "shotConversion": 0.5,
            "minutesPct": 97.0,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.34,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.4,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.241,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Buba Sangaré, Roy Revivo",
            "opponent_faced": "Buba Sangaré, Roy Revivo",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.3924,
            "projected_assists": 0,
            "assist_probability": 0.071,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416327.0,
              "match_date": "2026-09-12 14:15: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": "Osasuna",
              "away_team": "Espanyol",
              "home_score_current": 0.0,
              "away_score_current": 2.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Espanyol",
              "opponent": "Osasuna",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416323.0,
              "match_date": "2026-09-06",
              "home_team": "Espanyol",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "expected_goals": 0.259,
                "expected_assists": 0.0027,
                "total_shots": 3,
                "shots_off_target": 2,
                "total_pass": 7,
                "accurate_pass": 6,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 83,
                "rating": 7.4,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.2734,
                "expected_assists": 0.0482,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 19,
                "accurate_pass": 14,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assists": 0,
                "expected_goals": 0.62,
                "expected_assists": 0.0121,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 10,
                "accurate_pass": 8,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "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": 16421053.0,
              "match_date": "2026-08-16",
              "home_team": "Espanyol",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 8.7,
                "goal_rate": 2.0,
                "goals": 2,
                "assists": 0,
                "expected_goals": 0.4597,
                "expected_assists": 0.0976,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 12,
                "accurate_pass": 7,
                "key_pass": 2,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3459,
            "combined_rank_score": 1454.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 6.0,
            "sofascore_rating": 8.7,
            "sofascore_appearances": 1.0,
            "fifa_rank": 2903.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "starter",
            "projected_match_rating": 6.8071,
            "source_file": "data/player_rankings.csv",
            "player_name": "Roberto Fernández",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Marco Sportiello",
                  "ranking": 3454
                },
                {
                  "player_name": "Arsène Kouassi",
                  "ranking": 3455
                },
                {
                  "player_name": "Leif Davis",
                  "ranking": 3456
                },
                {
                  "player_name": "Ismaëlo Ganiou",
                  "ranking": 3457
                },
                {
                  "player_name": "Olivier Giroud",
                  "ranking": 3458
                }
              ],
              "lower": [
                {
                  "player_name": "Eric Dier",
                  "ranking": 3460
                },
                {
                  "player_name": "Benjamin Nygren",
                  "ranking": 3461
                },
                {
                  "player_name": "Arnau Tenas",
                  "ranking": 3462
                },
                {
                  "player_name": "Yvon Mvogo",
                  "ranking": 3463
                },
                {
                  "player_name": "Duje Ćaleta-Car",
                  "ranking": 3464
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.529,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.529,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0078,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 262.0,
              "goals_per90": 1.0344827586206895,
              "assists_per90": 0.0,
              "shots_per90": 2.06,
              "shots_on_target_pct": 50.0,
              "prior_reliability": 0.1933
            },
            "rationale": "XGBoost regressor (F_service) evaluated 4 historical appearances across 6 target models; FBref 2026-2027 prior blended (La Liga, Espanyol, rel: 0.19, gls/90: 1.0344827586206895, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.2905,
                "goal_rate": 0.2355,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.041,
                "key_pass": 1,
                "rating": 6.7545,
                "minutes": 88,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 6.75,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 7,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Sevilla",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Real Sociedad",
                    "minutes": 83.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 8.7
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 0.6522,
                  "totalShots": 2.3138,
                  "minutesPlayed": 88.1328,
                  "touches": 24.4546,
                  "dribbleValueNormalized": -0.0736
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.29049408435821533,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.058
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0488
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.022
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.02
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0177
                        }
                      ],
                      "others": -0.0723,
                      "total": 0.2905
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.23550108075141907,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0658
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0242
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0128
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0112
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0109
                        }
                      ],
                      "others": -0.0069,
                      "total": 0.2355
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.7681236267089844,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0455
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0434
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0295
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.023
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0233
                        }
                      ],
                      "others": 0.0295,
                      "total": 0.7681
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.0409819632768631,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "duelLost",
                          "contribution": -0.0102
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0082
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0056
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0038
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0034
                        }
                      ],
                      "others": -0.0021,
                      "total": 0.041
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.7721256017684937,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1209
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0637
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0434
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0272
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0262
                        }
                      ],
                      "others": -0.051,
                      "total": 0.7721
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.754452228546143,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0397
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0387
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0373
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0326
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0189
                        }
                      ],
                      "others": 0.0135,
                      "total": 6.7545
                    }
                  }
                ],
                "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.0078, quality 0.526)",
              "stats": {
                "expected_goals": 0.2928,
                "goal_rate": 0.2373,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0413,
                "key_pass": 1,
                "rating": 6.8071,
                "minutes": 89,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 6.8026,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 7,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 10300000,
                "quality_factor": 0.526,
                "boost_factor": 1.0078
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0698)",
              "stats": {
                "expected_goals": 0.2928,
                "goal_rate": 0.2929,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0413,
                "key_pass": 1,
                "rating": 6.8071,
                "minutes": 89,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 6.8026,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 7,
                "progressive_carries": 0,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.5,
                "minutesPct": 97.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.34
              },
              "params": {
                "blend_weight": 0.0698,
                "history_matches": 4,
                "prior_reliability": 0.1933,
                "competition": "La Liga",
                "squad": "Espanyol"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0722
                },
                {
                  "stat": "goals",
                  "before": 0.2373,
                  "after": 0.2929
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.7741,
                  "after": 0.792
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.2928,
                "goal_rate": 0.2929,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0413,
                "key_pass": 1,
                "rating": 6.8071,
                "minutes": 89,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 6.8026,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 7,
                "progressive_carries": 0,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.5,
                "minutesPct": 97.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.34
              },
              "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.2152,
                "goal_rate": 0.2929,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0413,
                "key_pass": 1,
                "rating": 6.8071,
                "minutes": 89,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 6.8026,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 7,
                "progressive_carries": 0,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.5,
                "minutesPct": 97.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.34,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.241,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Buba Sangaré, Roy Revivo",
                "opponent_faced": "Buba Sangaré, Roy Revivo",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Buba Sangaré, Roy Revivo",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.241,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_override": 0.2152
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.06,
                  "after": 2.3
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.2928,
                  "after": 0.2152
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "expected_goals": 0.3859,
                "goal_rate": 0.2929,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0413,
                "key_pass": 1,
                "rating": 6.8071,
                "minutes": 89,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 6.8026,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 7,
                "progressive_carries": 0,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.5,
                "minutesPct": 97.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.34,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.241,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Buba Sangaré, Roy Revivo",
                "opponent_faced": "Buba Sangaré, Roy Revivo",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.2152,
                  "after": 0.3859
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 5, fifa_overall 74.0)",
              "stats": {
                "expected_goals": 0.3859,
                "goal_rate": 0.2929,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0413,
                "key_pass": 1,
                "rating": 6.8071,
                "minutes": 89,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 6.8026,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 7,
                "progressive_carries": 0,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.5,
                "minutesPct": 97.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.34,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.241,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Buba Sangaré, Roy Revivo",
                "opponent_faced": "Buba Sangaré, Roy Revivo",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 5,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3459,
                "fifa_rank": 2903.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "expected_goals": 0.3859,
                "goal_rate": 0.2929,
                "goals": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0413,
                "key_pass": 1,
                "rating": 6.8071,
                "minutes": 89,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 6.8026,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 7,
                "progressive_carries": 0,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.5,
                "minutesPct": 97.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.34,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.241,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Buba Sangaré, Roy Revivo",
                "opponent_faced": "Buba Sangaré, Roy Revivo",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.3924,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 1,
                "goal_probability": 0.3924,
                "scorer_weight": 4.1363,
                "squad_weight_total": 10.5411,
                "weight_share": 0.3924,
                "position_multiplier": 1.45
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "expected_goals": 0.3859,
                "goal_rate": 0.2929,
                "goals": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0413,
                "key_pass": 1,
                "rating": 6.8071,
                "minutes": 89,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 6.8026,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 7,
                "progressive_carries": 0,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.5,
                "minutesPct": 97.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.34,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.241,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Buba Sangaré, Roy Revivo",
                "opponent_faced": "Buba Sangaré, Roy Revivo",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.3924,
                "projected_assists": 0,
                "assist_probability": 0.071,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.071,
                "provider_weight": 0.6465,
                "squad_weight_total": 9.1036,
                "weight_share": 0.071,
                "position_multiplier": 0.85
              }
            }
          ]
        },
        "Bryan Zaragoza": {
          "player_id": 1084730,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 15,
          "height": 165,
          "market_value": 7500000,
          "stats": {
            "expected_goals": 0.2602,
            "goal_rate": 0.1531,
            "goals": 0,
            "shots_on_target": 1,
            "expected_assists": 0.0296,
            "key_pass": 1,
            "rating": 6.5491,
            "minutes": 15,
            "total_pass": 11,
            "accurate_pass": 6,
            "duels_won": 3,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_opp_half_passes": 10,
            "accurate_opp_half_passes": 5,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 12,
            "possession_lost": 5.9868,
            "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,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 1,
            "ball_carries": 8,
            "total_progression": 52,
            "progressive_carries": 2,
            "opponent_faced": "Kevin Lomónaco, Roy Revivo",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.2484,
            "projected_assists": 0,
            "assist_probability": 0.066,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16416323.0,
              "match_date": "2026-09-06",
              "home_team": "Espanyol",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 15,
                "rating": 7.0,
                "assists": 0,
                "expected_assists": 0.3444,
                "total_shots": 0,
                "total_pass": 11,
                "accurate_pass": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3033,
            "combined_rank_score": 1005.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 497.0,
            "sofascore_rating": 6.8611,
            "sofascore_appearances": 19.0,
            "fifa_rank": 1513.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "starter",
            "projected_match_rating": 6.5491,
            "source_file": "data/player_rankings.csv",
            "player_name": "Bryan Zaragoza",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Dumitru Celeadnic",
                  "ranking": 3028
                },
                {
                  "player_name": "Leo Kapilevich",
                  "ranking": 3029
                },
                {
                  "player_name": "Jens Petter Hauge",
                  "ranking": 3030
                },
                {
                  "player_name": "James Justin",
                  "ranking": 3031
                },
                {
                  "player_name": "Jens Hofer",
                  "ranking": 3032
                }
              ],
              "lower": [
                {
                  "player_name": "Wout Weghorst",
                  "ranking": 3034
                },
                {
                  "player_name": "Jake Azzopardi",
                  "ranking": 3035
                },
                {
                  "player_name": "Ki Hyun Lee",
                  "ranking": 3036
                },
                {
                  "player_name": "Jaume Cuéllar",
                  "ranking": 3037
                },
                {
                  "player_name": "Daniel Cordero",
                  "ranking": 3038
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.312,
          "history_matches": 1,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 0.9978,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (F_service) evaluated 1 historical appearances across 6 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1454,
                "goal_rate": 0.1534,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0297,
                "key_pass": 1,
                "rating": 6.5635,
                "minutes": 15,
                "total_pass": 11,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 5,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 6.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,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 52,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Sevilla",
                    "minutes": 15.0,
                    "is_starting": false,
                    "weight": 1.0,
                    "rating": 7.0
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 0.0,
                  "minutesPlayed": 15.0,
                  "touches": 12.0,
                  "dribbleValueNormalized": 0.14
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1453961580991745,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0703
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0234
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0209
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0164
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0066
                        }
                      ],
                      "others": -0.0395,
                      "total": 0.1454
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.15342634916305542,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.063
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0442
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0334
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0209
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0164
                        }
                      ],
                      "others": -0.0142,
                      "total": 0.1534
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.6012865304946899,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.046
                        },
                        {
                          "name": "topSpeed",
                          "contribution": 0.0366
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0369
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0246
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0159
                        }
                      ],
                      "others": -0.0504,
                      "total": 0.6013
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.02971058152616024,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0138
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0077
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0057
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0032
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0017
                        }
                      ],
                      "others": 0.0005,
                      "total": 0.0297
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.7814397811889648,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1627
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0498
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0419
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0291
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.027
                        }
                      ],
                      "others": -0.0002,
                      "total": 0.7814
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.563491344451904,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "totalProgression",
                          "contribution": -0.1156
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0963
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0728
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0461
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0426
                        }
                      ],
                      "others": 0.0307,
                      "total": 6.5635
                    }
                  }
                ],
                "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.1451,
                "goal_rate": 0.1531,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0296,
                "key_pass": 1,
                "rating": 6.5491,
                "minutes": 15,
                "total_pass": 11,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 5,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 5.9868,
                "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,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 52,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 7500000,
                "quality_factor": 0.4927,
                "boost_factor": 0.9978
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.1451,
                "goal_rate": 0.1531,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0296,
                "key_pass": 1,
                "rating": 6.5491,
                "minutes": 15,
                "total_pass": 11,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 5,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 5.9868,
                "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,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 52,
                "progressive_carries": 2
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "expected_goals": 0.1451,
                "goal_rate": 0.1531,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0296,
                "key_pass": 1,
                "rating": 6.5491,
                "minutes": 15,
                "total_pass": 11,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 5,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 5.9868,
                "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,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 52,
                "progressive_carries": 2,
                "opponent_faced": "Kevin Lomónaco, Roy Revivo",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Kevin Lomónaco, Roy Revivo",
                  "matchup_zone": "Shape fallback",
                  "xg_override": 0.1451
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "expected_goals": 0.2602,
                "goal_rate": 0.1531,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0296,
                "key_pass": 1,
                "rating": 6.5491,
                "minutes": 15,
                "total_pass": 11,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 5,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 5.9868,
                "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,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 52,
                "progressive_carries": 2,
                "opponent_faced": "Kevin Lomónaco, Roy Revivo",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1451,
                  "after": 0.2602
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 7, fifa_overall 77.0)",
              "stats": {
                "expected_goals": 0.2602,
                "goal_rate": 0.1531,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0296,
                "key_pass": 1,
                "rating": 6.5491,
                "minutes": 15,
                "total_pass": 11,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 5,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 5.9868,
                "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,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 52,
                "progressive_carries": 2,
                "opponent_faced": "Kevin Lomónaco, Roy Revivo",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 7,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3033,
                "fifa_rank": 1513.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 77.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "expected_goals": 0.2602,
                "goal_rate": 0.1531,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0296,
                "key_pass": 1,
                "rating": 6.5491,
                "minutes": 15,
                "total_pass": 11,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 5,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 5.9868,
                "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,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 52,
                "progressive_carries": 2,
                "opponent_faced": "Kevin Lomónaco, Roy Revivo",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.2484,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.2484,
                "scorer_weight": 2.618,
                "squad_weight_total": 10.5411,
                "weight_share": 0.2484,
                "position_multiplier": 1.45
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "expected_goals": 0.2602,
                "goal_rate": 0.1531,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0296,
                "key_pass": 1,
                "rating": 6.5491,
                "minutes": 15,
                "total_pass": 11,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 5,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 5.9868,
                "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,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 52,
                "progressive_carries": 2,
                "opponent_faced": "Kevin Lomónaco, Roy Revivo",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.2484,
                "projected_assists": 0,
                "assist_probability": 0.066,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.066,
                "provider_weight": 0.6011,
                "squad_weight_total": 9.1036,
                "weight_share": 0.066,
                "position_multiplier": 0.85
              }
            }
          ]
        }
      },
      "bench_players": {
        "Angel Fortuno": {
          "player_id": 1082734,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 1,
          "height": 183,
          "market_value": 290000,
          "stats": {
            "saves": 0,
            "goals_prevented": 0.022,
            "rating": 6.8,
            "minutes": 4,
            "total_pass": 1,
            "accurate_pass": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "touches": 2,
            "clearances": 0,
            "ball_recovery": 0,
            "high_claims": 0,
            "punches": 0.0146,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 0.1171,
            "duels_won": 0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 1,
            "bench_appearance_probability": 0.109,
            "bench_expected_minutes": 4.39,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.112,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "available_bench_not_projected_used",
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0,
            "assists": 0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 89.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 24,
            "combined_rank_score": 25.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 35.0,
            "sofascore_rating": 7.9,
            "sofascore_appearances": 1.0,
            "fifa_rank": 15.0,
            "fifa_overall": 89.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "projected_match_rating": 6.8,
            "source_file": "data/player_rankings.csv",
            "player_name": "Angel Fortuno",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Gustavo Henrique",
                  "ranking": 19
                },
                {
                  "player_name": "Alejandro Grimaldo",
                  "ranking": 20
                },
                {
                  "player_name": "Marc Bartra",
                  "ranking": 21
                },
                {
                  "player_name": "Khvicha Kvaratskhelia",
                  "ranking": 22
                },
                {
                  "player_name": "Danijel Petković",
                  "ranking": 23
                }
              ],
              "lower": [
                {
                  "player_name": "Hyun-woo Cho",
                  "ranking": 25
                },
                {
                  "player_name": "Joshua Kimmich",
                  "ranking": 26
                },
                {
                  "player_name": "Ljupche Doriev",
                  "ranking": 27
                },
                {
                  "player_name": "Rafael Romo",
                  "ranking": 28
                },
                {
                  "player_name": "Michael Olise",
                  "ranking": 29
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "G_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 4.392222187561249,
            "bench_appearance_prob": 0.10873737216187492,
            "market_value_adjustment": 0.4374,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€290,000) scaled to 4.4 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position G (quality 0.44)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.45,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 0,
                "punches": 0.3,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.4,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16
              },
              "params": {
                "market_value_eur": 290000,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 4.4 expected minutes (appearance prob 0.11)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0146,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1171,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "expected_minutes": 4.39,
                "appearance_probability": 0.109
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0146,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1171,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 18, fifa_overall 89.0)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0146,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1171,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.112,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "available_bench_not_projected_used",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 89.0
              },
              "params": {
                "match_squad_rank": 18,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 24,
                "fifa_rank": 15.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 89.0
              }
            }
          ]
        },
        "Clemens Riedel": {
          "player_id": 1129360,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 5,
          "height": 186,
          "market_value": 3900000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "rating": 6.6245,
            "minutes": 14,
            "total_pass": 6,
            "accurate_pass": 5,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 1,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 6,
            "possession_lost": 1.0919,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0015,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 2,
            "total_progression": 8,
            "progressive_carries": 0,
            "key_pass": 0,
            "offsides": 0,
            "yellowCards": 0.5882,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 100.0,
            "shotConversion": 0.0,
            "minutesPct": 57.4,
            "pointsPerMatch": 1.5,
            "netGoalDifferencePer90": 1.74,
            "bench_appearance_probability": 0.218,
            "bench_expected_minutes": 13.62,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.112,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 70.0
          },
          "latest_10_games": [
            {
              "match_id": 16416323.0,
              "match_date": "2026-09-06",
              "home_team": "Espanyol",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 16,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.0023,
                "total_shots": 0,
                "total_pass": 11,
                "accurate_pass": 10,
                "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": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 66,
                "rating": 6.0,
                "assists": 0,
                "expected_goals": 0.0197,
                "expected_assists": 0.0031,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 26,
                "accurate_pass": 22,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421053.0,
              "match_date": "2026-08-16",
              "home_team": "Espanyol",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0127,
                "total_shots": 0,
                "total_pass": 74,
                "accurate_pass": 60,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 6,
                "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": 5074,
            "combined_rank_score": 3259.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 591.0,
            "sofascore_rating": 6.79,
            "sofascore_appearances": 20.0,
            "fifa_rank": 5928.0,
            "fifa_overall": 70.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "projected_match_rating": 6.6245,
            "source_file": "data/player_rankings.csv",
            "player_name": "Clemens Riedel",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Luis Sandoval",
                  "ranking": 5069
                },
                {
                  "player_name": "Guido Mainero",
                  "ranking": 5070
                },
                {
                  "player_name": "Montrell Culbreath",
                  "ranking": 5071
                },
                {
                  "player_name": "Juma Bah",
                  "ranking": 5072
                },
                {
                  "player_name": "Hiroki Sakai",
                  "ranking": 5073
                }
              ],
              "lower": [
                {
                  "player_name": "Martín Sarrafiore",
                  "ranking": 5075
                },
                {
                  "player_name": "Juan Manuel Cuesta",
                  "ranking": 5076
                },
                {
                  "player_name": "Sebastián Guzmán",
                  "ranking": 5077
                },
                {
                  "player_name": "Anthony Patterson",
                  "ranking": 5078
                },
                {
                  "player_name": "Miguel Rubio",
                  "ranking": 5079
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.454,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.454,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 13.61644058998921,
            "bench_appearance_prob": 0.218,
            "market_value_adjustment": 0.9846,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "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.1133
            },
            "rationale": "Bench projection scaled from XGBoost D_service (3 historical appearances) to 13.6 expected mins (appearance prob 0.22); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 1,
                "aerial_won": 1,
                "rating": 6.7282,
                "minutes": 57,
                "total_pass": 37,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 0,
                "total_own_half_passes": 25,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 43,
                "possession_lost": 7.33,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.01,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 54,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Sevilla",
                    "minutes": 16.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Real Madrid",
                    "minutes": 66.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "accuratePass": 28.0078,
                  "touches_p90": 67.056,
                  "possessionLostCtrl": 6.6424,
                  "totalClearance": 3.0068,
                  "aerialWon": 1.173
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.6583576798439026,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2236
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0229
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0145
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0131
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0078
                        }
                      ],
                      "others": -0.0453,
                      "total": 0.6584
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.046378254890442,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0874
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0724
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0637
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.048
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0364
                        }
                      ],
                      "others": -0.001,
                      "total": 1.0464
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.4488416910171509,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.157
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0993
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0567
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0402
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.0186
                        }
                      ],
                      "others": -0.0469,
                      "total": 0.4488
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.2896654605865479,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -1.7937
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0679
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.0476
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0426
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.033
                        }
                      ],
                      "others": -0.1947,
                      "total": 1.2897
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.7647899985313416,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3347
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0416
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0298
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0238
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0144
                        }
                      ],
                      "others": -0.033,
                      "total": 0.7648
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.7282280921936035,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0702
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0282
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0213
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0206
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": 0.0204
                        }
                      ],
                      "others": 0.0024,
                      "total": 6.7282
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9846, quality 0.449)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 1,
                "aerial_won": 1,
                "rating": 6.6245,
                "minutes": 56,
                "total_pass": 36,
                "accurate_pass": 30,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 0,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 43,
                "possession_lost": 7.217,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0098,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 53,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 3900000,
                "quality_factor": 0.4486,
                "boost_factor": 0.9846
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0460)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 1,
                "aerial_won": 1,
                "rating": 6.6245,
                "minutes": 56,
                "total_pass": 36,
                "accurate_pass": 30,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 0,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 43,
                "possession_lost": 7.217,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0098,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 53,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.5882,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 57.4,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 1.74
              },
              "params": {
                "blend_weight": 0.046,
                "history_matches": 3,
                "prior_reliability": 0.1133,
                "competition": "La Liga",
                "squad": "Espanyol"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.1625
                },
                {
                  "stat": "wonTackle",
                  "before": 0.4419,
                  "after": 0.4757
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.6482,
                  "after": 0.6184
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0267
                },
                {
                  "stat": "totalShots",
                  "before": 0.3249,
                  "after": 0.3366
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 13.6 expected minutes (appearance prob 0.22)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.6245,
                "minutes": 14,
                "total_pass": 6,
                "accurate_pass": 5,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.0919,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0015,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 8,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.5882,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 57.4,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 1.74,
                "bench_appearance_probability": 0.218,
                "bench_expected_minutes": 13.62
              },
              "params": {
                "expected_minutes": 13.62,
                "appearance_probability": 0.218
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.6245,
                "minutes": 14,
                "total_pass": 6,
                "accurate_pass": 5,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.0919,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0015,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 8,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.5882,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 57.4,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 1.74,
                "bench_appearance_probability": 0.218,
                "bench_expected_minutes": 13.62
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 13, fifa_overall 70.0)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.6245,
                "minutes": 14,
                "total_pass": 6,
                "accurate_pass": 5,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.0919,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0015,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 8,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.5882,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 57.4,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 1.74,
                "bench_appearance_probability": 0.218,
                "bench_expected_minutes": 13.62,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.112,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 70.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 5074,
                "fifa_rank": 5928.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 70.0
              }
            }
          ]
        },
        "Unai Núñez": {
          "player_id": 892521,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 14,
          "height": 186,
          "market_value": 3300000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "rating": 6.5963,
            "minutes": 14,
            "total_pass": 8,
            "accurate_pass": 7,
            "duels_won": 0,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 6,
            "accurate_own_half_passes": 5,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 10,
            "possession_lost": 1.3718,
            "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,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0148,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 13,
            "progressive_carries": 0,
            "key_pass": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 100.0,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.33,
            "bench_appearance_probability": 0.217,
            "bench_expected_minutes": 13.59,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.112,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 75.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416327.0,
              "match_date": "2026-09-12 14:15: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": "Osasuna",
              "away_team": "Espanyol",
              "home_score_current": 0.0,
              "away_score_current": 2.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Espanyol",
              "opponent": "Osasuna",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416323.0,
              "match_date": "2026-09-06",
              "home_team": "Espanyol",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 86,
                "rating": 6.1,
                "assists": 0,
                "expected_goals": 0.0238,
                "expected_assists": 0.0192,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 63,
                "accurate_pass": 45,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assists": 0,
                "expected_assists": 0.3866,
                "total_shots": 0,
                "total_pass": 54,
                "accurate_pass": 42,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 7,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.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": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0027,
                "total_shots": 0,
                "total_pass": 39,
                "accurate_pass": 37,
                "clearances": 5,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421053.0,
              "match_date": "2026-08-16",
              "home_team": "Espanyol",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 7.5,
                "assists": 0,
                "expected_assists": 0.0042,
                "total_shots": 0,
                "total_pass": 70,
                "accurate_pass": 65,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 6,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3298,
            "combined_rank_score": 1247.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 91.0,
            "sofascore_rating": 7.5,
            "sofascore_appearances": 1.0,
            "fifa_rank": 2403.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "projected_match_rating": 6.5963,
            "source_file": "data/player_rankings.csv",
            "player_name": "Unai Núñez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Nobel Mendy",
                  "ranking": 3293
                },
                {
                  "player_name": "Michael Zetterer",
                  "ranking": 3294
                },
                {
                  "player_name": "Lukas Nmecha",
                  "ranking": 3295
                },
                {
                  "player_name": "Ruslan Malinovskyi",
                  "ranking": 3296
                },
                {
                  "player_name": "Ibrahim Mbaye",
                  "ranking": 3297
                }
              ],
              "lower": [
                {
                  "player_name": "Rodrigo Muniz",
                  "ranking": 3299
                },
                {
                  "player_name": "Raíllo",
                  "ranking": 3300
                },
                {
                  "player_name": "Gelson Martins",
                  "ranking": 3301
                },
                {
                  "player_name": "Abel Bretones",
                  "ranking": 3302
                },
                {
                  "player_name": "Chiquinho",
                  "ranking": 3303
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.53,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.53,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 13.586980405874904,
            "bench_appearance_prob": 0.217,
            "market_value_adjustment": 0.9823,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "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 (4 historical appearances) to 13.6 expected mins (appearance prob 0.22); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.7148,
                "minutes": 89,
                "total_pass": 56,
                "accurate_pass": 47,
                "duels_won": 3,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "total_own_half_passes": 38,
                "accurate_own_half_passes": 34,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 13,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 68,
                "possession_lost": 9.25,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 20,
                "total_progression": 88,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Sevilla",
                    "minutes": 86.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 7.5
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "accuratePass": 46.2403,
                  "touches_p90": 68.9571,
                  "possessionLostCtrl": 10.2665,
                  "totalClearance": 5.7262,
                  "aerialWon": 1.1927
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.7751639485359192,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.201
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0214
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0218
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0182
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.013
                        }
                      ],
                      "others": -0.009,
                      "total": 0.7752
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.1608831882476807,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "duelLost",
                          "contribution": -0.0741
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0424
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0345
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0334
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0296
                        }
                      ],
                      "others": -0.0396,
                      "total": 1.1609
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.7249463796615601,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1391
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0821
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0419
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0321
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.0292
                        }
                      ],
                      "others": 0.0338,
                      "total": 0.7249
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.0843052864074707,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -1.701
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.4171
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1706
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.1379
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0991
                        }
                      ],
                      "others": -0.1668,
                      "total": 2.0843
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.8644932508468628,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.357
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0488
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0311
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0195
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.019
                        }
                      ],
                      "others": -0.0024,
                      "total": 0.8645
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.714794635772705,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0355
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0256
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": 0.0204
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0198
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": -0.0154
                        }
                      ],
                      "others": 0.0372,
                      "total": 6.7148
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9823, quality 0.441)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.5963,
                "minutes": 87,
                "total_pass": 56,
                "accurate_pass": 46,
                "duels_won": 3,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "total_own_half_passes": 37,
                "accurate_own_half_passes": 34,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 13,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 67,
                "possession_lost": 9.0867,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0982,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 19,
                "total_progression": 86,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 3300000,
                "quality_factor": 0.4412,
                "boost_factor": 0.9823
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0722)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.5963,
                "minutes": 87,
                "total_pass": 56,
                "accurate_pass": 46,
                "duels_won": 3,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "total_own_half_passes": 37,
                "accurate_own_half_passes": 34,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 13,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 67,
                "possession_lost": 9.0867,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0982,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 19,
                "total_progression": 86,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33
              },
              "params": {
                "blend_weight": 0.0722,
                "history_matches": 4,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Espanyol"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0722
                },
                {
                  "stat": "totalShots",
                  "before": 0.2456,
                  "after": 0.2279
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.7615,
                  "after": 0.7547
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 13.6 expected minutes (appearance prob 0.22)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.5963,
                "minutes": 14,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 0,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 10,
                "possession_lost": 1.3718,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0148,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 13,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33,
                "bench_appearance_probability": 0.217,
                "bench_expected_minutes": 13.59
              },
              "params": {
                "expected_minutes": 13.59,
                "appearance_probability": 0.217
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.5963,
                "minutes": 14,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 0,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 10,
                "possession_lost": 1.3718,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0148,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 13,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33,
                "bench_appearance_probability": 0.217,
                "bench_expected_minutes": 13.59
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 14, fifa_overall 75.0)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.5963,
                "minutes": 14,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 0,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 10,
                "possession_lost": 1.3718,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0148,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 13,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.33,
                "bench_appearance_probability": 0.217,
                "bench_expected_minutes": 13.59,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.112,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 14,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3298,
                "fifa_rank": 2403.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 75.0
              }
            }
          ]
        },
        "Edu Expósito": {
          "player_id": 877262,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 8,
          "height": 175,
          "market_value": 4500000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.023,
            "assists": 0,
            "expected_goals": 0.0227,
            "rating": 6.7841,
            "minutes": 22,
            "total_pass": 11,
            "accurate_pass": 10,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 5,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 5,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 16,
            "possession_lost": 3.2028,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 4,
            "total_progression": 12,
            "progressive_carries": 0,
            "total_shots": 1,
            "offsides": 0,
            "yellowCards": 0.3704,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 11.1,
            "shotConversion": 0.0,
            "minutesPct": 89.3,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.75,
            "bench_appearance_probability": 0.308,
            "bench_expected_minutes": 22.05,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.112,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416327.0,
              "match_date": "2026-09-12 14:15: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": "Osasuna",
              "away_team": "Espanyol",
              "home_score_current": 0.0,
              "away_score_current": 2.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Espanyol",
              "opponent": "Osasuna",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416323.0,
              "match_date": "2026-09-06",
              "home_team": "Espanyol",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 90,
                "rating": 7.8,
                "assists": 0,
                "expected_goals": 0.141,
                "expected_assists": 0.6745,
                "total_shots": 1,
                "total_pass": 49,
                "accurate_pass": 39,
                "key_pass": 6,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 70,
                "rating": 6.6,
                "assists": 0,
                "expected_goals": 0.1531,
                "expected_assists": 0.036,
                "total_shots": 3,
                "shots_off_target": 3,
                "total_pass": 39,
                "accurate_pass": 32,
                "tackles": 2,
                "tackles_won": 1,
                "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": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 88,
                "rating": 7.0,
                "assists": 0,
                "expected_goals": 0.0563,
                "expected_assists": 0.0376,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 47,
                "accurate_pass": 40,
                "tackles": 4,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 7,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421053.0,
              "match_date": "2026-08-16",
              "home_team": "Espanyol",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 86,
                "rating": 6.9,
                "assists": 0,
                "expected_goals": 0.1101,
                "expected_assists": 0.0395,
                "total_shots": 3,
                "shots_off_target": 1,
                "total_pass": 51,
                "accurate_pass": 47,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 4,
                "ball_recovery": 8
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 2628,
            "combined_rank_score": 921.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 289.0,
            "sofascore_rating": 7.0556,
            "sofascore_appearances": 36.0,
            "fifa_rank": 1553.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "substitute",
            "projected_match_rating": 6.7841,
            "source_file": "data/player_rankings.csv",
            "player_name": "Edu Expósito",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Francisco Jose Pozzo",
                  "ranking": 2623
                },
                {
                  "player_name": "Augustine Chidi Kwem",
                  "ranking": 2624
                },
                {
                  "player_name": "Otabek Ahadov",
                  "ranking": 2625
                },
                {
                  "player_name": "Rodrigo Sandoval",
                  "ranking": 2626
                },
                {
                  "player_name": "Ruben Loftus-Cheek",
                  "ranking": 2627
                }
              ],
              "lower": [
                {
                  "player_name": "Lucas Boyé",
                  "ranking": 2629
                },
                {
                  "player_name": "Duván Zapata",
                  "ranking": 2630
                },
                {
                  "player_name": "Tosin Adarabioyo",
                  "ranking": 2631
                },
                {
                  "player_name": "Selton Sanchez",
                  "ranking": 2632
                },
                {
                  "player_name": "Jung-Min Kim",
                  "ranking": 2633
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.527,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.527,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 22.045815006556694,
            "bench_appearance_prob": 0.308,
            "market_value_adjustment": 0.9868,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "sub_appearances": 0.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.18
            },
            "rationale": "Bench projection scaled from XGBoost M_service (4 historical appearances) to 22.0 expected mins (appearance prob 0.31); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0952,
                "assists": 0,
                "expected_goals": 0.0938,
                "rating": 6.8748,
                "minutes": 84,
                "total_pass": 46,
                "accurate_pass": 40,
                "duels_won": 5,
                "total_long_balls": 4,
                "accurate_long_balls": 1,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 18,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 67,
                "possession_lost": 13.25,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 51,
                "progressive_carries": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Sevilla",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Real Sociedad",
                    "minutes": 70.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Real Madrid",
                    "minutes": 88.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Levante UD",
                    "minutes": 86.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 6.9
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "ballRecovery_p90": 6.569,
                  "ballRecovery": 5.7908,
                  "intensity_index": 5.3379,
                  "expectedAssists": 0.2374,
                  "kilometersCovered": 8.8801
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.9902300238609314,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1127
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0782
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0504
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0374
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0299
                        }
                      ],
                      "others": -0.0621,
                      "total": 0.9902
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.09521377086639404,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0139
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0136
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0052
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0047
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0046
                        }
                      ],
                      "others": -0.0031,
                      "total": 0.0952
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07813992351293564,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0055
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0035
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0036
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0034
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0032
                        }
                      ],
                      "others": -0.0125,
                      "total": 0.0781
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.09384819865226746,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0304
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0181
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0087
                        },
                        {
                          "name": "cross_accuracy",
                          "contribution": -0.0074
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0071
                        }
                      ],
                      "others": -0.0182,
                      "total": 0.0938
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.874823093414307,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.074
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0282
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0179
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0173
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0148
                        }
                      ],
                      "others": 0.0388,
                      "total": 6.8748
                    }
                  }
                ],
                "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.9868, quality 0.456)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.094,
                "assists": 0,
                "expected_goals": 0.0926,
                "rating": 6.7841,
                "minutes": 82,
                "total_pass": 46,
                "accurate_pass": 39,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 1,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 18,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 66,
                "possession_lost": 13.0752,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 51,
                "progressive_carries": 1
              },
              "params": {
                "market_value_eur": 4500000,
                "quality_factor": 0.456,
                "boost_factor": 0.9868
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0650)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.094,
                "assists": 0,
                "expected_goals": 0.0926,
                "rating": 6.7841,
                "minutes": 82,
                "total_pass": 46,
                "accurate_pass": 39,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 1,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 18,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 66,
                "possession_lost": 13.0752,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 51,
                "progressive_carries": 1,
                "total_shots": 3,
                "offsides": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 11.1,
                "shotConversion": 0.0,
                "minutesPct": 89.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.75
              },
              "params": {
                "blend_weight": 0.065,
                "history_matches": 4,
                "prior_reliability": 0.18,
                "competition": "La Liga",
                "squad": "Espanyol"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0963
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0722
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "goalAssist",
                  "before": 0.0771,
                  "after": 0.0721
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.0 expected minutes (appearance prob 0.31)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.023,
                "assists": 0,
                "expected_goals": 0.0227,
                "rating": 6.7841,
                "minutes": 22,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.2028,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 11.1,
                "shotConversion": 0.0,
                "minutesPct": 89.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.75,
                "bench_appearance_probability": 0.308,
                "bench_expected_minutes": 22.05
              },
              "params": {
                "expected_minutes": 22.05,
                "appearance_probability": 0.308
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.023,
                "assists": 0,
                "expected_goals": 0.0227,
                "rating": 6.7841,
                "minutes": 22,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.2028,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 11.1,
                "shotConversion": 0.0,
                "minutesPct": 89.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.75,
                "bench_appearance_probability": 0.308,
                "bench_expected_minutes": 22.05
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 11, fifa_overall 77.0)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.023,
                "assists": 0,
                "expected_goals": 0.0227,
                "rating": 6.7841,
                "minutes": 22,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.2028,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 11.1,
                "shotConversion": 0.0,
                "minutesPct": 89.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.75,
                "bench_appearance_probability": 0.308,
                "bench_expected_minutes": 22.05,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.112,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2628,
                "fifa_rank": 1553.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 77.0
              }
            }
          ]
        },
        "Álex Calatrava": {
          "player_id": 1136863,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 22,
          "height": 175,
          "market_value": 3900000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0114,
            "assists": 0,
            "expected_goals": 0.0255,
            "rating": 6.7413,
            "minutes": 22,
            "total_pass": 6,
            "accurate_pass": 4,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 2,
            "accurate_own_half_passes": 1,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 9,
            "possession_lost": 2.6494,
            "dispossessed": 1.9692,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0059,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 8,
            "progressive_carries": 0,
            "total_shots": 1,
            "offsides": 0,
            "yellowCards": 0.8,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 66.7,
            "shotConversion": 0.17,
            "minutesPct": 83.7,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.4,
            "bench_appearance_probability": 0.308,
            "bench_expected_minutes": 22.02,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.112,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 87.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416327.0,
              "match_date": "2026-09-12 14:15: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": "Osasuna",
              "away_team": "Espanyol",
              "home_score_current": 0.0,
              "away_score_current": 2.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Espanyol",
              "opponent": "Osasuna",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416323.0,
              "match_date": "2026-09-06",
              "home_team": "Espanyol",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 59,
                "rating": 6.7,
                "assists": 0,
                "expected_goals": 0.1652,
                "expected_assists": 0.0327,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 14,
                "accurate_pass": 8,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assists": 0,
                "expected_goals": 0.0747,
                "expected_assists": 0.0638,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 31,
                "accurate_pass": 22,
                "tackles": 4,
                "tackles_won": 2,
                "clearances": 2,
                "duels_won": 6,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 66,
                "rating": 7.3,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.3589,
                "expected_assists": 0.0187,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 23,
                "accurate_pass": 15,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421053.0,
              "match_date": "2026-08-16",
              "home_team": "Espanyol",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 72,
                "rating": 7.2,
                "assists": 0,
                "expected_goals": 0.1716,
                "expected_assists": 0.0932,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 25,
                "accurate_pass": 20,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 286,
            "combined_rank_score": 131.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 199.0,
            "sofascore_rating": 7.2,
            "sofascore_appearances": 1.0,
            "fifa_rank": 63.0,
            "fifa_overall": 87.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "projected_match_rating": 6.7413,
            "source_file": "data/player_rankings.csv",
            "player_name": "Álex Calatrava",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Islom Anvarov",
                  "ranking": 281
                },
                {
                  "player_name": "Jasurbek Ubaydullaev",
                  "ranking": 282
                },
                {
                  "player_name": "Dilan Varas",
                  "ranking": 283
                },
                {
                  "player_name": "Shon Goldberg",
                  "ranking": 284
                },
                {
                  "player_name": "Tomas Švedkauskas",
                  "ranking": 285
                }
              ],
              "lower": [
                {
                  "player_name": "Josue Caicedo",
                  "ranking": 287
                },
                {
                  "player_name": "Jamalidin Hodjaniyazov",
                  "ranking": 288
                },
                {
                  "player_name": "Marko Stanojević",
                  "ranking": 289
                },
                {
                  "player_name": "Mihail Stefan",
                  "ranking": 290
                },
                {
                  "player_name": "Nicolò Barella",
                  "ranking": 291
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.525,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.525,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 22.016440589989212,
            "bench_appearance_prob": 0.308,
            "market_value_adjustment": 0.9846,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "sub_appearances": 0.0,
              "goals_per90": 0.4,
              "assists_per90": 0.0,
              "prior_reliability": 0.1667
            },
            "rationale": "Bench projection scaled from XGBoost M_service (4 historical appearances) to 22.0 expected mins (appearance prob 0.31); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0471,
                "assists": 0,
                "expected_goals": 0.1058,
                "rating": 6.8468,
                "minutes": 72,
                "total_pass": 23,
                "accurate_pass": 16,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 12,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 11.0,
                "dispossessed": 2.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 2,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 32,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Sevilla",
                    "minutes": 59.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Real Madrid",
                    "minutes": 66.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Levante UD",
                    "minutes": 72.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 7.2
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "ballRecovery_p90": 3.1928,
                  "ballRecovery": 2.5675,
                  "intensity_index": 5.9735,
                  "expectedAssists": 0.0495,
                  "kilometersCovered": 8.2898
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.8302920460700989,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1551
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0528
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0392
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0381
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0337
                        }
                      ],
                      "others": -0.0691,
                      "total": 0.8303
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.04710981994867325,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0203
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0086
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0047
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0031
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0026
                        }
                      ],
                      "others": -0.0065,
                      "total": 0.0471
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07213517278432846,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0069
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0063
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0043
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0024
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0024
                        }
                      ],
                      "others": -0.006,
                      "total": 0.0721
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.10579688847064972,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0268
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0242
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0151
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0045
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0042
                        }
                      ],
                      "others": 0.0183,
                      "total": 0.1058
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.846843242645264,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0639
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.022
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0167
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0163
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0156
                        }
                      ],
                      "others": 0.0083,
                      "total": 6.8468
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9846, quality 0.449)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0464,
                "assists": 0,
                "expected_goals": 0.1042,
                "rating": 6.7413,
                "minutes": 71,
                "total_pass": 23,
                "accurate_pass": 16,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 35,
                "possession_lost": 10.8304,
                "dispossessed": 1.9692,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 32,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 3900000,
                "quality_factor": 0.4486,
                "boost_factor": 0.9846
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0602)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0464,
                "assists": 0,
                "expected_goals": 0.1042,
                "rating": 6.7413,
                "minutes": 71,
                "total_pass": 23,
                "accurate_pass": 16,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 35,
                "possession_lost": 10.8304,
                "dispossessed": 1.9692,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 2,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 32,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.8,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 66.7,
                "shotConversion": 0.17,
                "minutesPct": 83.7,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.4
              },
              "params": {
                "blend_weight": 0.0602,
                "history_matches": 4,
                "prior_reliability": 0.1667,
                "competition": "La Liga",
                "squad": "Espanyol"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.1445
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0957
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0482
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0482
                },
                {
                  "stat": "wonTackle",
                  "before": 1.4769,
                  "after": 1.5084
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "goals",
                  "before": 0.0,
                  "after": 0.0241
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.0 expected minutes (appearance prob 0.31)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0114,
                "assists": 0,
                "expected_goals": 0.0255,
                "rating": 6.7413,
                "minutes": 22,
                "total_pass": 6,
                "accurate_pass": 4,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 1,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.6494,
                "dispossessed": 1.9692,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0059,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 8,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.8,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 66.7,
                "shotConversion": 0.17,
                "minutesPct": 83.7,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.4,
                "bench_appearance_probability": 0.308,
                "bench_expected_minutes": 22.02
              },
              "params": {
                "expected_minutes": 22.02,
                "appearance_probability": 0.308
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0114,
                "assists": 0,
                "expected_goals": 0.0255,
                "rating": 6.7413,
                "minutes": 22,
                "total_pass": 6,
                "accurate_pass": 4,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 1,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.6494,
                "dispossessed": 1.9692,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0059,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 8,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.8,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 66.7,
                "shotConversion": 0.17,
                "minutesPct": 83.7,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.4,
                "bench_appearance_probability": 0.308,
                "bench_expected_minutes": 22.02
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 12, fifa_overall 87.0)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0114,
                "assists": 0,
                "expected_goals": 0.0255,
                "rating": 6.7413,
                "minutes": 22,
                "total_pass": 6,
                "accurate_pass": 4,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 1,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.6494,
                "dispossessed": 1.9692,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0059,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 8,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.8,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 66.7,
                "shotConversion": 0.17,
                "minutesPct": 83.7,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.4,
                "bench_appearance_probability": 0.308,
                "bench_expected_minutes": 22.02,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.112,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 87.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 286,
                "fifa_rank": 63.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 87.0
              }
            }
          ]
        },
        "Marcos Fernández": {
          "player_id": 1183542,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 18,
          "height": 176,
          "market_value": 1500000,
          "stats": {
            "expected_goals": 0.0592,
            "goal_rate": 0.0408,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0038,
            "key_pass": 0,
            "rating": 6.0853,
            "minutes": 19,
            "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.0,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "total_shots": 1,
            "yellowCards": 3.3333,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 9.6,
            "pointsPerMatch": 1.5,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.719,
            "bench_expected_minutes": 18.53,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.112,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 16416323.0,
              "match_date": "2026-09-06",
              "home_team": "Espanyol",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 31,
                "rating": 7.0,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.5788,
                "expected_assists": 0.0002,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 4,
                "accurate_pass": 2,
                "tackles": 1,
                "aerial_won": 2,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 20,
                "rating": 6.3,
                "assists": 0,
                "expected_goals": 0.0962,
                "expected_assists": 0.0047,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 4,
                "accurate_pass": 4,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421053.0,
              "match_date": "2026-08-16",
              "home_team": "Espanyol",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 9,
                "rating": 6.4,
                "assists": 0,
                "expected_goals": 0.0961,
                "total_shots": 1,
                "shots_off_target": 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": 4543,
            "combined_rank_score": 2601.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 959.0,
            "sofascore_rating": 6.4,
            "sofascore_appearances": 1.0,
            "fifa_rank": 4244.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "substitute",
            "projected_match_rating": 6.0853,
            "source_file": "data/player_rankings.csv",
            "player_name": "Marcos Fernández",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Federico Carrizo",
                  "ranking": 4538
                },
                {
                  "player_name": "Ibrahim Diabaté",
                  "ranking": 4539
                },
                {
                  "player_name": "Chuba Akpom",
                  "ranking": 4540
                },
                {
                  "player_name": "Dani Rodríguez",
                  "ranking": 4541
                },
                {
                  "player_name": "Alex Valera",
                  "ranking": 4542
                }
              ],
              "lower": [
                {
                  "player_name": "Ximo Navarro",
                  "ranking": 4544
                },
                {
                  "player_name": "João Virgínia",
                  "ranking": 4545
                },
                {
                  "player_name": "Dimitri Foulquier",
                  "ranking": 4546
                },
                {
                  "player_name": "Nathan Patterson",
                  "ranking": 4547
                },
                {
                  "player_name": "Isaac Price",
                  "ranking": 4548
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.441,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.441,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 18.53,
            "bench_appearance_prob": 0.719,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 13.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.02
            },
            "rationale": "Bench projection scaled from XGBoost F_service (3 historical appearances) to 18.5 expected mins (appearance prob 0.72); FBref playing time empirical prior: 2.0 sub appearances, 13.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1632,
                "goal_rate": 0.2035,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.019,
                "key_pass": 0,
                "rating": 6.2017,
                "minutes": 20,
                "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": 7,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 2,
                "total_progression": 0,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Sevilla",
                    "minutes": 31.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Real Sociedad",
                    "minutes": 20.0,
                    "is_starting": false,
                    "weight": 0.3304,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Levante UD",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.7775,
                  "totalShots": 1.7775,
                  "minutesPlayed": 21.1866,
                  "touches": 7.2585,
                  "dribbleValueNormalized": -0.2686
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.16322147846221924,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0561
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0362
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0251
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0194
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0125
                        }
                      ],
                      "others": -0.0522,
                      "total": 0.1632
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.20346875488758087,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.053
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0431
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.034
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0175
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0168
                        }
                      ],
                      "others": -0.0462,
                      "total": 0.2035
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5663154721260071,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0306
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0281
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0212
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0169
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0111
                        }
                      ],
                      "others": -0.0537,
                      "total": 0.5663
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.018951525911688805,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0112
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0063
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0048
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0042
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0032
                        }
                      ],
                      "others": -0.0092,
                      "total": 0.019
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.37726765871047974,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1855
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0291
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0279
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0238
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0194
                        }
                      ],
                      "others": -0.0781,
                      "total": 0.3773
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.201693058013916,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.2514
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0918
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0596
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0541
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0478
                        }
                      ],
                      "others": -0.0072,
                      "total": 6.2017
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9812, quality 0.437)",
              "stats": {
                "expected_goals": 0.1602,
                "goal_rate": 0.1996,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0186,
                "key_pass": 0,
                "rating": 6.0853,
                "minutes": 20,
                "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": 7,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 2,
                "total_progression": 0,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 1500000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0081)",
              "stats": {
                "expected_goals": 0.1602,
                "goal_rate": 0.198,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0186,
                "key_pass": 0,
                "rating": 6.0853,
                "minutes": 20,
                "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": 7,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 2,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 7,
                "yellowCards": 3.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 9.6,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0081,
                "history_matches": 3,
                "prior_reliability": 0.02,
                "competition": "La Liga",
                "squad": "Espanyol"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0271
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 18.5 expected minutes (appearance prob 0.72)",
              "stats": {
                "expected_goals": 0.033,
                "goal_rate": 0.0408,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0038,
                "key_pass": 0,
                "rating": 6.0853,
                "minutes": 19,
                "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.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "yellowCards": 3.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 9.6,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.719,
                "bench_expected_minutes": 18.53
              },
              "params": {
                "expected_minutes": 18.53,
                "appearance_probability": 0.719
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.033,
                "goal_rate": 0.0408,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0038,
                "key_pass": 0,
                "rating": 6.0853,
                "minutes": 19,
                "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.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "yellowCards": 3.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 9.6,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.719,
                "bench_expected_minutes": 18.53
              },
              "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.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "expected_goals": 0.0592,
                "goal_rate": 0.0408,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0038,
                "key_pass": 0,
                "rating": 6.0853,
                "minutes": 19,
                "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.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "yellowCards": 3.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 9.6,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.719,
                "bench_expected_minutes": 18.53,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.112,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.033,
                  "after": 0.0592
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 15, fifa_overall 72.0)",
              "stats": {
                "expected_goals": 0.0592,
                "goal_rate": 0.0408,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0038,
                "key_pass": 0,
                "rating": 6.0853,
                "minutes": 19,
                "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.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "yellowCards": 3.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 9.6,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.719,
                "bench_expected_minutes": 18.53,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.112,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4543,
                "fifa_rank": 4244.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 72.0
              }
            }
          ]
        },
        "Kike García": {
          "player_id": 84972,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 19,
          "height": 186,
          "market_value": 725000,
          "stats": {
            "expected_goals": 0.1139,
            "goal_rate": 0.0393,
            "goals": 0,
            "total_shots": 1,
            "shots_on_target": 0,
            "expected_assists": 0.0228,
            "duels_won": 1,
            "aerial_won": 0,
            "rating": 6.9,
            "minutes": 25,
            "total_pass": 8,
            "accurate_pass": 6,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 12,
            "possession_lost": 2.2763,
            "dispossessed": 1.0,
            "duels_lost": 1,
            "aerial_lost": 1,
            "total_contest": 1,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "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.0481,
            "offsides": 1,
            "ball_carries": 5,
            "total_progression": 13,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.112,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 75.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 3587,
            "combined_rank_score": 1553.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 712.0,
            "sofascore_rating": 6.6892,
            "sofascore_appearances": 37.0,
            "fifa_rank": 2395.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "projected_match_rating": 6.9,
            "source_file": "data/player_rankings.csv",
            "player_name": "Kike García",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Gayà",
                  "ranking": 3582
                },
                {
                  "player_name": "Alisson Santos",
                  "ranking": 3583
                },
                {
                  "player_name": "Dakonam Djené",
                  "ranking": 3584
                },
                {
                  "player_name": "Álvaro Ferllo",
                  "ranking": 3585
                },
                {
                  "player_name": "Sivera",
                  "ranking": 3586
                }
              ],
              "lower": [
                {
                  "player_name": "Ephron Mason-Clark",
                  "ranking": 3588
                },
                {
                  "player_name": "Zubeldia",
                  "ranking": 3589
                },
                {
                  "player_name": "Hugo Rincón",
                  "ranking": 3590
                },
                {
                  "player_name": "Christos Zafeiris",
                  "ranking": 3591
                },
                {
                  "player_name": "Luiz Felipe",
                  "ranking": 3592
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "F_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 25.292222187561247,
            "bench_appearance_prob": 0.5587373721618749,
            "market_value_adjustment": 0.4374,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€725,000) scaled to 25.3 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position F (quality 0.44)",
              "stats": {
                "expected_goals": 0.226,
                "goal_rate": 0.14,
                "goals": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "expected_assists": 0.081,
                "duels_won": 4,
                "aerial_won": 1,
                "rating": 6.9,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 20,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 10,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 41,
                "possession_lost": 8.1,
                "dispossessed": 1.0,
                "duels_lost": 4,
                "aerial_lost": 1,
                "total_contest": 5,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 1,
                "key_pass": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.171,
                "offsides": 1,
                "ball_carries": 19,
                "total_progression": 47,
                "progressive_carries": 5
              },
              "params": {
                "market_value_eur": 725000,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0635,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "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.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "expected_minutes": 25.29,
                "appearance_probability": 0.559
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0635,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "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.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "expected_goals": 0.1139,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "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.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.112,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0635,
                  "after": 0.1139
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 16, fifa_overall 75.0)",
              "stats": {
                "expected_goals": 0.1139,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "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.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.112,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 16,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3587,
                "fifa_rank": 2395.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 75.0
              }
            }
          ]
        }
      },
      "substitutes": {
        "Marcos Fernández": {
          "player_id": 1183542,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 18,
          "height": 176,
          "market_value": 1500000,
          "stats": {
            "expected_goals": 0.0592,
            "goal_rate": 0.0408,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0038,
            "key_pass": 0,
            "rating": 6.0853,
            "minutes": 19,
            "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.0,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "total_shots": 1,
            "yellowCards": 3.3333,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 9.6,
            "pointsPerMatch": 1.5,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.719,
            "bench_expected_minutes": 18.53,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.112,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 16416323.0,
              "match_date": "2026-09-06",
              "home_team": "Espanyol",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 31,
                "rating": 7.0,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.5788,
                "expected_assists": 0.0002,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 4,
                "accurate_pass": 2,
                "tackles": 1,
                "aerial_won": 2,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 20,
                "rating": 6.3,
                "assists": 0,
                "expected_goals": 0.0962,
                "expected_assists": 0.0047,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 4,
                "accurate_pass": 4,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421053.0,
              "match_date": "2026-08-16",
              "home_team": "Espanyol",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 9,
                "rating": 6.4,
                "assists": 0,
                "expected_goals": 0.0961,
                "total_shots": 1,
                "shots_off_target": 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": 4543,
            "combined_rank_score": 2601.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 959.0,
            "sofascore_rating": 6.4,
            "sofascore_appearances": 1.0,
            "fifa_rank": 4244.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "substitute",
            "projected_match_rating": 6.0853,
            "source_file": "data/player_rankings.csv",
            "player_name": "Marcos Fernández",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Federico Carrizo",
                  "ranking": 4538
                },
                {
                  "player_name": "Ibrahim Diabaté",
                  "ranking": 4539
                },
                {
                  "player_name": "Chuba Akpom",
                  "ranking": 4540
                },
                {
                  "player_name": "Dani Rodríguez",
                  "ranking": 4541
                },
                {
                  "player_name": "Alex Valera",
                  "ranking": 4542
                }
              ],
              "lower": [
                {
                  "player_name": "Ximo Navarro",
                  "ranking": 4544
                },
                {
                  "player_name": "João Virgínia",
                  "ranking": 4545
                },
                {
                  "player_name": "Dimitri Foulquier",
                  "ranking": 4546
                },
                {
                  "player_name": "Nathan Patterson",
                  "ranking": 4547
                },
                {
                  "player_name": "Isaac Price",
                  "ranking": 4548
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.441,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.441,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 18.53,
            "bench_appearance_prob": 0.719,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Espanyol",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 13.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.02
            },
            "rationale": "Bench projection scaled from XGBoost F_service (3 historical appearances) to 18.5 expected mins (appearance prob 0.72); FBref playing time empirical prior: 2.0 sub appearances, 13.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1632,
                "goal_rate": 0.2035,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.019,
                "key_pass": 0,
                "rating": 6.2017,
                "minutes": 20,
                "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": 7,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 2,
                "total_progression": 0,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Sevilla",
                    "minutes": 31.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Real Sociedad",
                    "minutes": 20.0,
                    "is_starting": false,
                    "weight": 0.3304,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Levante UD",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.7775,
                  "totalShots": 1.7775,
                  "minutesPlayed": 21.1866,
                  "touches": 7.2585,
                  "dribbleValueNormalized": -0.2686
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.16322147846221924,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0561
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0362
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0251
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0194
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0125
                        }
                      ],
                      "others": -0.0522,
                      "total": 0.1632
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.20346875488758087,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.053
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0431
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.034
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0175
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0168
                        }
                      ],
                      "others": -0.0462,
                      "total": 0.2035
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5663154721260071,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0306
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0281
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0212
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0169
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0111
                        }
                      ],
                      "others": -0.0537,
                      "total": 0.5663
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.018951525911688805,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0112
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0063
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0048
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0042
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0032
                        }
                      ],
                      "others": -0.0092,
                      "total": 0.019
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.37726765871047974,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1855
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0291
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0279
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0238
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0194
                        }
                      ],
                      "others": -0.0781,
                      "total": 0.3773
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.201693058013916,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.2514
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0918
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0596
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0541
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0478
                        }
                      ],
                      "others": -0.0072,
                      "total": 6.2017
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9812, quality 0.437)",
              "stats": {
                "expected_goals": 0.1602,
                "goal_rate": 0.1996,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0186,
                "key_pass": 0,
                "rating": 6.0853,
                "minutes": 20,
                "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": 7,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 2,
                "total_progression": 0,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 1500000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0081)",
              "stats": {
                "expected_goals": 0.1602,
                "goal_rate": 0.198,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0186,
                "key_pass": 0,
                "rating": 6.0853,
                "minutes": 20,
                "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": 7,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 2,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 7,
                "yellowCards": 3.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 9.6,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0081,
                "history_matches": 3,
                "prior_reliability": 0.02,
                "competition": "La Liga",
                "squad": "Espanyol"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0271
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 18.5 expected minutes (appearance prob 0.72)",
              "stats": {
                "expected_goals": 0.033,
                "goal_rate": 0.0408,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0038,
                "key_pass": 0,
                "rating": 6.0853,
                "minutes": 19,
                "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.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "yellowCards": 3.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 9.6,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.719,
                "bench_expected_minutes": 18.53
              },
              "params": {
                "expected_minutes": 18.53,
                "appearance_probability": 0.719
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.033,
                "goal_rate": 0.0408,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0038,
                "key_pass": 0,
                "rating": 6.0853,
                "minutes": 19,
                "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.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "yellowCards": 3.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 9.6,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.719,
                "bench_expected_minutes": 18.53
              },
              "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.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "expected_goals": 0.0592,
                "goal_rate": 0.0408,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0038,
                "key_pass": 0,
                "rating": 6.0853,
                "minutes": 19,
                "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.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "yellowCards": 3.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 9.6,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.719,
                "bench_expected_minutes": 18.53,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.112,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.033,
                  "after": 0.0592
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 15, fifa_overall 72.0)",
              "stats": {
                "expected_goals": 0.0592,
                "goal_rate": 0.0408,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0038,
                "key_pass": 0,
                "rating": 6.0853,
                "minutes": 19,
                "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.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 1,
                "yellowCards": 3.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 9.6,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.719,
                "bench_expected_minutes": 18.53,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.112,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4543,
                "fifa_rank": 4244.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 72.0
              }
            }
          ]
        },
        "Kike García": {
          "player_id": 84972,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 19,
          "height": 186,
          "market_value": 725000,
          "stats": {
            "expected_goals": 0.1139,
            "goal_rate": 0.0393,
            "goals": 0,
            "total_shots": 1,
            "shots_on_target": 0,
            "expected_assists": 0.0228,
            "duels_won": 1,
            "aerial_won": 0,
            "rating": 6.9,
            "minutes": 25,
            "total_pass": 8,
            "accurate_pass": 6,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 12,
            "possession_lost": 2.2763,
            "dispossessed": 1.0,
            "duels_lost": 1,
            "aerial_lost": 1,
            "total_contest": 1,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "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.0481,
            "offsides": 1,
            "ball_carries": 5,
            "total_progression": 13,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.112,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 75.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 3587,
            "combined_rank_score": 1553.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 712.0,
            "sofascore_rating": 6.6892,
            "sofascore_appearances": 37.0,
            "fifa_rank": 2395.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "projected_match_rating": 6.9,
            "source_file": "data/player_rankings.csv",
            "player_name": "Kike García",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Gayà",
                  "ranking": 3582
                },
                {
                  "player_name": "Alisson Santos",
                  "ranking": 3583
                },
                {
                  "player_name": "Dakonam Djené",
                  "ranking": 3584
                },
                {
                  "player_name": "Álvaro Ferllo",
                  "ranking": 3585
                },
                {
                  "player_name": "Sivera",
                  "ranking": 3586
                }
              ],
              "lower": [
                {
                  "player_name": "Ephron Mason-Clark",
                  "ranking": 3588
                },
                {
                  "player_name": "Zubeldia",
                  "ranking": 3589
                },
                {
                  "player_name": "Hugo Rincón",
                  "ranking": 3590
                },
                {
                  "player_name": "Christos Zafeiris",
                  "ranking": 3591
                },
                {
                  "player_name": "Luiz Felipe",
                  "ranking": 3592
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "F_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 25.292222187561247,
            "bench_appearance_prob": 0.5587373721618749,
            "market_value_adjustment": 0.4374,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€725,000) scaled to 25.3 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position F (quality 0.44)",
              "stats": {
                "expected_goals": 0.226,
                "goal_rate": 0.14,
                "goals": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "expected_assists": 0.081,
                "duels_won": 4,
                "aerial_won": 1,
                "rating": 6.9,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 20,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 10,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 41,
                "possession_lost": 8.1,
                "dispossessed": 1.0,
                "duels_lost": 4,
                "aerial_lost": 1,
                "total_contest": 5,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 1,
                "key_pass": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.171,
                "offsides": 1,
                "ball_carries": 19,
                "total_progression": 47,
                "progressive_carries": 5
              },
              "params": {
                "market_value_eur": 725000,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0635,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "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.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "expected_minutes": 25.29,
                "appearance_probability": 0.559
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0635,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "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.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.37 (squad xG sum 0.7656, xG scale 1.7934)",
              "stats": {
                "expected_goals": 0.1139,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "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.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.112,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.373,
                "squad_xg_sum": 0.7656,
                "xg_scale": 1.7934,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0635,
                  "after": 0.1139
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 16, fifa_overall 75.0)",
              "stats": {
                "expected_goals": 0.1139,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "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.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.112,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 16,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3587,
                "fifa_rank": 2395.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 75.0
              }
            }
          ]
        }
      },
      "team_totals": {
        "projected_goals": 1,
        "expected_goals": 1.37,
        "expected_assists": 0.69,
        "total_shots": 10,
        "shots_on_target": 3,
        "total_passes": 248,
        "interceptions": 6,
        "tackles": 10,
        "avg_rating": 6.83,
        "possession_estimated_pct": 50.8,
        "pressing_actions_per_90": 6.7
      }
    },
    "Elche": {
      "formation": "4-2-3-1",
      "players": {
        "Alejandro Iturbe": {
          "player_id": 1019324,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 13,
          "height": 186,
          "market_value": 1300000,
          "stats": {
            "saves": 3,
            "goals_prevented": 0.45,
            "rating": 6.8,
            "minutes": 90,
            "total_pass": 27,
            "accurate_pass": 20,
            "total_long_balls": 8,
            "accurate_long_balls": 4,
            "touches": 32,
            "clearances": 1,
            "ball_recovery": 1,
            "high_claims": 0,
            "punches": 0.3,
            "aerial_won": 1,
            "sweeper_actions": 1,
            "sweeper_accurate": 1,
            "saves_inside_box": 1,
            "possession_lost": 2.4,
            "duels_won": 0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 21,
            "accurate_own_half_passes": 16,
            "expected_saves": 0.94,
            "high_pressure_saves": 0.36,
            "shots_faced": 2.0,
            "opponent_faced": "Roberto Fernández, Tyrhys Dolan",
            "matchup_zone": "Goalkeeper shot-stopping context",
            "antagonist_source": "formation_fallback",
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0,
            "assists": 0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "fifa_overall": 82.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 333,
            "combined_rank_score": 297.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 372.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "starter",
            "projected_match_rating": 6.8,
            "source_file": "data/player_rankings.csv",
            "player_name": "Alejandro Iturbe",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Boubacar Kamara",
                  "ranking": 328
                },
                {
                  "player_name": "Min-woo Kim",
                  "ranking": 329
                },
                {
                  "player_name": "Juan Berrocal",
                  "ranking": 330
                },
                {
                  "player_name": "Marcos Senesi",
                  "ranking": 331
                },
                {
                  "player_name": "Cristian Romero",
                  "ranking": 332
                }
              ],
              "lower": [
                {
                  "player_name": "Oyarzabal",
                  "ranking": 334
                },
                {
                  "player_name": "Manuel Akanji",
                  "ranking": 335
                },
                {
                  "player_name": "Phil Foden",
                  "ranking": 336
                },
                {
                  "player_name": "Charles Aránguiz",
                  "ranking": 337
                },
                {
                  "player_name": "Steven Benda",
                  "ranking": 338
                }
              ]
            }
          },
          "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"
            ],
            "market_value_adjustment": 0.4374,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 0.0,
              "starts": 0.0,
              "prior_reliability": 0.0
            },
            "rationale": "Market-value baseline (€1,300,000) applied for position G (quality factor 0.44); FBref 2026-2027 prior blended (La Liga, Elche, rel: 0.00, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position G (quality 0.44)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.45,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 0,
                "punches": 0.3,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.4,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16
              },
              "params": {
                "market_value_eur": 1300000,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0000)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.45,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 0,
                "punches": 0.3,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.4,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16
              },
              "params": {
                "blend_weight": 0.0,
                "history_matches": 0,
                "prior_reliability": 0.0,
                "competition": "La Liga",
                "squad": "Elche"
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.45,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 0,
                "punches": 0.3,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.4,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16
              },
              "params": {
                "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.45,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 0,
                "punches": 0.3,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.4,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16,
                "expected_saves": 0.94,
                "high_pressure_saves": 0.36,
                "shots_faced": 2.0,
                "opponent_faced": "Roberto Fernández, Tyrhys Dolan",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Roberto Fernández, Tyrhys Dolan",
                  "matchup_zone": "Goalkeeper shot-stopping context"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.45,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 0,
                "punches": 0.3,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.4,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16,
                "expected_saves": 0.94,
                "high_pressure_saves": 0.36,
                "shots_faced": 2.0,
                "opponent_faced": "Roberto Fernández, Tyrhys Dolan",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 17, fifa_overall 82.0)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.45,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 0,
                "punches": 0.3,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.4,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16,
                "expected_saves": 0.94,
                "high_pressure_saves": 0.36,
                "shots_faced": 2.0,
                "opponent_faced": "Roberto Fernández, Tyrhys Dolan",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 333,
                "fifa_rank": 372.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 82.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.45,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 0,
                "punches": 0.3,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.4,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16,
                "expected_saves": 0.94,
                "high_pressure_saves": 0.36,
                "shots_faced": 2.0,
                "opponent_faced": "Roberto Fernández, Tyrhys Dolan",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.0,
                "squad_weight_total": 6.1631,
                "weight_share": 0.0,
                "position_multiplier": 0.0
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.45,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 0,
                "punches": 0.3,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.4,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16,
                "expected_saves": 0.94,
                "high_pressure_saves": 0.36,
                "shots_faced": 2.0,
                "opponent_faced": "Roberto Fernández, Tyrhys Dolan",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0,
                "squad_weight_total": 8.5227,
                "weight_share": 0.0,
                "position_multiplier": 0.0
              }
            }
          ]
        },
        "Kevin Lomónaco": {
          "player_id": 1003014,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 26,
          "height": 192,
          "market_value": 8199999,
          "stats": {
            "interceptions": 2,
            "tackles": 2,
            "tackles_won": 2,
            "clearances": 3,
            "aerial_won": 2,
            "duels_won": 6,
            "total_pass": 44,
            "accurate_pass": 35,
            "expected_goals": 0.0232,
            "rating": 6.9,
            "minutes": 90,
            "total_long_balls": 6,
            "accurate_long_balls": 3,
            "total_own_half_passes": 28,
            "accurate_own_half_passes": 23,
            "total_opp_half_passes": 10,
            "accurate_opp_half_passes": 7,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 60,
            "possession_lost": 6.5,
            "dispossessed": 0.5,
            "duels_lost": 4,
            "aerial_lost": 2,
            "total_contest": 4,
            "won_contest": 2,
            "ball_recovery": 5,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_assists": 0.05,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.013,
            "key_pass": 1,
            "ball_carries": 20,
            "total_progression": 60,
            "progressive_carries": 5,
            "tackles_in_zone": 2.0,
            "tackles_won_in_zone": 1.9,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.673,
            "opponent_faced": "Pol Lozano",
            "pressing_zone": "Right Wingback vs Left Back — Overlapping Run",
            "matchup_zone": "Right Wingback vs Left Back — Overlapping Run",
            "antagonist_source": "defensive_duel",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416322.0,
              "match_date": "2026-09-12 16:30:00 UTC",
              "league_name": "LaLiga",
              "league_id": 8.0,
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": 97268.0,
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "home_score_current": 1.0,
              "away_score_current": 1.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Elche",
              "opponent": "Athletic Club",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            }
          ],
          "ranking": {
            "global_player_rank": 3656,
            "combined_rank_score": 1619.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 3076.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "projected_match_rating": 6.9,
            "source_file": "data/player_rankings.csv",
            "player_name": "Kevin Lomónaco",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Bashir Humphreys",
                  "ranking": 3651
                },
                {
                  "player_name": "Altimira",
                  "ranking": 3652
                },
                {
                  "player_name": "Miguel Almirón",
                  "ranking": 3653
                },
                {
                  "player_name": "Marko Livaja",
                  "ranking": 3654
                },
                {
                  "player_name": "Víctor Chust",
                  "ranking": 3655
                }
              ],
              "lower": [
                {
                  "player_name": "Giorgi Kochorashvili",
                  "ranking": 3657
                },
                {
                  "player_name": "Quilindschy Hartman",
                  "ranking": 3658
                },
                {
                  "player_name": "Oscar Dorley",
                  "ranking": 3659
                },
                {
                  "player_name": "Mykola Matviienko",
                  "ranking": 3660
                },
                {
                  "player_name": "Hamed Junior Traorè",
                  "ranking": 3661
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "D_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "market_value_adjustment": 0.5011,
            "fbref_prior_metrics": null,
            "rationale": "Market-value baseline (€8,199,999) applied for position D (quality factor 0.50)."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position D (quality 0.50)",
              "stats": {
                "interceptions": 2,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 6,
                "total_pass": 44,
                "accurate_pass": 35,
                "expected_goals": 0.018,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 6.5,
                "dispossessed": 0.5,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.05,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.013,
                "key_pass": 1,
                "ball_carries": 20,
                "total_progression": 60,
                "progressive_carries": 5
              },
              "params": {
                "market_value_eur": 8199999,
                "quality_factor": 0.5011
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 2,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 6,
                "total_pass": 44,
                "accurate_pass": 35,
                "expected_goals": 0.018,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 6.5,
                "dispossessed": 0.5,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.05,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.013,
                "key_pass": 1,
                "ball_carries": 20,
                "total_progression": 60,
                "progressive_carries": 5
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 2,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 6,
                "total_pass": 44,
                "accurate_pass": 35,
                "expected_goals": 0.018,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 6.5,
                "dispossessed": 0.5,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.05,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.013,
                "key_pass": 1,
                "ball_carries": 20,
                "total_progression": 60,
                "progressive_carries": 5,
                "tackles_in_zone": 2.0,
                "tackles_won_in_zone": 1.9,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 1.1,
                "defensive_success_rate": 0.673,
                "opponent_faced": "Pol Lozano",
                "pressing_zone": "Right Wingback vs Left Back — Overlapping Run",
                "matchup_zone": "Right Wingback vs Left Back — Overlapping Run",
                "antagonist_source": "defensive_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Pol Lozano",
                  "matchup_zone": "Right Wingback vs Left Back — Overlapping Run"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "interceptions": 2,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 6,
                "total_pass": 44,
                "accurate_pass": 35,
                "expected_goals": 0.0232,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 6.5,
                "dispossessed": 0.5,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.05,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.013,
                "key_pass": 1,
                "ball_carries": 20,
                "total_progression": 60,
                "progressive_carries": 5,
                "tackles_in_zone": 2.0,
                "tackles_won_in_zone": 1.9,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 1.1,
                "defensive_success_rate": 0.673,
                "opponent_faced": "Pol Lozano",
                "pressing_zone": "Right Wingback vs Left Back — Overlapping Run",
                "matchup_zone": "Right Wingback vs Left Back — Overlapping Run",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.018,
                  "after": 0.0232
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 3, fifa_overall 74.0)",
              "stats": {
                "interceptions": 2,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 6,
                "total_pass": 44,
                "accurate_pass": 35,
                "expected_goals": 0.0232,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 6.5,
                "dispossessed": 0.5,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.05,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.013,
                "key_pass": 1,
                "ball_carries": 20,
                "total_progression": 60,
                "progressive_carries": 5,
                "tackles_in_zone": 2.0,
                "tackles_won_in_zone": 1.9,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 1.1,
                "defensive_success_rate": 0.673,
                "opponent_faced": "Pol Lozano",
                "pressing_zone": "Right Wingback vs Left Back — Overlapping Run",
                "matchup_zone": "Right Wingback vs Left Back — Overlapping Run",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 3,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3656,
                "fifa_rank": 3076.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "interceptions": 2,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 6,
                "total_pass": 44,
                "accurate_pass": 35,
                "expected_goals": 0.0232,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 6.5,
                "dispossessed": 0.5,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.05,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.013,
                "key_pass": 1,
                "ball_carries": 20,
                "total_progression": 60,
                "progressive_carries": 5,
                "tackles_in_zone": 2.0,
                "tackles_won_in_zone": 1.9,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 1.1,
                "defensive_success_rate": 0.673,
                "opponent_faced": "Pol Lozano",
                "pressing_zone": "Right Wingback vs Left Back — Overlapping Run",
                "matchup_zone": "Right Wingback vs Left Back — Overlapping Run",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.6968,
                "squad_weight_total": 6.1631,
                "weight_share": 0.1131,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "interceptions": 2,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 6,
                "total_pass": 44,
                "accurate_pass": 35,
                "expected_goals": 0.0232,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 6.5,
                "dispossessed": 0.5,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.05,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.013,
                "key_pass": 1,
                "ball_carries": 20,
                "total_progression": 60,
                "progressive_carries": 5,
                "tackles_in_zone": 2.0,
                "tackles_won_in_zone": 1.9,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 1.1,
                "defensive_success_rate": 0.673,
                "opponent_faced": "Pol Lozano",
                "pressing_zone": "Right Wingback vs Left Back — Overlapping Run",
                "matchup_zone": "Right Wingback vs Left Back — Overlapping Run",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.3668,
                "squad_weight_total": 8.5227,
                "weight_share": 0.043,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Roy Revivo": {
          "player_id": 1142085,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 3,
          "height": 183,
          "market_value": 4600000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 2,
            "aerial_won": 1,
            "rating": 5.8671,
            "minutes": 9,
            "total_pass": 6,
            "accurate_pass": 6,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 0,
            "accurate_own_half_passes": 0,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 6,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 19,
            "possession_lost": 3.9487,
            "dispossessed": 0.0,
            "duels_lost": 4,
            "aerial_lost": 2,
            "total_contest": 2,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.1527,
            "expected_assists": 0.0099,
            "total_shots": 1,
            "shots_on_target": 0,
            "shots_off_target": 1,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 5,
            "progressive_carries": 0,
            "key_pass": 0,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 1.0,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.759,
            "opponent_faced": "Roberto Fernández",
            "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "antagonist_source": "defensive_duel",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 9,
                "rating": 6.2,
                "assists": 0,
                "expected_goals": 0.1188,
                "expected_assists": 0.0054,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 6,
                "accurate_pass": 6,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 808,
            "combined_rank_score": 532.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 391.0,
            "sofascore_rating": 6.95,
            "sofascore_appearances": 8.0,
            "fifa_rank": 673.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "starter",
            "projected_match_rating": 5.8671,
            "source_file": "data/player_rankings.csv",
            "player_name": "Roy Revivo",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Harvey Barnes",
                  "ranking": 803
                },
                {
                  "player_name": "Nicola Pérez",
                  "ranking": 804
                },
                {
                  "player_name": "Jun-seo Park",
                  "ranking": 805
                },
                {
                  "player_name": "Chang-woo Park",
                  "ranking": 806
                },
                {
                  "player_name": "Ronan",
                  "ranking": 807
                }
              ],
              "lower": [
                {
                  "player_name": "Hugo Magallanes",
                  "ranking": 809
                },
                {
                  "player_name": "Dženis Burnić",
                  "ranking": 810
                },
                {
                  "player_name": "Vanja Drkušić",
                  "ranking": 811
                },
                {
                  "player_name": "Hugo Souza",
                  "ranking": 812
                },
                {
                  "player_name": "Teddy Teuma",
                  "ranking": 813
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.312,
          "history_matches": 1,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 0.9872,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (D_service) evaluated 1 historical appearances across 6 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 5.9433,
                "minutes": 9,
                "total_pass": 6,
                "accurate_pass": 6,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 19,
                "possession_lost": 4.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.12,
                "expected_assists": 0.01,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 5,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Real Sociedad",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 1.0,
                    "rating": 6.2
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 6.0,
                  "touches_p90": 190.0,
                  "possessionLostCtrl": 4.0,
                  "totalClearance": 0.0,
                  "aerialWon": 0.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.2214497327804565,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.1335
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.1059
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0827
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0771
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0602
                        }
                      ],
                      "others": -0.0284,
                      "total": 1.2214
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.0793113708496094,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "totalProgression",
                          "contribution": -0.1791
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0536
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0455
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0435
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0349
                        }
                      ],
                      "others": 0.0108,
                      "total": 1.0793
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.5484870672225952,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "totalProgression",
                          "contribution": -0.1161
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0859
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0564
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0265
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.0244
                        }
                      ],
                      "others": -0.0097,
                      "total": 0.5485
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.1451644897460938,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.5045
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.2894
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.1956
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.1208
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.116
                        }
                      ],
                      "others": -0.2637,
                      "total": 2.1452
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.0305767059326172,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.1208
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0569
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0568
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0339
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0339
                        }
                      ],
                      "others": -0.1586,
                      "total": 1.0306
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 5.943332195281982,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.6844
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0636
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.028
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0271
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0256
                        }
                      ],
                      "others": -0.0179,
                      "total": 5.9433
                    }
                  }
                ],
                "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.9872, quality 0.457)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 5.8671,
                "minutes": 9,
                "total_pass": 6,
                "accurate_pass": 6,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 19,
                "possession_lost": 3.9487,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.1185,
                "expected_assists": 0.0099,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 5,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 4600000,
                "quality_factor": 0.4572,
                "boost_factor": 0.9872
              }
            },
            {
              "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,
                "rating": 5.8671,
                "minutes": 9,
                "total_pass": 6,
                "accurate_pass": 6,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 19,
                "possession_lost": 3.9487,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.1185,
                "expected_assists": 0.0099,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 5,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 5.8671,
                "minutes": 9,
                "total_pass": 6,
                "accurate_pass": 6,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 19,
                "possession_lost": 3.9487,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.1185,
                "expected_assists": 0.0099,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 5,
                "progressive_carries": 0,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.759,
                "opponent_faced": "Roberto Fernández",
                "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": "Roberto Fernández",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 5.8671,
                "minutes": 9,
                "total_pass": 6,
                "accurate_pass": 6,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 19,
                "possession_lost": 3.9487,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.1527,
                "expected_assists": 0.0099,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 5,
                "progressive_carries": 0,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.759,
                "opponent_faced": "Roberto Fernández",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1185,
                  "after": 0.1527
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 5, fifa_overall 80.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 5.8671,
                "minutes": 9,
                "total_pass": 6,
                "accurate_pass": 6,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 19,
                "possession_lost": 3.9487,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.1527,
                "expected_assists": 0.0099,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 5,
                "progressive_carries": 0,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.759,
                "opponent_faced": "Roberto Fernández",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "match_squad_rank": 5,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 808,
                "fifa_rank": 673.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 80.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 5.8671,
                "minutes": 9,
                "total_pass": 6,
                "accurate_pass": 6,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 19,
                "possession_lost": 3.9487,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.1527,
                "expected_assists": 0.0099,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 5,
                "progressive_carries": 0,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.759,
                "opponent_faced": "Roberto Fernández",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.4098,
                "squad_weight_total": 6.1631,
                "weight_share": 0.0665,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 5.8671,
                "minutes": 9,
                "total_pass": 6,
                "accurate_pass": 6,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 19,
                "possession_lost": 3.9487,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.1527,
                "expected_assists": 0.0099,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 5,
                "progressive_carries": 0,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.759,
                "opponent_faced": "Roberto Fernández",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0567,
                "squad_weight_total": 8.5227,
                "weight_share": 0.0066,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Buba Sangaré": {
          "player_id": 1542721,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 2,
          "height": 184,
          "market_value": 4400000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 2,
            "aerial_won": 1,
            "rating": 6.4111,
            "minutes": 85,
            "total_pass": 33,
            "accurate_pass": 28,
            "duels_won": 3,
            "total_long_balls": 2,
            "accurate_long_balls": 0,
            "total_own_half_passes": 15,
            "accurate_own_half_passes": 14,
            "total_opp_half_passes": 18,
            "accurate_opp_half_passes": 15,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 50,
            "possession_lost": 9.3711,
            "dispossessed": 0.0,
            "duels_lost": 5,
            "aerial_lost": 0,
            "total_contest": 2,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0241,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0099,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 12,
            "total_progression": 48,
            "progressive_carries": 1,
            "key_pass": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 100.0,
            "shotConversion": 1.0,
            "minutesPct": 97.4,
            "pointsPerMatch": 0.33,
            "netGoalDifferencePer90": 0.0,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 1.0,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.759,
            "opponent_faced": "Roberto Fernández",
            "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "antagonist_source": "defensive_duel",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 69.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416322.0,
              "match_date": "2026-09-12 16:30:00 UTC",
              "league_name": "LaLiga",
              "league_id": 8.0,
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": 97268.0,
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "home_score_current": 1.0,
              "away_score_current": 1.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Elche",
              "opponent": "Athletic Club",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 81,
                "rating": 6.5,
                "assists": 0,
                "expected_assists": 0.0106,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 23,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 84,
                "rating": 6.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.0427,
                "expected_assists": 0.0113,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 35,
                "accurate_pass": 31,
                "tackles": 4,
                "tackles_won": 4,
                "clearances": 2,
                "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": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 90,
                "rating": 4.8,
                "assists": 0,
                "expected_assists": 0.0147,
                "total_shots": 0,
                "total_pass": 26,
                "accurate_pass": 19,
                "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": 16421050.0,
              "match_date": "2026-08-17",
              "home_team": "Deportivo de A Coruña",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assists": 0,
                "expected_assists": 0.0151,
                "total_shots": 0,
                "total_pass": 44,
                "accurate_pass": 41,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 5655,
            "combined_rank_score": 3928.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 882.0,
            "sofascore_rating": 6.5417,
            "sofascore_appearances": 12.0,
            "fifa_rank": 6975.0,
            "fifa_overall": 69.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "starter",
            "projected_match_rating": 6.4111,
            "source_file": "data/player_rankings.csv",
            "player_name": "Buba Sangare",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Denis Drăguş",
                  "ranking": 5650
                },
                {
                  "player_name": "Noé Lebreton",
                  "ranking": 5651
                },
                {
                  "player_name": "Lucas Rosa",
                  "ranking": 5652
                },
                {
                  "player_name": "Ethan Horvath",
                  "ranking": 5653
                },
                {
                  "player_name": "Stije Resink",
                  "ranking": 5654
                }
              ],
              "lower": [
                {
                  "player_name": "Krystof Daněk",
                  "ranking": 5656
                },
                {
                  "player_name": "Oleksandr Svatok",
                  "ranking": 5657
                },
                {
                  "player_name": "Dimitar Mitov",
                  "ranking": 5658
                },
                {
                  "player_name": "Víctor Dávila",
                  "ranking": 5659
                },
                {
                  "player_name": "Ulrik Saltnes",
                  "ranking": 5660
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.529,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.529,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9864,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 263.0,
              "goals_per90": 0.3448275862068966,
              "assists_per90": 0.0,
              "shots_per90": 0.34,
              "shots_on_target_pct": 100.0,
              "prior_reliability": 0.1933
            },
            "rationale": "XGBoost regressor (D_service) evaluated 4 historical appearances across 6 target models; FBref 2026-2027 prior blended (La Liga, Elche, rel: 0.19, gls/90: 0.3448275862068966, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.4993,
                "minutes": 86,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 3,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 51,
                "possession_lost": 9.5,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.01,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 49,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Real Sociedad",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Real Racing Club",
                    "minutes": 84.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 4.8
                  },
                  {
                    "match_date": "2026-08-17",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 6.2
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 27.696,
                  "touches_p90": 52.2527,
                  "possessionLostCtrl": 9.3463,
                  "totalClearance": 1.6182,
                  "aerialWon": 0.1927
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.8244391083717346,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0358
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0285
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0188
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0156
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.009
                        }
                      ],
                      "others": -0.0503,
                      "total": 0.8244
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.4188640117645264,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0856
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0562
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0519
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0416
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0174
                        }
                      ],
                      "others": 0.1293,
                      "total": 1.4189
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.8255845308303833,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0735
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0658
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.044
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0354
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0293
                        }
                      ],
                      "others": 0.0767,
                      "total": 0.8256
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.9927140474319458,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.5924
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.3275
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.2067
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.1596
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.1363
                        }
                      ],
                      "others": -0.4014,
                      "total": 1.9927
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.8933558464050293,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.1405
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0658
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0574
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0412
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0408
                        }
                      ],
                      "others": -0.0854,
                      "total": 0.8934
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.499294757843018,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0393
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0369
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0275
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0236
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": -0.0194
                        }
                      ],
                      "others": -0.0167,
                      "total": 6.4993
                    }
                  }
                ],
                "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.9864, quality 0.455)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.4111,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 3,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 9.3711,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0099,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 48,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 4400000,
                "quality_factor": 0.4548,
                "boost_factor": 0.9864
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0698)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.4111,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 3,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 9.3711,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0099,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 48,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 1.0,
                "minutesPct": 97.4,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": -2.05
              },
              "params": {
                "blend_weight": 0.0698,
                "history_matches": 4,
                "prior_reliability": 0.1933,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.1203
                },
                {
                  "stat": "wonTackle",
                  "before": 0.8144,
                  "after": 0.902
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.8133,
                  "after": 0.7806
                },
                {
                  "stat": "goals",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0237
                },
                {
                  "stat": "totalShots",
                  "before": 0.2466,
                  "after": 0.2531
                }
              ]
            },
            {
              "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,
                "rating": 6.4111,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 3,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 9.3711,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0099,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 48,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 1.0,
                "minutesPct": 97.4,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.4111,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 3,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 9.3711,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0099,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 48,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 1.0,
                "minutesPct": 97.4,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.759,
                "opponent_faced": "Roberto Fernández",
                "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": "Roberto Fernández",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.4111,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 3,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 9.3711,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0099,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 48,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 1.0,
                "minutesPct": 97.4,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.759,
                "opponent_faced": "Roberto Fernández",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 6, fifa_overall 69.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.4111,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 3,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 9.3711,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0099,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 48,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 1.0,
                "minutesPct": 97.4,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.759,
                "opponent_faced": "Roberto Fernández",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 69.0
              },
              "params": {
                "match_squad_rank": 6,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 5655,
                "fifa_rank": 6975.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 69.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.4111,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 3,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 9.3711,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0099,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 48,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 1.0,
                "minutesPct": 97.4,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.759,
                "opponent_faced": "Roberto Fernández",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 69.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.1749,
                "squad_weight_total": 6.1631,
                "weight_share": 0.0284,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.4111,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 3,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 9.3711,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0241,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0099,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 48,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 1.0,
                "minutesPct": 97.4,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.759,
                "opponent_faced": "Roberto Fernández",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 69.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0664,
                "squad_weight_total": 8.5227,
                "weight_share": 0.0078,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Víctor Chust": {
          "player_id": 855831,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 23,
          "height": 182,
          "market_value": 3700000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 4,
            "aerial_won": 2,
            "rating": 6.867,
            "minutes": 89,
            "total_pass": 78,
            "accurate_pass": 73,
            "duels_won": 4,
            "total_long_balls": 10,
            "accurate_long_balls": 8,
            "total_own_half_passes": 44,
            "accurate_own_half_passes": 42,
            "total_opp_half_passes": 34,
            "accurate_opp_half_passes": 31,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 90,
            "possession_lost": 8.8545,
            "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,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0885,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 34,
            "total_progression": 126,
            "progressive_carries": 1,
            "key_pass": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 100.0,
            "pointsPerMatch": 0.33,
            "netGoalDifferencePer90": 0.0,
            "tackles_in_zone": 1.9,
            "tackles_won_in_zone": 1.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.529,
            "opponent_faced": "Urko González",
            "pressing_zone": "Left Wingback vs Right Back — Overlapping Run",
            "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
            "antagonist_source": "defensive_duel",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416322.0,
              "match_date": "2026-09-12 16:30:00 UTC",
              "league_name": "LaLiga",
              "league_id": 8.0,
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": 97268.0,
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "home_score_current": 1.0,
              "away_score_current": 1.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Elche",
              "opponent": "Athletic Club",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assists": 1,
                "expected_goals": 0.2506,
                "expected_assists": 0.0286,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 84,
                "accurate_pass": 79,
                "key_pass": 1,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 3,
                "ball_recovery": 8
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assists": 0,
                "expected_goals": 0.1049,
                "expected_assists": 0.0243,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 93,
                "accurate_pass": 87,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 2,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 90,
                "rating": 5.7,
                "assists": 0,
                "expected_assists": 0.0188,
                "total_shots": 0,
                "total_pass": 60,
                "accurate_pass": 55,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "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": 16421050.0,
              "match_date": "2026-08-17",
              "home_team": "Deportivo de A Coruña",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assists": 0,
                "expected_assists": 0.2968,
                "total_shots": 0,
                "total_pass": 81,
                "accurate_pass": 74,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 6,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3655,
            "combined_rank_score": 1617.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 336.0,
            "sofascore_rating": 7.0,
            "sofascore_appearances": 1.0,
            "fifa_rank": 2898.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "projected_match_rating": 6.867,
            "source_file": "data/player_rankings.csv",
            "player_name": "Víctor Chust",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Junior Firpo",
                  "ranking": 3650
                },
                {
                  "player_name": "Bashir Humphreys",
                  "ranking": 3651
                },
                {
                  "player_name": "Altimira",
                  "ranking": 3652
                },
                {
                  "player_name": "Miguel Almirón",
                  "ranking": 3653
                },
                {
                  "player_name": "Marko Livaja",
                  "ranking": 3654
                }
              ],
              "lower": [
                {
                  "player_name": "Kevin Lomónaco",
                  "ranking": 3656
                },
                {
                  "player_name": "Giorgi Kochorashvili",
                  "ranking": 3657
                },
                {
                  "player_name": "Quilindschy Hartman",
                  "ranking": 3658
                },
                {
                  "player_name": "Oscar Dorley",
                  "ranking": 3659
                },
                {
                  "player_name": "Mykola Matviienko",
                  "ranking": 3660
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.53,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.53,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9838,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "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.33,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (D_service) evaluated 4 historical appearances across 6 target models; FBref 2026-2027 prior blended (La Liga, Elche, rel: 0.20, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 2,
                "rating": 6.9798,
                "minutes": 90,
                "total_pass": 80,
                "accurate_pass": 74,
                "duels_won": 4,
                "total_long_balls": 10,
                "accurate_long_balls": 8,
                "total_own_half_passes": 44,
                "accurate_own_half_passes": 42,
                "total_opp_half_passes": 35,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 91,
                "possession_lost": 9.0,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.09,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 34,
                "total_progression": 128,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 5.7
                  },
                  {
                    "match_date": "2026-08-17",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 7.1
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 74.7288,
                  "touches_p90": 91.3687,
                  "possessionLostCtrl": 8.5436,
                  "totalClearance": 1.6969,
                  "aerialWon": 2.1271
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9649640321731567,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0253
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0233
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0213
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0216
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0197
                        }
                      ],
                      "others": -0.0104,
                      "total": 0.965
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.1828944683074951,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0685
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0426
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0321
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.031
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0271
                        }
                      ],
                      "others": -0.0873,
                      "total": 1.1829
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.8224932551383972,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0759
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0735
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0687
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0398
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0386
                        }
                      ],
                      "others": 0.0273,
                      "total": 0.8225
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 3.8254637718200684,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "ballRecovery",
                          "contribution": -0.3543
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.2026
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1882
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.1978
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.1687
                        }
                      ],
                      "others": 0.0193,
                      "total": 3.8255
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.6833680868148804,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": 0.1335
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0639
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0613
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0639
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0566
                        }
                      ],
                      "others": 0.0621,
                      "total": 1.6834
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.9797749519348145,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "totalProgression",
                          "contribution": 0.1202
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0831
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0321
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0242
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0155
                        }
                      ],
                      "others": 0.042,
                      "total": 6.9798
                    }
                  }
                ],
                "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.9838, quality 0.446)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 2,
                "rating": 6.867,
                "minutes": 89,
                "total_pass": 78,
                "accurate_pass": 73,
                "duels_won": 4,
                "total_long_balls": 10,
                "accurate_long_balls": 8,
                "total_own_half_passes": 44,
                "accurate_own_half_passes": 42,
                "total_opp_half_passes": 34,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 90,
                "possession_lost": 8.8545,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0885,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 34,
                "total_progression": 126,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 3700000,
                "quality_factor": 0.4461,
                "boost_factor": 0.9838
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0722)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 2,
                "rating": 6.867,
                "minutes": 89,
                "total_pass": 78,
                "accurate_pass": 73,
                "duels_won": 4,
                "total_long_balls": 10,
                "accurate_long_balls": 8,
                "total_own_half_passes": 44,
                "accurate_own_half_passes": 42,
                "total_opp_half_passes": 34,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 90,
                "possession_lost": 8.8545,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0885,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 34,
                "total_progression": 126,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": -2.0
              },
              "params": {
                "blend_weight": 0.0722,
                "history_matches": 4,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.1444
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "wonTackle",
                  "before": 0.8092,
                  "after": 0.8471
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.9494,
                  "after": 0.9771
                },
                {
                  "stat": "goalAssist",
                  "before": 0.246,
                  "after": 0.2282
                },
                {
                  "stat": "totalShots",
                  "before": 0.4919,
                  "after": 0.4802
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 2,
                "rating": 6.867,
                "minutes": 89,
                "total_pass": 78,
                "accurate_pass": 73,
                "duels_won": 4,
                "total_long_balls": 10,
                "accurate_long_balls": 8,
                "total_own_half_passes": 44,
                "accurate_own_half_passes": 42,
                "total_opp_half_passes": 34,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 90,
                "possession_lost": 8.8545,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0885,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 34,
                "total_progression": 126,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 2,
                "rating": 6.867,
                "minutes": 89,
                "total_pass": 78,
                "accurate_pass": 73,
                "duels_won": 4,
                "total_long_balls": 10,
                "accurate_long_balls": 8,
                "total_own_half_passes": 44,
                "accurate_own_half_passes": 42,
                "total_opp_half_passes": 34,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 90,
                "possession_lost": 8.8545,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0885,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 34,
                "total_progression": 126,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.529,
                "opponent_faced": "Urko González",
                "pressing_zone": "Left Wingback vs Right Back — Overlapping Run",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "defensive_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Urko González",
                  "matchup_zone": "Left Wingback vs Right Back — Overlapping Run"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 2,
                "rating": 6.867,
                "minutes": 89,
                "total_pass": 78,
                "accurate_pass": 73,
                "duels_won": 4,
                "total_long_balls": 10,
                "accurate_long_balls": 8,
                "total_own_half_passes": 44,
                "accurate_own_half_passes": 42,
                "total_opp_half_passes": 34,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 90,
                "possession_lost": 8.8545,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0885,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 34,
                "total_progression": 126,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.529,
                "opponent_faced": "Urko González",
                "pressing_zone": "Left Wingback vs Right Back — Overlapping Run",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 8, fifa_overall 74.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 2,
                "rating": 6.867,
                "minutes": 89,
                "total_pass": 78,
                "accurate_pass": 73,
                "duels_won": 4,
                "total_long_balls": 10,
                "accurate_long_balls": 8,
                "total_own_half_passes": 44,
                "accurate_own_half_passes": 42,
                "total_opp_half_passes": 34,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 90,
                "possession_lost": 8.8545,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0885,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 34,
                "total_progression": 126,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.529,
                "opponent_faced": "Urko González",
                "pressing_zone": "Left Wingback vs Right Back — Overlapping Run",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 8,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3655,
                "fifa_rank": 2898.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 2,
                "rating": 6.867,
                "minutes": 89,
                "total_pass": 78,
                "accurate_pass": 73,
                "duels_won": 4,
                "total_long_balls": 10,
                "accurate_long_balls": 8,
                "total_own_half_passes": 44,
                "accurate_own_half_passes": 42,
                "total_opp_half_passes": 34,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 90,
                "possession_lost": 8.8545,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0885,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 34,
                "total_progression": 126,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.529,
                "opponent_faced": "Urko González",
                "pressing_zone": "Left Wingback vs Right Back — Overlapping Run",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.2705,
                "squad_weight_total": 6.1631,
                "weight_share": 0.0439,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 2,
                "rating": 6.867,
                "minutes": 89,
                "total_pass": 78,
                "accurate_pass": 73,
                "duels_won": 4,
                "total_long_balls": 10,
                "accurate_long_balls": 8,
                "total_own_half_passes": 44,
                "accurate_own_half_passes": 42,
                "total_opp_half_passes": 34,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 90,
                "possession_lost": 8.8545,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0885,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 34,
                "total_progression": 126,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.529,
                "opponent_faced": "Urko González",
                "pressing_zone": "Left Wingback vs Right Back — Overlapping Run",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.2203,
                "squad_weight_total": 8.5227,
                "weight_share": 0.0259,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Facundo Buonanotte": {
          "player_id": 1117025,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 10,
          "height": 174,
          "market_value": 10900000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.1171,
            "assists": 0,
            "expected_goals": 0.1842,
            "rating": 6.8174,
            "minutes": 50,
            "total_pass": 20,
            "accurate_pass": 15,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 6,
            "accurate_own_half_passes": 6,
            "total_opp_half_passes": 14,
            "accurate_opp_half_passes": 9,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 39,
            "possession_lost": 12.452,
            "dispossessed": 0.0,
            "duels_lost": 5,
            "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,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 1,
            "shots_off_target": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.1313,
            "ball_carries": 11,
            "total_progression": 65,
            "progressive_carries": 2,
            "total_shots": 2,
            "offsides": 0,
            "yellowCards": 0.9091,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 40.0,
            "shotConversion": 0.0,
            "minutesPct": 35.2,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.2,
            "crosses_attempted": 2.0,
            "duel_win_rate": 0.459,
            "pressing_faced": "LOW",
            "matchup_zone": "Left Wing vs Right Wingback — Compact Flank",
            "numerical_situation": "1v1",
            "opponent_defenders": "Pol Lozano",
            "opponent_faced": "Pol Lozano",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 55,
                "rating": 6.1,
                "assists": 0,
                "expected_goals": 0.0985,
                "expected_assists": 0.1246,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 28,
                "accurate_pass": 23,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 69,
                "rating": 6.5,
                "assists": 0,
                "expected_goals": 0.0912,
                "expected_assists": 0.0361,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 27,
                "accurate_pass": 20,
                "key_pass": 1,
                "tackles": 3,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 6,
                "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": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 26,
                "rating": 6.2,
                "assists": 0,
                "expected_goals": 0.151,
                "expected_assists": 0.0001,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 5,
                "accurate_pass": 3,
                "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": 3732,
            "combined_rank_score": 1718.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 745.0,
            "sofascore_rating": 6.6667,
            "sofascore_appearances": 3.0,
            "fifa_rank": 2691.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "starter",
            "projected_match_rating": 6.8174,
            "source_file": "data/player_rankings.csv",
            "player_name": "Facundo Buonanotte",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jay DaSilva",
                  "ranking": 3727
                },
                {
                  "player_name": "Oskar Pietuszewski",
                  "ranking": 3728
                },
                {
                  "player_name": "Honest Ahanor",
                  "ranking": 3729
                },
                {
                  "player_name": "Alexandru Mitriță",
                  "ranking": 3730
                },
                {
                  "player_name": "Fabio Carvalho",
                  "ranking": 3731
                }
              ],
              "lower": [
                {
                  "player_name": "Shea Charles",
                  "ranking": 3733
                },
                {
                  "player_name": "Mojmír Chytil",
                  "ranking": 3734
                },
                {
                  "player_name": "Kendry Páez",
                  "ranking": 3735
                },
                {
                  "player_name": "Josip Juranović",
                  "ranking": 3736
                },
                {
                  "player_name": "Michel Aebischer",
                  "ranking": 3737
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.448,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.448,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0099,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 1.0,
              "minutes": 95.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 4.74,
              "shots_on_target_pct": 40.0,
              "prior_reliability": 0.0733
            },
            "rationale": "XGBoost regressor (M_service) evaluated 3 historical appearances across 5 target models; FBref 2026-2027 prior blended (La Liga, Elche, rel: 0.07, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1159,
                "assists": 0,
                "expected_goals": 0.1416,
                "rating": 6.7506,
                "minutes": 50,
                "total_pass": 20,
                "accurate_pass": 15,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 12.33,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.13,
                "ball_carries": 11,
                "total_progression": 64,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Real Sociedad",
                    "minutes": 55.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Real Racing Club",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.2
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 5.1303,
                  "ballRecovery": 3.5374,
                  "intensity_index": 6.4838,
                  "expectedAssists": 0.0604,
                  "kilometersCovered": 6.5447
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.0604406595230103,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.054
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0513
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0475
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0369
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.027
                        }
                      ],
                      "others": -0.0714,
                      "total": 1.0604
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.11590559780597687,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0155
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0109
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0083
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0068
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0045
                        }
                      ],
                      "others": -0.014,
                      "total": 0.1159
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07090441137552261,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0062
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0037
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0027
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.0023
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.002
                        }
                      ],
                      "others": -0.0078,
                      "total": 0.0709
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.14158107340335846,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0144
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0114
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0067
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0056
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0053
                        }
                      ],
                      "others": 0.0235,
                      "total": 0.1416
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.750595569610596,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0925
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0355
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0175
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0172
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0169
                        }
                      ],
                      "others": 0.029,
                      "total": 6.7506
                    }
                  }
                ],
                "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.0099, quality 0.533)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1171,
                "assists": 0,
                "expected_goals": 0.143,
                "rating": 6.8174,
                "minutes": 50,
                "total_pass": 20,
                "accurate_pass": 15,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 12.452,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1313,
                "ball_carries": 11,
                "total_progression": 65,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 10900000,
                "quality_factor": 0.533,
                "boost_factor": 1.0099
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0298)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1171,
                "assists": 0,
                "expected_goals": 0.143,
                "rating": 6.8174,
                "minutes": 50,
                "total_pass": 20,
                "accurate_pass": 15,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 12.452,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1313,
                "ball_carries": 11,
                "total_progression": 65,
                "progressive_carries": 2,
                "total_shots": 5,
                "offsides": 0,
                "yellowCards": 0.9091,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.0,
                "minutesPct": 35.2,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -5.68
              },
              "params": {
                "blend_weight": 0.0298,
                "history_matches": 3,
                "prior_reliability": 0.0733,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0812
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0812
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 1.0099,
                  "after": 1.0361
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1171,
                "assists": 0,
                "expected_goals": 0.143,
                "rating": 6.8174,
                "minutes": 50,
                "total_pass": 20,
                "accurate_pass": 15,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 12.452,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1313,
                "ball_carries": 11,
                "total_progression": 65,
                "progressive_carries": 2,
                "total_shots": 5,
                "offsides": 0,
                "yellowCards": 0.9091,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.0,
                "minutesPct": 35.2,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1171,
                "assists": 0,
                "expected_goals": 0.143,
                "rating": 6.8174,
                "minutes": 50,
                "total_pass": 20,
                "accurate_pass": 15,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 12.452,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1313,
                "ball_carries": 11,
                "total_progression": 65,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.9091,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.0,
                "minutesPct": 35.2,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 2.0,
                "duel_win_rate": 0.459,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wing vs Right Wingback — Compact Flank",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pol Lozano",
                "opponent_faced": "Pol Lozano",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Pol Lozano",
                  "matchup_zone": "Left Wing vs Right Wingback — Compact Flank",
                  "duel_win_rate": 0.459,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 4.74,
                  "after": 2.046
                },
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 0.9
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1171,
                "assists": 0,
                "expected_goals": 0.1842,
                "rating": 6.8174,
                "minutes": 50,
                "total_pass": 20,
                "accurate_pass": 15,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 12.452,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1313,
                "ball_carries": 11,
                "total_progression": 65,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.9091,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.0,
                "minutesPct": 35.2,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 2.0,
                "duel_win_rate": 0.459,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wing vs Right Wingback — Compact Flank",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pol Lozano",
                "opponent_faced": "Pol Lozano",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.143,
                  "after": 0.1842
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 2, fifa_overall 74.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1171,
                "assists": 0,
                "expected_goals": 0.1842,
                "rating": 6.8174,
                "minutes": 50,
                "total_pass": 20,
                "accurate_pass": 15,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 12.452,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1313,
                "ball_carries": 11,
                "total_progression": 65,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.9091,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.0,
                "minutesPct": 35.2,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 2.0,
                "duel_win_rate": 0.459,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wing vs Right Wingback — Compact Flank",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pol Lozano",
                "opponent_faced": "Pol Lozano",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 2,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3732,
                "fifa_rank": 2691.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1171,
                "assists": 0,
                "expected_goals": 0.1842,
                "rating": 6.8174,
                "minutes": 50,
                "total_pass": 20,
                "accurate_pass": 15,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 12.452,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1313,
                "ball_carries": 11,
                "total_progression": 65,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.9091,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.0,
                "minutesPct": 35.2,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 2.0,
                "duel_win_rate": 0.459,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wing vs Right Wingback — Compact Flank",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pol Lozano",
                "opponent_faced": "Pol Lozano",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 1.1673,
                "squad_weight_total": 6.1631,
                "weight_share": 0.1894,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1171,
                "assists": 0,
                "expected_goals": 0.1842,
                "rating": 6.8174,
                "minutes": 50,
                "total_pass": 20,
                "accurate_pass": 15,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 12.452,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1313,
                "ball_carries": 11,
                "total_progression": 65,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.9091,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.0,
                "minutesPct": 35.2,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 2.0,
                "duel_win_rate": 0.459,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wing vs Right Wingback — Compact Flank",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pol Lozano",
                "opponent_faced": "Pol Lozano",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 1.5311,
                "squad_weight_total": 8.5227,
                "weight_share": 0.1796,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Germán Valera": {
          "player_id": 962710,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 11,
          "height": 170,
          "market_value": 6200000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.1248,
            "assists": 0,
            "expected_goals": 0.1523,
            "rating": 6.7962,
            "minutes": 85,
            "total_pass": 33,
            "accurate_pass": 28,
            "duels_won": 4,
            "total_long_balls": 3,
            "accurate_long_balls": 0,
            "total_own_half_passes": 11,
            "accurate_own_half_passes": 10,
            "total_opp_half_passes": 21,
            "accurate_opp_half_passes": 18,
            "crosses_total": 4,
            "crosses_accurate": 0,
            "touches": 55,
            "possession_lost": 10.9237,
            "dispossessed": 0.9931,
            "duels_lost": 4,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 1,
            "total_contest": 2,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 21,
            "total_progression": 108,
            "progressive_carries": 3,
            "total_shots": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 96.3,
            "pointsPerMatch": 0.33,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.7,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.375,
            "pressing_faced": "LOW",
            "matchup_zone": "Holding Mid vs Central Mid — Midfield Anchor Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "Tyrhys Dolan",
            "opponent_faced": "Tyrhys Dolan",
            "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416322.0,
              "match_date": "2026-09-12 16:30:00 UTC",
              "league_name": "LaLiga",
              "league_id": 8.0,
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": 97268.0,
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "home_score_current": 1.0,
              "away_score_current": 1.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Elche",
              "opponent": "Athletic Club",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 81,
                "rating": 7.1,
                "assists": 0,
                "expected_goals": 0.0127,
                "expected_assists": 0.2286,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 25,
                "accurate_pass": 22,
                "key_pass": 3,
                "clearances": 1,
                "duels_won": 6,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 5.9,
                "assists": 0,
                "expected_assists": 0.329,
                "total_shots": 0,
                "total_pass": 44,
                "accurate_pass": 39,
                "key_pass": 3,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 90,
                "rating": 5.4,
                "assists": 0,
                "expected_assists": 0.1389,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 22,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421050.0,
              "match_date": "2026-08-17",
              "home_team": "Deportivo de A Coruña",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 81,
                "rating": 7.0,
                "assists": 0,
                "expected_assists": 0.1255,
                "total_shots": 0,
                "total_pass": 35,
                "accurate_pass": 31,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "duels_won": 6,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 688,
            "combined_rank_score": 360.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 336.0,
            "sofascore_rating": 7.0,
            "sofascore_appearances": 1.0,
            "fifa_rank": 385.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "starter",
            "projected_match_rating": 6.7962,
            "source_file": "data/player_rankings.csv",
            "player_name": "Germán Valera",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Erick Pulgar",
                  "ranking": 683
                },
                {
                  "player_name": "Andraž Šporar",
                  "ranking": 684
                },
                {
                  "player_name": "Abdul Fatawu Issahaku",
                  "ranking": 685
                },
                {
                  "player_name": "Kahiser Lenis",
                  "ranking": 686
                },
                {
                  "player_name": "Oleksandr Zinchenko",
                  "ranking": 687
                }
              ],
              "lower": [
                {
                  "player_name": "Adrià Altimira",
                  "ranking": 689
                },
                {
                  "player_name": "Kepa Arrizabalaga",
                  "ranking": 690
                },
                {
                  "player_name": "Hugo Ancajima",
                  "ranking": 691
                },
                {
                  "player_name": "Andrew",
                  "ranking": 692
                },
                {
                  "player_name": "Joseph Lacey",
                  "ranking": 693
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.529,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.529,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9931,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 260.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.1933
            },
            "rationale": "XGBoost regressor (M_service) evaluated 4 historical appearances across 5 target models; FBref 2026-2027 prior blended (La Liga, Elche, rel: 0.19, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1257,
                "assists": 0,
                "expected_goals": 0.119,
                "rating": 6.8437,
                "minutes": 86,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 18,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 11.0,
                "dispossessed": 1.0,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 108,
                "progressive_carries": 4
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Real Sociedad",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 5.9
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 5.4
                  },
                  {
                    "match_date": "2026-08-17",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 7.0
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 3.6916,
                  "ballRecovery": 3.4665,
                  "intensity_index": 13.8261,
                  "expectedAssists": 0.2152,
                  "kilometersCovered": 9.8677
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.4486057758331299,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0851
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0516
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0469
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0431
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0444
                        }
                      ],
                      "others": 0.2084,
                      "total": 1.4486
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.12566518783569336,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0075
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0079
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0064
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0052
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0053
                        }
                      ],
                      "others": 0.0005,
                      "total": 0.1257
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.10362767428159714,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0098
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0054
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0044
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0043
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0041
                        }
                      ],
                      "others": -0.0112,
                      "total": 0.1036
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1189870834350586,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0279
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0054
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0055
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0054
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0057
                        }
                      ],
                      "others": 0.0162,
                      "total": 0.119
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.843704700469971,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.1021
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0209
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0174
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0173
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0129
                        }
                      ],
                      "others": 0.0455,
                      "total": 6.8437
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9931, quality 0.477)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1248,
                "assists": 0,
                "expected_goals": 0.1182,
                "rating": 6.7962,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 18,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 10.9237,
                "dispossessed": 0.9931,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 108,
                "progressive_carries": 3
              },
              "params": {
                "market_value_eur": 6200000,
                "quality_factor": 0.4769,
                "boost_factor": 0.9931
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0698)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1248,
                "assists": 0,
                "expected_goals": 0.1182,
                "rating": 6.7962,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 18,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 10.9237,
                "dispossessed": 0.9931,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 108,
                "progressive_carries": 3,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 96.3,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": -2.08
              },
              "params": {
                "blend_weight": 0.0698,
                "history_matches": 4,
                "prior_reliability": 0.1933,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.1203
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0722
                },
                {
                  "stat": "totalCross",
                  "before": 4.4688,
                  "after": 4.3976
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "goalAssist",
                  "before": 0.1029,
                  "after": 0.0957
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1248,
                "assists": 0,
                "expected_goals": 0.1182,
                "rating": 6.7962,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 18,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 10.9237,
                "dispossessed": 0.9931,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 108,
                "progressive_carries": 3,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 96.3,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1248,
                "assists": 0,
                "expected_goals": 0.1182,
                "rating": 6.7962,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 18,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 10.9237,
                "dispossessed": 0.9931,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 108,
                "progressive_carries": 3,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 96.3,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.375,
                "pressing_faced": "LOW",
                "matchup_zone": "Holding Mid vs Central Mid — Midfield Anchor Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Tyrhys Dolan",
                "opponent_faced": "Tyrhys Dolan",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Tyrhys Dolan",
                  "matchup_zone": "Holding Mid vs Central Mid — Midfield Anchor Duel",
                  "duel_win_rate": 0.375,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 0.0,
                  "after": 0.9
                },
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 0.8
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1248,
                "assists": 0,
                "expected_goals": 0.1523,
                "rating": 6.7962,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 18,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 10.9237,
                "dispossessed": 0.9931,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 108,
                "progressive_carries": 3,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 96.3,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.375,
                "pressing_faced": "LOW",
                "matchup_zone": "Holding Mid vs Central Mid — Midfield Anchor Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Tyrhys Dolan",
                "opponent_faced": "Tyrhys Dolan",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1182,
                  "after": 0.1523
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 4, fifa_overall 82.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1248,
                "assists": 0,
                "expected_goals": 0.1523,
                "rating": 6.7962,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 18,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 10.9237,
                "dispossessed": 0.9931,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 108,
                "progressive_carries": 3,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 96.3,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.375,
                "pressing_faced": "LOW",
                "matchup_zone": "Holding Mid vs Central Mid — Midfield Anchor Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Tyrhys Dolan",
                "opponent_faced": "Tyrhys Dolan",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "match_squad_rank": 4,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 688,
                "fifa_rank": 385.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 82.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1248,
                "assists": 0,
                "expected_goals": 0.1523,
                "rating": 6.7962,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 18,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 10.9237,
                "dispossessed": 0.9931,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 108,
                "progressive_carries": 3,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 96.3,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.375,
                "pressing_faced": "LOW",
                "matchup_zone": "Holding Mid vs Central Mid — Midfield Anchor Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Tyrhys Dolan",
                "opponent_faced": "Tyrhys Dolan",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.6354,
                "squad_weight_total": 6.1631,
                "weight_share": 0.1031,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1248,
                "assists": 0,
                "expected_goals": 0.1523,
                "rating": 6.7962,
                "minutes": 85,
                "total_pass": 33,
                "accurate_pass": 28,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 18,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 10.9237,
                "dispossessed": 0.9931,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 108,
                "progressive_carries": 3,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 96.3,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.375,
                "pressing_faced": "LOW",
                "matchup_zone": "Holding Mid vs Central Mid — Midfield Anchor Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Tyrhys Dolan",
                "opponent_faced": "Tyrhys Dolan",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 1.5777,
                "squad_weight_total": 8.5227,
                "weight_share": 0.1851,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Martim Neto": {
          "player_id": 1100646,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 16,
          "height": 185,
          "market_value": 3800000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0837,
            "assists": 0,
            "expected_goals": 0.0915,
            "rating": 6.7278,
            "minutes": 42,
            "total_pass": 17,
            "accurate_pass": 15,
            "duels_won": 2,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 13,
            "accurate_opp_half_passes": 12,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 24,
            "possession_lost": 3.9368,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 6,
            "total_progression": 22,
            "progressive_carries": 0,
            "total_shots": 2,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 31.9,
            "pointsPerMatch": 0.5,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 3,
            "dribbles_successful": 0.8,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.301,
            "pressing_faced": "LOW",
            "matchup_zone": "CAM vs CM + CDM",
            "numerical_situation": "1v2",
            "opponent_defenders": "Tyrhys Dolan, Gabriel Moscardo",
            "opponent_faced": "Tyrhys Dolan, Gabriel Moscardo",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 26,
                "rating": 6.3,
                "assists": 0,
                "expected_goals": 0.0174,
                "expected_assists": 0.0012,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 11,
                "accurate_pass": 8,
                "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": 16421050.0,
              "match_date": "2026-08-17",
              "home_team": "Deportivo de A Coruña",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 60,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.1036,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 23,
                "key_pass": 2,
                "tackles": 1,
                "interceptions": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4398,
            "combined_rank_score": 2419.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 575.0,
            "sofascore_rating": 6.804,
            "sofascore_appearances": 25.0,
            "fifa_rank": 4263.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "starter",
            "projected_match_rating": 6.7278,
            "source_file": "data/player_rankings.csv",
            "player_name": "Martim Neto",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Marc Guiu",
                  "ranking": 4393
                },
                {
                  "player_name": "Emanuel Coronel",
                  "ranking": 4394
                },
                {
                  "player_name": "Joe Worrall",
                  "ranking": 4395
                },
                {
                  "player_name": "Ibrahim Osman",
                  "ranking": 4396
                },
                {
                  "player_name": "Karl Edouard Etta Eyong",
                  "ranking": 4397
                }
              ],
              "lower": [
                {
                  "player_name": "Embarba",
                  "ranking": 4399
                },
                {
                  "player_name": "Justo Giani",
                  "ranking": 4400
                },
                {
                  "player_name": "Francés",
                  "ranking": 4401
                },
                {
                  "player_name": "Florin Tănase",
                  "ranking": 4402
                },
                {
                  "player_name": "Víctor García",
                  "ranking": 4403
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.385,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.385,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9842,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 1.0,
              "minutes": 86.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 1.05,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.0667
            },
            "rationale": "XGBoost regressor (M_service) evaluated 2 historical appearances across 5 target models; FBref 2026-2027 prior blended (La Liga, Elche, rel: 0.07, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.085,
                "assists": 0,
                "expected_goals": 0.0722,
                "rating": 6.8358,
                "minutes": 43,
                "total_pass": 18,
                "accurate_pass": 16,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 12,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 4.0,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 23,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-17",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 60.0,
                    "is_starting": true,
                    "weight": 0.4595,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 0.6892,
                  "ballRecovery": 0.4595,
                  "intensity_index": 5.1545,
                  "expectedAssists": 0.0482,
                  "kilometersCovered": 5.2897
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.805997908115387,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.068
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.062
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0544
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0488
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0222
                        }
                      ],
                      "others": -0.0317,
                      "total": 0.806
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.08501835912466049,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.014
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0106
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0056
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.005
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0043
                        }
                      ],
                      "others": 0.0036,
                      "total": 0.085
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08335163444280624,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0062
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0055
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0029
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0024
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0024
                        }
                      ],
                      "others": -0.0034,
                      "total": 0.0834
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.07218268513679504,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0176
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0117
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0062
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0061
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0058
                        }
                      ],
                      "others": -0.0131,
                      "total": 0.0722
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.835764408111572,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0232
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0212
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0208
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.019
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0181
                        }
                      ],
                      "others": -0.0157,
                      "total": 6.8358
                    }
                  }
                ],
                "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.9842, quality 0.447)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0837,
                "assists": 0,
                "expected_goals": 0.071,
                "rating": 6.7278,
                "minutes": 42,
                "total_pass": 17,
                "accurate_pass": 15,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 12,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 3.9368,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 3800000,
                "quality_factor": 0.4474,
                "boost_factor": 0.9842
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0310)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0837,
                "assists": 0,
                "expected_goals": 0.071,
                "rating": 6.7278,
                "minutes": 42,
                "total_pass": 17,
                "accurate_pass": 15,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 12,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 3.9368,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 31.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": -4.19
              },
              "params": {
                "blend_weight": 0.031,
                "history_matches": 2,
                "prior_reliability": 0.0667,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0619
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.031
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.031
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.031
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0837,
                "assists": 0,
                "expected_goals": 0.071,
                "rating": 6.7278,
                "minutes": 42,
                "total_pass": 17,
                "accurate_pass": 15,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 12,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 3.9368,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 31.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0837,
                "assists": 0,
                "expected_goals": 0.071,
                "rating": 6.7278,
                "minutes": 42,
                "total_pass": 17,
                "accurate_pass": 15,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 12,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 3.9368,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 0,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 31.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.301,
                "pressing_faced": "LOW",
                "matchup_zone": "CAM vs CM + CDM",
                "numerical_situation": "1v2",
                "opponent_defenders": "Tyrhys Dolan, Gabriel Moscardo",
                "opponent_faced": "Tyrhys Dolan, Gabriel Moscardo",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Tyrhys Dolan, Gabriel Moscardo",
                  "matchup_zone": "CAM vs CM + CDM",
                  "duel_win_rate": 0.301,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.2
                },
                {
                  "stat": "totalShots",
                  "before": 1.05,
                  "after": 1.8
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0837,
                "assists": 0,
                "expected_goals": 0.0915,
                "rating": 6.7278,
                "minutes": 42,
                "total_pass": 17,
                "accurate_pass": 15,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 12,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 3.9368,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 0,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 31.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.301,
                "pressing_faced": "LOW",
                "matchup_zone": "CAM vs CM + CDM",
                "numerical_situation": "1v2",
                "opponent_defenders": "Tyrhys Dolan, Gabriel Moscardo",
                "opponent_faced": "Tyrhys Dolan, Gabriel Moscardo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.071,
                  "after": 0.0915
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 7, fifa_overall 72.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0837,
                "assists": 0,
                "expected_goals": 0.0915,
                "rating": 6.7278,
                "minutes": 42,
                "total_pass": 17,
                "accurate_pass": 15,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 12,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 3.9368,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 0,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 31.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.301,
                "pressing_faced": "LOW",
                "matchup_zone": "CAM vs CM + CDM",
                "numerical_situation": "1v2",
                "opponent_defenders": "Tyrhys Dolan, Gabriel Moscardo",
                "opponent_faced": "Tyrhys Dolan, Gabriel Moscardo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 7,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4398,
                "fifa_rank": 4263.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 72.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0837,
                "assists": 0,
                "expected_goals": 0.0915,
                "rating": 6.7278,
                "minutes": 42,
                "total_pass": 17,
                "accurate_pass": 15,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 12,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 3.9368,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 0,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 31.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.301,
                "pressing_faced": "LOW",
                "matchup_zone": "CAM vs CM + CDM",
                "numerical_situation": "1v2",
                "opponent_defenders": "Tyrhys Dolan, Gabriel Moscardo",
                "opponent_faced": "Tyrhys Dolan, Gabriel Moscardo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.529,
                "squad_weight_total": 6.1631,
                "weight_share": 0.0858,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0837,
                "assists": 0,
                "expected_goals": 0.0915,
                "rating": 6.7278,
                "minutes": 42,
                "total_pass": 17,
                "accurate_pass": 15,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 12,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 3.9368,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 0,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 31.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.301,
                "pressing_faced": "LOW",
                "matchup_zone": "CAM vs CM + CDM",
                "numerical_situation": "1v2",
                "opponent_defenders": "Tyrhys Dolan, Gabriel Moscardo",
                "opponent_faced": "Tyrhys Dolan, Gabriel Moscardo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 1.3247,
                "squad_weight_total": 8.5227,
                "weight_share": 0.1554,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Marc Aguado": {
          "player_id": 1014595,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 8,
          "height": 178,
          "market_value": 3700000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.048,
            "assists": 0,
            "expected_goals": 0.0463,
            "rating": 6.6981,
            "minutes": 65,
            "total_pass": 37,
            "accurate_pass": 34,
            "duels_won": 2,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 19,
            "accurate_own_half_passes": 18,
            "total_opp_half_passes": 18,
            "accurate_opp_half_passes": 15,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 41,
            "possession_lost": 3.9353,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 1,
            "goal_rate": 0.0271,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 8,
            "total_progression": 21,
            "progressive_carries": 0,
            "total_shots": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 100.0,
            "shotConversion": 1.0,
            "minutesPct": 73.3,
            "pointsPerMatch": 0.33,
            "netGoalDifferencePer90": 0.0,
            "opponent_faced": "Javi Puado",
            "matchup_zone": "Midfield lane",
            "antagonist_source": "midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 45,
                "rating": 6.1,
                "assists": 0,
                "expected_assists": 0.0032,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 22,
                "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": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 64,
                "rating": 6.5,
                "assists": 0,
                "expected_assists": 0.0029,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 21,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421050.0,
              "match_date": "2026-08-17",
              "home_team": "Deportivo de A Coruña",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 7.7,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.0451,
                "expected_assists": 0.0112,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 65,
                "accurate_pass": 60,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3479,
            "combined_rank_score": 1468.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 44.0,
            "sofascore_rating": 7.8,
            "sofascore_appearances": 1.0,
            "fifa_rank": 2893.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "starter",
            "projected_match_rating": 6.6981,
            "source_file": "data/player_rankings.csv",
            "player_name": "Marc Aguado",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Etta Eyong",
                  "ranking": 3474
                },
                {
                  "player_name": "Thilo Kehrer",
                  "ranking": 3475
                },
                {
                  "player_name": "Takumi Minamino",
                  "ranking": 3476
                },
                {
                  "player_name": "Dani Cárdenas",
                  "ranking": 3477
                },
                {
                  "player_name": "Pierre Lees-Melou",
                  "ranking": 3478
                }
              ],
              "lower": [
                {
                  "player_name": "Angel Gomes",
                  "ranking": 3480
                },
                {
                  "player_name": "Jonathan Clauss",
                  "ranking": 3481
                },
                {
                  "player_name": "Philipp Köhn",
                  "ranking": 3482
                },
                {
                  "player_name": "Leandro González Pírez",
                  "ranking": 3483
                },
                {
                  "player_name": "Mahdi Camara",
                  "ranking": 3484
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.46,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.46,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9838,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 198.0,
              "goals_per90": 0.4545454545454545,
              "assists_per90": 0.0,
              "shots_per90": 0.45,
              "shots_on_target_pct": 100.0,
              "prior_reliability": 0.1467
            },
            "rationale": "XGBoost regressor (M_service) evaluated 3 historical appearances across 5 target models; FBref 2026-2027 prior blended (La Liga, Elche, rel: 0.15, gls/90: 0.4545454545454545, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0488,
                "assists": 0,
                "expected_goals": 0.0365,
                "rating": 6.8082,
                "minutes": 66,
                "total_pass": 38,
                "accurate_pass": 34,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 19,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 16,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 4.0,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 22,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Real Racing Club",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-17",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 7.7
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 4.1693,
                  "ballRecovery": 3.1234,
                  "intensity_index": 6.902,
                  "expectedAssists": 0.0053,
                  "kilometersCovered": 7.8188
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.7050034999847412,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0738
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0607
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0533
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0457
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0284
                        }
                      ],
                      "others": -0.1236,
                      "total": 0.705
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.048794716596603394,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0156
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0064
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0058
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0036
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0032
                        }
                      ],
                      "others": -0.0159,
                      "total": 0.0488
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.0626928061246872,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0075
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0058
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0049
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0046
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0018
                        }
                      ],
                      "others": -0.0119,
                      "total": 0.0627
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.036539915949106216,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0284
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0147
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0099
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0066
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0025
                        }
                      ],
                      "others": -0.0101,
                      "total": 0.0365
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.808154106140137,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0272
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0234
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0192
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0171
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0147
                        }
                      ],
                      "others": -0.0106,
                      "total": 6.8082
                    }
                  }
                ],
                "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.9838, quality 0.446)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.048,
                "assists": 0,
                "expected_goals": 0.0359,
                "rating": 6.6981,
                "minutes": 65,
                "total_pass": 37,
                "accurate_pass": 34,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 19,
                "accurate_own_half_passes": 18,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 3.9353,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 21,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 3700000,
                "quality_factor": 0.4461,
                "boost_factor": 0.9838
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0596)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.048,
                "assists": 0,
                "expected_goals": 0.0359,
                "rating": 6.6981,
                "minutes": 65,
                "total_pass": 37,
                "accurate_pass": 34,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 19,
                "accurate_own_half_passes": 18,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 3.9353,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "goal_rate": 0.0271,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 21,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 1.0,
                "minutesPct": 73.3,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": -2.27
              },
              "params": {
                "blend_weight": 0.0596,
                "history_matches": 3,
                "prior_reliability": 0.1467,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "goals",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0268
                },
                {
                  "stat": "wasFouled",
                  "before": 0.9838,
                  "after": 1.0064
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.048,
                "assists": 0,
                "expected_goals": 0.0359,
                "rating": 6.6981,
                "minutes": 65,
                "total_pass": 37,
                "accurate_pass": 34,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 19,
                "accurate_own_half_passes": 18,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 3.9353,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "goal_rate": 0.0271,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 21,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 1.0,
                "minutesPct": 73.3,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.048,
                "assists": 0,
                "expected_goals": 0.0359,
                "rating": 6.6981,
                "minutes": 65,
                "total_pass": 37,
                "accurate_pass": 34,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 19,
                "accurate_own_half_passes": 18,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 3.9353,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "goal_rate": 0.0271,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 21,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 1.0,
                "minutesPct": 73.3,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Javi Puado",
                "matchup_zone": "Midfield lane",
                "antagonist_source": "midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Javi Puado",
                  "matchup_zone": "Midfield lane"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.048,
                "assists": 0,
                "expected_goals": 0.0463,
                "rating": 6.6981,
                "minutes": 65,
                "total_pass": 37,
                "accurate_pass": 34,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 19,
                "accurate_own_half_passes": 18,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 3.9353,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "goal_rate": 0.0271,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 21,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 1.0,
                "minutesPct": 73.3,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Javi Puado",
                "matchup_zone": "Midfield lane",
                "antagonist_source": "midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0359,
                  "after": 0.0463
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 9, fifa_overall 74.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.048,
                "assists": 0,
                "expected_goals": 0.0463,
                "rating": 6.6981,
                "minutes": 65,
                "total_pass": 37,
                "accurate_pass": 34,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 19,
                "accurate_own_half_passes": 18,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 3.9353,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "goal_rate": 0.0271,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 21,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 1.0,
                "minutesPct": 73.3,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Javi Puado",
                "matchup_zone": "Midfield lane",
                "antagonist_source": "midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3479,
                "fifa_rank": 2893.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.048,
                "assists": 0,
                "expected_goals": 0.0463,
                "rating": 6.6981,
                "minutes": 65,
                "total_pass": 37,
                "accurate_pass": 34,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 19,
                "accurate_own_half_passes": 18,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 3.9353,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "goal_rate": 0.0271,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 21,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 1.0,
                "minutesPct": 73.3,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Javi Puado",
                "matchup_zone": "Midfield lane",
                "antagonist_source": "midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.2938,
                "squad_weight_total": 6.1631,
                "weight_share": 0.0477,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.048,
                "assists": 0,
                "expected_goals": 0.0463,
                "rating": 6.6981,
                "minutes": 65,
                "total_pass": 37,
                "accurate_pass": 34,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 19,
                "accurate_own_half_passes": 18,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 3.9353,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "goal_rate": 0.0271,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 21,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 1.0,
                "minutesPct": 73.3,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Javi Puado",
                "matchup_zone": "Midfield lane",
                "antagonist_source": "midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 1.1552,
                "squad_weight_total": 8.5227,
                "weight_share": 0.1355,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Lucas Cepeda": {
          "player_id": 1126447,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 21,
          "height": 177,
          "market_value": 2600000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.1392,
            "assists": 0,
            "expected_goals": 0.1175,
            "rating": 6.8895,
            "minutes": 24,
            "total_pass": 18,
            "accurate_pass": 17,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 15,
            "accurate_opp_half_passes": 13,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 25,
            "possession_lost": 4.1702,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 13,
            "total_progression": 81,
            "progressive_carries": 2,
            "total_shots": 2,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 40.0,
            "shotConversion": 0.0,
            "minutesPct": 29.6,
            "pointsPerMatch": 0.33,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 3,
            "dribbles_successful": 0.9,
            "crosses_attempted": 1.9,
            "duel_win_rate": 0.343,
            "pressing_faced": "LOW",
            "matchup_zone": "Right Wing vs Left Wingback — Compact Flank",
            "numerical_situation": "1v1",
            "opponent_defenders": "Urko González",
            "opponent_faced": "Urko González",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 71.0
          },
          "latest_10_games": [
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 20,
                "rating": 7.4,
                "assists": 0,
                "expected_goals": 0.0396,
                "expected_assists": 0.2531,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 28,
                "accurate_pass": 26,
                "key_pass": 2,
                "tackles": 1,
                "interceptions": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 21,
                "rating": 6.5,
                "assists": 1,
                "expected_goals": 0.0794,
                "expected_assists": 0.0246,
                "total_shots": 3,
                "shots_on_target": 1,
                "total_pass": 19,
                "accurate_pass": 17,
                "key_pass": 1,
                "interceptions": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 26,
                "rating": 6.8,
                "assists": 0,
                "expected_goals": 0.0393,
                "expected_assists": 0.019,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 9,
                "accurate_pass": 9,
                "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": 16421050.0,
              "match_date": "2026-08-17",
              "home_team": "Deportivo de A Coruña",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 30,
                "rating": 6.4,
                "assists": 0,
                "expected_goals": 0.0388,
                "expected_assists": 0.0056,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 19,
                "accurate_pass": 17,
                "interceptions": 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": 4708,
            "combined_rank_score": 2795.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 568.0,
            "sofascore_rating": 6.81,
            "sofascore_appearances": 10.0,
            "fifa_rank": 5022.0,
            "fifa_overall": 71.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "starter",
            "projected_match_rating": 6.8895,
            "source_file": "data/player_rankings.csv",
            "player_name": "Lucas Cepeda",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Aaron Zehnter",
                  "ranking": 4703
                },
                {
                  "player_name": "Patric",
                  "ranking": 4704
                },
                {
                  "player_name": "Carlos Lampe",
                  "ranking": 4705
                },
                {
                  "player_name": "Daniele Rugani",
                  "ranking": 4706
                },
                {
                  "player_name": "Sondre Fet",
                  "ranking": 4707
                }
              ],
              "lower": [
                {
                  "player_name": "Pierluigi Gollini",
                  "ranking": 4709
                },
                {
                  "player_name": "Lassana Coulibaly",
                  "ranking": 4710
                },
                {
                  "player_name": "Jesper Karlsson",
                  "ranking": 4711
                },
                {
                  "player_name": "Deyverson",
                  "ranking": 4712
                },
                {
                  "player_name": "Dany Mota",
                  "ranking": 4713
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.509,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.509,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 0.0,
              "minutes": 80.0,
              "goals_per90": 0.0,
              "assists_per90": 1.1111111111111112,
              "shots_per90": 5.63,
              "shots_on_target_pct": 40.0,
              "prior_reliability": 0.06
            },
            "rationale": "XGBoost regressor (M_service) evaluated 4 historical appearances across 5 target models; FBref 2026-2027 prior blended (La Liga, Elche, rel: 0.06, gls/90: 0.0, ast/90: 1.1111111111111112)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1418,
                "assists": 0,
                "expected_goals": 0.0929,
                "rating": 7.0213,
                "minutes": 24,
                "total_pass": 19,
                "accurate_pass": 17,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 14,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 26,
                "possession_lost": 4.25,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 82,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Real Sociedad",
                    "minutes": 20.0,
                    "is_starting": false,
                    "weight": 0.3138,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Real Racing Club",
                    "minutes": 21.0,
                    "is_starting": false,
                    "weight": 0.2667,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.2267,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-17",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 30.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 4.125,
                  "ballRecovery": 1.034,
                  "intensity_index": 3.9553,
                  "expectedAssists": 0.0914,
                  "kilometersCovered": 3.1966
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.405659556388855,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.1029
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.075
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0686
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0684
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0649
                        }
                      ],
                      "others": 0.194,
                      "total": 1.4057
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.141842782497406,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0162
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0145
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0118
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0086
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0068
                        }
                      ],
                      "others": 0.0082,
                      "total": 0.1418
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07705237716436386,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0063
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0048
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0023
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0022
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.002
                        }
                      ],
                      "others": -0.0009,
                      "total": 0.0771
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.09291127324104309,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "intensity_index",
                          "contribution": -0.0164
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0097
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0072
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0061
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0066
                        }
                      ],
                      "others": 0.0048,
                      "total": 0.0929
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.021327018737793,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.025
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.023
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0228
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.02
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0186
                        }
                      ],
                      "others": 0.0801,
                      "total": 7.0213
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9812, quality 0.437)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1392,
                "assists": 0,
                "expected_goals": 0.0912,
                "rating": 6.8895,
                "minutes": 24,
                "total_pass": 18,
                "accurate_pass": 17,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 25,
                "possession_lost": 4.1702,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 81,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 2600000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0217)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1392,
                "assists": 0,
                "expected_goals": 0.0912,
                "rating": 6.8895,
                "minutes": 24,
                "total_pass": 18,
                "accurate_pass": 17,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 25,
                "possession_lost": 4.1702,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 81,
                "progressive_carries": 2,
                "total_shots": 6,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.0,
                "minutesPct": 29.6,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0217,
                "history_matches": 4,
                "prior_reliability": 0.06,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 1.7172,
                  "after": 1.8244
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0722
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0488
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "goalAssist",
                  "before": 0.0756,
                  "after": 0.098
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1392,
                "assists": 0,
                "expected_goals": 0.0912,
                "rating": 6.8895,
                "minutes": 24,
                "total_pass": 18,
                "accurate_pass": 17,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 25,
                "possession_lost": 4.1702,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 81,
                "progressive_carries": 2,
                "total_shots": 6,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.0,
                "minutesPct": 29.6,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1392,
                "assists": 0,
                "expected_goals": 0.0912,
                "rating": 6.8895,
                "minutes": 24,
                "total_pass": 18,
                "accurate_pass": 17,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 25,
                "possession_lost": 4.1702,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 81,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.0,
                "minutesPct": 29.6,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.9,
                "crosses_attempted": 1.9,
                "duel_win_rate": 0.343,
                "pressing_faced": "LOW",
                "matchup_zone": "Right Wing vs Left Wingback — Compact Flank",
                "numerical_situation": "1v1",
                "opponent_defenders": "Urko González",
                "opponent_faced": "Urko González",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Urko González",
                  "matchup_zone": "Right Wing vs Left Wingback — Compact Flank",
                  "duel_win_rate": 0.343,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 5.63,
                  "after": 1.6
                },
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.0
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1392,
                "assists": 0,
                "expected_goals": 0.1175,
                "rating": 6.8895,
                "minutes": 24,
                "total_pass": 18,
                "accurate_pass": 17,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 25,
                "possession_lost": 4.1702,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 81,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.0,
                "minutesPct": 29.6,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.9,
                "crosses_attempted": 1.9,
                "duel_win_rate": 0.343,
                "pressing_faced": "LOW",
                "matchup_zone": "Right Wing vs Left Wingback — Compact Flank",
                "numerical_situation": "1v1",
                "opponent_defenders": "Urko González",
                "opponent_faced": "Urko González",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0912,
                  "after": 0.1175
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 11, fifa_overall 71.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1392,
                "assists": 0,
                "expected_goals": 0.1175,
                "rating": 6.8895,
                "minutes": 24,
                "total_pass": 18,
                "accurate_pass": 17,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 25,
                "possession_lost": 4.1702,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 81,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.0,
                "minutesPct": 29.6,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.9,
                "crosses_attempted": 1.9,
                "duel_win_rate": 0.343,
                "pressing_faced": "LOW",
                "matchup_zone": "Right Wing vs Left Wingback — Compact Flank",
                "numerical_situation": "1v1",
                "opponent_defenders": "Urko González",
                "opponent_faced": "Urko González",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 71.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4708,
                "fifa_rank": 5022.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 71.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1392,
                "assists": 0,
                "expected_goals": 0.1175,
                "rating": 6.8895,
                "minutes": 24,
                "total_pass": 18,
                "accurate_pass": 17,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 25,
                "possession_lost": 4.1702,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 81,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.0,
                "minutesPct": 29.6,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.9,
                "crosses_attempted": 1.9,
                "duel_win_rate": 0.343,
                "pressing_faced": "LOW",
                "matchup_zone": "Right Wing vs Left Wingback — Compact Flank",
                "numerical_situation": "1v1",
                "opponent_defenders": "Urko González",
                "opponent_faced": "Urko González",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.6047,
                "squad_weight_total": 6.1631,
                "weight_share": 0.0981,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1392,
                "assists": 0,
                "expected_goals": 0.1175,
                "rating": 6.8895,
                "minutes": 24,
                "total_pass": 18,
                "accurate_pass": 17,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 25,
                "possession_lost": 4.1702,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 81,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.0,
                "minutesPct": 29.6,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.9,
                "crosses_attempted": 1.9,
                "duel_win_rate": 0.343,
                "pressing_faced": "LOW",
                "matchup_zone": "Right Wing vs Left Wingback — Compact Flank",
                "numerical_situation": "1v1",
                "opponent_defenders": "Urko González",
                "opponent_faced": "Urko González",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 1.6308,
                "squad_weight_total": 8.5227,
                "weight_share": 0.1913,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Ezequiel Ponce": {
          "player_id": 356444,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 9,
          "height": 178,
          "market_value": 3600000,
          "stats": {
            "expected_goals": 0.0934,
            "goal_rate": 0.1028,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0291,
            "key_pass": 1,
            "rating": 6.5811,
            "minutes": 40,
            "total_pass": 8,
            "accurate_pass": 7,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 13,
            "possession_lost": 2.9504,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 3,
            "total_progression": 4,
            "progressive_carries": 0,
            "total_shots": 2,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 50.0,
            "shotConversion": 0.0,
            "minutesPct": 24.8,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.18,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Omar El Hilali, Vanja Drkušić",
            "opponent_faced": "Omar El Hilali, Vanja Drkušić",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 55,
                "rating": 6.4,
                "assists": 0,
                "expected_goals": 0.1102,
                "expected_assists": 0.0028,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 13,
                "accurate_pass": 11,
                "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": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 45,
                "rating": 6.8,
                "assists": 0,
                "expected_goals": 0.0212,
                "expected_assists": 0.0395,
                "total_shots": 1,
                "total_pass": 5,
                "accurate_pass": 4,
                "tackles": 1,
                "aerial_won": 3,
                "duels_won": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 21,
                "rating": 6.9,
                "assists": 0,
                "expected_goals": 0.0717,
                "expected_assists": 0.0452,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 5,
                "accurate_pass": 5,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4342,
            "combined_rank_score": 2357.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 511.0,
            "sofascore_rating": 6.85,
            "sofascore_appearances": 2.0,
            "fifa_rank": 4203.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "starter",
            "projected_match_rating": 6.5811,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ezequiel Ponce",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jay Idzes",
                  "ranking": 4337
                },
                {
                  "player_name": "Obed Vargas",
                  "ranking": 4338
                },
                {
                  "player_name": "Mateo Joseph",
                  "ranking": 4339
                },
                {
                  "player_name": "Gabriel Moscardo",
                  "ranking": 4340
                },
                {
                  "player_name": "Akor Jerome Adams",
                  "ranking": 4341
                }
              ],
              "lower": [
                {
                  "player_name": "Anass Salah-Eddine",
                  "ranking": 4343
                },
                {
                  "player_name": "Fabio Miretti",
                  "ranking": 4344
                },
                {
                  "player_name": "Tommaso Baldanzi",
                  "ranking": 4345
                },
                {
                  "player_name": "Álex Valle",
                  "ranking": 4346
                },
                {
                  "player_name": "Jack Taylor",
                  "ranking": 4347
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.445,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.445,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9835,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "minutes": 67.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 2.69,
              "shots_on_target_pct": 50.0,
              "prior_reliability": 0.0467
            },
            "rationale": "XGBoost regressor (F_service) evaluated 3 historical appearances across 6 target models; FBref 2026-2027 prior blended (La Liga, Elche, rel: 0.05, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1143,
                "goal_rate": 0.1066,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0296,
                "key_pass": 1,
                "rating": 6.6918,
                "minutes": 40,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 3.0,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 4,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Real Sociedad",
                    "minutes": 55.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Real Racing Club",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.3304,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 21.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.9
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 0.2809,
                  "totalShots": 1.0,
                  "minutesPlayed": 42.1467,
                  "touches": 14.0019,
                  "dribbleValueNormalized": 0.038
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.11427409946918488,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.061
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0243
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0193
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0148
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0121
                        }
                      ],
                      "others": -0.0785,
                      "total": 0.1143
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.1065787822008133,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0735
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.052
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0347
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.026
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0094
                        }
                      ],
                      "others": -0.0433,
                      "total": 0.1066
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.4546899199485779,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0487
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0399
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0264
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0174
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0142
                        }
                      ],
                      "others": -0.0664,
                      "total": 0.4547
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.029580704867839813,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0075
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0053
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0038
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0032
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0029
                        }
                      ],
                      "others": -0.0056,
                      "total": 0.0296
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.5719944834709167,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1238
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0551
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0428
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0386
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0353
                        }
                      ],
                      "others": -0.1485,
                      "total": 0.572
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.691803455352783,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0485
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.039
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0386
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0278
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0277
                        }
                      ],
                      "others": 0.0074,
                      "total": 6.6918
                    }
                  }
                ],
                "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.9835, quality 0.445)",
              "stats": {
                "expected_goals": 0.1124,
                "goal_rate": 0.1048,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0291,
                "key_pass": 1,
                "rating": 6.5811,
                "minutes": 40,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.9504,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 4,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 3600000,
                "quality_factor": 0.4449,
                "boost_factor": 0.9835
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0190)",
              "stats": {
                "expected_goals": 0.1124,
                "goal_rate": 0.1028,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0291,
                "key_pass": 1,
                "rating": 6.5811,
                "minutes": 40,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.9504,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 4,
                "progressive_carries": 0,
                "total_shots": 3,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 24.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.019,
                "history_matches": 3,
                "prior_reliability": 0.0467,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0813
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "totalOffside",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.4472,
                  "after": 0.4641
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.1124,
                "goal_rate": 0.1028,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0291,
                "key_pass": 1,
                "rating": 6.5811,
                "minutes": 40,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.9504,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 4,
                "progressive_carries": 0,
                "total_shots": 3,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 24.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "expected_goals": 0.0725,
                "goal_rate": 0.1028,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0291,
                "key_pass": 1,
                "rating": 6.5811,
                "minutes": 40,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.9504,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 4,
                "progressive_carries": 0,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 24.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Omar El Hilali, Vanja Drkušić",
                "opponent_faced": "Omar El Hilali, Vanja Drkušić",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Omar El Hilali, Vanja Drkušić",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.18,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_override": 0.0725
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.69,
                  "after": 2.0
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1124,
                  "after": 0.0725
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "expected_goals": 0.0934,
                "goal_rate": 0.1028,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0291,
                "key_pass": 1,
                "rating": 6.5811,
                "minutes": 40,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.9504,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 4,
                "progressive_carries": 0,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 24.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Omar El Hilali, Vanja Drkušić",
                "opponent_faced": "Omar El Hilali, Vanja Drkušić",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0725,
                  "after": 0.0934
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 10, fifa_overall 72.0)",
              "stats": {
                "expected_goals": 0.0934,
                "goal_rate": 0.1028,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0291,
                "key_pass": 1,
                "rating": 6.5811,
                "minutes": 40,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.9504,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 4,
                "progressive_carries": 0,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 24.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Omar El Hilali, Vanja Drkušić",
                "opponent_faced": "Omar El Hilali, Vanja Drkušić",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 10,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4342,
                "fifa_rank": 4203.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 72.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.0934,
                "goal_rate": 0.1028,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0291,
                "key_pass": 1,
                "rating": 6.5811,
                "minutes": 40,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.9504,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 4,
                "progressive_carries": 0,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 24.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Omar El Hilali, Vanja Drkušić",
                "opponent_faced": "Omar El Hilali, Vanja Drkušić",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 1.3808,
                "squad_weight_total": 6.1631,
                "weight_share": 0.224,
                "position_multiplier": 1.45
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.0934,
                "goal_rate": 0.1028,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0291,
                "key_pass": 1,
                "rating": 6.5811,
                "minutes": 40,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.9504,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 4,
                "progressive_carries": 0,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 24.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Omar El Hilali, Vanja Drkušić",
                "opponent_faced": "Omar El Hilali, Vanja Drkušić",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.593,
                "squad_weight_total": 8.5227,
                "weight_share": 0.0696,
                "position_multiplier": 0.85
              }
            }
          ]
        }
      },
      "bench_players": {
        "Matías Dituro": {
          "player_id": 556884,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 1,
          "height": 191,
          "market_value": 105000,
          "stats": {
            "saves": 0,
            "goals_prevented": 0.0,
            "rating": 7.0669,
            "minutes": 4,
            "total_pass": 2,
            "accurate_pass": 2,
            "duels_won": 0,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "touches": 3,
            "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.6584,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 2,
            "accurate_own_half_passes": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "total_shots": 0,
            "shots_on_target": 0,
            "goalsAgainst": 3.0,
            "shotsOnTargetAgainst": 5.3333,
            "cleanSheets": 0.0,
            "interceptions": 0,
            "tackles_won": 0,
            "crosses_total": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "penaltySave": 0.0,
            "ownGoals": 0.0,
            "savePct": 43.8,
            "cleanSheetPct": 0.0,
            "minutesPct": 100.0,
            "pointsPerMatch": 0.33,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.131,
            "bench_expected_minutes": 4.39,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.03,
            "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": 76.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416322.0,
              "match_date": "2026-09-12 16:30:00 UTC",
              "league_name": "LaLiga",
              "league_id": 8.0,
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": 97268.0,
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "home_score_current": 1.0,
              "away_score_current": 1.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Elche",
              "opponent": "Athletic Club",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 5.8,
                "assists": 0,
                "expected_assists": 0.0042,
                "total_shots": 0,
                "total_pass": 41,
                "accurate_pass": 32,
                "clearances": 1,
                "ball_recovery": 7,
                "saves": 3,
                "goals_prevented": -1.4831
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0035,
                "total_shots": 0,
                "total_pass": 35,
                "accurate_pass": 25,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 11,
                "saves": 3,
                "goals_prevented": -0.816
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 90,
                "rating": 5.7,
                "assists": 0,
                "expected_assists": 0.0022,
                "total_shots": 0,
                "total_pass": 52,
                "accurate_pass": 34,
                "ball_recovery": 10,
                "saves": 2,
                "goals_prevented": -0.6783
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421050.0,
              "match_date": "2026-08-17",
              "home_team": "Deportivo de A Coruña",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assists": 0,
                "expected_assists": 0.0014,
                "total_shots": 0,
                "total_pass": 56,
                "accurate_pass": 40,
                "ball_recovery": 6,
                "saves": 2,
                "goals_prevented": -0.7246
              },
              "has_player_stats": true,
              "league_name": "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": 3074,
            "combined_rank_score": 1043.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 134.0,
            "sofascore_rating": 7.3636,
            "sofascore_appearances": 22.0,
            "fifa_rank": 1952.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "projected_match_rating": 7.0669,
            "source_file": "data/player_rankings.csv",
            "player_name": "Matías Dituro",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Arnaud Kalimuendo",
                  "ranking": 3069
                },
                {
                  "player_name": "Karl Darlow",
                  "ranking": 3070
                },
                {
                  "player_name": "Habib Diarra",
                  "ranking": 3071
                },
                {
                  "player_name": "Jaidon Anthony",
                  "ranking": 3072
                },
                {
                  "player_name": "Alex Arce",
                  "ranking": 3073
                }
              ],
              "lower": [
                {
                  "player_name": "Liam Delap",
                  "ranking": 3075
                },
                {
                  "player_name": "Leopold Querfeld",
                  "ranking": 3076
                },
                {
                  "player_name": "Daizen Maeda",
                  "ranking": 3077
                },
                {
                  "player_name": "Javi Galán",
                  "ranking": 3078
                },
                {
                  "player_name": "Matt O'Riley",
                  "ranking": 3079
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.53,
          "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.53,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 4.392222187561249,
            "bench_appearance_prob": 0.131,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "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 G_service (4 historical appearances) to 4.4 expected mins (appearance prob 0.13); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost G_service raw output over 3 target models",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.2021,
                "minutes": 90,
                "total_pass": 46,
                "accurate_pass": 33,
                "duels_won": 0,
                "total_long_balls": 22,
                "accurate_long_balls": 9,
                "touches": 56,
                "clearances": 0,
                "ball_recovery": 8,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 13.75,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 32,
                "accurate_own_half_passes": 28
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:40.064367+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 113,
                    "rows": 393
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 5.8
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 5.7
                  },
                  {
                    "match_date": "2026-08-17",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 6.2
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "sweeper_actions_p90": 0.6862,
                  "touches": 54.621,
                  "totalOwnHalfPasses": 31.2206,
                  "punches": 0.3138,
                  "distribution_accuracy": 0.8999,
                  "accurateKeeperSweeper": 0.6862
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 2.8310775756835938,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0587
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0534
                      },
                      {
                        "name": "touches",
                        "importance": 0.0497
                      },
                      {
                        "name": "totalOwnHalfPasses",
                        "importance": 0.049
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.043
                      }
                    ],
                    "decomposition": {
                      "base": 2.9806,
                      "items": [
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.1243
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": -0.05
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": -0.0314
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0218
                        },
                        {
                          "name": "accurateKeeperSweeper",
                          "contribution": -0.0196
                        }
                      ],
                      "others": 0.054,
                      "total": 2.8311
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": 0.0,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.053
                      },
                      {
                        "name": "punches",
                        "importance": 0.051
                      },
                      {
                        "name": "touches",
                        "importance": 0.0482
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0468
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0432
                      }
                    ],
                    "decomposition": {
                      "base": -0.0536,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0775
                        },
                        {
                          "name": "commanding_index",
                          "contribution": -0.0476
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0424
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.0388
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0314
                        }
                      ],
                      "others": -0.0043,
                      "total": -0.0778
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.202098846435547,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0593
                      },
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.0484
                      },
                      {
                        "name": "savedShotsFromInsideTheBox",
                        "importance": 0.0468
                      },
                      {
                        "name": "punches",
                        "importance": 0.0464
                      }
                    ],
                    "decomposition": {
                      "base": 7.0716,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.1283
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0882
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.0733
                        },
                        {
                          "name": "commanding_index",
                          "contribution": -0.0615
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0365
                        }
                      ],
                      "others": 0.0123,
                      "total": 7.2021
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9812, quality 0.437)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.0669,
                "minutes": 88,
                "total_pass": 45,
                "accurate_pass": 32,
                "duels_won": 0,
                "total_long_balls": 21,
                "accurate_long_balls": 9,
                "touches": 54,
                "clearances": 0,
                "ball_recovery": 8,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 13.4919,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 31,
                "accurate_own_half_passes": 28
              },
              "params": {
                "market_value_eur": 105000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0722)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.0669,
                "minutes": 88,
                "total_pass": 45,
                "accurate_pass": 32,
                "duels_won": 0,
                "total_long_balls": 21,
                "accurate_long_balls": 9,
                "touches": 54,
                "clearances": 0,
                "ball_recovery": 8,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 13.4919,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 31,
                "accurate_own_half_passes": 28,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 3.0,
                "shotsOnTargetAgainst": 5.3333,
                "cleanSheets": 0.0,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 43.8,
                "cleanSheetPct": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": -2.0
              },
              "params": {
                "blend_weight": 0.0722,
                "history_matches": 4,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "saves",
                  "before": 2.7779,
                  "after": 2.7458
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 4.4 expected minutes (appearance prob 0.13)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.0,
                "rating": 7.0669,
                "minutes": 4,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 0,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "touches": 3,
                "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.6584,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 3.0,
                "shotsOnTargetAgainst": 5.3333,
                "cleanSheets": 0.0,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 43.8,
                "cleanSheetPct": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.131,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "expected_minutes": 4.39,
                "appearance_probability": 0.131
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.0,
                "rating": 7.0669,
                "minutes": 4,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 0,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "touches": 3,
                "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.6584,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 3.0,
                "shotsOnTargetAgainst": 5.3333,
                "cleanSheets": 0.0,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 43.8,
                "cleanSheetPct": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.131,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 18, fifa_overall 76.0)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.0,
                "rating": 7.0669,
                "minutes": 4,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 0,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "touches": 3,
                "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.6584,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 3.0,
                "shotsOnTargetAgainst": 5.3333,
                "cleanSheets": 0.0,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 43.8,
                "cleanSheetPct": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.131,
                "bench_expected_minutes": 4.39,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "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": 76.0
              },
              "params": {
                "match_squad_rank": 18,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3074,
                "fifa_rank": 1952.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 76.0
              }
            }
          ]
        },
        "David Affengruber": {
          "player_id": 988672,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 22,
          "height": 185,
          "market_value": 18100000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "rating": 6.7945,
            "minutes": 14,
            "total_pass": 12,
            "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": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 15,
            "possession_lost": 1.584,
            "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,
            "assists": 0,
            "expected_goals": 0.018,
            "expected_assists": 0.0033,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 4,
            "total_progression": 9,
            "progressive_carries": 0,
            "key_pass": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 100.0,
            "pointsPerMatch": 0.33,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.231,
            "bench_expected_minutes": 14.26,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.03,
            "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": 76.0
          },
          "latest_10_games": [
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "expected_goals": 0.1202,
                "expected_assists": 0.0362,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 77,
                "accurate_pass": 70,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 90,
                "rating": 5.1,
                "assists": 0,
                "expected_goals": 0.0761,
                "expected_assists": 0.0035,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 47,
                "accurate_pass": 37,
                "interceptions": 4,
                "clearances": 2,
                "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": 16421050.0,
              "match_date": "2026-08-17",
              "home_team": "Deportivo de A Coruña",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assists": 0,
                "expected_goals": 0.131,
                "expected_assists": 0.0108,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 88,
                "accurate_pass": 83,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 5,
                "duels_won": 5,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3203,
            "combined_rank_score": 1157.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 336.0,
            "sofascore_rating": 7.0,
            "sofascore_appearances": 1.0,
            "fifa_rank": 1979.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "substitute",
            "projected_match_rating": 6.7945,
            "source_file": "data/player_rankings.csv",
            "player_name": "David Affengruber",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "David Zima",
                  "ranking": 3198
                },
                {
                  "player_name": "Juan Iglesias",
                  "ranking": 3199
                },
                {
                  "player_name": "Thierno Barry",
                  "ranking": 3200
                },
                {
                  "player_name": "Tiago Palacios",
                  "ranking": 3201
                },
                {
                  "player_name": "Frederik Rønnow",
                  "ranking": 3202
                }
              ],
              "lower": [
                {
                  "player_name": "Kike Salas",
                  "ranking": 3204
                },
                {
                  "player_name": "Franck Honorat",
                  "ranking": 3205
                },
                {
                  "player_name": "Djibril Sow",
                  "ranking": 3206
                },
                {
                  "player_name": "Pepelu",
                  "ranking": 3207
                },
                {
                  "player_name": "Dayann Methalie",
                  "ranking": 3208
                }
              ]
            }
          },
          "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",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.467,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 14.26342464087466,
            "bench_appearance_prob": 0.231,
            "market_value_adjustment": 1.0336,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "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 14.3 expected mins (appearance prob 0.23); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "rating": 6.5737,
                "minutes": 90,
                "total_pass": 71,
                "accurate_pass": 63,
                "duels_won": 4,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "total_own_half_passes": 44,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 22,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 89,
                "possession_lost": 9.67,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "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,
                "assists": 0,
                "expected_goals": 0.11,
                "expected_assists": 0.02,
                "total_shots": 2,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 57,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 5.1
                  },
                  {
                    "match_date": "2026-08-17",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 7.0
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "accuratePass": 62.7473,
                  "touches_p90": 88.4169,
                  "possessionLostCtrl": 9.6025,
                  "totalClearance": 3.62,
                  "aerialWon": 1.1079
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.8264799118041992,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1791
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.047
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0258
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0212
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0134
                        }
                      ],
                      "others": -0.0126,
                      "total": 0.8265
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.0913875102996826,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.088
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0573
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0453
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0427
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.031
                        }
                      ],
                      "others": 0.0004,
                      "total": 1.0914
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.5397114157676697,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1355
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.055
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0442
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0413
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.0206
                        }
                      ],
                      "others": -0.0312,
                      "total": 0.5397
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.1744600534439087,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -1.8543
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1035
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0871
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0785
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0566
                        }
                      ],
                      "others": -0.2557,
                      "total": 1.1745
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.8618699908256531,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2874
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.038
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0362
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0299
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.022
                        }
                      ],
                      "others": -0.0427,
                      "total": 0.8619
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.573654651641846,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.08
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0611
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0458
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0291
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0247
                        }
                      ],
                      "others": 0.0441,
                      "total": 6.5737
                    }
                  }
                ],
                "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.0336, quality 0.612)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "rating": 6.7945,
                "minutes": 93,
                "total_pass": 73,
                "accurate_pass": 65,
                "duels_won": 4,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "total_own_half_passes": 45,
                "accurate_own_half_passes": 42,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 92,
                "possession_lost": 9.9948,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "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,
                "assists": 0,
                "expected_goals": 0.1137,
                "expected_assists": 0.0207,
                "total_shots": 2,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 24,
                "total_progression": 59,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 18100000,
                "quality_factor": 0.612,
                "boost_factor": 1.0336
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0813)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "rating": 6.7945,
                "minutes": 93,
                "total_pass": 73,
                "accurate_pass": 65,
                "duels_won": 4,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "total_own_half_passes": 45,
                "accurate_own_half_passes": 42,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 92,
                "possession_lost": 9.9948,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "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,
                "assists": 0,
                "expected_goals": 0.1137,
                "expected_assists": 0.0207,
                "total_shots": 2,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 24,
                "total_progression": 59,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": -2.0
              },
              "params": {
                "blend_weight": 0.0813,
                "history_matches": 3,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.1083
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.8542,
                  "after": 0.9202
                },
                {
                  "stat": "wonTackle",
                  "before": 0.5578,
                  "after": 0.5937
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0271
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 14.3 expected minutes (appearance prob 0.23)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.7945,
                "minutes": 14,
                "total_pass": 12,
                "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": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.584,
                "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,
                "assists": 0,
                "expected_goals": 0.018,
                "expected_assists": 0.0033,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 9,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.231,
                "bench_expected_minutes": 14.26
              },
              "params": {
                "expected_minutes": 14.26,
                "appearance_probability": 0.231
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.7945,
                "minutes": 14,
                "total_pass": 12,
                "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": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.584,
                "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,
                "assists": 0,
                "expected_goals": 0.018,
                "expected_assists": 0.0033,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 9,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.231,
                "bench_expected_minutes": 14.26
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 1, fifa_overall 76.0)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.7945,
                "minutes": 14,
                "total_pass": 12,
                "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": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.584,
                "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,
                "assists": 0,
                "expected_goals": 0.018,
                "expected_assists": 0.0033,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 9,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.231,
                "bench_expected_minutes": 14.26,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "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": 76.0
              },
              "params": {
                "match_squad_rank": 1,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3203,
                "fifa_rank": 1979.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 76.0
              }
            }
          ]
        },
        "Rubén Sánchez": {
          "player_id": 1021165,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 2,
          "height": 184,
          "market_value": 1700000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "duels_won": 1,
            "total_pass": 6,
            "accurate_pass": 5,
            "expected_goals": 0.0024,
            "rating": 6.8,
            "minutes": 14,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 1,
            "accurate_opp_half_passes": 1,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 9,
            "possession_lost": 0.935,
            "dispossessed": 0.4,
            "duels_lost": 0,
            "aerial_lost": 2,
            "total_contest": 1,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_assists": 0.0068,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0018,
            "key_pass": 0,
            "ball_carries": 3,
            "total_progression": 8,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.299,
            "bench_expected_minutes": 13.57,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.03,
            "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": 71.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 4776,
            "combined_rank_score": 2855.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 679.0,
            "sofascore_rating": 6.719,
            "sofascore_appearances": 21.0,
            "fifa_rank": 5032.0,
            "fifa_overall": 71.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "substitute",
            "projected_match_rating": 6.8,
            "source_file": "data/player_rankings.csv",
            "player_name": "Rubén Sánchez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Nouhou Tolo",
                  "ranking": 4771
                },
                {
                  "player_name": "Djordje Mihailovic",
                  "ranking": 4772
                },
                {
                  "player_name": "Eduard Löwen",
                  "ranking": 4773
                },
                {
                  "player_name": "Riqui Puig",
                  "ranking": 4774
                },
                {
                  "player_name": "Matt Freese",
                  "ranking": 4775
                }
              ],
              "lower": [
                {
                  "player_name": "Facundo Torres",
                  "ranking": 4777
                },
                {
                  "player_name": "Nathan Harriel",
                  "ranking": 4778
                },
                {
                  "player_name": "Hong Seok-Hyun",
                  "ranking": 4779
                },
                {
                  "player_name": "Jack McGlynn",
                  "ranking": 4780
                },
                {
                  "player_name": "Luka Lochoshvili",
                  "ranking": 4781
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "D_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 13.572222187561248,
            "bench_appearance_prob": 0.2987373721618749,
            "market_value_adjustment": 0.4374,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€1,700,000) scaled to 13.6 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position D (quality 0.44)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 5,
                "total_pass": 42,
                "accurate_pass": 33,
                "expected_goals": 0.016,
                "rating": 6.8,
                "minutes": 90,
                "total_long_balls": 5,
                "accurate_long_balls": 3,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 6,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 58,
                "possession_lost": 6.2,
                "dispossessed": 0.4,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.045,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.012,
                "key_pass": 0,
                "ball_carries": 19,
                "total_progression": 56,
                "progressive_carries": 4
              },
              "params": {
                "market_value_eur": 1700000,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 13.6 expected minutes (appearance prob 0.30)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "duels_won": 1,
                "total_pass": 6,
                "accurate_pass": 5,
                "expected_goals": 0.0024,
                "rating": 6.8,
                "minutes": 14,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 0.935,
                "dispossessed": 0.4,
                "duels_lost": 0,
                "aerial_lost": 2,
                "total_contest": 1,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.0068,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0018,
                "key_pass": 0,
                "ball_carries": 3,
                "total_progression": 8,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57
              },
              "params": {
                "expected_minutes": 13.57,
                "appearance_probability": 0.299
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "duels_won": 1,
                "total_pass": 6,
                "accurate_pass": 5,
                "expected_goals": 0.0024,
                "rating": 6.8,
                "minutes": 14,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 0.935,
                "dispossessed": 0.4,
                "duels_lost": 0,
                "aerial_lost": 2,
                "total_contest": 1,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.0068,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0018,
                "key_pass": 0,
                "ball_carries": 3,
                "total_progression": 8,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 15, fifa_overall 71.0)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "duels_won": 1,
                "total_pass": 6,
                "accurate_pass": 5,
                "expected_goals": 0.0024,
                "rating": 6.8,
                "minutes": 14,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 0.935,
                "dispossessed": 0.4,
                "duels_lost": 0,
                "aerial_lost": 2,
                "total_contest": 1,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.0068,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0018,
                "key_pass": 0,
                "ball_carries": 3,
                "total_progression": 8,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "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": 71.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4776,
                "fifa_rank": 5032.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 71.0
              }
            }
          ]
        },
        "Federico Redondo": {
          "player_id": 1117026,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 5,
          "height": 188,
          "market_value": 2400000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0113,
            "assists": 0,
            "expected_goals": 0.0059,
            "rating": 6.6769,
            "minutes": 22,
            "total_pass": 14,
            "accurate_pass": 13,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 10,
            "accurate_own_half_passes": 10,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 16,
            "possession_lost": 1.4373,
            "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,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 4,
            "total_progression": 10,
            "progressive_carries": 0,
            "total_shots": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 51.5,
            "pointsPerMatch": 0.5,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.307,
            "bench_expected_minutes": 21.97,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.03,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 70.0
          },
          "latest_10_games": [
            {
              "match_id": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 81,
                "rating": 5.5,
                "assists": 0,
                "expected_assists": 0.0175,
                "total_shots": 0,
                "total_pass": 53,
                "accurate_pass": 46,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 3,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 8
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421050.0,
              "match_date": "2026-08-17",
              "home_team": "Deportivo de A Coruña",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 60,
                "rating": 6.7,
                "assists": 0,
                "expected_goals": 0.0522,
                "expected_assists": 0.0057,
                "total_shots": 1,
                "total_pass": 64,
                "accurate_pass": 60,
                "key_pass": 1,
                "tackles": 1,
                "clearances": 3,
                "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"
            }
          ],
          "ranking": {
            "global_player_rank": 5116,
            "combined_rank_score": 3314.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 1.0,
            "fifa_rank": 5931.0,
            "fifa_overall": 70.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "projected_match_rating": 6.6769,
            "source_file": "data/player_rankings.csv",
            "player_name": "Federico Redondo",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Nicolas Madsen",
                  "ranking": 5111
                },
                {
                  "player_name": "Randy Nteka",
                  "ranking": 5112
                },
                {
                  "player_name": "Federico Gattoni",
                  "ranking": 5113
                },
                {
                  "player_name": "Callum Doyle",
                  "ranking": 5114
                },
                {
                  "player_name": "Caleb Taylor",
                  "ranking": 5115
                }
              ],
              "lower": [
                {
                  "player_name": "Pablo",
                  "ranking": 5117
                },
                {
                  "player_name": "Caspar Jander",
                  "ranking": 5118
                },
                {
                  "player_name": "Alejandro Camargo",
                  "ranking": 5119
                },
                {
                  "player_name": "Nhoa Sangui",
                  "ranking": 5120
                },
                {
                  "player_name": "Gessime Yassine",
                  "ranking": 5121
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.39,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.39,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 21.97222218756125,
            "bench_appearance_prob": 0.307,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "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.1
            },
            "rationale": "Bench projection scaled from XGBoost M_service (2 historical appearances) to 22.0 expected mins (appearance prob 0.31); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0473,
                "assists": 0,
                "expected_goals": 0.0245,
                "rating": 6.8046,
                "minutes": 70,
                "total_pass": 58,
                "accurate_pass": 53,
                "duels_won": 2,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 42,
                "accurate_own_half_passes": 40,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 13,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 68,
                "possession_lost": 6.0,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 40,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.5405,
                    "rating": 5.5
                  },
                  {
                    "match_date": "2026-08-17",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 60.0,
                    "is_starting": true,
                    "weight": 0.4595,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "ballRecovery_p90": 7.5616,
                  "ballRecovery": 6.1622,
                  "intensity_index": 6.6022,
                  "expectedAssists": 0.0121,
                  "kilometersCovered": 7.9984
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.7471519708633423,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1892
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0676
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0376
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0255
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0162
                        }
                      ],
                      "others": -0.012,
                      "total": 0.7472
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.04731430113315582,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0171
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0097
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0043
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0033
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0033
                        }
                      ],
                      "others": -0.0145,
                      "total": 0.0473
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.089662566781044,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "ballRecovery",
                          "contribution": 0.007
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0069
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0051
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0048
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0034
                        }
                      ],
                      "others": -0.0091,
                      "total": 0.0897
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.024518145248293877,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0265
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0182
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0106
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0062
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0046
                        }
                      ],
                      "others": -0.0181,
                      "total": 0.0245
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.8046064376831055,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0555
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0436
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0407
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0158
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0133
                        }
                      ],
                      "others": 0.0021,
                      "total": 6.8046
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9812, quality 0.437)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0464,
                "assists": 0,
                "expected_goals": 0.0241,
                "rating": 6.6769,
                "minutes": 69,
                "total_pass": 57,
                "accurate_pass": 52,
                "duels_won": 2,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 42,
                "accurate_own_half_passes": 39,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 13,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 67,
                "possession_lost": 5.8874,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 39,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 2400000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0464)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0464,
                "assists": 0,
                "expected_goals": 0.0241,
                "rating": 6.6769,
                "minutes": 69,
                "total_pass": 57,
                "accurate_pass": 52,
                "duels_won": 2,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 42,
                "accurate_own_half_passes": 39,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 13,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 67,
                "possession_lost": 5.8874,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 39,
                "progressive_carries": 0,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 51.5,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": -3.88
              },
              "params": {
                "blend_weight": 0.0464,
                "history_matches": 2,
                "prior_reliability": 0.1,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0929
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0619
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.031
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.031
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.0 expected minutes (appearance prob 0.31)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0113,
                "assists": 0,
                "expected_goals": 0.0059,
                "rating": 6.6769,
                "minutes": 22,
                "total_pass": 14,
                "accurate_pass": 13,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 10,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.4373,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 10,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 51.5,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.307,
                "bench_expected_minutes": 21.97
              },
              "params": {
                "expected_minutes": 21.97,
                "appearance_probability": 0.307
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0113,
                "assists": 0,
                "expected_goals": 0.0059,
                "rating": 6.6769,
                "minutes": 22,
                "total_pass": 14,
                "accurate_pass": 13,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 10,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.4373,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 10,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 51.5,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.307,
                "bench_expected_minutes": 21.97
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 12, fifa_overall 70.0)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0113,
                "assists": 0,
                "expected_goals": 0.0059,
                "rating": 6.6769,
                "minutes": 22,
                "total_pass": 14,
                "accurate_pass": 13,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 10,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.4373,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 10,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 51.5,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.307,
                "bench_expected_minutes": 21.97,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 70.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 5116,
                "fifa_rank": 5931.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 70.0
              }
            }
          ]
        },
        "Grady Diangana": {
          "player_id": 848512,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 19,
          "height": 180,
          "market_value": 2100000,
          "stats": {
            "key_pass": 0,
            "assists": 0,
            "expected_assists": 0.0308,
            "expected_goals": 0.0255,
            "total_shots": 0,
            "total_pass": 12,
            "accurate_pass": 10,
            "ball_recovery": 1,
            "duels_won": 1,
            "rating": 6.9,
            "minutes": 22,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 5,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 16,
            "possession_lost": 1.9775,
            "dispossessed": 0.7,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 1,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 1,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0146,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0132,
            "ball_carries": 7,
            "total_progression": 18,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.499,
            "bench_expected_minutes": 21.97,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.03,
            "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,
            "fifa_overall": 70.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 5225,
            "combined_rank_score": 3402.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 883.0,
            "sofascore_rating": 6.54,
            "sofascore_appearances": 20.0,
            "fifa_rank": 5922.0,
            "fifa_overall": 70.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "projected_match_rating": 6.9,
            "source_file": "data/player_rankings.csv",
            "player_name": "Grady Diangana",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Liel Abada",
                  "ranking": 5220
                },
                {
                  "player_name": "Carlos Melgar",
                  "ranking": 5221
                },
                {
                  "player_name": "Soufiane El-Faouzi",
                  "ranking": 5222
                },
                {
                  "player_name": "Baldomero Perlaza",
                  "ranking": 5223
                },
                {
                  "player_name": "Enzo Giménez",
                  "ranking": 5224
                }
              ],
              "lower": [
                {
                  "player_name": "Max Rosenfelder",
                  "ranking": 5226
                },
                {
                  "player_name": "Bilal Nadir",
                  "ranking": 5227
                },
                {
                  "player_name": "Stephen Mfuni",
                  "ranking": 5228
                },
                {
                  "player_name": "Yukhym Konoplia",
                  "ranking": 5229
                },
                {
                  "player_name": "Kayne van Oevelen",
                  "ranking": 5230
                }
              ]
            }
          },
          "data_sources": [
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "M_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 21.97222218756125,
            "bench_appearance_prob": 0.4987373721618749,
            "market_value_adjustment": 0.4374,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "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 (€2,100,000) scaled to 22.0 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 M (quality 0.44)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.126,
                "expected_goals": 0.081,
                "total_shots": 1,
                "total_pass": 49,
                "accurate_pass": 40,
                "ball_recovery": 5,
                "duels_won": 6,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 65,
                "possession_lost": 8.1,
                "dispossessed": 0.7,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 1,
                "total_contest": 4,
                "won_contest": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "goal_rate": 0.06,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.054,
                "ball_carries": 28,
                "total_progression": 75,
                "progressive_carries": 6
              },
              "params": {
                "market_value_eur": 2100000,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0000)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.126,
                "expected_goals": 0.081,
                "total_shots": 1,
                "total_pass": 49,
                "accurate_pass": 40,
                "ball_recovery": 5,
                "duels_won": 6,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 65,
                "possession_lost": 8.1,
                "dispossessed": 0.7,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 1,
                "total_contest": 4,
                "won_contest": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "goal_rate": 0.06,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.054,
                "ball_carries": 28,
                "total_progression": 75,
                "progressive_carries": 6
              },
              "params": {
                "blend_weight": 0.0,
                "history_matches": 0,
                "prior_reliability": 0.0,
                "competition": "La Liga",
                "squad": "Elche"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.0 expected minutes (appearance prob 0.50)",
              "stats": {
                "key_pass": 0,
                "assists": 0,
                "expected_assists": 0.0308,
                "expected_goals": 0.0198,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 10,
                "ball_recovery": 1,
                "duels_won": 1,
                "rating": 6.9,
                "minutes": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.9775,
                "dispossessed": 0.7,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0146,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0132,
                "ball_carries": 7,
                "total_progression": 18,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.499,
                "bench_expected_minutes": 21.97
              },
              "params": {
                "expected_minutes": 21.97,
                "appearance_probability": 0.499
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "assists": 0,
                "expected_assists": 0.0308,
                "expected_goals": 0.0198,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 10,
                "ball_recovery": 1,
                "duels_won": 1,
                "rating": 6.9,
                "minutes": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.9775,
                "dispossessed": 0.7,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0146,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0132,
                "ball_carries": 7,
                "total_progression": 18,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.499,
                "bench_expected_minutes": 21.97
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "key_pass": 0,
                "assists": 0,
                "expected_assists": 0.0308,
                "expected_goals": 0.0255,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 10,
                "ball_recovery": 1,
                "duels_won": 1,
                "rating": 6.9,
                "minutes": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.9775,
                "dispossessed": 0.7,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0146,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0132,
                "ball_carries": 7,
                "total_progression": 18,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.499,
                "bench_expected_minutes": 21.97,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0198,
                  "after": 0.0255
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 13, fifa_overall 70.0)",
              "stats": {
                "key_pass": 0,
                "assists": 0,
                "expected_assists": 0.0308,
                "expected_goals": 0.0255,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 10,
                "ball_recovery": 1,
                "duels_won": 1,
                "rating": 6.9,
                "minutes": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.9775,
                "dispossessed": 0.7,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0146,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0132,
                "ball_carries": 7,
                "total_progression": 18,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.499,
                "bench_expected_minutes": 21.97,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "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,
                "fifa_overall": 70.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 5225,
                "fifa_rank": 5922.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 70.0
              }
            }
          ]
        },
        "Fernando Niño": {
          "player_id": 1016019,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 14,
          "height": 190,
          "market_value": 1800000,
          "stats": {
            "expected_goals": 0.0684,
            "goal_rate": 0.1602,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0081,
            "key_pass": 0,
            "rating": 6.8398,
            "minutes": 25,
            "total_pass": 5,
            "accurate_pass": 3,
            "duels_won": 2,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 9,
            "possession_lost": 2.8264,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_lost": 4,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 2,
            "total_progression": 7,
            "progressive_carries": 1,
            "total_shots": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 75.0,
            "shotConversion": 0.25,
            "minutesPct": 83.7,
            "pointsPerMatch": 0.33,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.334,
            "bench_expected_minutes": 25.29,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.03,
            "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,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416322.0,
              "match_date": "2026-09-12 16:30:00 UTC",
              "league_name": "LaLiga",
              "league_id": 8.0,
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": 97268.0,
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "home_score_current": 1.0,
              "away_score_current": 1.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Elche",
              "opponent": "Athletic Club",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 7.9,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 1.0817,
                "expected_assists": 0.1373,
                "total_shots": 4,
                "shots_on_target": 3,
                "total_pass": 17,
                "accurate_pass": 11,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.4168,
                "expected_assists": 0.0348,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 13,
                "accurate_pass": 12,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 4,
                "duels_won": 8,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 69,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0013,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 11,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 4,
                "duels_won": 7,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421050.0,
              "match_date": "2026-08-17",
              "home_team": "Deportivo de A Coruña",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 69,
                "rating": 6.4,
                "assists": 0,
                "expected_goals": 0.4572,
                "expected_assists": 0.0247,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 19,
                "accurate_pass": 14,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1359,
            "combined_rank_score": 577.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 578.0,
            "sofascore_rating": 6.8,
            "sofascore_appearances": 3.0,
            "fifa_rank": 577.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "projected_match_rating": 6.8398,
            "source_file": "data/player_rankings.csv",
            "player_name": "Fernando Niño",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Shakhboz Umarov",
                  "ranking": 1354
                },
                {
                  "player_name": "Ji-sol Lee",
                  "ranking": 1355
                },
                {
                  "player_name": "Marko Bakić",
                  "ranking": 1356
                },
                {
                  "player_name": "Nika Gagnidze",
                  "ranking": 1357
                },
                {
                  "player_name": "Francisco Geraldes",
                  "ranking": 1358
                }
              ],
              "lower": [
                {
                  "player_name": "Iñigo Arguibide",
                  "ranking": 1360
                },
                {
                  "player_name": "David Larrubia",
                  "ranking": 1361
                },
                {
                  "player_name": "John Edwin Montaño",
                  "ranking": 1362
                },
                {
                  "player_name": "Samuel Xavier",
                  "ranking": 1363
                },
                {
                  "player_name": "Laziz Mirzaev",
                  "ranking": 1364
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.525,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.525,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 25.292222187561247,
            "bench_appearance_prob": 0.334,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "sub_appearances": 0.0,
              "goals_per90": 0.4,
              "assists_per90": 0.0,
              "prior_reliability": 0.1667
            },
            "rationale": "Bench projection scaled from XGBoost F_service (4 historical appearances) to 25.3 expected mins (appearance prob 0.33); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1925,
                "goal_rate": 0.5921,
                "goals": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0296,
                "key_pass": 1,
                "rating": 6.9706,
                "minutes": 80,
                "total_pass": 17,
                "accurate_pass": 12,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 10.25,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 26,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-17",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 1.6676,
                  "totalShots": 2.2482,
                  "minutesPlayed": 81.1916,
                  "touches": 32.7702,
                  "dribbleValueNormalized": 0.1909
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1925339251756668,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0771
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0467
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0195
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0179
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.016
                        }
                      ],
                      "others": -0.0384,
                      "total": 0.1925
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.5921230912208557,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.2295
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0742
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0369
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0294
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0276
                        }
                      ],
                      "others": 0.0526,
                      "total": 0.5921
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.7242427468299866,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0677
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0417
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0415
                        },
                        {
                          "name": "shot_waste_rate",
                          "contribution": -0.0242
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0227
                        }
                      ],
                      "others": 0.0253,
                      "total": 0.7242
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.029567286372184753,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "duelLost",
                          "contribution": -0.0096
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0067
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.004
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0039
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0027
                        }
                      ],
                      "others": -0.0094,
                      "total": 0.0296
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.6163259148597717,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1464
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0558
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.045
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0297
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0227
                        }
                      ],
                      "others": 0.0314,
                      "total": 0.6163
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.970613479614258,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.1224
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0547
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0457
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0322
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0285
                        }
                      ],
                      "others": 0.0649,
                      "total": 6.9706
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9812, quality 0.437)",
              "stats": {
                "expected_goals": 0.1889,
                "goal_rate": 0.581,
                "goals": 1,
                "shots_on_target": 1,
                "expected_assists": 0.029,
                "key_pass": 1,
                "rating": 6.8398,
                "minutes": 78,
                "total_pass": 16,
                "accurate_pass": 12,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 10.0576,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 26,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 1800000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0602)",
              "stats": {
                "expected_goals": 0.1889,
                "goal_rate": 0.5701,
                "goals": 1,
                "shots_on_target": 1,
                "expected_assists": 0.029,
                "key_pass": 1,
                "rating": 6.8398,
                "minutes": 78,
                "total_pass": 16,
                "accurate_pass": 12,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 10.0576,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 26,
                "progressive_carries": 2,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 75.0,
                "shotConversion": 0.25,
                "minutesPct": 83.7,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": -1.99
              },
              "params": {
                "blend_weight": 0.0602,
                "history_matches": 4,
                "prior_reliability": 0.1667,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 1.4718,
                  "after": 1.5036
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.7106,
                  "after": 0.7395
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "wonTackle",
                  "before": 0.9812,
                  "after": 0.9944
                },
                {
                  "stat": "goals",
                  "before": 0.581,
                  "after": 0.5701
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.3 expected minutes (appearance prob 0.33)",
              "stats": {
                "expected_goals": 0.0531,
                "goal_rate": 0.1602,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0081,
                "key_pass": 0,
                "rating": 6.8398,
                "minutes": 25,
                "total_pass": 5,
                "accurate_pass": 3,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.8264,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 75.0,
                "shotConversion": 0.25,
                "minutesPct": 83.7,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.334,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "expected_minutes": 25.29,
                "appearance_probability": 0.334
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0531,
                "goal_rate": 0.1602,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0081,
                "key_pass": 0,
                "rating": 6.8398,
                "minutes": 25,
                "total_pass": 5,
                "accurate_pass": 3,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.8264,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 75.0,
                "shotConversion": 0.25,
                "minutesPct": 83.7,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.334,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "expected_goals": 0.0684,
                "goal_rate": 0.1602,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0081,
                "key_pass": 0,
                "rating": 6.8398,
                "minutes": 25,
                "total_pass": 5,
                "accurate_pass": 3,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.8264,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 75.0,
                "shotConversion": 0.25,
                "minutesPct": 83.7,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.334,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0531,
                  "after": 0.0684
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 14, fifa_overall 81.0)",
              "stats": {
                "expected_goals": 0.0684,
                "goal_rate": 0.1602,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0081,
                "key_pass": 0,
                "rating": 6.8398,
                "minutes": 25,
                "total_pass": 5,
                "accurate_pass": 3,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.8264,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 75.0,
                "shotConversion": 0.25,
                "minutesPct": 83.7,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.334,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "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,
                "fifa_overall": 81.0
              },
              "params": {
                "match_squad_rank": 14,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1359,
                "fifa_rank": 577.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 81.0
              }
            }
          ]
        },
        "Tete Morente": {
          "player_id": 605374,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 20,
          "height": 180,
          "market_value": 1600000,
          "stats": {
            "expected_goals": 0.0651,
            "goal_rate": 0.0608,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0431,
            "key_pass": 0,
            "rating": 6.2869,
            "minutes": 32,
            "total_pass": 9,
            "accurate_pass": 7,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 7,
            "accurate_opp_half_passes": 5,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 14,
            "possession_lost": 4.3112,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 4,
            "total_progression": 17,
            "progressive_carries": 1,
            "total_shots": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 51.5,
            "pointsPerMatch": 0.33,
            "netGoalDifferencePer90": 0.65,
            "bench_appearance_probability": 0.591,
            "bench_expected_minutes": 32.28,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.03,
            "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,
            "fifa_overall": 71.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416322.0,
              "match_date": "2026-09-12 16:30:00 UTC",
              "league_name": "LaLiga",
              "league_id": 8.0,
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": 97268.0,
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "home_score_current": 1.0,
              "away_score_current": 1.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Elche",
              "opponent": "Athletic Club",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assists": 1,
                "expected_goals": 0.0229,
                "expected_assists": 0.0547,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 33,
                "accurate_pass": 28,
                "key_pass": 2,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 45,
                "rating": 7.0,
                "assists": 1,
                "expected_goals": 0.0137,
                "expected_assists": 0.2289,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 34,
                "accurate_pass": 29,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 64,
                "rating": 6.1,
                "assists": 0,
                "expected_assists": 0.0121,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 12,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421050.0,
              "match_date": "2026-08-17",
              "home_team": "Deportivo de A Coruña",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 30,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0052,
                "total_shots": 0,
                "total_pass": 13,
                "accurate_pass": 10,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4815,
            "combined_rank_score": 2894.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 761.0,
            "sofascore_rating": 6.6538,
            "sofascore_appearances": 13.0,
            "fifa_rank": 5028.0,
            "fifa_overall": 71.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "projected_match_rating": 6.2869,
            "source_file": "data/player_rankings.csv",
            "player_name": "Tete Morente",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Brugui",
                  "ranking": 4810
                },
                {
                  "player_name": "Dela",
                  "ranking": 4811
                },
                {
                  "player_name": "Abdelkabir Abqar",
                  "ranking": 4812
                },
                {
                  "player_name": "Nico Serrano",
                  "ranking": 4813
                },
                {
                  "player_name": "Max Aarons",
                  "ranking": 4814
                }
              ],
              "lower": [
                {
                  "player_name": "Jesús Vázquez",
                  "ranking": 4816
                },
                {
                  "player_name": "Pacheco",
                  "ranking": 4817
                },
                {
                  "player_name": "Eliot Matazo",
                  "ranking": 4818
                },
                {
                  "player_name": "Terrats",
                  "ranking": 4819
                },
                {
                  "player_name": "Óscar Zambrano",
                  "ranking": 4820
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.515,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.515,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 32.28,
            "bench_appearance_prob": 0.591,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 1.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 38.0,
              "goals_per90": 0.0,
              "assists_per90": 0.6666666666666666,
              "prior_reliability": 0.1
            },
            "rationale": "Bench projection scaled from XGBoost F_service (4 historical appearances) to 32.3 expected mins (appearance prob 0.59); FBref playing time empirical prior: 2.0 sub appearances, 38.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1435,
                "goal_rate": 0.1792,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.1224,
                "key_pass": 1,
                "rating": 6.4072,
                "minutes": 57,
                "total_pass": 24,
                "accurate_pass": 20,
                "duels_won": 2,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 5,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 12.25,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 12,
                "total_progression": 49,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Real Racing Club",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.2667,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-17",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 30.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 0.5806,
                  "minutesPlayed": 60.5386,
                  "touches": 42.5473,
                  "dribbleValueNormalized": 0.086
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.14354956150054932,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.062
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0286
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0154
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0098
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0091
                        }
                      ],
                      "others": -0.0073,
                      "total": 0.1435
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.1792217642068863,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0612
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0474
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.033
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0203
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.009
                        }
                      ],
                      "others": 0.0046,
                      "total": 0.1792
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5210072994232178,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0401
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0359
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0167
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0135
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0121
                        }
                      ],
                      "others": -0.0206,
                      "total": 0.521
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.12239902466535568,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0155
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0139
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.013
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0115
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0057
                        }
                      ],
                      "others": 0.0163,
                      "total": 0.1224
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.5796793103218079,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.157
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0885
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0336
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0278
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0243
                        }
                      ],
                      "others": -0.0648,
                      "total": 0.5797
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.407182693481445,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.144
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.109
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0571
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0449
                        },
                        {
                          "name": "dispossessed",
                          "contribution": -0.0411
                        }
                      ],
                      "others": -0.0245,
                      "total": 6.4072
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9812, quality 0.437)",
              "stats": {
                "expected_goals": 0.1409,
                "goal_rate": 0.1759,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.1201,
                "key_pass": 1,
                "rating": 6.2869,
                "minutes": 56,
                "total_pass": 24,
                "accurate_pass": 19,
                "duels_won": 2,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 5,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 12.0201,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 12,
                "total_progression": 48,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 1600000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0361)",
              "stats": {
                "expected_goals": 0.1409,
                "goal_rate": 0.1695,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.1201,
                "key_pass": 1,
                "rating": 6.2869,
                "minutes": 56,
                "total_pass": 24,
                "accurate_pass": 19,
                "duels_won": 2,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 5,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 12.0201,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 12,
                "total_progression": 48,
                "progressive_carries": 2,
                "total_shots": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 51.5,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.65
              },
              "params": {
                "blend_weight": 0.0361,
                "history_matches": 4,
                "prior_reliability": 0.1,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 1.7172,
                  "after": 1.7996
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0722
                },
                {
                  "stat": "totalCross",
                  "before": 4.6608,
                  "after": 4.7092
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.5112,
                  "after": 0.4927
                },
                {
                  "stat": "goalAssist",
                  "before": 0.4906,
                  "after": 0.497
                },
                {
                  "stat": "goals",
                  "before": 0.1759,
                  "after": 0.1695
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 32.3 expected minutes (appearance prob 0.59)",
              "stats": {
                "expected_goals": 0.0505,
                "goal_rate": 0.0608,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0431,
                "key_pass": 0,
                "rating": 6.2869,
                "minutes": 32,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 5,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 4.3112,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 17,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 51.5,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.65,
                "bench_appearance_probability": 0.591,
                "bench_expected_minutes": 32.28
              },
              "params": {
                "expected_minutes": 32.28,
                "appearance_probability": 0.591
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0505,
                "goal_rate": 0.0608,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0431,
                "key_pass": 0,
                "rating": 6.2869,
                "minutes": 32,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 5,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 4.3112,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 17,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 51.5,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.65,
                "bench_appearance_probability": 0.591,
                "bench_expected_minutes": 32.28
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "expected_goals": 0.0651,
                "goal_rate": 0.0608,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0431,
                "key_pass": 0,
                "rating": 6.2869,
                "minutes": 32,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 5,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 4.3112,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 17,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 51.5,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.65,
                "bench_appearance_probability": 0.591,
                "bench_expected_minutes": 32.28,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0505,
                  "after": 0.0651
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 16, fifa_overall 71.0)",
              "stats": {
                "expected_goals": 0.0651,
                "goal_rate": 0.0608,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0431,
                "key_pass": 0,
                "rating": 6.2869,
                "minutes": 32,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 5,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 4.3112,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 17,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 51.5,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.65,
                "bench_appearance_probability": 0.591,
                "bench_expected_minutes": 32.28,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "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,
                "fifa_overall": 71.0
              },
              "params": {
                "match_squad_rank": 16,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4815,
                "fifa_rank": 5028.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 71.0
              }
            }
          ]
        }
      },
      "substitutes": {
        "Tete Morente": {
          "player_id": 605374,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 20,
          "height": 180,
          "market_value": 1600000,
          "stats": {
            "expected_goals": 0.0651,
            "goal_rate": 0.0608,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0431,
            "key_pass": 0,
            "rating": 6.2869,
            "minutes": 32,
            "total_pass": 9,
            "accurate_pass": 7,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 7,
            "accurate_opp_half_passes": 5,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 14,
            "possession_lost": 4.3112,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 4,
            "total_progression": 17,
            "progressive_carries": 1,
            "total_shots": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 51.5,
            "pointsPerMatch": 0.33,
            "netGoalDifferencePer90": 0.65,
            "bench_appearance_probability": 0.591,
            "bench_expected_minutes": 32.28,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.03,
            "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,
            "fifa_overall": 71.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416322.0,
              "match_date": "2026-09-12 16:30:00 UTC",
              "league_name": "LaLiga",
              "league_id": 8.0,
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": 97268.0,
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "home_score_current": 1.0,
              "away_score_current": 1.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Elche",
              "opponent": "Athletic Club",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assists": 1,
                "expected_goals": 0.0229,
                "expected_assists": 0.0547,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 33,
                "accurate_pass": 28,
                "key_pass": 2,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 45,
                "rating": 7.0,
                "assists": 1,
                "expected_goals": 0.0137,
                "expected_assists": 0.2289,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 34,
                "accurate_pass": 29,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 64,
                "rating": 6.1,
                "assists": 0,
                "expected_assists": 0.0121,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 12,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421050.0,
              "match_date": "2026-08-17",
              "home_team": "Deportivo de A Coruña",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 30,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0052,
                "total_shots": 0,
                "total_pass": 13,
                "accurate_pass": 10,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4815,
            "combined_rank_score": 2894.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 761.0,
            "sofascore_rating": 6.6538,
            "sofascore_appearances": 13.0,
            "fifa_rank": 5028.0,
            "fifa_overall": 71.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "projected_match_rating": 6.2869,
            "source_file": "data/player_rankings.csv",
            "player_name": "Tete Morente",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Brugui",
                  "ranking": 4810
                },
                {
                  "player_name": "Dela",
                  "ranking": 4811
                },
                {
                  "player_name": "Abdelkabir Abqar",
                  "ranking": 4812
                },
                {
                  "player_name": "Nico Serrano",
                  "ranking": 4813
                },
                {
                  "player_name": "Max Aarons",
                  "ranking": 4814
                }
              ],
              "lower": [
                {
                  "player_name": "Jesús Vázquez",
                  "ranking": 4816
                },
                {
                  "player_name": "Pacheco",
                  "ranking": 4817
                },
                {
                  "player_name": "Eliot Matazo",
                  "ranking": 4818
                },
                {
                  "player_name": "Terrats",
                  "ranking": 4819
                },
                {
                  "player_name": "Óscar Zambrano",
                  "ranking": 4820
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.515,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.515,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 32.28,
            "bench_appearance_prob": 0.591,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 1.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 38.0,
              "goals_per90": 0.0,
              "assists_per90": 0.6666666666666666,
              "prior_reliability": 0.1
            },
            "rationale": "Bench projection scaled from XGBoost F_service (4 historical appearances) to 32.3 expected mins (appearance prob 0.59); FBref playing time empirical prior: 2.0 sub appearances, 38.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1435,
                "goal_rate": 0.1792,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.1224,
                "key_pass": 1,
                "rating": 6.4072,
                "minutes": 57,
                "total_pass": 24,
                "accurate_pass": 20,
                "duels_won": 2,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 5,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 12.25,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 12,
                "total_progression": 49,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Real Racing Club",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.2667,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-17",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 30.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 0.5806,
                  "minutesPlayed": 60.5386,
                  "touches": 42.5473,
                  "dribbleValueNormalized": 0.086
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.14354956150054932,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.062
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0286
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0154
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0098
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0091
                        }
                      ],
                      "others": -0.0073,
                      "total": 0.1435
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.1792217642068863,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0612
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0474
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.033
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0203
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.009
                        }
                      ],
                      "others": 0.0046,
                      "total": 0.1792
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5210072994232178,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0401
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0359
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0167
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0135
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0121
                        }
                      ],
                      "others": -0.0206,
                      "total": 0.521
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.12239902466535568,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0155
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0139
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.013
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0115
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0057
                        }
                      ],
                      "others": 0.0163,
                      "total": 0.1224
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.5796793103218079,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.157
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0885
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0336
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0278
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0243
                        }
                      ],
                      "others": -0.0648,
                      "total": 0.5797
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.407182693481445,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.144
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.109
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0571
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0449
                        },
                        {
                          "name": "dispossessed",
                          "contribution": -0.0411
                        }
                      ],
                      "others": -0.0245,
                      "total": 6.4072
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9812, quality 0.437)",
              "stats": {
                "expected_goals": 0.1409,
                "goal_rate": 0.1759,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.1201,
                "key_pass": 1,
                "rating": 6.2869,
                "minutes": 56,
                "total_pass": 24,
                "accurate_pass": 19,
                "duels_won": 2,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 5,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 12.0201,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 12,
                "total_progression": 48,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 1600000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0361)",
              "stats": {
                "expected_goals": 0.1409,
                "goal_rate": 0.1695,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.1201,
                "key_pass": 1,
                "rating": 6.2869,
                "minutes": 56,
                "total_pass": 24,
                "accurate_pass": 19,
                "duels_won": 2,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 5,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 12.0201,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 12,
                "total_progression": 48,
                "progressive_carries": 2,
                "total_shots": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 51.5,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.65
              },
              "params": {
                "blend_weight": 0.0361,
                "history_matches": 4,
                "prior_reliability": 0.1,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 1.7172,
                  "after": 1.7996
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0722
                },
                {
                  "stat": "totalCross",
                  "before": 4.6608,
                  "after": 4.7092
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.5112,
                  "after": 0.4927
                },
                {
                  "stat": "goalAssist",
                  "before": 0.4906,
                  "after": 0.497
                },
                {
                  "stat": "goals",
                  "before": 0.1759,
                  "after": 0.1695
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 32.3 expected minutes (appearance prob 0.59)",
              "stats": {
                "expected_goals": 0.0505,
                "goal_rate": 0.0608,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0431,
                "key_pass": 0,
                "rating": 6.2869,
                "minutes": 32,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 5,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 4.3112,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 17,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 51.5,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.65,
                "bench_appearance_probability": 0.591,
                "bench_expected_minutes": 32.28
              },
              "params": {
                "expected_minutes": 32.28,
                "appearance_probability": 0.591
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0505,
                "goal_rate": 0.0608,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0431,
                "key_pass": 0,
                "rating": 6.2869,
                "minutes": 32,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 5,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 4.3112,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 17,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 51.5,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.65,
                "bench_appearance_probability": 0.591,
                "bench_expected_minutes": 32.28
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "expected_goals": 0.0651,
                "goal_rate": 0.0608,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0431,
                "key_pass": 0,
                "rating": 6.2869,
                "minutes": 32,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 5,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 4.3112,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 17,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 51.5,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.65,
                "bench_appearance_probability": 0.591,
                "bench_expected_minutes": 32.28,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0505,
                  "after": 0.0651
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 16, fifa_overall 71.0)",
              "stats": {
                "expected_goals": 0.0651,
                "goal_rate": 0.0608,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0431,
                "key_pass": 0,
                "rating": 6.2869,
                "minutes": 32,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 5,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 4.3112,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 17,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 51.5,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.65,
                "bench_appearance_probability": 0.591,
                "bench_expected_minutes": 32.28,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "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,
                "fifa_overall": 71.0
              },
              "params": {
                "match_squad_rank": 16,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4815,
                "fifa_rank": 5028.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 71.0
              }
            }
          ]
        },
        "Grady Diangana": {
          "player_id": 848512,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 19,
          "height": 180,
          "market_value": 2100000,
          "stats": {
            "key_pass": 0,
            "assists": 0,
            "expected_assists": 0.0308,
            "expected_goals": 0.0255,
            "total_shots": 0,
            "total_pass": 12,
            "accurate_pass": 10,
            "ball_recovery": 1,
            "duels_won": 1,
            "rating": 6.9,
            "minutes": 22,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 5,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 16,
            "possession_lost": 1.9775,
            "dispossessed": 0.7,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 1,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 1,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0146,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0132,
            "ball_carries": 7,
            "total_progression": 18,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.499,
            "bench_expected_minutes": 21.97,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.03,
            "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,
            "fifa_overall": 70.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 5225,
            "combined_rank_score": 3402.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 883.0,
            "sofascore_rating": 6.54,
            "sofascore_appearances": 20.0,
            "fifa_rank": 5922.0,
            "fifa_overall": 70.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "projected_match_rating": 6.9,
            "source_file": "data/player_rankings.csv",
            "player_name": "Grady Diangana",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Liel Abada",
                  "ranking": 5220
                },
                {
                  "player_name": "Carlos Melgar",
                  "ranking": 5221
                },
                {
                  "player_name": "Soufiane El-Faouzi",
                  "ranking": 5222
                },
                {
                  "player_name": "Baldomero Perlaza",
                  "ranking": 5223
                },
                {
                  "player_name": "Enzo Giménez",
                  "ranking": 5224
                }
              ],
              "lower": [
                {
                  "player_name": "Max Rosenfelder",
                  "ranking": 5226
                },
                {
                  "player_name": "Bilal Nadir",
                  "ranking": 5227
                },
                {
                  "player_name": "Stephen Mfuni",
                  "ranking": 5228
                },
                {
                  "player_name": "Yukhym Konoplia",
                  "ranking": 5229
                },
                {
                  "player_name": "Kayne van Oevelen",
                  "ranking": 5230
                }
              ]
            }
          },
          "data_sources": [
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "M_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 21.97222218756125,
            "bench_appearance_prob": 0.4987373721618749,
            "market_value_adjustment": 0.4374,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "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 (€2,100,000) scaled to 22.0 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 M (quality 0.44)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.126,
                "expected_goals": 0.081,
                "total_shots": 1,
                "total_pass": 49,
                "accurate_pass": 40,
                "ball_recovery": 5,
                "duels_won": 6,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 65,
                "possession_lost": 8.1,
                "dispossessed": 0.7,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 1,
                "total_contest": 4,
                "won_contest": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "goal_rate": 0.06,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.054,
                "ball_carries": 28,
                "total_progression": 75,
                "progressive_carries": 6
              },
              "params": {
                "market_value_eur": 2100000,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0000)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.126,
                "expected_goals": 0.081,
                "total_shots": 1,
                "total_pass": 49,
                "accurate_pass": 40,
                "ball_recovery": 5,
                "duels_won": 6,
                "rating": 6.9,
                "minutes": 90,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 65,
                "possession_lost": 8.1,
                "dispossessed": 0.7,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 1,
                "total_contest": 4,
                "won_contest": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "goal_rate": 0.06,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.054,
                "ball_carries": 28,
                "total_progression": 75,
                "progressive_carries": 6
              },
              "params": {
                "blend_weight": 0.0,
                "history_matches": 0,
                "prior_reliability": 0.0,
                "competition": "La Liga",
                "squad": "Elche"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.0 expected minutes (appearance prob 0.50)",
              "stats": {
                "key_pass": 0,
                "assists": 0,
                "expected_assists": 0.0308,
                "expected_goals": 0.0198,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 10,
                "ball_recovery": 1,
                "duels_won": 1,
                "rating": 6.9,
                "minutes": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.9775,
                "dispossessed": 0.7,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0146,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0132,
                "ball_carries": 7,
                "total_progression": 18,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.499,
                "bench_expected_minutes": 21.97
              },
              "params": {
                "expected_minutes": 21.97,
                "appearance_probability": 0.499
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "assists": 0,
                "expected_assists": 0.0308,
                "expected_goals": 0.0198,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 10,
                "ball_recovery": 1,
                "duels_won": 1,
                "rating": 6.9,
                "minutes": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.9775,
                "dispossessed": 0.7,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0146,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0132,
                "ball_carries": 7,
                "total_progression": 18,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.499,
                "bench_expected_minutes": 21.97
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "key_pass": 0,
                "assists": 0,
                "expected_assists": 0.0308,
                "expected_goals": 0.0255,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 10,
                "ball_recovery": 1,
                "duels_won": 1,
                "rating": 6.9,
                "minutes": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.9775,
                "dispossessed": 0.7,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0146,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0132,
                "ball_carries": 7,
                "total_progression": 18,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.499,
                "bench_expected_minutes": 21.97,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0198,
                  "after": 0.0255
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 13, fifa_overall 70.0)",
              "stats": {
                "key_pass": 0,
                "assists": 0,
                "expected_assists": 0.0308,
                "expected_goals": 0.0255,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 10,
                "ball_recovery": 1,
                "duels_won": 1,
                "rating": 6.9,
                "minutes": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.9775,
                "dispossessed": 0.7,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0146,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0132,
                "ball_carries": 7,
                "total_progression": 18,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.499,
                "bench_expected_minutes": 21.97,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "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,
                "fifa_overall": 70.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 5225,
                "fifa_rank": 5922.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 70.0
              }
            }
          ]
        },
        "Fernando Niño": {
          "player_id": 1016019,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 14,
          "height": 190,
          "market_value": 1800000,
          "stats": {
            "expected_goals": 0.0684,
            "goal_rate": 0.1602,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0081,
            "key_pass": 0,
            "rating": 6.8398,
            "minutes": 25,
            "total_pass": 5,
            "accurate_pass": 3,
            "duels_won": 2,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 9,
            "possession_lost": 2.8264,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_lost": 4,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 2,
            "total_progression": 7,
            "progressive_carries": 1,
            "total_shots": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 75.0,
            "shotConversion": 0.25,
            "minutesPct": 83.7,
            "pointsPerMatch": 0.33,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.334,
            "bench_expected_minutes": 25.29,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.03,
            "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,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416322.0,
              "match_date": "2026-09-12 16:30:00 UTC",
              "league_name": "LaLiga",
              "league_id": 8.0,
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": 97268.0,
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "home_score_current": 1.0,
              "away_score_current": 1.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Elche",
              "opponent": "Athletic Club",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 7.9,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 1.0817,
                "expected_assists": 0.1373,
                "total_shots": 4,
                "shots_on_target": 3,
                "total_pass": 17,
                "accurate_pass": 11,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.4168,
                "expected_assists": 0.0348,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 13,
                "accurate_pass": 12,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 4,
                "duels_won": 8,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 69,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0013,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 11,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 4,
                "duels_won": 7,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421050.0,
              "match_date": "2026-08-17",
              "home_team": "Deportivo de A Coruña",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 69,
                "rating": 6.4,
                "assists": 0,
                "expected_goals": 0.4572,
                "expected_assists": 0.0247,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 19,
                "accurate_pass": 14,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1359,
            "combined_rank_score": 577.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 578.0,
            "sofascore_rating": 6.8,
            "sofascore_appearances": 3.0,
            "fifa_rank": 577.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "projected_match_rating": 6.8398,
            "source_file": "data/player_rankings.csv",
            "player_name": "Fernando Niño",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Shakhboz Umarov",
                  "ranking": 1354
                },
                {
                  "player_name": "Ji-sol Lee",
                  "ranking": 1355
                },
                {
                  "player_name": "Marko Bakić",
                  "ranking": 1356
                },
                {
                  "player_name": "Nika Gagnidze",
                  "ranking": 1357
                },
                {
                  "player_name": "Francisco Geraldes",
                  "ranking": 1358
                }
              ],
              "lower": [
                {
                  "player_name": "Iñigo Arguibide",
                  "ranking": 1360
                },
                {
                  "player_name": "David Larrubia",
                  "ranking": 1361
                },
                {
                  "player_name": "John Edwin Montaño",
                  "ranking": 1362
                },
                {
                  "player_name": "Samuel Xavier",
                  "ranking": 1363
                },
                {
                  "player_name": "Laziz Mirzaev",
                  "ranking": 1364
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.525,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.525,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 25.292222187561247,
            "bench_appearance_prob": 0.334,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Elche",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "sub_appearances": 0.0,
              "goals_per90": 0.4,
              "assists_per90": 0.0,
              "prior_reliability": 0.1667
            },
            "rationale": "Bench projection scaled from XGBoost F_service (4 historical appearances) to 25.3 expected mins (appearance prob 0.33); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1925,
                "goal_rate": 0.5921,
                "goals": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0296,
                "key_pass": 1,
                "rating": 6.9706,
                "minutes": 80,
                "total_pass": 17,
                "accurate_pass": 12,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 10.25,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 26,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-17",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 1.6676,
                  "totalShots": 2.2482,
                  "minutesPlayed": 81.1916,
                  "touches": 32.7702,
                  "dribbleValueNormalized": 0.1909
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1925339251756668,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0771
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0467
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0195
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0179
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.016
                        }
                      ],
                      "others": -0.0384,
                      "total": 0.1925
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.5921230912208557,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.2295
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0742
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0369
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0294
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0276
                        }
                      ],
                      "others": 0.0526,
                      "total": 0.5921
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.7242427468299866,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0677
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0417
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0415
                        },
                        {
                          "name": "shot_waste_rate",
                          "contribution": -0.0242
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0227
                        }
                      ],
                      "others": 0.0253,
                      "total": 0.7242
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.029567286372184753,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "duelLost",
                          "contribution": -0.0096
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0067
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.004
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0039
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0027
                        }
                      ],
                      "others": -0.0094,
                      "total": 0.0296
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.6163259148597717,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1464
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0558
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.045
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0297
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0227
                        }
                      ],
                      "others": 0.0314,
                      "total": 0.6163
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.970613479614258,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.1224
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0547
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0457
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0322
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0285
                        }
                      ],
                      "others": 0.0649,
                      "total": 6.9706
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9812, quality 0.437)",
              "stats": {
                "expected_goals": 0.1889,
                "goal_rate": 0.581,
                "goals": 1,
                "shots_on_target": 1,
                "expected_assists": 0.029,
                "key_pass": 1,
                "rating": 6.8398,
                "minutes": 78,
                "total_pass": 16,
                "accurate_pass": 12,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 10.0576,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 26,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 1800000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0602)",
              "stats": {
                "expected_goals": 0.1889,
                "goal_rate": 0.5701,
                "goals": 1,
                "shots_on_target": 1,
                "expected_assists": 0.029,
                "key_pass": 1,
                "rating": 6.8398,
                "minutes": 78,
                "total_pass": 16,
                "accurate_pass": 12,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 10.0576,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 26,
                "progressive_carries": 2,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 75.0,
                "shotConversion": 0.25,
                "minutesPct": 83.7,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": -1.99
              },
              "params": {
                "blend_weight": 0.0602,
                "history_matches": 4,
                "prior_reliability": 0.1667,
                "competition": "La Liga",
                "squad": "Elche"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 1.4718,
                  "after": 1.5036
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.7106,
                  "after": 0.7395
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "wonTackle",
                  "before": 0.9812,
                  "after": 0.9944
                },
                {
                  "stat": "goals",
                  "before": 0.581,
                  "after": 0.5701
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.3 expected minutes (appearance prob 0.33)",
              "stats": {
                "expected_goals": 0.0531,
                "goal_rate": 0.1602,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0081,
                "key_pass": 0,
                "rating": 6.8398,
                "minutes": 25,
                "total_pass": 5,
                "accurate_pass": 3,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.8264,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 75.0,
                "shotConversion": 0.25,
                "minutesPct": 83.7,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.334,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "expected_minutes": 25.29,
                "appearance_probability": 0.334
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0531,
                "goal_rate": 0.1602,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0081,
                "key_pass": 0,
                "rating": 6.8398,
                "minutes": 25,
                "total_pass": 5,
                "accurate_pass": 3,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.8264,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 75.0,
                "shotConversion": 0.25,
                "minutesPct": 83.7,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.334,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.7917, xG scale 1.2884)",
              "stats": {
                "expected_goals": 0.0684,
                "goal_rate": 0.1602,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0081,
                "key_pass": 0,
                "rating": 6.8398,
                "minutes": 25,
                "total_pass": 5,
                "accurate_pass": 3,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.8264,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 75.0,
                "shotConversion": 0.25,
                "minutesPct": 83.7,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.334,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.7917,
                "xg_scale": 1.2884,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0531,
                  "after": 0.0684
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 14, fifa_overall 81.0)",
              "stats": {
                "expected_goals": 0.0684,
                "goal_rate": 0.1602,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0081,
                "key_pass": 0,
                "rating": 6.8398,
                "minutes": 25,
                "total_pass": 5,
                "accurate_pass": 3,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.8264,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 1,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 75.0,
                "shotConversion": 0.25,
                "minutesPct": 83.7,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.334,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.03,
                "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,
                "fifa_overall": 81.0
              },
              "params": {
                "match_squad_rank": 14,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1359,
                "fifa_rank": 577.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 81.0
              }
            }
          ]
        }
      },
      "team_totals": {
        "projected_goals": 0,
        "expected_goals": 1.02,
        "expected_assists": 0.78,
        "total_shots": 10,
        "shots_on_target": 1,
        "total_passes": 347,
        "interceptions": 5,
        "tackles": 5,
        "avg_rating": 6.67,
        "possession_estimated_pct": 49.2,
        "pressing_actions_per_90": 6.3
      }
    }
  },
  "antagonist_report": {
    "home_attacking_duels": [
      {
        "attacker": "Roberto Fernández",
        "attacker_role": "ST",
        "attacker_market_value": 10300000,
        "attacker_height": 186,
        "attacker_skill_quality": 0.526,
        "defenders": [
          "Buba Sangaré",
          "Roy Revivo"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.456,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.241,
        "xg_contribution": 0.2152,
        "shots_in_zone": 2.3,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.4,
        "aerial_duels": 3,
        "aerial_won": 1.8,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Buba Sangaré",
            "role": "CB",
            "market_value": 4400000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.0,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.759
          },
          {
            "player": "Roy Revivo",
            "role": "CB",
            "market_value": 4600000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.0,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.759
          }
        ],
        "duel_analysis": "Roberto Fernández (ST) is heavily outmatched defensively against Buba Sangaré and Roy Revivo in a 2-defender block. Duel win probability: 24%.  Projected xG contribution: 0.215 — with very limited chance creation expected."
      },
      {
        "attacker": "Urko González",
        "attacker_role": "LWB",
        "attacker_market_value": 11600000,
        "attacker_height": 189,
        "attacker_skill_quality": 0.541,
        "defenders": [
          "Víctor Chust"
        ],
        "defender_roles": [
          "RB"
        ],
        "def_skill_quality_avg": 0.446,
        "duel_zone": "Left Wingback vs Right Back — Overlapping Run",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.471,
        "xg_contribution": 0.0418,
        "shots_in_zone": 1.1,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.8,
        "aerial_duels": 2,
        "aerial_won": 1.3,
        "crosses_in_zone": 2.4,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Víctor Chust",
            "role": "RB",
            "market_value": 3700000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.6,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.529
          }
        ],
        "duel_analysis": "Urko González (LWB) is evenly matched against Víctor Chust in a direct 1v1 contest. Duel win probability: 47%.  Projected xG contribution: 0.042 — with neither side clearly dominant."
      },
      {
        "attacker": "Pol Lozano",
        "attacker_role": "RWB",
        "attacker_market_value": 5800000,
        "attacker_height": 176,
        "attacker_skill_quality": 0.472,
        "defenders": [
          "Kevin Lomónaco"
        ],
        "defender_roles": [
          "LB"
        ],
        "def_skill_quality_avg": 0.501,
        "duel_zone": "Right Wingback vs Left Back — Overlapping Run",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.327,
        "xg_contribution": 0.0319,
        "shots_in_zone": 0.9,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.6,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 2.3,
        "fouls_drawn": 1.3,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Kevin Lomónaco",
            "role": "LB",
            "market_value": 8199999,
            "tackles_attempted": 2.0,
            "tackles_won": 1.9,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.673
          }
        ],
        "duel_analysis": "Pol Lozano (RWB) faces tough defensive resistance against Kevin Lomónaco in a direct 1v1 contest. Duel win probability: 33%.  Projected xG contribution: 0.032 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Tyrhys Dolan",
        "attacker_role": "CM",
        "attacker_market_value": 10800000,
        "attacker_height": 170,
        "attacker_skill_quality": 0.532,
        "defenders": [
          "Germán Valera"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.477,
        "duel_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.475,
        "xg_contribution": 0.111,
        "shots_in_zone": 1.7,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.8,
        "aerial_duels": 2,
        "aerial_won": 0.8,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.1,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Germán Valera",
            "role": "CDM",
            "market_value": 6200000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.6,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.2,
            "defensive_success_rate": 0.525
          }
        ],
        "duel_analysis": "Tyrhys Dolan (CM) is evenly matched against Germán Valera in a direct 1v1 contest. Duel win probability: 47%.  Projected xG contribution: 0.111 — with neither side clearly dominant."
      },
      {
        "attacker": "Gabriel Moscardo",
        "attacker_role": "CDM",
        "attacker_market_value": 7500000,
        "attacker_height": 185,
        "attacker_skill_quality": 0.493,
        "defenders": [
          "Germán Valera"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.477,
        "duel_zone": "CDM vs CDM",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.487,
        "xg_contribution": 0.0457,
        "shots_in_zone": 1.1,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.9,
        "aerial_duels": 2,
        "aerial_won": 1.2,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.1,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Germán Valera",
            "role": "CDM",
            "market_value": 6200000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.6,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.513
          }
        ],
        "duel_analysis": "Gabriel Moscardo (CDM) is evenly matched against Germán Valera in a direct 1v1 contest. Duel win probability: 49%.  Projected xG contribution: 0.046 — with neither side clearly dominant."
      }
    ],
    "away_attacking_duels": [
      {
        "attacker": "Facundo Buonanotte",
        "attacker_role": "LW",
        "attacker_market_value": 10900000,
        "attacker_height": 174,
        "attacker_skill_quality": 0.533,
        "defenders": [
          "Pol Lozano"
        ],
        "defender_roles": [
          "RWB"
        ],
        "def_skill_quality_avg": 0.472,
        "duel_zone": "Left Wing vs Right Wingback — Compact Flank",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.459,
        "xg_contribution": 0.1509,
        "shots_in_zone": 1.9,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.2,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 2.0,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Pol Lozano",
            "role": "RWB",
            "market_value": 5800000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.6,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.7,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.541
          }
        ],
        "duel_analysis": "Facundo Buonanotte (LW) is evenly matched against Pol Lozano in a direct 1v1 contest. Duel win probability: 46%.  Projected xG contribution: 0.151 — with neither side clearly dominant."
      },
      {
        "attacker": "Lucas Cepeda",
        "attacker_role": "RW",
        "attacker_market_value": 2600000,
        "attacker_height": 177,
        "attacker_skill_quality": 0.432,
        "defenders": [
          "Urko González"
        ],
        "defender_roles": [
          "LWB"
        ],
        "def_skill_quality_avg": 0.541,
        "duel_zone": "Right Wing vs Left Wingback — Compact Flank",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.343,
        "xg_contribution": 0.0807,
        "shots_in_zone": 1.6,
        "dribbles_attempted": 3,
        "dribbles_successful": 0.9,
        "aerial_duels": 2,
        "aerial_won": 1.0,
        "crosses_in_zone": 1.9,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Urko González",
            "role": "LWB",
            "market_value": 11600000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.9,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.9,
            "clearances_in_zone": 0.8,
            "aerial_duels_won": 1.0,
            "defensive_success_rate": 0.657
          }
        ],
        "duel_analysis": "Lucas Cepeda (RW) faces tough defensive resistance against Urko González in a direct 1v1 contest. Duel win probability: 34%.  Projected xG contribution: 0.081 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Martim Neto",
        "attacker_role": "CAM",
        "attacker_market_value": 3800000,
        "attacker_height": 185,
        "attacker_skill_quality": 0.447,
        "defenders": [
          "Tyrhys Dolan",
          "Gabriel Moscardo"
        ],
        "defender_roles": [
          "CM",
          "CDM"
        ],
        "def_skill_quality_avg": 0.512,
        "duel_zone": "CAM vs CM + CDM",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.301,
        "xg_contribution": 0.0584,
        "shots_in_zone": 1.8,
        "dribbles_attempted": 3,
        "dribbles_successful": 0.8,
        "aerial_duels": 2,
        "aerial_won": 1.2,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.3,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Tyrhys Dolan",
            "role": "CM",
            "market_value": 10800000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.0,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.9,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.4,
            "defensive_success_rate": 0.699
          },
          {
            "player": "Gabriel Moscardo",
            "role": "CDM",
            "market_value": 7500000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.0,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.4,
            "defensive_success_rate": 0.699
          }
        ],
        "duel_analysis": "Martim Neto (CAM) is heavily outmatched defensively against Tyrhys Dolan and Gabriel Moscardo in a 2-defender block. Duel win probability: 30%.  Projected xG contribution: 0.058 — with very limited chance creation expected."
      },
      {
        "attacker": "Ezequiel Ponce",
        "attacker_role": "ST",
        "attacker_market_value": 3600000,
        "attacker_height": 178,
        "attacker_skill_quality": 0.445,
        "defenders": [
          "Omar El Hilali",
          "Vanja Drkušić"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.529,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.18,
        "xg_contribution": 0.0725,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 1.5,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Omar El Hilali",
            "role": "CB",
            "market_value": 15900000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.2,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.9,
            "clearances_in_zone": 0.8,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82
          },
          {
            "player": "Vanja Drkušić",
            "role": "CB",
            "market_value": 5500000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.1,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.7,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82
          }
        ],
        "duel_analysis": "Ezequiel Ponce (ST) is heavily outmatched defensively against Omar El Hilali and Vanja Drkušić in a 2-defender block. Duel win probability: 18%.  Projected xG contribution: 0.072 — with very limited chance creation expected."
      },
      {
        "attacker": "Germán Valera",
        "attacker_role": "CDM",
        "attacker_market_value": 6200000,
        "attacker_height": 170,
        "attacker_skill_quality": 0.477,
        "defenders": [
          "Tyrhys Dolan"
        ],
        "defender_roles": [
          "CM"
        ],
        "def_skill_quality_avg": 0.532,
        "duel_zone": "Holding Mid vs Central Mid — Midfield Anchor Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.375,
        "xg_contribution": 0.1101,
        "shots_in_zone": 0.9,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.7,
        "aerial_duels": 2,
        "aerial_won": 0.8,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Tyrhys Dolan",
            "role": "CM",
            "market_value": 10800000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.9,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.9,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.2,
            "defensive_success_rate": 0.625
          }
        ],
        "duel_analysis": "Germán Valera (CDM) faces tough defensive resistance against Tyrhys Dolan in a direct 1v1 contest. Duel win probability: 38%.  Projected xG contribution: 0.110 — and is restricted in space and time on the ball."
      }
    ],
    "midfield_battle": {
      "home_midfield_power": 0.555,
      "away_midfield_power": 0.517,
      "home_creative_power": 0.468,
      "away_creative_power": 0.452,
      "home_defensive_power": 0.47,
      "away_defensive_power": 0.404,
      "home_dominance_ratio": 0.518,
      "home_midfield_count": 5,
      "away_midfield_count": 5,
      "home_midfield_players": [
        "Urko González",
        "Tyrhys Dolan",
        "Gabriel Moscardo",
        "Javi Puado",
        "Pol Lozano"
      ],
      "away_midfield_players": [
        "Facundo Buonanotte",
        "Germán Valera",
        "Martim Neto",
        "Marc Aguado",
        "Lucas Cepeda"
      ],
      "possession_advantage": "neutral",
      "estimated_possession_home_pct": 50.8,
      "estimated_possession_away_pct": 49.2,
      "home_pressing_actions_per_90": 6.7,
      "away_pressing_actions_per_90": 6.3,
      "home_key_passes_projected": 4.3,
      "away_key_passes_projected": 4.2,
      "home_throughball_threat": 2.0,
      "away_throughball_threat": 2.0,
      "key_personal_duel": "Urko González vs Facundo Buonanotte",
      "midfield_lambda_factor_home": 1.009,
      "midfield_lambda_factor_away": 0.995
    },
    "formation_analysis": {
      "home_formation": "3-5-2",
      "away_formation": "4-2-3-1",
      "home_tactical_bonus": -0.06,
      "away_tactical_bonus": 0.06,
      "formation_verdict": "Tactical parity between 3-5-2 and 4-2-3-1. Match outcome driven primarily by individual player quality."
    },
    "home_lambda": 1.373,
    "away_lambda": 1.02,
    "home_top_threat_zones": [
      "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
      "Central Mid vs Defensive Mid — Pressing/Creation Duel"
    ],
    "away_top_threat_zones": [
      "Left Wing vs Right Wingback — Compact Flank",
      "Holding Mid vs Central Mid — Midfield Anchor Duel"
    ],
    "home_player_antagonists": {
      "Roberto Fernández": {
        "opponents": [
          "Buba Sangaré",
          "Roy Revivo"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Urko González": {
        "opponents": [
          "Víctor Chust",
          "Lucas Cepeda",
          "Facundo Buonanotte"
        ],
        "primary_zone": "Left Wingback vs Right Back — Overlapping Run",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Pol Lozano": {
        "opponents": [
          "Kevin Lomónaco",
          "Facundo Buonanotte",
          "Lucas Cepeda"
        ],
        "primary_zone": "Right Wingback vs Left Back — Overlapping Run",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Tyrhys Dolan": {
        "opponents": [
          "Germán Valera",
          "Martim Neto"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Gabriel Moscardo": {
        "opponents": [
          "Germán Valera",
          "Martim Neto"
        ],
        "primary_zone": "CDM vs CDM",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Omar El Hilali": {
        "opponents": [
          "Ezequiel Ponce"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Vanja Drkušić": {
        "opponents": [
          "Ezequiel Ponce"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Javi Puado": {
        "opponents": [
          "Marc Aguado"
        ],
        "primary_zone": "Midfield lane",
        "source": "midfield_pairing"
      },
      "Marko Dmitrović": {
        "opponents": [
          "Ezequiel Ponce",
          "Marc Aguado"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Quilindschy Hartman": {
        "opponents": [
          "Ezequiel Ponce"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Bryan Zaragoza": {
        "opponents": [
          "Kevin Lomónaco",
          "Roy Revivo"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "away_player_antagonists": {
      "Buba Sangaré": {
        "opponents": [
          "Roberto Fernández"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Roy Revivo": {
        "opponents": [
          "Roberto Fernández"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Víctor Chust": {
        "opponents": [
          "Urko González"
        ],
        "primary_zone": "Left Wingback vs Right Back — Overlapping Run",
        "source": "defensive_duel"
      },
      "Kevin Lomónaco": {
        "opponents": [
          "Pol Lozano"
        ],
        "primary_zone": "Right Wingback vs Left Back — Overlapping Run",
        "source": "defensive_duel"
      },
      "Germán Valera": {
        "opponents": [
          "Tyrhys Dolan",
          "Gabriel Moscardo"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "defensive_duel, attacking_duel, midfield_pairing"
      },
      "Facundo Buonanotte": {
        "opponents": [
          "Pol Lozano",
          "Urko González"
        ],
        "primary_zone": "Left Wing vs Right Wingback — Compact Flank",
        "source": "attacking_duel, midfield_pairing"
      },
      "Lucas Cepeda": {
        "opponents": [
          "Urko González",
          "Pol Lozano"
        ],
        "primary_zone": "Right Wing vs Left Wingback — Compact Flank",
        "source": "attacking_duel, midfield_pairing"
      },
      "Martim Neto": {
        "opponents": [
          "Tyrhys Dolan",
          "Gabriel Moscardo"
        ],
        "primary_zone": "CAM vs CM + CDM",
        "source": "attacking_duel, midfield_pairing"
      },
      "Ezequiel Ponce": {
        "opponents": [
          "Omar El Hilali",
          "Vanja Drkušić"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Marc Aguado": {
        "opponents": [
          "Javi Puado"
        ],
        "primary_zone": "Midfield lane",
        "source": "midfield_pairing"
      },
      "Alejandro Iturbe": {
        "opponents": [
          "Bryan Zaragoza",
          "Roberto Fernández"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "key_tactical_insight": "Midfield is evenly contested — Urko González vs Facundo Buonanotte will be the pivotal duel. Total antagonist xG — Home: 0.45, Away: 0.47. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Left Wing vs Right Wingback — Compact Flank.",
    "lambda_factors": {
      "home_gk_opposition_factor": 1.0193,
      "away_gk_opposition_factor": 1.0227,
      "home_set_piece_bonus": 0.042,
      "away_set_piece_bonus": 0.051,
      "home_defensive_solidity_vs": 0.997,
      "away_defensive_solidity_vs": 0.9839,
      "home_midfield_factor": 1.009,
      "away_midfield_factor": 0.995,
      "stage_discount": 1.0,
      "quality_gap_applied": true,
      "home_avg_quality": 0.5185,
      "away_avg_quality": 0.464,
      "avg_quality_gap": 0.0545,
      "squad_value_gap_log": 0.5543,
      "top5_value_gap_log": 0.5144,
      "attack_value_gap_log": 0.5469,
      "elite_count_gap": 0,
      "combined_quality_gap": 0.1221,
      "stronger_lambda_boost": 0.0672,
      "weaker_lambda_suppression": 0.0391,
      "home_bench_lambda_bonus": 0.0807,
      "away_bench_lambda_bonus": 0.0723,
      "home_bench_players_modelled": 7,
      "away_bench_players_modelled": 7,
      "fbref_team_priors": {
        "applied": true,
        "home_squad": "Espanyol",
        "away_squad": "Elche",
        "home_goals_per90": 1.6666666666666667,
        "away_goals_against_per90": 1.0,
        "away_goals_per90": 1.0,
        "home_goals_against_per90": 1.67,
        "home_empirical_lambda": 1.235,
        "away_empirical_lambda": 1.237,
        "blending_weight": 0.228
      },
      "mismatch_score_pressure_applied": false,
      "competitive_underdog_floor_applied": true,
      "competitive_underdog_floor": 1.02,
      "pre_competitive_floor_home_lambda": 1.373,
      "pre_competitive_floor_away_lambda": 0.935,
      "pre_calibration_home_lambda": 1.3729,
      "pre_calibration_away_lambda": 0.9346,
      "competition_calibration_applied": false,
      "competition_calibration_reason": "no_sofascore_matches_data",
      "competition_calibration_samples": 0,
      "competition_observed_total_goals": 0.0,
      "competition_calibration_scale": 1.0,
      "neutral_share_preserved": false,
      "final_home_lambda": 1.373,
      "final_away_lambda": 1.02
    }
  },
  "home_standing": {
    "available": true,
    "team_position": 12,
    "opponent_position": 19,
    "standing_lambda_multiplier": 1.6211,
    "attack_index": 1.249,
    "defense_concede_index": 2.499,
    "form_multiplier": 1.038,
    "team_attack_rate_contextual": 1.5,
    "opp_defense_rate_contextual": 3.0,
    "team_ppg": 1.0,
    "opponent_ppg": 0.25
  },
  "away_standing": {
    "available": true,
    "team_position": 19,
    "opponent_position": 12,
    "standing_lambda_multiplier": 1.0253,
    "attack_index": 1.041,
    "defense_concede_index": 1.041,
    "form_multiplier": 0.962,
    "team_attack_rate_contextual": 1.25,
    "opp_defense_rate_contextual": 1.25,
    "team_ppg": 0.25,
    "opponent_ppg": 1.0
  },
  "xgboost_reasoning": {
    "summary": "Antagonist + XGBoost match analysis for Espanyol vs Elche. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 3-5-2 vs 4-2-3-1 (duel lambdas: Home 1.373, Away 0.935). Final calibrated Poisson lambdas: Home 1.373, Away 1.020 (most likely score 1-0).",
    "competition": "LaLiga",
    "model_coverage": {
      "home_starters_count": 11,
      "home_xgboost_players": 10,
      "home_fbref_players": 9,
      "away_starters_count": 11,
      "away_xgboost_players": 9,
      "away_fbref_players": 9,
      "home_bench_modelled": 7,
      "away_bench_modelled": 7
    },
    "team_priors": {
      "applied": true,
      "home_squad": "Espanyol",
      "away_squad": "Elche",
      "home_goals_per90": 1.6666666666666667,
      "away_goals_against_per90": 1.0,
      "away_goals_per90": 1.0,
      "home_goals_against_per90": 1.67,
      "home_empirical_lambda": 1.235,
      "away_empirical_lambda": 1.237,
      "blending_weight": 0.228
    },
    "pipeline_stages": [
      "1. XGBoost player regressions for volume & event rates with market-value quality scaling",
      "2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)",
      "3. Antagonist formation duel matrix resolving 1v1 and zonal matchups",
      "4. Team-level prior calibration (FBref possession and attack/defense efficiencies)",
      "5. Bivariate Poisson matrix with Dixon-Coles low-score correction"
    ],
    "final_lambdas": {
      "home_lambda": 1.373,
      "away_lambda": 1.02,
      "micro_duel_home_lambda": 1.373,
      "micro_duel_away_lambda": 0.935
    },
    "calibration_and_pressure": {
      "competition_calibration_applied": false,
      "competition_calibration_scale": 1.0,
      "mismatch_pressure_applied": false,
      "underdog_floor_applied": true
    }
  },
  "timestamp": "2026-09-18T13:31:05Z",
  "stat_limits": {
    "saves": 15.0,
    "goalsPrevented": 5.0,
    "keeperSaveValue": 3.0,
    "interceptionWon": 10.0,
    "totalTackle": 12.0,
    "wonTackle": 10.0,
    "totalClearance": 18.0,
    "aerialWon": 15.0,
    "totalPass": 150.0,
    "accuratePass": 145.0,
    "keyPass": 8.0,
    "expectedAssists": 1.5,
    "goalAssist": 4.0,
    "expectedGoals": 3.0,
    "goals": 5.0,
    "totalShots": 12.0,
    "onTargetScoringAttempt": 8.0,
    "rating": 10.0,
    "minutesPlayed": 95.0,
    "duelWon": 20.0,
    "ballRecovery": 18.0,
    "fouls": 8.0
  }
}