{
  "selected": {
    "ridge": 0.03,
    "residual_blend": 0.75,
    "position_blend": 0.5,
    "development_score": 5.448311522438191
  },
  "candidate_scores": [
    {
      "ridge": 0.03,
      "residual_blend": 0.25,
      "position_blend": 0,
      "development_score": 5.517426405616571
    },
    {
      "ridge": 0.03,
      "residual_blend": 0.25,
      "position_blend": 0.25,
      "development_score": 5.514828757005516
    },
    {
      "ridge": 0.03,
      "residual_blend": 0.25,
      "position_blend": 0.5,
      "development_score": 5.5135986661754295
    },
    {
      "ridge": 0.03,
      "residual_blend": 0.25,
      "position_blend": 0.75,
      "development_score": 5.513901470465862
    },
    {
      "ridge": 0.03,
      "residual_blend": 0.25,
      "position_blend": 1,
      "development_score": 5.515281776139457
    },
    {
      "ridge": 0.03,
      "residual_blend": 0.5,
      "position_blend": 0,
      "development_score": 5.466117282452585
    },
    {
      "ridge": 0.03,
      "residual_blend": 0.5,
      "position_blend": 0.25,
      "development_score": 5.463503817694061
    },
    {
      "ridge": 0.03,
      "residual_blend": 0.5,
      "position_blend": 0.5,
      "development_score": 5.462265030194347
    },
    {
      "ridge": 0.03,
      "residual_blend": 0.5,
      "position_blend": 0.75,
      "development_score": 5.462560520053167
    },
    {
      "ridge": 0.03,
      "residual_blend": 0.5,
      "position_blend": 1,
      "development_score": 5.463934848837892
    },
    {
      "ridge": 0.03,
      "residual_blend": 0.75,
      "position_blend": 0,
      "development_score": 5.452186992528363
    },
    {
      "ridge": 0.03,
      "residual_blend": 0.75,
      "position_blend": 0.25,
      "development_score": 5.449557904759873
    },
    {
      "ridge": 0.03,
      "residual_blend": 0.75,
      "position_blend": 0.5,
      "development_score": 5.448311522438191
    },
    {
      "ridge": 0.03,
      "residual_blend": 0.75,
      "position_blend": 0.75,
      "development_score": 5.448598501348341
    },
    {
      "ridge": 0.03,
      "residual_blend": 0.75,
      "position_blend": 1,
      "development_score": 5.4499659258885975
    },
    {
      "ridge": 0.03,
      "residual_blend": 1,
      "position_blend": 0,
      "development_score": 5.47337362124427
    },
    {
      "ridge": 0.03,
      "residual_blend": 1,
      "position_blend": 0.25,
      "development_score": 5.47072901076134
    },
    {
      "ridge": 0.03,
      "residual_blend": 1,
      "position_blend": 0.5,
      "development_score": 5.469479754576761
    },
    {
      "ridge": 0.03,
      "residual_blend": 1,
      "position_blend": 0.75,
      "development_score": 5.4697610595904855
    },
    {
      "ridge": 0.03,
      "residual_blend": 1,
      "position_blend": 1,
      "development_score": 5.471127639981882
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.25,
      "position_blend": 0,
      "development_score": 5.528519113251627
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.25,
      "position_blend": 0.25,
      "development_score": 5.5260523826060775
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.25,
      "position_blend": 0.5,
      "development_score": 5.5247142843002734
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.25,
      "position_blend": 0.75,
      "development_score": 5.524502215900975
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.25,
      "position_blend": 1,
      "development_score": 5.525571547953292
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.5,
      "position_blend": 0,
      "development_score": 5.479603536655826
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.5,
      "position_blend": 0.25,
      "development_score": 5.477122204078351
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.5,
      "position_blend": 0.5,
      "development_score": 5.4757803693568805
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.5,
      "position_blend": 0.75,
      "development_score": 5.475568440379117
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.5,
      "position_blend": 1,
      "development_score": 5.476634651693382
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.75,
      "position_blend": 0,
      "development_score": 5.459976657942728
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.75,
      "position_blend": 0.25,
      "development_score": 5.4574835249072615
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.75,
      "position_blend": 0.5,
      "development_score": 5.45613369178714
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.75,
      "position_blend": 0.75,
      "development_score": 5.4559197514184445
    },
    {
      "ridge": 0.1,
      "residual_blend": 0.75,
      "position_blend": 1,
      "development_score": 5.456983837387166
    },
    {
      "ridge": 0.1,
      "residual_blend": 1,
      "position_blend": 0,
      "development_score": 5.468428089874482
    },
    {
      "ridge": 0.1,
      "residual_blend": 1,
      "position_blend": 0.25,
      "development_score": 5.46592165574754
    },
    {
      "ridge": 0.1,
      "residual_blend": 1,
      "position_blend": 0.5,
      "development_score": 5.464567733394892
    },
    {
      "ridge": 0.1,
      "residual_blend": 1,
      "position_blend": 0.75,
      "development_score": 5.464350841898972
    },
    {
      "ridge": 0.1,
      "residual_blend": 1,
      "position_blend": 1,
      "development_score": 5.465413705416857
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.25,
      "position_blend": 0,
      "development_score": 5.543180976689037
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.25,
      "position_blend": 0.25,
      "development_score": 5.540989903648271
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.25,
      "position_blend": 0.5,
      "development_score": 5.539702064824318
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.25,
      "position_blend": 0.75,
      "development_score": 5.539146237808084
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.25,
      "position_blend": 1,
      "development_score": 5.539589823795203
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.5,
      "position_blend": 0,
      "development_score": 5.4994707271392205
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.5,
      "position_blend": 0.25,
      "development_score": 5.497269639810136
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.5,
      "position_blend": 0.5,
      "development_score": 5.495981291855518
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.5,
      "position_blend": 0.75,
      "development_score": 5.495430245233574
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.5,
      "position_blend": 1,
      "development_score": 5.4958702503573456
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.75,
      "position_blend": 0,
      "development_score": 5.47623386932274
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.75,
      "position_blend": 0.25,
      "development_score": 5.474029496848663
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.75,
      "position_blend": 0.5,
      "development_score": 5.472736828682613
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.75,
      "position_blend": 0.75,
      "development_score": 5.472190065015699
    },
    {
      "ridge": 0.3,
      "residual_blend": 0.75,
      "position_blend": 1,
      "development_score": 5.47262767609758
    },
    {
      "ridge": 0.3,
      "residual_blend": 1,
      "position_blend": 0,
      "development_score": 5.473005622304747
    },
    {
      "ridge": 0.3,
      "residual_blend": 1,
      "position_blend": 0.25,
      "development_score": 5.470796378945056
    },
    {
      "ridge": 0.3,
      "residual_blend": 1,
      "position_blend": 0.5,
      "development_score": 5.46949947336456
    },
    {
      "ridge": 0.3,
      "residual_blend": 1,
      "position_blend": 0.75,
      "development_score": 5.468955125287689
    },
    {
      "ridge": 0.3,
      "residual_blend": 1,
      "position_blend": 1,
      "development_score": 5.4693928425686025
    },
    {
      "ridge": 1,
      "residual_blend": 0.25,
      "position_blend": 0,
      "development_score": 5.562864496595667
    },
    {
      "ridge": 1,
      "residual_blend": 0.25,
      "position_blend": 0.25,
      "development_score": 5.561039761712389
    },
    {
      "ridge": 1,
      "residual_blend": 0.25,
      "position_blend": 0.5,
      "development_score": 5.559896971722848
    },
    {
      "ridge": 1,
      "residual_blend": 0.25,
      "position_blend": 0.75,
      "development_score": 5.559262220030468
    },
    {
      "ridge": 1,
      "residual_blend": 0.25,
      "position_blend": 1,
      "development_score": 5.559244491451447
    },
    {
      "ridge": 1,
      "residual_blend": 0.5,
      "position_blend": 0,
      "development_score": 5.529609377952626
    },
    {
      "ridge": 1,
      "residual_blend": 0.5,
      "position_blend": 0.25,
      "development_score": 5.527779307303809
    },
    {
      "ridge": 1,
      "residual_blend": 0.5,
      "position_blend": 0.5,
      "development_score": 5.526636690616044
    },
    {
      "ridge": 1,
      "residual_blend": 0.5,
      "position_blend": 0.75,
      "development_score": 5.526004242823199
    },
    {
      "ridge": 1,
      "residual_blend": 0.5,
      "position_blend": 1,
      "development_score": 5.52598633352567
    },
    {
      "ridge": 1,
      "residual_blend": 0.75,
      "position_blend": 0,
      "development_score": 5.507820367520967
    },
    {
      "ridge": 1,
      "residual_blend": 0.75,
      "position_blend": 0.25,
      "development_score": 5.505985082261986
    },
    {
      "ridge": 1,
      "residual_blend": 0.75,
      "position_blend": 0.5,
      "development_score": 5.504843406574194
    },
    {
      "ridge": 1,
      "residual_blend": 0.75,
      "position_blend": 0.75,
      "development_score": 5.504213709880208
    },
    {
      "ridge": 1,
      "residual_blend": 0.75,
      "position_blend": 1,
      "development_score": 5.50419626108274
    },
    {
      "ridge": 1,
      "residual_blend": 1,
      "position_blend": 0,
      "development_score": 5.497515982756156
    },
    {
      "ridge": 1,
      "residual_blend": 1,
      "position_blend": 0.25,
      "development_score": 5.495678889940779
    },
    {
      "ridge": 1,
      "residual_blend": 1,
      "position_blend": 0.5,
      "development_score": 5.494537662776241
    },
    {
      "ridge": 1,
      "residual_blend": 1,
      "position_blend": 0.75,
      "development_score": 5.4939093681739894
    },
    {
      "ridge": 1,
      "residual_blend": 1,
      "position_blend": 1,
      "development_score": 5.493893988474171
    },
    {
      "ridge": 3,
      "residual_blend": 0.25,
      "position_blend": 0,
      "development_score": 5.580185896937229
    },
    {
      "ridge": 3,
      "residual_blend": 0.25,
      "position_blend": 0.25,
      "development_score": 5.578766711005198
    },
    {
      "ridge": 3,
      "residual_blend": 0.25,
      "position_blend": 0.5,
      "development_score": 5.5777665972863595
    },
    {
      "ridge": 3,
      "residual_blend": 0.25,
      "position_blend": 0.75,
      "development_score": 5.57713219352828
    },
    {
      "ridge": 3,
      "residual_blend": 0.25,
      "position_blend": 1,
      "development_score": 5.576829150860943
    },
    {
      "ridge": 3,
      "residual_blend": 0.5,
      "position_blend": 0,
      "development_score": 5.55823741215426
    },
    {
      "ridge": 3,
      "residual_blend": 0.5,
      "position_blend": 0.25,
      "development_score": 5.556816126271145
    },
    {
      "ridge": 3,
      "residual_blend": 0.5,
      "position_blend": 0.5,
      "development_score": 5.555816350148735
    },
    {
      "ridge": 3,
      "residual_blend": 0.5,
      "position_blend": 0.75,
      "development_score": 5.555179872997527
    },
    {
      "ridge": 3,
      "residual_blend": 0.5,
      "position_blend": 1,
      "development_score": 5.554876355753366
    },
    {
      "ridge": 3,
      "residual_blend": 0.75,
      "position_blend": 0,
      "development_score": 5.541674287506963
    },
    {
      "ridge": 3,
      "residual_blend": 0.75,
      "position_blend": 0.25,
      "development_score": 5.540250114691959
    },
    {
      "ridge": 3,
      "residual_blend": 0.75,
      "position_blend": 0.5,
      "development_score": 5.539251863679657
    },
    {
      "ridge": 3,
      "residual_blend": 0.75,
      "position_blend": 0.75,
      "development_score": 5.538615154879942
    },
    {
      "ridge": 3,
      "residual_blend": 0.75,
      "position_blend": 1,
      "development_score": 5.538309938990772
    },
    {
      "ridge": 3,
      "residual_blend": 1,
      "position_blend": 0,
      "development_score": 5.530548776164714
    },
    {
      "ridge": 3,
      "residual_blend": 1,
      "position_blend": 0.25,
      "development_score": 5.529122486384207
    },
    {
      "ridge": 3,
      "residual_blend": 1,
      "position_blend": 0.5,
      "development_score": 5.52812438017127
    },
    {
      "ridge": 3,
      "residual_blend": 1,
      "position_blend": 0.75,
      "development_score": 5.527487637397893
    },
    {
      "ridge": 3,
      "residual_blend": 1,
      "position_blend": 1,
      "development_score": 5.527183432401409
    }
  ],
  "folds": [
    {
      "event": "First Stand 2025",
      "patch": "25.05",
      "cutoff": "2025-03-10 08:17:32",
      "end": "2025-03-16 10:51:43",
      "train_events": 5,
      "test_games": 35,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.740657911259846,
        "pick_rate_rmse_pp": 4.111390140126255,
        "ban_rate_mae_pp": 3.48260016530972,
        "presence_mae_pp": 4.820153759230063,
        "presence_rmse_pp": 7.512292711090178,
        "role_pick_rmse_pp": 1.861110508223003,
        "avg_pick_order_mae": 1.5786087592771925,
        "avg_pick_order_pick_weighted_mae": 1.242885866031314,
        "avg_pick_bp_step_pick_weighted_mae": 2.038522796224575,
        "heat_spearman": 0.829905449154971,
        "top20_heat_overlap": 13,
        "games": 35,
        "champions_observed_picked": 84
      },
      "v3": {
        "pick_rate_mae_pp": 2.6918644562154337,
        "pick_rate_rmse_pp": 4.113761179429646,
        "ban_rate_mae_pp": 3.4825481920346935,
        "presence_mae_pp": 4.751777956447252,
        "presence_rmse_pp": 7.454852021637798,
        "role_pick_rmse_pp": 1.844116428963862,
        "avg_pick_order_mae": 1.6035338603229135,
        "avg_pick_order_pick_weighted_mae": 1.2380032710049593,
        "avg_pick_bp_step_pick_weighted_mae": 2.0231510540134066,
        "heat_spearman": 0.8301284326249719,
        "top20_heat_overlap": 13,
        "games": 35,
        "champions_observed_picked": 84
      },
      "unsupported_actual_role_picks": 7,
      "actual_picks": 350,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-03-02 19:02:17"
    },
    {
      "event": "LPL 2025 Split 2 Placements 常规阶段",
      "patch": "25.06",
      "cutoff": "2025-03-22 08:12:20",
      "end": "2025-03-31 12:56:51",
      "train_events": 6,
      "test_games": 60,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 3.7049217401694348,
        "pick_rate_rmse_pp": 6.9542185594577655,
        "ban_rate_mae_pp": 4.587226562885503,
        "presence_mae_pp": 7.674928528708509,
        "presence_rmse_pp": 13.686504017904442,
        "role_pick_rmse_pp": 3.1286986938969314,
        "avg_pick_order_mae": 1.4071367795520173,
        "avg_pick_order_pick_weighted_mae": 1.1897166552257548,
        "avg_pick_bp_step_pick_weighted_mae": 2.087570984705822,
        "heat_spearman": 0.7807081107083357,
        "top20_heat_overlap": 12,
        "games": 60,
        "champions_observed_picked": 69
      },
      "v3": {
        "pick_rate_mae_pp": 3.662380308182779,
        "pick_rate_rmse_pp": 6.948089833774692,
        "ban_rate_mae_pp": 4.587200300530825,
        "presence_mae_pp": 7.6022337107558124,
        "presence_rmse_pp": 13.671935808815924,
        "role_pick_rmse_pp": 3.114747511510876,
        "avg_pick_order_mae": 1.4091838968945074,
        "avg_pick_order_pick_weighted_mae": 1.174513941441051,
        "avg_pick_bp_step_pick_weighted_mae": 2.069865204392555,
        "heat_spearman": 0.7810904108033051,
        "top20_heat_overlap": 12,
        "games": 60,
        "champions_observed_picked": 69
      },
      "unsupported_actual_role_picks": 16,
      "actual_picks": 600,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-03-16 10:51:43"
    },
    {
      "event": "LCK 2025 Rounds 1-2 常规阶段",
      "patch": "25.06",
      "cutoff": "2025-04-02 08:11:26",
      "end": "2025-04-06 10:34:47",
      "train_events": 7,
      "test_games": 24,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 3.0775229948848746,
        "pick_rate_rmse_pp": 5.337316974192301,
        "ban_rate_mae_pp": 3.7123057989263026,
        "presence_mae_pp": 5.6389255953493285,
        "presence_rmse_pp": 9.884587190640444,
        "role_pick_rmse_pp": 2.4348928615940566,
        "avg_pick_order_mae": 1.314331013101887,
        "avg_pick_order_pick_weighted_mae": 1.0075303495393086,
        "avg_pick_bp_step_pick_weighted_mae": 1.5964051717449605,
        "heat_spearman": 0.8455747373863717,
        "top20_heat_overlap": 16,
        "games": 24,
        "champions_observed_picked": 62
      },
      "v3": {
        "pick_rate_mae_pp": 3.012071067275948,
        "pick_rate_rmse_pp": 5.307381166139333,
        "ban_rate_mae_pp": 3.712269269417809,
        "presence_mae_pp": 5.553389903388545,
        "presence_rmse_pp": 9.852564236831423,
        "role_pick_rmse_pp": 2.4109960894958378,
        "avg_pick_order_mae": 1.3082564843560218,
        "avg_pick_order_pick_weighted_mae": 1.0090202406018527,
        "avg_pick_bp_step_pick_weighted_mae": 1.594990017383593,
        "heat_spearman": 0.8450107836570772,
        "top20_heat_overlap": 15,
        "games": 24,
        "champions_observed_picked": 62
      },
      "unsupported_actual_role_picks": 1,
      "actual_picks": 240,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-03-31 12:56:51"
    },
    {
      "event": "LPL 2025 Split 2 常规阶段",
      "patch": "25.07",
      "cutoff": "2025-04-05 07:27:43",
      "end": "2025-04-18 14:23:12",
      "train_events": 7,
      "test_games": 82,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.452145559417351,
        "pick_rate_rmse_pp": 4.18701599871479,
        "ban_rate_mae_pp": 3.4049088274361297,
        "presence_mae_pp": 5.041641022432777,
        "presence_rmse_pp": 8.689986851017084,
        "role_pick_rmse_pp": 1.9432998721137198,
        "avg_pick_order_mae": 1.5148304073834982,
        "avg_pick_order_pick_weighted_mae": 1.0839198873697113,
        "avg_pick_bp_step_pick_weighted_mae": 1.7002871968633964,
        "heat_spearman": 0.8692503505044147,
        "top20_heat_overlap": 16,
        "games": 82,
        "champions_observed_picked": 83
      },
      "v3": {
        "pick_rate_mae_pp": 2.3979906683793946,
        "pick_rate_rmse_pp": 4.180774839302414,
        "ban_rate_mae_pp": 3.404873047415015,
        "presence_mae_pp": 4.952655212612382,
        "presence_rmse_pp": 8.639740839956284,
        "role_pick_rmse_pp": 1.9391413901062293,
        "avg_pick_order_mae": 1.5233764410649606,
        "avg_pick_order_pick_weighted_mae": 1.0900927109614147,
        "avg_pick_bp_step_pick_weighted_mae": 1.7053358687819407,
        "heat_spearman": 0.8707372264573985,
        "top20_heat_overlap": 16,
        "games": 82,
        "champions_observed_picked": 83
      },
      "unsupported_actual_role_picks": 16,
      "actual_picks": 820,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-03-31 12:56:51"
    },
    {
      "event": "LEC 2025 Spring 常规阶段",
      "patch": "25.07",
      "cutoff": "2025-04-05 12:07:02",
      "end": "2025-04-14 19:11:08",
      "train_events": 7,
      "test_games": 31,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.691177352930799,
        "pick_rate_rmse_pp": 4.448676477528714,
        "ban_rate_mae_pp": 3.704912156920342,
        "presence_mae_pp": 5.088645538348609,
        "presence_rmse_pp": 9.047379293645118,
        "role_pick_rmse_pp": 2.079560263654889,
        "avg_pick_order_mae": 1.642386293742114,
        "avg_pick_order_pick_weighted_mae": 1.2585900532594585,
        "avg_pick_bp_step_pick_weighted_mae": 1.9807956216389797,
        "heat_spearman": 0.8380295895327765,
        "top20_heat_overlap": 16,
        "games": 31,
        "champions_observed_picked": 74
      },
      "v3": {
        "pick_rate_mae_pp": 2.6401420922683614,
        "pick_rate_rmse_pp": 4.433828223645791,
        "ban_rate_mae_pp": 3.704884485001641,
        "presence_mae_pp": 5.037524613960136,
        "presence_rmse_pp": 8.999128554637513,
        "role_pick_rmse_pp": 2.073946681383435,
        "avg_pick_order_mae": 1.6515951139813332,
        "avg_pick_order_pick_weighted_mae": 1.2590162772635032,
        "avg_pick_bp_step_pick_weighted_mae": 1.9808337753507117,
        "heat_spearman": 0.8379548633605127,
        "top20_heat_overlap": 16,
        "games": 31,
        "champions_observed_picked": 74
      },
      "unsupported_actual_role_picks": 5,
      "actual_picks": 310,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-03-31 12:56:51"
    },
    {
      "event": "LCK 2025 Rounds 1-2 常规阶段",
      "patch": "25.07",
      "cutoff": "2025-04-09 08:10:53",
      "end": "2025-04-20 10:31:53",
      "train_events": 8,
      "test_games": 50,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.3595371092739534,
        "pick_rate_rmse_pp": 4.101717476951036,
        "ban_rate_mae_pp": 3.3488317255403515,
        "presence_mae_pp": 4.382595107830198,
        "presence_rmse_pp": 7.19895688750634,
        "role_pick_rmse_pp": 1.880199538489135,
        "avg_pick_order_mae": 1.512729206365765,
        "avg_pick_order_pick_weighted_mae": 1.0303097272727961,
        "avg_pick_bp_step_pick_weighted_mae": 1.6524868504556889,
        "heat_spearman": 0.8514599403369744,
        "top20_heat_overlap": 15,
        "games": 50,
        "champions_observed_picked": 77
      },
      "v3": {
        "pick_rate_mae_pp": 2.314778630382659,
        "pick_rate_rmse_pp": 4.128442413250266,
        "ban_rate_mae_pp": 3.348816909920474,
        "presence_mae_pp": 4.330814067143104,
        "presence_rmse_pp": 7.141461494905722,
        "role_pick_rmse_pp": 1.8839693834105424,
        "avg_pick_order_mae": 1.5016600135936515,
        "avg_pick_order_pick_weighted_mae": 1.028868257215974,
        "avg_pick_bp_step_pick_weighted_mae": 1.6478866325613277,
        "heat_spearman": 0.8512326415343787,
        "top20_heat_overlap": 16,
        "games": 50,
        "champions_observed_picked": 77
      },
      "unsupported_actual_role_picks": 5,
      "actual_picks": 500,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-04-06 10:34:47"
    },
    {
      "event": "LPL 2025 Split 2 常规阶段",
      "patch": "25.08",
      "cutoff": "2025-04-19 09:25:35",
      "end": "2025-05-02 13:48:56",
      "train_events": 10,
      "test_games": 76,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.0419803423568696,
        "pick_rate_rmse_pp": 3.361406448407149,
        "ban_rate_mae_pp": 2.995910752840153,
        "presence_mae_pp": 4.243602906470992,
        "presence_rmse_pp": 7.928860053160891,
        "role_pick_rmse_pp": 1.5641517669424478,
        "avg_pick_order_mae": 1.158629476023913,
        "avg_pick_order_pick_weighted_mae": 0.90697320883925,
        "avg_pick_bp_step_pick_weighted_mae": 1.4771223546734313,
        "heat_spearman": 0.8655842844719839,
        "top20_heat_overlap": 14,
        "games": 76,
        "champions_observed_picked": 81
      },
      "v3": {
        "pick_rate_mae_pp": 2.0038184706295366,
        "pick_rate_rmse_pp": 3.3476493733357793,
        "ban_rate_mae_pp": 2.9959079082755085,
        "presence_mae_pp": 4.208092600351867,
        "presence_rmse_pp": 7.898817150710552,
        "role_pick_rmse_pp": 1.5498664940793156,
        "avg_pick_order_mae": 1.1606260544871378,
        "avg_pick_order_pick_weighted_mae": 0.9041444601901226,
        "avg_pick_bp_step_pick_weighted_mae": 1.4712271492551354,
        "heat_spearman": 0.8682281750264713,
        "top20_heat_overlap": 14,
        "games": 76,
        "champions_observed_picked": 81
      },
      "unsupported_actual_role_picks": 2,
      "actual_picks": 760,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-04-18 14:23:12"
    },
    {
      "event": "LEC 2025 Spring 常规阶段",
      "patch": "25.08",
      "cutoff": "2025-04-19 15:08:43",
      "end": "2025-04-28 19:02:43",
      "train_events": 10,
      "test_games": 31,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.7441201809204885,
        "pick_rate_rmse_pp": 4.220914670116788,
        "ban_rate_mae_pp": 3.331234897312613,
        "presence_mae_pp": 4.636022205450682,
        "presence_rmse_pp": 7.766526143312381,
        "role_pick_rmse_pp": 1.9455498532535487,
        "avg_pick_order_mae": 1.5109236468273517,
        "avg_pick_order_pick_weighted_mae": 1.1997084655750359,
        "avg_pick_bp_step_pick_weighted_mae": 1.9251820137676647,
        "heat_spearman": 0.8268765230223689,
        "top20_heat_overlap": 12,
        "games": 31,
        "champions_observed_picked": 70
      },
      "v3": {
        "pick_rate_mae_pp": 2.698102099361547,
        "pick_rate_rmse_pp": 4.20134039411356,
        "ban_rate_mae_pp": 3.3312341217206782,
        "presence_mae_pp": 4.608293679468417,
        "presence_rmse_pp": 7.794079254689522,
        "role_pick_rmse_pp": 1.9356393293077083,
        "avg_pick_order_mae": 1.4987532929813463,
        "avg_pick_order_pick_weighted_mae": 1.1955592823385353,
        "avg_pick_bp_step_pick_weighted_mae": 1.9259995591353194,
        "heat_spearman": 0.8282058600697766,
        "top20_heat_overlap": 12,
        "games": 31,
        "champions_observed_picked": 70
      },
      "unsupported_actual_role_picks": 2,
      "actual_picks": 310,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-04-18 14:23:12"
    },
    {
      "event": "LCK 2025 Rounds 1-2 常规阶段",
      "patch": "25.08",
      "cutoff": "2025-04-23 08:05:24",
      "end": "2025-05-04 10:11:37",
      "train_events": 11,
      "test_games": 47,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.3113661694388763,
        "pick_rate_rmse_pp": 3.875631100362546,
        "ban_rate_mae_pp": 3.023324173234575,
        "presence_mae_pp": 4.037069285569341,
        "presence_rmse_pp": 6.873904703714877,
        "role_pick_rmse_pp": 1.7012677311196494,
        "avg_pick_order_mae": 1.2090609222962538,
        "avg_pick_order_pick_weighted_mae": 0.8872093627510116,
        "avg_pick_bp_step_pick_weighted_mae": 1.3637007096831164,
        "heat_spearman": 0.8543368176082206,
        "top20_heat_overlap": 19,
        "games": 47,
        "champions_observed_picked": 70
      },
      "v3": {
        "pick_rate_mae_pp": 2.2588744318581355,
        "pick_rate_rmse_pp": 3.867910840279238,
        "ban_rate_mae_pp": 3.0233206887807786,
        "presence_mae_pp": 3.9722128066333564,
        "presence_rmse_pp": 6.832092618846949,
        "role_pick_rmse_pp": 1.6848919835271985,
        "avg_pick_order_mae": 1.1931783641332427,
        "avg_pick_order_pick_weighted_mae": 0.8824142368065776,
        "avg_pick_bp_step_pick_weighted_mae": 1.3546837322845366,
        "heat_spearman": 0.8549928525783946,
        "top20_heat_overlap": 19,
        "games": 47,
        "champions_observed_picked": 70
      },
      "unsupported_actual_role_picks": 1,
      "actual_picks": 470,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-04-20 10:31:53"
    },
    {
      "event": "LPL 2025 Split 2 常规阶段",
      "patch": "25.09",
      "cutoff": "2025-05-03 07:20:04",
      "end": "2025-05-22 12:29:00",
      "train_events": 13,
      "test_games": 101,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.3459119637766253,
        "pick_rate_rmse_pp": 4.086431820892122,
        "ban_rate_mae_pp": 2.89514091698259,
        "presence_mae_pp": 4.44754248021865,
        "presence_rmse_pp": 8.488463386746885,
        "role_pick_rmse_pp": 1.8314652830919487,
        "avg_pick_order_mae": 1.2790026690609837,
        "avg_pick_order_pick_weighted_mae": 0.9227957135575775,
        "avg_pick_bp_step_pick_weighted_mae": 1.4781298209035598,
        "heat_spearman": 0.8201027036059297,
        "top20_heat_overlap": 14,
        "games": 101,
        "champions_observed_picked": 88
      },
      "v3": {
        "pick_rate_mae_pp": 2.3192256382614023,
        "pick_rate_rmse_pp": 4.087666637791296,
        "ban_rate_mae_pp": 2.8951399192376015,
        "presence_mae_pp": 4.396930053233081,
        "presence_rmse_pp": 8.455864301822857,
        "role_pick_rmse_pp": 1.8297124470233719,
        "avg_pick_order_mae": 1.338043759572642,
        "avg_pick_order_pick_weighted_mae": 0.9436831876024335,
        "avg_pick_bp_step_pick_weighted_mae": 1.5165185816771354,
        "heat_spearman": 0.8187572091029528,
        "top20_heat_overlap": 14,
        "games": 101,
        "champions_observed_picked": 88
      },
      "unsupported_actual_role_picks": 5,
      "actual_picks": 1010,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-05-02 13:48:56"
    },
    {
      "event": "LEC 2025 Spring 常规阶段",
      "patch": "25.09",
      "cutoff": "2025-05-03 15:09:16",
      "end": "2025-05-13 18:08:09",
      "train_events": 13,
      "test_games": 27,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.728266038825162,
        "pick_rate_rmse_pp": 4.535177064307535,
        "ban_rate_mae_pp": 3.6995790110810263,
        "presence_mae_pp": 5.111165293145396,
        "presence_rmse_pp": 8.972034992850519,
        "role_pick_rmse_pp": 2.0008682721356683,
        "avg_pick_order_mae": 1.4360254535800323,
        "avg_pick_order_pick_weighted_mae": 1.1700271612674,
        "avg_pick_bp_step_pick_weighted_mae": 1.824029574153256,
        "heat_spearman": 0.8434330217765674,
        "top20_heat_overlap": 16,
        "games": 27,
        "champions_observed_picked": 66
      },
      "v3": {
        "pick_rate_mae_pp": 2.6803855638642586,
        "pick_rate_rmse_pp": 4.525457985700502,
        "ban_rate_mae_pp": 3.6995794377732363,
        "presence_mae_pp": 5.051278413714046,
        "presence_rmse_pp": 8.945005945413664,
        "role_pick_rmse_pp": 1.991808497535982,
        "avg_pick_order_mae": 1.4366042893379611,
        "avg_pick_order_pick_weighted_mae": 1.1723704587953283,
        "avg_pick_bp_step_pick_weighted_mae": 1.82595586816833,
        "heat_spearman": 0.8440952782207072,
        "top20_heat_overlap": 16,
        "games": 27,
        "champions_observed_picked": 66
      },
      "unsupported_actual_role_picks": 1,
      "actual_picks": 270,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-05-02 13:48:56"
    },
    {
      "event": "LCK 2025 Rounds 1-2 常规阶段",
      "patch": "25.09",
      "cutoff": "2025-05-07 08:03:23",
      "end": "2025-05-18 09:22:19",
      "train_events": 14,
      "test_games": 48,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.689032988323163,
        "pick_rate_rmse_pp": 4.583516278718293,
        "ban_rate_mae_pp": 3.0089543521981654,
        "presence_mae_pp": 4.206217089260917,
        "presence_rmse_pp": 7.225744634369397,
        "role_pick_rmse_pp": 2.1305064936532765,
        "avg_pick_order_mae": 1.4496643520462973,
        "avg_pick_order_pick_weighted_mae": 1.031380004659038,
        "avg_pick_bp_step_pick_weighted_mae": 1.7416801793034236,
        "heat_spearman": 0.8562754035119523,
        "top20_heat_overlap": 17,
        "games": 48,
        "champions_observed_picked": 81
      },
      "v3": {
        "pick_rate_mae_pp": 2.6699500452808946,
        "pick_rate_rmse_pp": 4.597209245770484,
        "ban_rate_mae_pp": 3.008954706756764,
        "presence_mae_pp": 4.1648136963795945,
        "presence_rmse_pp": 7.2209912216738115,
        "role_pick_rmse_pp": 2.1317904140295876,
        "avg_pick_order_mae": 1.432222239768222,
        "avg_pick_order_pick_weighted_mae": 1.0281424035423177,
        "avg_pick_bp_step_pick_weighted_mae": 1.7338900823849388,
        "heat_spearman": 0.8581234427393721,
        "top20_heat_overlap": 16,
        "games": 48,
        "champions_observed_picked": 81
      },
      "unsupported_actual_role_picks": 1,
      "actual_picks": 480,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-05-04 10:11:37"
    },
    {
      "event": "LCP 2025 Split 2 常规阶段",
      "patch": "25.10",
      "cutoff": "2025-05-16 09:52:35",
      "end": "2025-05-25 14:34:50",
      "train_events": 15,
      "test_games": 30,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.841402111216231,
        "pick_rate_rmse_pp": 4.787168720426585,
        "ban_rate_mae_pp": 3.3646599760858034,
        "presence_mae_pp": 4.549118553536872,
        "presence_rmse_pp": 9.160098496379481,
        "role_pick_rmse_pp": 2.2725565562284724,
        "avg_pick_order_mae": 1.3305355251956807,
        "avg_pick_order_pick_weighted_mae": 1.1196360014174505,
        "avg_pick_bp_step_pick_weighted_mae": 1.867012555451126,
        "heat_spearman": 0.8468457611663444,
        "top20_heat_overlap": 14,
        "games": 30,
        "champions_observed_picked": 72
      },
      "v3": {
        "pick_rate_mae_pp": 2.8102635196316914,
        "pick_rate_rmse_pp": 4.807508195809816,
        "ban_rate_mae_pp": 3.364658029769379,
        "presence_mae_pp": 4.497158038885794,
        "presence_rmse_pp": 9.138605058722197,
        "role_pick_rmse_pp": 2.2781937125859617,
        "avg_pick_order_mae": 1.3331713042180457,
        "avg_pick_order_pick_weighted_mae": 1.1213824337845353,
        "avg_pick_bp_step_pick_weighted_mae": 1.8676745093003877,
        "heat_spearman": 0.8457922468555564,
        "top20_heat_overlap": 14,
        "games": 30,
        "champions_observed_picked": 72
      },
      "unsupported_actual_role_picks": 2,
      "actual_picks": 300,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-05-13 18:08:09"
    },
    {
      "event": "LCK 2025 Rounds 1-2 常规阶段",
      "patch": "25.10",
      "cutoff": "2025-05-21 08:06:27",
      "end": "2025-06-04 10:08:43",
      "train_events": 16,
      "test_games": 53,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.321431946216547,
        "pick_rate_rmse_pp": 4.162438389659609,
        "ban_rate_mae_pp": 3.7901058451388128,
        "presence_mae_pp": 4.498075268042447,
        "presence_rmse_pp": 8.9052669511029,
        "role_pick_rmse_pp": 1.8667659101755878,
        "avg_pick_order_mae": 1.4049189472463008,
        "avg_pick_order_pick_weighted_mae": 1.177582673331273,
        "avg_pick_bp_step_pick_weighted_mae": 1.9515576557027947,
        "heat_spearman": 0.864970615369862,
        "top20_heat_overlap": 16,
        "games": 53,
        "champions_observed_picked": 78
      },
      "v3": {
        "pick_rate_mae_pp": 2.2841072675667906,
        "pick_rate_rmse_pp": 4.172266410962706,
        "ban_rate_mae_pp": 3.7901043347327605,
        "presence_mae_pp": 4.481758085661711,
        "presence_rmse_pp": 8.942847893987915,
        "role_pick_rmse_pp": 1.8665209641724239,
        "avg_pick_order_mae": 1.3916235194886057,
        "avg_pick_order_pick_weighted_mae": 1.171371431370702,
        "avg_pick_bp_step_pick_weighted_mae": 1.9349556073811192,
        "heat_spearman": 0.8631083032262337,
        "top20_heat_overlap": 16,
        "games": 53,
        "champions_observed_picked": 78
      },
      "unsupported_actual_role_picks": 1,
      "actual_picks": 530,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-05-18 09:22:19"
    },
    {
      "event": "LEC 2025 Spring 季后赛",
      "patch": "25.10",
      "cutoff": "2025-05-24 15:09:25",
      "end": "2025-06-08 18:09:12",
      "train_events": 17,
      "test_games": 33,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.389937855340619,
        "pick_rate_rmse_pp": 3.757554547587322,
        "ban_rate_mae_pp": 3.9954453664308267,
        "presence_mae_pp": 5.092830951636563,
        "presence_rmse_pp": 9.159804557970968,
        "role_pick_rmse_pp": 1.7503483177361012,
        "avg_pick_order_mae": 1.770246216388211,
        "avg_pick_order_pick_weighted_mae": 1.5833281263369772,
        "avg_pick_bp_step_pick_weighted_mae": 2.6659632065046552,
        "heat_spearman": 0.8808649388938262,
        "top20_heat_overlap": 14,
        "games": 33,
        "champions_observed_picked": 84
      },
      "v3": {
        "pick_rate_mae_pp": 2.3798483742163405,
        "pick_rate_rmse_pp": 3.7988136630804608,
        "ban_rate_mae_pp": 3.9954457775771335,
        "presence_mae_pp": 5.093884100068887,
        "presence_rmse_pp": 9.198198705945671,
        "role_pick_rmse_pp": 1.7682823246962958,
        "avg_pick_order_mae": 1.7880366995796162,
        "avg_pick_order_pick_weighted_mae": 1.591755502313736,
        "avg_pick_bp_step_pick_weighted_mae": 2.6797939697597237,
        "heat_spearman": 0.8813795916905947,
        "top20_heat_overlap": 14,
        "games": 33,
        "champions_observed_picked": 84
      },
      "unsupported_actual_role_picks": 2,
      "actual_picks": 330,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-05-22 12:29:00"
    },
    {
      "event": "LCP 2025 Split 2 季后赛",
      "patch": "25.10",
      "cutoff": "2025-05-30 09:44:03",
      "end": "2025-06-08 13:25:53",
      "train_events": 18,
      "test_games": 28,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.3573731391984056,
        "pick_rate_rmse_pp": 3.702372307914818,
        "ban_rate_mae_pp": 4.146269552171742,
        "presence_mae_pp": 4.823334578220886,
        "presence_rmse_pp": 8.767716851592944,
        "role_pick_rmse_pp": 1.6713464036682195,
        "avg_pick_order_mae": 1.5172340813687337,
        "avg_pick_order_pick_weighted_mae": 1.2015454873296798,
        "avg_pick_bp_step_pick_weighted_mae": 1.9631292935377598,
        "heat_spearman": 0.8476248256065915,
        "top20_heat_overlap": 13,
        "games": 28,
        "champions_observed_picked": 82
      },
      "v3": {
        "pick_rate_mae_pp": 2.3397438311301677,
        "pick_rate_rmse_pp": 3.743980934916484,
        "ban_rate_mae_pp": 4.146270559429122,
        "presence_mae_pp": 4.769600834621553,
        "presence_rmse_pp": 8.736230360551362,
        "role_pick_rmse_pp": 1.6821034225981955,
        "avg_pick_order_mae": 1.5098398267049915,
        "avg_pick_order_pick_weighted_mae": 1.1991203132891755,
        "avg_pick_bp_step_pick_weighted_mae": 1.966090510514064,
        "heat_spearman": 0.8491966092289125,
        "top20_heat_overlap": 13,
        "games": 28,
        "champions_observed_picked": 82
      },
      "unsupported_actual_role_picks": 2,
      "actual_picks": 280,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-05-25 14:34:50"
    },
    {
      "event": "LPL 2025 Split 2 季后赛",
      "patch": "25.11",
      "cutoff": "2025-05-31 06:22:44",
      "end": "2025-06-14 12:20:57",
      "train_events": 18,
      "test_games": 56,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 1.9043162945936665,
        "pick_rate_rmse_pp": 3.0674858465427883,
        "ban_rate_mae_pp": 2.8825303201006793,
        "presence_mae_pp": 3.4568510393300964,
        "presence_rmse_pp": 6.47567329285262,
        "role_pick_rmse_pp": 1.4500860179720534,
        "avg_pick_order_mae": 1.4129813688203172,
        "avg_pick_order_pick_weighted_mae": 1.0808390688456608,
        "avg_pick_bp_step_pick_weighted_mae": 1.774536729276917,
        "heat_spearman": 0.9051631293766133,
        "top20_heat_overlap": 14,
        "games": 56,
        "champions_observed_picked": 94
      },
      "v3": {
        "pick_rate_mae_pp": 1.8938409174332027,
        "pick_rate_rmse_pp": 3.112157400119753,
        "ban_rate_mae_pp": 2.8825300835437355,
        "presence_mae_pp": 3.4626833057021793,
        "presence_rmse_pp": 6.504300746514644,
        "role_pick_rmse_pp": 1.4627003068617976,
        "avg_pick_order_mae": 1.4073644025837675,
        "avg_pick_order_pick_weighted_mae": 1.0821243956716624,
        "avg_pick_bp_step_pick_weighted_mae": 1.7814484687944825,
        "heat_spearman": 0.9042649742786139,
        "top20_heat_overlap": 14,
        "games": 56,
        "champions_observed_picked": 94
      },
      "unsupported_actual_role_picks": 0,
      "actual_picks": 560,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-05-25 14:34:50"
    },
    {
      "event": "LTA N 2025 Split 2 季后赛",
      "patch": "25.11",
      "cutoff": "2025-05-31 20:08:28",
      "end": "2025-06-15 23:43:18",
      "train_events": 18,
      "test_games": 24,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 3.017855327566805,
        "pick_rate_rmse_pp": 4.859086936532814,
        "ban_rate_mae_pp": 3.5235268748169535,
        "presence_mae_pp": 4.548913765764712,
        "presence_rmse_pp": 8.045811434449995,
        "role_pick_rmse_pp": 2.2006392293408195,
        "avg_pick_order_mae": 1.4612100371251544,
        "avg_pick_order_pick_weighted_mae": 1.289440745522543,
        "avg_pick_bp_step_pick_weighted_mae": 2.1096696068495073,
        "heat_spearman": 0.8828237488808656,
        "top20_heat_overlap": 17,
        "games": 24,
        "champions_observed_picked": 81
      },
      "v3": {
        "pick_rate_mae_pp": 3.006960803007711,
        "pick_rate_rmse_pp": 4.91509972437496,
        "ban_rate_mae_pp": 3.5235309531166763,
        "presence_mae_pp": 4.550045082917083,
        "presence_rmse_pp": 8.110549626054723,
        "role_pick_rmse_pp": 2.2210593334124,
        "avg_pick_order_mae": 1.4632505351110197,
        "avg_pick_order_pick_weighted_mae": 1.2875596153009177,
        "avg_pick_bp_step_pick_weighted_mae": 2.1056039259132926,
        "heat_spearman": 0.881834526664767,
        "top20_heat_overlap": 17,
        "games": 24,
        "champions_observed_picked": 81
      },
      "unsupported_actual_role_picks": 0,
      "actual_picks": 240,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-05-25 14:34:50"
    },
    {
      "event": "MSI 2025",
      "patch": "25.13",
      "cutoff": "2025-06-27 19:13:18",
      "end": "2025-07-13 03:39:17",
      "train_events": 23,
      "test_games": 80,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 1.7974035759991513,
        "pick_rate_rmse_pp": 2.6762231782974166,
        "ban_rate_mae_pp": 2.9955909666640177,
        "presence_mae_pp": 4.001280875845146,
        "presence_rmse_pp": 7.819719908311358,
        "role_pick_rmse_pp": 1.2404882146276168,
        "avg_pick_order_mae": 1.25489025508058,
        "avg_pick_order_pick_weighted_mae": 0.9445216115665385,
        "avg_pick_bp_step_pick_weighted_mae": 1.511746819142937,
        "heat_spearman": 0.8963613365854999,
        "top20_heat_overlap": 15,
        "games": 80,
        "champions_observed_picked": 107
      },
      "v3": {
        "pick_rate_mae_pp": 1.7971931361282236,
        "pick_rate_rmse_pp": 2.7058465824811186,
        "ban_rate_mae_pp": 2.9955882166069934,
        "presence_mae_pp": 3.9895336127003347,
        "presence_rmse_pp": 7.824201574906656,
        "role_pick_rmse_pp": 1.2438185678486016,
        "avg_pick_order_mae": 1.2352453725144468,
        "avg_pick_order_pick_weighted_mae": 0.9375966747123039,
        "avg_pick_bp_step_pick_weighted_mae": 1.4958845539724421,
        "heat_spearman": 0.8951942146332819,
        "top20_heat_overlap": 15,
        "games": 80,
        "champions_observed_picked": 107
      },
      "unsupported_actual_role_picks": 3,
      "actual_picks": 800,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-06-15 23:43:18"
    },
    {
      "event": "Esports World Cup 2025",
      "patch": "25.13",
      "cutoff": "2025-07-16 09:32:34",
      "end": "2025-07-20 15:29:19",
      "train_events": 24,
      "test_games": 33,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.86590742816042,
        "pick_rate_rmse_pp": 4.645256306005636,
        "ban_rate_mae_pp": 3.7435715547618242,
        "presence_mae_pp": 5.197752895519618,
        "presence_rmse_pp": 8.672766319167085,
        "role_pick_rmse_pp": 2.3021816101827826,
        "avg_pick_order_mae": 1.3321490993159486,
        "avg_pick_order_pick_weighted_mae": 0.9326991307771242,
        "avg_pick_bp_step_pick_weighted_mae": 1.5879627264501324,
        "heat_spearman": 0.8717305390404151,
        "top20_heat_overlap": 13,
        "games": 33,
        "champions_observed_picked": 75
      },
      "v3": {
        "pick_rate_mae_pp": 2.8263639933853413,
        "pick_rate_rmse_pp": 4.625346922035014,
        "ban_rate_mae_pp": 3.7435734091985013,
        "presence_mae_pp": 5.16392440642781,
        "presence_rmse_pp": 8.642814123562333,
        "role_pick_rmse_pp": 2.29294397739699,
        "avg_pick_order_mae": 1.330000811040258,
        "avg_pick_order_pick_weighted_mae": 0.9274134520488666,
        "avg_pick_bp_step_pick_weighted_mae": 1.5783697460752433,
        "heat_spearman": 0.8718562842652859,
        "top20_heat_overlap": 13,
        "games": 33,
        "champions_observed_picked": 75
      },
      "unsupported_actual_role_picks": 1,
      "actual_picks": 330,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-07-13 03:39:17"
    },
    {
      "event": "LPL 2025 Split 3 常规阶段",
      "patch": "25.14",
      "cutoff": "2025-07-19 07:13:52",
      "end": "2025-08-03 12:15:10",
      "train_events": 24,
      "test_games": 83,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.680366974702183,
        "pick_rate_rmse_pp": 4.468723217518798,
        "ban_rate_mae_pp": 3.633135336968829,
        "presence_mae_pp": 5.2160593550969425,
        "presence_rmse_pp": 8.846180667779262,
        "role_pick_rmse_pp": 2.0129637350068537,
        "avg_pick_order_mae": 1.3059123540280078,
        "avg_pick_order_pick_weighted_mae": 0.8347083143698736,
        "avg_pick_bp_step_pick_weighted_mae": 1.4166654331154027,
        "heat_spearman": 0.865491464249939,
        "top20_heat_overlap": 14,
        "games": 83,
        "champions_observed_picked": 81
      },
      "v3": {
        "pick_rate_mae_pp": 2.639140113567912,
        "pick_rate_rmse_pp": 4.445329667852688,
        "ban_rate_mae_pp": 3.6331314570469937,
        "presence_mae_pp": 5.163289591508778,
        "presence_rmse_pp": 8.81075816032907,
        "role_pick_rmse_pp": 2.0019776443972024,
        "avg_pick_order_mae": 1.286805966041003,
        "avg_pick_order_pick_weighted_mae": 0.8313809735033828,
        "avg_pick_bp_step_pick_weighted_mae": 1.4064286345527028,
        "heat_spearman": 0.8648107704582475,
        "top20_heat_overlap": 14,
        "games": 83,
        "champions_observed_picked": 81
      },
      "unsupported_actual_role_picks": 1,
      "actual_picks": 830,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-07-13 03:39:17"
    },
    {
      "event": "LCK 2025 Rounds 3-5 常规阶段",
      "patch": "25.14",
      "cutoff": "2025-07-23 08:07:58",
      "end": "2025-08-03 09:25:54",
      "train_events": 25,
      "test_games": 46,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.6289649956094236,
        "pick_rate_rmse_pp": 4.400755274273081,
        "ban_rate_mae_pp": 3.1500973572195683,
        "presence_mae_pp": 4.846543274750915,
        "presence_rmse_pp": 8.52561914871219,
        "role_pick_rmse_pp": 2.0144317555755213,
        "avg_pick_order_mae": 1.2905172527932114,
        "avg_pick_order_pick_weighted_mae": 1.039921049856768,
        "avg_pick_bp_step_pick_weighted_mae": 1.654527029936915,
        "heat_spearman": 0.8761114136227545,
        "top20_heat_overlap": 14,
        "games": 46,
        "champions_observed_picked": 73
      },
      "v3": {
        "pick_rate_mae_pp": 2.59595913773728,
        "pick_rate_rmse_pp": 4.3661963234716445,
        "ban_rate_mae_pp": 3.1500910517405396,
        "presence_mae_pp": 4.8080674457177635,
        "presence_rmse_pp": 8.493953351117305,
        "role_pick_rmse_pp": 2.001859992592449,
        "avg_pick_order_mae": 1.276859911146901,
        "avg_pick_order_pick_weighted_mae": 1.0314287867800034,
        "avg_pick_bp_step_pick_weighted_mae": 1.6388260734829443,
        "heat_spearman": 0.8765808058276631,
        "top20_heat_overlap": 14,
        "games": 46,
        "champions_observed_picked": 73
      },
      "unsupported_actual_role_picks": 0,
      "actual_picks": 460,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-07-20 15:29:19"
    },
    {
      "event": "LEC 2025 Summer 常规阶段",
      "patch": "25.15",
      "cutoff": "2025-08-02 15:14:26",
      "end": "2025-08-10 18:36:14",
      "train_events": 25,
      "test_games": 24,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 3.1949395061709427,
        "pick_rate_rmse_pp": 5.616449100669545,
        "ban_rate_mae_pp": 4.347576936460431,
        "presence_mae_pp": 5.828281053062318,
        "presence_rmse_pp": 10.16234398736431,
        "role_pick_rmse_pp": 2.539725335670009,
        "avg_pick_order_mae": 1.2616026402510812,
        "avg_pick_order_pick_weighted_mae": 1.0598915883542943,
        "avg_pick_bp_step_pick_weighted_mae": 1.6825332590549276,
        "heat_spearman": 0.7916854356855874,
        "top20_heat_overlap": 15,
        "games": 24,
        "champions_observed_picked": 63
      },
      "v3": {
        "pick_rate_mae_pp": 3.1610251442359285,
        "pick_rate_rmse_pp": 5.615790131654593,
        "ban_rate_mae_pp": 4.34757354277594,
        "presence_mae_pp": 5.784377009540096,
        "presence_rmse_pp": 10.138894162779827,
        "role_pick_rmse_pp": 2.5339754452660417,
        "avg_pick_order_mae": 1.2516848716293134,
        "avg_pick_order_pick_weighted_mae": 1.062111395237763,
        "avg_pick_bp_step_pick_weighted_mae": 1.6758153293971725,
        "heat_spearman": 0.7891522748703165,
        "top20_heat_overlap": 15,
        "games": 24,
        "champions_observed_picked": 63
      },
      "unsupported_actual_role_picks": 0,
      "actual_picks": 240,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-07-20 15:29:19"
    },
    {
      "event": "LPL 2025 Split 3 常规阶段",
      "patch": "25.15",
      "cutoff": "2025-08-04 09:11:58",
      "end": "2025-08-18 13:30:25",
      "train_events": 27,
      "test_games": 81,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 1.8339742688244822,
        "pick_rate_rmse_pp": 3.13319425851881,
        "ban_rate_mae_pp": 2.6852944433290444,
        "presence_mae_pp": 3.2620092733103276,
        "presence_rmse_pp": 7.277888191095677,
        "role_pick_rmse_pp": 1.4733674602243543,
        "avg_pick_order_mae": 1.223616498867878,
        "avg_pick_order_pick_weighted_mae": 0.8892230935901154,
        "avg_pick_bp_step_pick_weighted_mae": 1.394507451571337,
        "heat_spearman": 0.8870161876147536,
        "top20_heat_overlap": 17,
        "games": 81,
        "champions_observed_picked": 78
      },
      "v3": {
        "pick_rate_mae_pp": 1.8025915801028167,
        "pick_rate_rmse_pp": 3.139293887752733,
        "ban_rate_mae_pp": 2.6852916257133055,
        "presence_mae_pp": 3.229060405599235,
        "presence_rmse_pp": 7.259288289195549,
        "role_pick_rmse_pp": 1.463548536552675,
        "avg_pick_order_mae": 1.2093990259029785,
        "avg_pick_order_pick_weighted_mae": 0.8843228575012076,
        "avg_pick_bp_step_pick_weighted_mae": 1.3881108673102227,
        "heat_spearman": 0.8874090382845337,
        "top20_heat_overlap": 17,
        "games": 81,
        "champions_observed_picked": 78
      },
      "unsupported_actual_role_picks": 0,
      "actual_picks": 810,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-08-03 12:15:10"
    },
    {
      "event": "LCK 2025 Rounds 3-5 常规阶段",
      "patch": "25.15",
      "cutoff": "2025-08-06 08:06:02",
      "end": "2025-08-17 10:09:06",
      "train_events": 27,
      "test_games": 48,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.257723971142629,
        "pick_rate_rmse_pp": 3.87229364680794,
        "ban_rate_mae_pp": 3.165986747201587,
        "presence_mae_pp": 4.093520210956078,
        "presence_rmse_pp": 8.184246216540112,
        "role_pick_rmse_pp": 1.7287062216350295,
        "avg_pick_order_mae": 1.3791540829578215,
        "avg_pick_order_pick_weighted_mae": 1.0359342530532163,
        "avg_pick_bp_step_pick_weighted_mae": 1.684706616793904,
        "heat_spearman": 0.8604079126866858,
        "top20_heat_overlap": 16,
        "games": 48,
        "champions_observed_picked": 73
      },
      "v3": {
        "pick_rate_mae_pp": 2.2160653800634447,
        "pick_rate_rmse_pp": 3.8222812747728137,
        "ban_rate_mae_pp": 3.165983426958934,
        "presence_mae_pp": 4.050277151247541,
        "presence_rmse_pp": 8.174606939551001,
        "role_pick_rmse_pp": 1.7097431480853476,
        "avg_pick_order_mae": 1.354073066623618,
        "avg_pick_order_pick_weighted_mae": 1.0273165182028703,
        "avg_pick_bp_step_pick_weighted_mae": 1.6695172173733404,
        "heat_spearman": 0.8608340020039045,
        "top20_heat_overlap": 16,
        "games": 48,
        "champions_observed_picked": 73
      },
      "unsupported_actual_role_picks": 1,
      "actual_picks": 480,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-08-03 12:15:10"
    },
    {
      "event": "LCP 2025 Split 3 常规阶段",
      "patch": "25.16",
      "cutoff": "2025-08-15 09:40:31",
      "end": "2025-08-24 12:35:46",
      "train_events": 28,
      "test_games": 28,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.5249933634097763,
        "pick_rate_rmse_pp": 4.075032079679874,
        "ban_rate_mae_pp": 3.2373206374680956,
        "presence_mae_pp": 4.35154165815973,
        "presence_rmse_pp": 7.772911287491131,
        "role_pick_rmse_pp": 1.8469808504114216,
        "avg_pick_order_mae": 1.4372235396361976,
        "avg_pick_order_pick_weighted_mae": 1.000392736381686,
        "avg_pick_bp_step_pick_weighted_mae": 1.5943013022883448,
        "heat_spearman": 0.8007233306403941,
        "top20_heat_overlap": 16,
        "games": 28,
        "champions_observed_picked": 68
      },
      "v3": {
        "pick_rate_mae_pp": 2.486440092831231,
        "pick_rate_rmse_pp": 4.053514694781134,
        "ban_rate_mae_pp": 3.2373197200505825,
        "presence_mae_pp": 4.3101648606266,
        "presence_rmse_pp": 7.758847573053719,
        "role_pick_rmse_pp": 1.8365849452905882,
        "avg_pick_order_mae": 1.4410825156822213,
        "avg_pick_order_pick_weighted_mae": 0.9985637363029289,
        "avg_pick_bp_step_pick_weighted_mae": 1.5893403145883118,
        "heat_spearman": 0.7994059251613906,
        "top20_heat_overlap": 16,
        "games": 28,
        "champions_observed_picked": 68
      },
      "unsupported_actual_role_picks": 4,
      "actual_picks": 280,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-08-10 18:36:14"
    },
    {
      "event": "LPL 2025 Split 3 常规阶段",
      "patch": "25.16",
      "cutoff": "2025-08-19 09:11:44",
      "end": "2025-08-28 13:01:20",
      "train_events": 30,
      "test_games": 48,
      "partition": "development",
      "v2": {
        "pick_rate_mae_pp": 2.091204491258226,
        "pick_rate_rmse_pp": 3.4283042082583024,
        "ban_rate_mae_pp": 2.593775287995203,
        "presence_mae_pp": 3.560492415708326,
        "presence_rmse_pp": 6.127066078956652,
        "role_pick_rmse_pp": 1.5501530845531413,
        "avg_pick_order_mae": 1.1511449953684707,
        "avg_pick_order_pick_weighted_mae": 0.8577218576269662,
        "avg_pick_bp_step_pick_weighted_mae": 1.341141442742572,
        "heat_spearman": 0.85919403432419,
        "top20_heat_overlap": 18,
        "games": 48,
        "champions_observed_picked": 71
      },
      "v3": {
        "pick_rate_mae_pp": 2.0376619477641413,
        "pick_rate_rmse_pp": 3.3925788287355,
        "ban_rate_mae_pp": 2.593771742928649,
        "presence_mae_pp": 3.505197605999391,
        "presence_rmse_pp": 6.093246486109992,
        "role_pick_rmse_pp": 1.5354513834243428,
        "avg_pick_order_mae": 1.1547625580975958,
        "avg_pick_order_pick_weighted_mae": 0.8617541247330903,
        "avg_pick_bp_step_pick_weighted_mae": 1.3459034422811678,
        "heat_spearman": 0.8536394550350427,
        "top20_heat_overlap": 18,
        "games": 48,
        "champions_observed_picked": 71
      },
      "unsupported_actual_role_picks": 2,
      "actual_picks": 480,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-08-18 13:30:25"
    },
    {
      "event": "LCK 2025 Rounds 3-5 常规阶段",
      "patch": "25.16",
      "cutoff": "2025-08-20 08:06:31",
      "end": "2025-08-31 10:13:39",
      "train_events": 30,
      "test_games": 51,
      "partition": "retrospective_check",
      "v2": {
        "pick_rate_mae_pp": 2.0704116081251533,
        "pick_rate_rmse_pp": 3.616258694739036,
        "ban_rate_mae_pp": 2.983087596973481,
        "presence_mae_pp": 4.130461486853619,
        "presence_rmse_pp": 7.650977274924832,
        "role_pick_rmse_pp": 1.6656087473626024,
        "avg_pick_order_mae": 1.171747051795461,
        "avg_pick_order_pick_weighted_mae": 0.8337548762582041,
        "avg_pick_bp_step_pick_weighted_mae": 1.3044019285547521,
        "heat_spearman": 0.8631885188136204,
        "top20_heat_overlap": 17,
        "games": 51,
        "champions_observed_picked": 73
      },
      "v3": {
        "pick_rate_mae_pp": 2.030664654001876,
        "pick_rate_rmse_pp": 3.5801079697052556,
        "ban_rate_mae_pp": 2.9830868749104993,
        "presence_mae_pp": 4.094488666582629,
        "presence_rmse_pp": 7.6414463403568025,
        "role_pick_rmse_pp": 1.6491984252421896,
        "avg_pick_order_mae": 1.1624825464265798,
        "avg_pick_order_pick_weighted_mae": 0.830110476270626,
        "avg_pick_bp_step_pick_weighted_mae": 1.2875558621792405,
        "heat_spearman": 0.8630262866192442,
        "top20_heat_overlap": 17,
        "games": 51,
        "champions_observed_picked": 73
      },
      "unsupported_actual_role_picks": 0,
      "actual_picks": 510,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-08-18 13:30:25"
    },
    {
      "event": "LTA N 2025 Split 3 常规阶段",
      "patch": "25.17",
      "cutoff": "2025-08-29 20:06:10",
      "end": "2025-09-07 22:50:47",
      "train_events": 32,
      "test_games": 24,
      "partition": "retrospective_check",
      "v2": {
        "pick_rate_mae_pp": 2.5075107121088847,
        "pick_rate_rmse_pp": 3.986921766514364,
        "ban_rate_mae_pp": 3.841941618857562,
        "presence_mae_pp": 4.674813800453438,
        "presence_rmse_pp": 8.477315615094415,
        "role_pick_rmse_pp": 1.8305536587005677,
        "avg_pick_order_mae": 1.4293676451929895,
        "avg_pick_order_pick_weighted_mae": 1.23752987550414,
        "avg_pick_bp_step_pick_weighted_mae": 2.0054654053435925,
        "heat_spearman": 0.8426404949389468,
        "top20_heat_overlap": 14,
        "games": 24,
        "champions_observed_picked": 75
      },
      "v3": {
        "pick_rate_mae_pp": 2.484964498532011,
        "pick_rate_rmse_pp": 4.016807072774597,
        "ban_rate_mae_pp": 3.841940121706591,
        "presence_mae_pp": 4.6525799849178995,
        "presence_rmse_pp": 8.502435051023523,
        "role_pick_rmse_pp": 1.8428754808491443,
        "avg_pick_order_mae": 1.4127825923535764,
        "avg_pick_order_pick_weighted_mae": 1.2317132572037053,
        "avg_pick_bp_step_pick_weighted_mae": 1.9936163910543065,
        "heat_spearman": 0.8424813767839102,
        "top20_heat_overlap": 14,
        "games": 24,
        "champions_observed_picked": 75
      },
      "unsupported_actual_role_picks": 1,
      "actual_picks": 240,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-08-28 13:01:20"
    },
    {
      "event": "LCK 2025 Rounds 3-5 季后赛",
      "patch": "25.17",
      "cutoff": "2025-09-03 08:08:06",
      "end": "2025-09-28 08:21:35",
      "train_events": 33,
      "test_games": 61,
      "partition": "retrospective_check",
      "v2": {
        "pick_rate_mae_pp": 2.197245521710485,
        "pick_rate_rmse_pp": 3.604742522601259,
        "ban_rate_mae_pp": 2.892019908107326,
        "presence_mae_pp": 3.5548782955802243,
        "presence_rmse_pp": 6.864971347789889,
        "role_pick_rmse_pp": 1.635572092428729,
        "avg_pick_order_mae": 1.3428631447474468,
        "avg_pick_order_pick_weighted_mae": 0.9126116836479908,
        "avg_pick_bp_step_pick_weighted_mae": 1.5399404208554621,
        "heat_spearman": 0.8992921918488569,
        "top20_heat_overlap": 17,
        "games": 61,
        "champions_observed_picked": 97
      },
      "v3": {
        "pick_rate_mae_pp": 2.2162295264016025,
        "pick_rate_rmse_pp": 3.669297905985891,
        "ban_rate_mae_pp": 2.892018854839493,
        "presence_mae_pp": 3.57221893233991,
        "presence_rmse_pp": 6.895601124545969,
        "role_pick_rmse_pp": 1.659708133481648,
        "avg_pick_order_mae": 1.330345090170692,
        "avg_pick_order_pick_weighted_mae": 0.9097865544910646,
        "avg_pick_bp_step_pick_weighted_mae": 1.5323071698885382,
        "heat_spearman": 0.8992925131252197,
        "top20_heat_overlap": 17,
        "games": 61,
        "champions_observed_picked": 97
      },
      "unsupported_actual_role_picks": 5,
      "actual_picks": 610,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-08-31 10:13:39"
    },
    {
      "event": "LCP 2025 Split 3 季后赛",
      "patch": "25.17",
      "cutoff": "2025-09-05 09:43:20",
      "end": "2025-09-21 12:17:52",
      "train_events": 33,
      "test_games": 31,
      "partition": "retrospective_check",
      "v2": {
        "pick_rate_mae_pp": 2.285515757444804,
        "pick_rate_rmse_pp": 3.5472485795534943,
        "ban_rate_mae_pp": 3.2703167967723803,
        "presence_mae_pp": 4.059397609779834,
        "presence_rmse_pp": 7.245983881474806,
        "role_pick_rmse_pp": 1.6698921299270204,
        "avg_pick_order_mae": 1.2552937541511702,
        "avg_pick_order_pick_weighted_mae": 0.9895138630792122,
        "avg_pick_bp_step_pick_weighted_mae": 1.5938882127737632,
        "heat_spearman": 0.8808730722227317,
        "top20_heat_overlap": 14,
        "games": 31,
        "champions_observed_picked": 76
      },
      "v3": {
        "pick_rate_mae_pp": 2.254333111161113,
        "pick_rate_rmse_pp": 3.558206757484327,
        "ban_rate_mae_pp": 3.270314993884867,
        "presence_mae_pp": 4.0216564184625225,
        "presence_rmse_pp": 7.229834402862132,
        "role_pick_rmse_pp": 1.676729404987632,
        "avg_pick_order_mae": 1.2406480330576373,
        "avg_pick_order_pick_weighted_mae": 0.9847126988467725,
        "avg_pick_bp_step_pick_weighted_mae": 1.581332600044211,
        "heat_spearman": 0.8803523853565853,
        "top20_heat_overlap": 14,
        "games": 31,
        "champions_observed_picked": 76
      },
      "unsupported_actual_role_picks": 0,
      "actual_picks": 310,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-08-31 10:13:39"
    },
    {
      "event": "LEC 2025 Summer 季后赛",
      "patch": "25.17",
      "cutoff": "2025-09-05 15:09:47",
      "end": "2025-09-15 17:02:53",
      "train_events": 33,
      "test_games": 27,
      "partition": "retrospective_check",
      "v2": {
        "pick_rate_mae_pp": 2.6660448959937533,
        "pick_rate_rmse_pp": 4.195825008393366,
        "ban_rate_mae_pp": 3.1446516716145934,
        "presence_mae_pp": 4.477290282099198,
        "presence_rmse_pp": 7.147109228380226,
        "role_pick_rmse_pp": 1.9317297090047016,
        "avg_pick_order_mae": 1.4728694126284263,
        "avg_pick_order_pick_weighted_mae": 1.283525065412062,
        "avg_pick_bp_step_pick_weighted_mae": 2.184627331143196,
        "heat_spearman": 0.8424194544041502,
        "top20_heat_overlap": 13,
        "games": 27,
        "champions_observed_picked": 80
      },
      "v3": {
        "pick_rate_mae_pp": 2.6537712007037686,
        "pick_rate_rmse_pp": 4.224598799186116,
        "ban_rate_mae_pp": 3.144650243276149,
        "presence_mae_pp": 4.4704606560379725,
        "presence_rmse_pp": 7.16771563261719,
        "role_pick_rmse_pp": 1.942252923725781,
        "avg_pick_order_mae": 1.4738199702937531,
        "avg_pick_order_pick_weighted_mae": 1.2865003664891494,
        "avg_pick_bp_step_pick_weighted_mae": 2.1901117946373247,
        "heat_spearman": 0.8444902989503811,
        "top20_heat_overlap": 13,
        "games": 27,
        "champions_observed_picked": 80
      },
      "unsupported_actual_role_picks": 0,
      "actual_picks": 270,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-08-31 10:13:39"
    },
    {
      "event": "LPL 2025 Split 3 季后赛",
      "patch": "25.17",
      "cutoff": "2025-09-07 06:13:14",
      "end": "2025-09-21 12:03:38",
      "train_events": 33,
      "test_games": 58,
      "partition": "retrospective_check",
      "v2": {
        "pick_rate_mae_pp": 2.2000075019214727,
        "pick_rate_rmse_pp": 3.580235144014237,
        "ban_rate_mae_pp": 3.3187788329693255,
        "presence_mae_pp": 4.2220090303403195,
        "presence_rmse_pp": 7.83980514455362,
        "role_pick_rmse_pp": 1.5970358347387161,
        "avg_pick_order_mae": 1.4163767012481927,
        "avg_pick_order_pick_weighted_mae": 1.156921320437544,
        "avg_pick_bp_step_pick_weighted_mae": 1.9625772996568924,
        "heat_spearman": 0.8925169434457022,
        "top20_heat_overlap": 13,
        "games": 58,
        "champions_observed_picked": 92
      },
      "v3": {
        "pick_rate_mae_pp": 2.211029656006993,
        "pick_rate_rmse_pp": 3.6275198761744285,
        "ban_rate_mae_pp": 3.3187759406296933,
        "presence_mae_pp": 4.2364312789643765,
        "presence_rmse_pp": 7.872204333576807,
        "role_pick_rmse_pp": 1.612236375462209,
        "avg_pick_order_mae": 1.4257707595714988,
        "avg_pick_order_pick_weighted_mae": 1.1682827788027135,
        "avg_pick_bp_step_pick_weighted_mae": 1.9797633216245905,
        "heat_spearman": 0.8910726000428347,
        "top20_heat_overlap": 13,
        "games": 58,
        "champions_observed_picked": 92
      },
      "unsupported_actual_role_picks": 2,
      "actual_picks": 580,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-08-31 10:13:39"
    },
    {
      "event": "Asia Invitational 2025",
      "patch": "25.19",
      "cutoff": "2025-10-06 07:21:23",
      "end": "2025-10-12 14:32:23",
      "train_events": 38,
      "test_games": 42,
      "partition": "retrospective_check",
      "v2": {
        "pick_rate_mae_pp": 2.938748615286327,
        "pick_rate_rmse_pp": 4.852976175807951,
        "ban_rate_mae_pp": 3.7508013098825,
        "presence_mae_pp": 5.780294003971079,
        "presence_rmse_pp": 9.844039977020259,
        "role_pick_rmse_pp": 2.147269193326387,
        "avg_pick_order_mae": 1.584965388754538,
        "avg_pick_order_pick_weighted_mae": 1.2395538143354938,
        "avg_pick_bp_step_pick_weighted_mae": 2.081295555717771,
        "heat_spearman": 0.8285056581017309,
        "top20_heat_overlap": 14,
        "games": 42,
        "champions_observed_picked": 89
      },
      "v3": {
        "pick_rate_mae_pp": 2.914668264521118,
        "pick_rate_rmse_pp": 4.824433439189142,
        "ban_rate_mae_pp": 3.7462826108442746,
        "presence_mae_pp": 5.743736264882236,
        "presence_rmse_pp": 9.65060605203428,
        "role_pick_rmse_pp": 2.1274714477348637,
        "avg_pick_order_mae": 1.5784441024631533,
        "avg_pick_order_pick_weighted_mae": 1.232175105144639,
        "avg_pick_bp_step_pick_weighted_mae": 2.0709682979664237,
        "heat_spearman": 0.833382682177036,
        "top20_heat_overlap": 15,
        "games": 42,
        "champions_observed_picked": 89
      },
      "unsupported_actual_role_picks": 0,
      "actual_picks": 420,
      "forecast_mass_in_unsupported_roles": 0.0,
      "max_training_label_date": "2025-09-28 08:21:35"
    }
  ],
  "training_in_sample": {
    "pick_rate_mae_pp": 2.440433702706424,
    "pick_rate_rmse_pp": 4.0968310523182225,
    "ban_rate_mae_pp": 3.344501303398813,
    "presence_mae_pp": 4.5153795831550525,
    "presence_rmse_pp": 8.148322861882871,
    "role_pick_rmse_pp": 1.8726335172632322,
    "avg_pick_order_mae": 1.37071030471823,
    "avg_pick_order_pick_weighted_mae": 1.0736475228767672,
    "avg_pick_bp_step_pick_weighted_mae": 1.7664125271321127,
    "heat_spearman": 0.8569048545483542,
    "top20_heat_overlap": 15.025641025641026,
    "games": 45.41025641025641,
    "champions_observed_picked": 79.02564102564102
  },
  "development": {
    "v2": {
      "pick_rate_mae_pp": 2.5405346518884055,
      "pick_rate_rmse_pp": 4.239101889943282,
      "ban_rate_mae_pp": 3.424067279388181,
      "presence_mae_pp": 4.690930147442831,
      "presence_rmse_pp": 8.414013120582418,
      "role_pick_rmse_pp": 1.9415671052287506,
      "avg_pick_order_mae": 1.390617254581515,
      "avg_pick_order_pick_weighted_mae": 1.0732752664336234,
      "avg_pick_bp_step_pick_weighted_mae": 1.7431805334273005,
      "heat_spearman": 0.8525389483468588,
      "top20_heat_overlap": 15.037037037037036,
      "games": 48.407407407407405,
      "champions_observed_picked": 77.22222222222223
    },
    "v3": {
      "pick_rate_mae_pp": 2.5046958781763915,
      "pick_rate_rmse_pp": 4.239093213901275,
      "ban_rate_mae_pp": 3.424058996964973,
      "presence_mae_pp": 4.647742157456013,
      "presence_rmse_pp": 8.397550981567555,
      "role_pick_rmse_pp": 1.9366440872427872,
      "avg_pick_order_mae": 1.388527192476234,
      "avg_pick_order_pick_weighted_mae": 1.071890034759897,
      "avg_pick_bp_step_pick_weighted_mae": 1.7397815072624279,
      "heat_spearman": 0.8523339332836913,
      "top20_heat_overlap": 15.0,
      "games": 48.407407407407405,
      "champions_observed_picked": 77.22222222222223
    }
  },
  "retrospective_check": {
    "v2": {
      "pick_rate_mae_pp": 2.4093549446558398,
      "pick_rate_rmse_pp": 3.912029698803387,
      "ban_rate_mae_pp": 3.314513962168167,
      "presence_mae_pp": 4.414163501296816,
      "presence_rmse_pp": 7.867171781319721,
      "role_pick_rmse_pp": 1.7825230522126747,
      "avg_pick_order_mae": 1.3819261569311752,
      "avg_pick_order_pick_weighted_mae": 1.093344356953521,
      "avg_pick_bp_step_pick_weighted_mae": 1.8103137362922042,
      "heat_spearman": 0.8642051905393914,
      "top20_heat_overlap": 14.571428571428571,
      "games": 42.0,
      "champions_observed_picked": 83.14285714285714
    },
    "v3": {
      "pick_rate_mae_pp": 2.395094415904069,
      "pick_rate_rmse_pp": 3.928710260071394,
      "ban_rate_mae_pp": 3.313867091441652,
      "presence_mae_pp": 4.398796028883935,
      "presence_rmse_pp": 7.851406133859529,
      "role_pick_rmse_pp": 1.7872103130690669,
      "avg_pick_order_mae": 1.3748990134766987,
      "avg_pick_order_pick_weighted_mae": 1.091897319606953,
      "avg_pick_bp_step_pick_weighted_mae": 1.805093633913519,
      "heat_spearman": 0.8648711632936016,
      "top20_heat_overlap": 14.714285714285714,
      "games": 42.0,
      "champions_observed_picked": 83.14285714285714
    }
  },
  "s15_worlds_retrospective": {
    "v2": {
      "pick_rate_mae_pp": 2.653203572136778,
      "pick_rate_rmse_pp": 4.235880394604279,
      "ban_rate_mae_pp": 3.0384383730690545,
      "presence_mae_pp": 4.974716743704626,
      "presence_rmse_pp": 8.443032985442791,
      "role_pick_rmse_pp": 1.916217269120911,
      "avg_pick_order_mae": 1.501439553585809,
      "avg_pick_order_pick_weighted_mae": 0.906247132374233,
      "avg_pick_bp_step_pick_weighted_mae": 1.4946558806761252,
      "heat_spearman": 0.8889978437804233,
      "top20_heat_overlap": 14,
      "games": 84,
      "champions_observed_picked": 95
    },
    "v3": {
      "pick_rate_mae_pp": 2.4050772173369372,
      "pick_rate_rmse_pp": 3.927776396309473,
      "ban_rate_mae_pp": 3.0164703475739927,
      "presence_mae_pp": 4.778740398832493,
      "presence_rmse_pp": 8.420335143033672,
      "role_pick_rmse_pp": 1.809415133728023,
      "avg_pick_order_mae": 1.4038813009609201,
      "avg_pick_order_pick_weighted_mae": 0.8500478299679857,
      "avg_pick_bp_step_pick_weighted_mae": 1.4274753755339604,
      "heat_spearman": 0.8899916065873447,
      "top20_heat_overlap": 15,
      "games": 84,
      "champions_observed_picked": 95
    },
    "unsupported_actual_role_picks": 0
  },
  "validation_limit": "S15 last seven windows and Worlds were inspected previously; all reported checks are retrospective, not fresh blind tests.",
  "total_records": 39,
  "historical_games": 2392,
  "training_target_games": 1771,
  "worlds_labels_in_fit": 0,
  "s16_labels_in_fit": 0
}