{
 "board": "frozen",
 "season": "2026-27",
 "title": "The preseason board uses the ratings each metric had published before opening night of the 2026-27 NBA season (October 20, 2026). These ratings stay fixed, and every 2026-27 regular-season game is computed using them.",
 "scored_through": "2026-10-31",
 "first_game": "2026-10-20",
 "games": 88,
 "games_per_team": {
  "min": 4,
  "max": 7
 },
 "updated_utc": "2026-11-01T16:21:01+00:00",
 "primary_test": "net_rmse",
 "net_error_shown": true,
 "early": true,
 "net_error_note": "Early: 4-7 games per team. A few games decide each team's margin, so the ranges overlap and the floor rows score about the same as the metrics until every team has played 20.",
 "record_note": "W-L: each game counts as a win when the team the metric rates higher won (no home-court edge, the same for every metric)",
 "rules": {
  "min_minutes": 250,
  "replacement": -2.0
 },
 "confidence": 0.9,
 "resamples": 2000,
 "harness_sha256": "cfde3f922e88298361c51bf293b959e8a93626fde51fe4db2c7bedc2f5d11b4a",
 "repo_commit": "7b2b48698bd14b72db9e15e9fcb62694796b0398",
 "snapshot": {
  "file": "live/snapshots/preseason.json",
  "saved_at_utc": "2026-10-31T20:40:22+00:00"
 },
 "labels": {
  "archived": "published by the maker before opening night, with a public date (archive snapshot, release or commit)",
  "saved": "copied before opening night, with no public record of the date",
  "backfill": "taken later from the maker's view of a past date, which shows its current model"
 },
 "tests": {
  "margin_r2": "Game R²: the share of the variation in final game margins that the predicted margins explain",
  "winpct_r": "Win % r: the correlation between team ratings and team winning percentage",
  "net_rmse": "Net error: the average miss, in points per 100 possessions, between team ratings and opponent-adjusted team margins"
 },
 "metrics": [
  {
   "id": "xpm",
   "name": "xPM",
   "maker": "George Berry, VORP.app",
   "url": "https://vorp.app",
   "ours": false,
   "label": "archived",
   "source": "VORP.app xPM v1.2 preseason forecast, made 2026-10-12, published 2026-10-13 (georgeberry.substack.com/p/the-big-vorpapp-2026-27-nba-player); file from George Berry 2026-10-31, shifted by him to above average (xpm - 2.166)",
   "sha256": "5e62034575eab2348844508199e232e9709cd4051d607289ef15a8f175a6344a",
   "players": 608,
   "coverage": 1.0,
   "record": {
    "w": 58,
    "l": 30
   },
   "tests": {
    "margin_r2": {
     "value": 0.2009,
     "interval": [
      0.1219,
      0.292
     ],
     "rank": [
      1,
      5
     ]
    },
    "winpct_r": {
     "value": 0.5583,
     "interval": [
      0.3352,
      0.7763
     ],
     "rank": [
      1,
      10
     ]
    },
    "net_rmse": {
     "value": 11.0442,
     "interval": [
      9.0663,
      12.7078
     ],
     "rank": [
      1,
      9
     ]
    }
   }
  },
  {
   "id": "loki",
   "name": "LOKI",
   "maker": "LUMA Basketball Research",
   "url": "https://lumahoops.org/loki",
   "ours": true,
   "label": "archived",
   "source": "LOKI v3.3 2026-27 preseason board, frozen 2026-10-12, release sha256 a1f9bad8...",
   "sha256": "c78ec0deb99f547e460e00bde98e867623ecf14c3f6d8ffaac599595fd5395d7",
   "players": 687,
   "coverage": 1.0,
   "record": {
    "w": 63,
    "l": 25
   },
   "tests": {
    "margin_r2": {
     "value": 0.1699,
     "interval": [
      0.0852,
      0.2802
     ],
     "rank": [
      1,
      9
     ]
    },
    "winpct_r": {
     "value": 0.5458,
     "interval": [
      0.3352,
      0.7477
     ],
     "rank": [
      2,
      10
     ]
    },
    "net_rmse": {
     "value": 11.0601,
     "interval": [
      9.23,
      12.6086
     ],
     "rank": [
      1,
      9
     ]
    }
   }
  },
  {
   "id": "darko",
   "name": "DARKO",
   "maker": "Kostya Medvedovsky",
   "url": "https://www.darko.app/",
   "ours": false,
   "label": "backfill",
   "source": "darko.app date view as of 2026-10-19 (day before opening night), pulled 2026-10-31; DARKO revises past dates",
   "sha256": "38d09f71a9d93a9293ac876aa1c1947b757dac7581b22c894c7f340c7e43d257",
   "players": 547,
   "coverage": 0.9995,
   "record": {
    "w": 60,
    "l": 28
   },
   "tests": {
    "margin_r2": {
     "value": 0.1812,
     "interval": [
      0.0931,
      0.2878
     ],
     "rank": [
      1,
      8
     ]
    },
    "winpct_r": {
     "value": 0.5205,
     "interval": [
      0.2706,
      0.7676
     ],
     "rank": [
      2,
      10
     ]
    },
    "net_rmse": {
     "value": 11.0892,
     "interval": [
      9.1178,
      12.6946
     ],
     "rank": [
      1,
      8
     ]
    }
   }
  },
  {
   "id": "openrapm",
   "name": "OpenRAPM",
   "maker": "Nathan Walker",
   "url": "https://openrapm.com/",
   "ours": false,
   "label": "archived",
   "source": "bbstats/openrapm docs/data/ratings.json at commit 8dc207b (2026-10-19 18:50 UTC, last before opening night), 2025-26 total",
   "sha256": "f85762fa4716f9b97cd4a43eebaca11c1d0ac335dc5275319b988d73a74f843b",
   "players": 582,
   "coverage": 1.0,
   "record": {
    "w": 60,
    "l": 28
   },
   "tests": {
    "margin_r2": {
     "value": 0.1486,
     "interval": [
      0.08,
      0.2318
     ],
     "rank": [
      3,
      10
     ]
    },
    "winpct_r": {
     "value": 0.5368,
     "interval": [
      0.3261,
      0.7401
     ],
     "rank": [
      2,
      10
     ]
    },
    "net_rmse": {
     "value": 11.1442,
     "interval": [
      9.1351,
      12.8342
     ],
     "rank": [
      1,
      9
     ]
    }
   }
  },
  {
   "id": "pulse",
   "name": "Pulse",
   "maker": "CourtSignal",
   "url": "https://courtsignal.net/ratings",
   "ours": false,
   "label": "backfill",
   "source": "CourtSignal Season PULSE 2025-26 (courtshare.net/data/leaderboard-2026.json, pulse_net); our copy saved 2026-10-25, identical on 2026-10-31",
   "sha256": "0500492433e1a6b0bd677963affe5f4bba4befe34d3925cdfba1c3b721b494f2",
   "players": 582,
   "coverage": 1.0,
   "record": {
    "w": 58,
    "l": 30
   },
   "tests": {
    "margin_r2": {
     "value": 0.1515,
     "interval": [
      0.0749,
      0.2438
     ],
     "rank": [
      3,
      10
     ]
    },
    "winpct_r": {
     "value": 0.5438,
     "interval": [
      0.3197,
      0.7529
     ],
     "rank": [
      2,
      10
     ]
    },
    "net_rmse": {
     "value": 11.1805,
     "interval": [
      9.3466,
      12.7085
     ],
     "rank": [
      1,
      9
     ]
    }
   }
  },
  {
   "id": "xrapm",
   "name": "xRAPM",
   "maker": "Jeremias Engelmann",
   "url": "https://xrapm.com/",
   "ours": false,
   "label": "archived",
   "source": "xrapm.com 2025-26 final (metrics updated 2026-04-12), Wayback capture web.archive.org/web/20260925005234/https://xrapm.com/",
   "sha256": "1af65024cd22eccad3379d60c349c8aaec123cef227173c3cbe3e4a73307c328",
   "players": 582,
   "coverage": 1.0,
   "record": {
    "w": 58,
    "l": 30
   },
   "tests": {
    "margin_r2": {
     "value": 0.1494,
     "interval": [
      0.0753,
      0.2428
     ],
     "rank": [
      3,
      10
     ]
    },
    "winpct_r": {
     "value": 0.5515,
     "interval": [
      0.3627,
      0.7308
     ],
     "rank": [
      2,
      10
     ]
    },
    "net_rmse": {
     "value": 11.2214,
     "interval": [
      9.3416,
      12.805
     ],
     "rank": [
      1,
      9
     ]
    }
   }
  },
  {
   "id": "lebron",
   "name": "LEBRON",
   "maker": "BBall Index",
   "url": "https://www.bball-index.com/lebron-database/",
   "ours": false,
   "label": "saved",
   "source": "BBall Index LEBRON database export saved by us 2026-10-03 (before opening night), 2025-26 final; no Wayback copy of the data",
   "sha256": "2ea8ed7dd55cf21f9922d0badc036c3505059478ce81481b6cbb340c5feac0a1",
   "players": 582,
   "coverage": 1.0,
   "record": {
    "w": 58,
    "l": 30
   },
   "tests": {
    "margin_r2": {
     "value": 0.1337,
     "interval": [
      0.0598,
      0.2224
     ],
     "rank": [
      6,
      10
     ]
    },
    "winpct_r": {
     "value": 0.5393,
     "interval": [
      0.3155,
      0.7546
     ],
     "rank": [
      2,
      10
     ]
    },
    "net_rmse": {
     "value": 11.2237,
     "interval": [
      9.313,
      12.7968
     ],
     "rank": [
      2,
      9
     ]
    }
   }
  },
  {
   "id": "epm",
   "name": "EPM",
   "maker": "Taylor Snarr, Dunks & Threes",
   "url": "https://dunksandthrees.com/epm",
   "ours": false,
   "label": "backfill",
   "source": "dunksandthrees.com date view as of each team's first game (pulled 2026-10-29)",
   "sha256": "8d24ecda23832b5a148d11521bcd428a93d8dd572639ff53ee2ceaf60a66efe8",
   "players": 520,
   "coverage": 0.9994,
   "record": {
    "w": 59,
    "l": 29
   },
   "tests": {
    "margin_r2": {
     "value": 0.1559,
     "interval": [
      0.0798,
      0.2536
     ],
     "rank": [
      2,
      10
     ]
    },
    "winpct_r": {
     "value": 0.553,
     "interval": [
      0.3467,
      0.7441
     ],
     "rank": [
      2,
      10
     ]
    },
    "net_rmse": {
     "value": 11.2607,
     "interval": [
      9.4794,
      12.7175
     ],
     "rank": [
      1,
      10
     ]
    }
   }
  },
  {
   "id": "danny",
   "name": "EPM projection (Danny Harlan)",
   "maker": "Danny Harlan",
   "url": "https://github.com/dannyharlan05/nba-epm-projections",
   "ours": false,
   "label": "archived",
   "source": "Danny Harlan's EPM projection model (github.com/dannyharlan05/nba-epm-projections), pred_epm_1y from artifacts/predictions.parquet at commit 97c0817, pushed 2026-10-20 17:03 UTC (GitHub push event), before opening night",
   "sha256": "23b7d01a01dabe11f3d36560fb2826bdd06b10c5c3d126413d04ab15503d8623",
   "players": 679,
   "coverage": 1.0,
   "record": {
    "w": 61,
    "l": 27
   },
   "tests": {
    "margin_r2": {
     "value": 0.1845,
     "interval": [
      0.1068,
      0.277
     ],
     "rank": [
      1,
      5
     ]
    },
    "winpct_r": {
     "value": 0.5841,
     "interval": [
      0.3783,
      0.7723
     ],
     "rank": [
      1,
      7
     ]
    },
    "net_rmse": {
     "value": 11.3038,
     "interval": [
      9.432,
      12.8335
     ],
     "rank": [
      2,
      9
     ]
    }
   }
  },
  {
   "id": "bpm_bbref",
   "name": "BPM (Basketball-Reference)",
   "maker": "Daniel Myers / Basketball-Reference",
   "url": "https://www.basketball-reference.com/leagues/NBA_2026_advanced.html",
   "ours": false,
   "label": "archived",
   "source": "Basketball-Reference 2025-26 Advanced table, Wayback capture 2026-10-08 (web.archive.org/web/20261008065049/https://www.basketball-reference.com/leagues/NBA_2026_advanced.html), via tools/from_bbref.py",
   "sha256": "8fec8554831ace7c0d623022f9d7b7835f90699e663d9f5d4e2ed2d478bed2c8",
   "players": 581,
   "coverage": 1.0,
   "record": {
    "w": 62,
    "l": 26
   },
   "tests": {
    "margin_r2": {
     "value": 0.1524,
     "interval": [
      0.0797,
      0.2389
     ],
     "rank": [
      3,
      10
     ]
    },
    "winpct_r": {
     "value": 0.5938,
     "interval": [
      0.3966,
      0.7738
     ],
     "rank": [
      1,
      7
     ]
    },
    "net_rmse": {
     "value": 11.7128,
     "interval": [
      9.9736,
      13.2051
     ],
     "rank": [
      7,
      10
     ]
    }
   }
  }
 ],
 "reference": [
  {
   "id": "ceiling_rapm_same_season",
   "name": "Same-season RAPM (ceiling)",
   "description": "Plain RAPM fit on this season's games so far: it has seen the games it is computed on.",
   "tests": {
    "margin_r2": {
     "value": 0.3606,
     "interval": [
      0.2615,
      0.457
     ]
    },
    "winpct_r": {
     "value": 0.6899,
     "interval": [
      0.5385,
      0.8168
     ]
    },
    "net_rmse": {
     "value": 10.692,
     "interval": [
      8.8131,
      12.2858
     ]
    }
   }
  },
  {
   "id": "consensus",
   "name": "Consensus of all metrics",
   "description": "Each player's average across the ranked metrics that rate him (equal weights).",
   "tests": {
    "margin_r2": {
     "value": 0.1718,
     "interval": [
      0.0931,
      0.265
     ]
    },
    "winpct_r": {
     "value": 0.5704,
     "interval": [
      0.3592,
      0.7706
     ]
    },
    "net_rmse": {
     "value": 11.1182,
     "interval": [
      9.2657,
      12.6668
     ]
    }
   }
  },
  {
   "id": "rapm_last_season",
   "name": "Last season's RAPM, no prior",
   "description": "Plain RAPM fit on 2025-26 only, carried forward.",
   "tests": {
    "margin_r2": {
     "value": 0.1436,
     "interval": [
      0.0633,
      0.2506
     ]
    },
    "winpct_r": {
     "value": 0.4629,
     "interval": [
      0.2234,
      0.6931
     ]
    },
    "net_rmse": {
     "value": 10.9166,
     "interval": [
      8.9389,
      12.5707
     ]
    }
   }
  },
  {
   "id": "baseline_last_team",
   "name": "Last season's team (floor)",
   "description": "Each player = his main team's opponent-adjusted margin last season / 5.",
   "tests": {
    "margin_r2": {
     "value": 0.1282,
     "interval": [
      0.0495,
      0.2348
     ]
    },
    "winpct_r": {
     "value": 0.4686,
     "interval": [
      0.2118,
      0.7055
     ]
    },
    "net_rmse": {
     "value": 11.0562,
     "interval": [
      8.9526,
      12.8546
     ]
    }
   }
  },
  {
   "id": "baseline_zero",
   "name": "Everyone 0 (floor)",
   "description": "Every player 0; only the -2.0 for low-minute players separates teams.",
   "tests": {
    "margin_r2": {
     "value": 0.0694,
     "interval": [
      0.0127,
      0.1651
     ]
    },
    "winpct_r": {
     "value": 0.1173,
     "interval": [
      -0.2093,
      0.4144
     ]
    },
    "net_rmse": {
     "value": 11.3945,
     "interval": [
      9.3787,
      13.0858
     ]
    }
   }
  }
 ],
 "pairs": [
  {
   "test": "margin_r2",
   "a": "bpm_bbref",
   "b": "danny",
   "diff": -0.0322,
   "interval": [
    -0.0753,
    0.0063
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "bpm_bbref",
   "b": "darko",
   "diff": -0.0288,
   "interval": [
    -0.0836,
    0.0181
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "bpm_bbref",
   "b": "epm",
   "diff": -0.0035,
   "interval": [
    -0.0524,
    0.0399
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "bpm_bbref",
   "b": "lebron",
   "diff": 0.0187,
   "interval": [
    -0.0246,
    0.0653
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "bpm_bbref",
   "b": "loki",
   "diff": -0.0175,
   "interval": [
    -0.0801,
    0.0304
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "bpm_bbref",
   "b": "openrapm",
   "diff": 0.0038,
   "interval": [
    -0.0326,
    0.0446
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "bpm_bbref",
   "b": "pulse",
   "diff": 0.0009,
   "interval": [
    -0.0364,
    0.0343
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "bpm_bbref",
   "b": "xpm",
   "diff": -0.0485,
   "interval": [
    -0.0944,
    -0.0049
   ],
   "separated": true
  },
  {
   "test": "margin_r2",
   "a": "bpm_bbref",
   "b": "xrapm",
   "diff": 0.003,
   "interval": [
    -0.0363,
    0.0381
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "danny",
   "b": "darko",
   "diff": 0.0034,
   "interval": [
    -0.0436,
    0.0494
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "danny",
   "b": "epm",
   "diff": 0.0286,
   "interval": [
    0.0036,
    0.0528
   ],
   "separated": true
  },
  {
   "test": "margin_r2",
   "a": "danny",
   "b": "lebron",
   "diff": 0.0509,
   "interval": [
    0.0179,
    0.0921
   ],
   "separated": true
  },
  {
   "test": "margin_r2",
   "a": "danny",
   "b": "loki",
   "diff": 0.0147,
   "interval": [
    -0.0263,
    0.046
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "danny",
   "b": "openrapm",
   "diff": 0.036,
   "interval": [
    -0.0065,
    0.0884
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "danny",
   "b": "pulse",
   "diff": 0.0331,
   "interval": [
    -0.005,
    0.0735
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "danny",
   "b": "xpm",
   "diff": -0.0163,
   "interval": [
    -0.0561,
    0.0268
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "danny",
   "b": "xrapm",
   "diff": 0.0351,
   "interval": [
    -0.0031,
    0.0739
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "darko",
   "b": "epm",
   "diff": 0.0252,
   "interval": [
    -0.0258,
    0.0736
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "darko",
   "b": "lebron",
   "diff": 0.0475,
   "interval": [
    0.0034,
    0.0999
   ],
   "separated": true
  },
  {
   "test": "margin_r2",
   "a": "darko",
   "b": "loki",
   "diff": 0.0113,
   "interval": [
    -0.0406,
    0.057
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "darko",
   "b": "openrapm",
   "diff": 0.0326,
   "interval": [
    -0.013,
    0.0857
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "darko",
   "b": "pulse",
   "diff": 0.0297,
   "interval": [
    -0.0113,
    0.0776
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "darko",
   "b": "xpm",
   "diff": -0.0197,
   "interval": [
    -0.0649,
    0.0288
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "darko",
   "b": "xrapm",
   "diff": 0.0317,
   "interval": [
    -0.0166,
    0.0832
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "epm",
   "b": "lebron",
   "diff": 0.0222,
   "interval": [
    -0.0111,
    0.0658
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "epm",
   "b": "loki",
   "diff": -0.014,
   "interval": [
    -0.0689,
    0.0331
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "epm",
   "b": "openrapm",
   "diff": 0.0074,
   "interval": [
    -0.0376,
    0.0602
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "epm",
   "b": "pulse",
   "diff": 0.0045,
   "interval": [
    -0.0326,
    0.0487
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "epm",
   "b": "xpm",
   "diff": -0.045,
   "interval": [
    -0.0995,
    0.0129
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "epm",
   "b": "xrapm",
   "diff": 0.0065,
   "interval": [
    -0.0341,
    0.0471
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "lebron",
   "b": "loki",
   "diff": -0.0362,
   "interval": [
    -0.0957,
    0.0068
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "lebron",
   "b": "openrapm",
   "diff": -0.0149,
   "interval": [
    -0.0538,
    0.0227
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "lebron",
   "b": "pulse",
   "diff": -0.0178,
   "interval": [
    -0.0596,
    0.016
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "lebron",
   "b": "xpm",
   "diff": -0.0672,
   "interval": [
    -0.1184,
    -0.0215
   ],
   "separated": true
  },
  {
   "test": "margin_r2",
   "a": "lebron",
   "b": "xrapm",
   "diff": -0.0157,
   "interval": [
    -0.0579,
    0.0162
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "loki",
   "b": "openrapm",
   "diff": 0.0213,
   "interval": [
    -0.032,
    0.0908
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "loki",
   "b": "pulse",
   "diff": 0.0184,
   "interval": [
    -0.0302,
    0.0813
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "loki",
   "b": "xpm",
   "diff": -0.031,
   "interval": [
    -0.0699,
    0.0173
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "loki",
   "b": "xrapm",
   "diff": 0.0205,
   "interval": [
    -0.0257,
    0.0831
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "openrapm",
   "b": "pulse",
   "diff": -0.0029,
   "interval": [
    -0.041,
    0.0302
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "openrapm",
   "b": "xpm",
   "diff": -0.0523,
   "interval": [
    -0.1091,
    -0.0005
   ],
   "separated": true
  },
  {
   "test": "margin_r2",
   "a": "openrapm",
   "b": "xrapm",
   "diff": -0.0008,
   "interval": [
    -0.0424,
    0.0361
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "pulse",
   "b": "xpm",
   "diff": -0.0494,
   "interval": [
    -0.0958,
    -0.002
   ],
   "separated": true
  },
  {
   "test": "margin_r2",
   "a": "pulse",
   "b": "xrapm",
   "diff": 0.002,
   "interval": [
    -0.0356,
    0.0349
   ],
   "separated": false
  },
  {
   "test": "margin_r2",
   "a": "xpm",
   "b": "xrapm",
   "diff": 0.0515,
   "interval": [
    0.0006,
    0.1016
   ],
   "separated": true
  },
  {
   "test": "winpct_r",
   "a": "bpm_bbref",
   "b": "danny",
   "diff": 0.0097,
   "interval": [
    -0.0496,
    0.0692
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "bpm_bbref",
   "b": "darko",
   "diff": 0.0733,
   "interval": [
    -0.0395,
    0.176
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "bpm_bbref",
   "b": "epm",
   "diff": 0.0408,
   "interval": [
    -0.0356,
    0.1181
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "bpm_bbref",
   "b": "lebron",
   "diff": 0.0545,
   "interval": [
    -0.0269,
    0.1402
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "bpm_bbref",
   "b": "loki",
   "diff": 0.048,
   "interval": [
    -0.0335,
    0.1189
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "bpm_bbref",
   "b": "openrapm",
   "diff": 0.057,
   "interval": [
    -0.0092,
    0.1172
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "bpm_bbref",
   "b": "pulse",
   "diff": 0.05,
   "interval": [
    -0.0342,
    0.1335
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "bpm_bbref",
   "b": "xpm",
   "diff": 0.0355,
   "interval": [
    -0.0763,
    0.1385
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "bpm_bbref",
   "b": "xrapm",
   "diff": 0.0423,
   "interval": [
    -0.0341,
    0.1229
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "danny",
   "b": "darko",
   "diff": 0.0636,
   "interval": [
    -0.0383,
    0.1576
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "danny",
   "b": "epm",
   "diff": 0.0311,
   "interval": [
    -0.0133,
    0.0748
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "danny",
   "b": "lebron",
   "diff": 0.0448,
   "interval": [
    -0.0369,
    0.1242
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "danny",
   "b": "loki",
   "diff": 0.0383,
   "interval": [
    -0.0323,
    0.1026
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "danny",
   "b": "openrapm",
   "diff": 0.0473,
   "interval": [
    -0.0304,
    0.117
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "danny",
   "b": "pulse",
   "diff": 0.0403,
   "interval": [
    -0.0482,
    0.1308
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "danny",
   "b": "xpm",
   "diff": 0.0258,
   "interval": [
    -0.0891,
    0.1334
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "danny",
   "b": "xrapm",
   "diff": 0.0326,
   "interval": [
    -0.0307,
    0.1013
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "darko",
   "b": "epm",
   "diff": -0.0325,
   "interval": [
    -0.1404,
    0.0759
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "darko",
   "b": "lebron",
   "diff": -0.0189,
   "interval": [
    -0.0956,
    0.0729
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "darko",
   "b": "loki",
   "diff": -0.0253,
   "interval": [
    -0.1124,
    0.0723
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "darko",
   "b": "openrapm",
   "diff": -0.0164,
   "interval": [
    -0.102,
    0.0818
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "darko",
   "b": "pulse",
   "diff": -0.0233,
   "interval": [
    -0.1022,
    0.0713
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "darko",
   "b": "xpm",
   "diff": -0.0379,
   "interval": [
    -0.1283,
    0.0547
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "darko",
   "b": "xrapm",
   "diff": -0.0311,
   "interval": [
    -0.1286,
    0.08
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "epm",
   "b": "lebron",
   "diff": 0.0137,
   "interval": [
    -0.0709,
    0.1018
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "epm",
   "b": "loki",
   "diff": 0.0072,
   "interval": [
    -0.0903,
    0.0953
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "epm",
   "b": "openrapm",
   "diff": 0.0162,
   "interval": [
    -0.0801,
    0.1033
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "epm",
   "b": "pulse",
   "diff": 0.0092,
   "interval": [
    -0.0836,
    0.1063
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "epm",
   "b": "xpm",
   "diff": -0.0053,
   "interval": [
    -0.1401,
    0.1266
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "epm",
   "b": "xrapm",
   "diff": 0.0015,
   "interval": [
    -0.0699,
    0.0767
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "lebron",
   "b": "loki",
   "diff": -0.0065,
   "interval": [
    -0.0981,
    0.0771
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "lebron",
   "b": "openrapm",
   "diff": 0.0025,
   "interval": [
    -0.0773,
    0.0701
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "lebron",
   "b": "pulse",
   "diff": -0.0045,
   "interval": [
    -0.0807,
    0.0792
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "lebron",
   "b": "xpm",
   "diff": -0.019,
   "interval": [
    -0.1206,
    0.0679
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "lebron",
   "b": "xrapm",
   "diff": -0.0122,
   "interval": [
    -0.0898,
    0.0686
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "loki",
   "b": "openrapm",
   "diff": 0.0089,
   "interval": [
    -0.0754,
    0.1004
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "loki",
   "b": "pulse",
   "diff": 0.002,
   "interval": [
    -0.079,
    0.0883
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "loki",
   "b": "xpm",
   "diff": -0.0125,
   "interval": [
    -0.0989,
    0.063
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "loki",
   "b": "xrapm",
   "diff": -0.0058,
   "interval": [
    -0.0754,
    0.0713
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "openrapm",
   "b": "pulse",
   "diff": -0.0069,
   "interval": [
    -0.0735,
    0.0723
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "openrapm",
   "b": "xpm",
   "diff": -0.0215,
   "interval": [
    -0.1144,
    0.0615
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "openrapm",
   "b": "xrapm",
   "diff": -0.0147,
   "interval": [
    -0.0837,
    0.0585
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "pulse",
   "b": "xpm",
   "diff": -0.0146,
   "interval": [
    -0.0953,
    0.0574
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "pulse",
   "b": "xrapm",
   "diff": -0.0078,
   "interval": [
    -0.0818,
    0.0698
   ],
   "separated": false
  },
  {
   "test": "winpct_r",
   "a": "xpm",
   "b": "xrapm",
   "diff": 0.0068,
   "interval": [
    -0.0909,
    0.1125
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "bpm_bbref",
   "b": "danny",
   "diff": 0.4089,
   "interval": [
    -0.034,
    0.883
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "bpm_bbref",
   "b": "darko",
   "diff": 0.6236,
   "interval": [
    0.0667,
    1.2704
   ],
   "separated": true
  },
  {
   "test": "net_rmse",
   "a": "bpm_bbref",
   "b": "epm",
   "diff": 0.4521,
   "interval": [
    -0.095,
    0.9755
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "bpm_bbref",
   "b": "lebron",
   "diff": 0.4891,
   "interval": [
    -0.0732,
    1.0745
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "bpm_bbref",
   "b": "loki",
   "diff": 0.6527,
   "interval": [
    -0.011,
    1.3521
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "bpm_bbref",
   "b": "openrapm",
   "diff": 0.5686,
   "interval": [
    -0.0692,
    1.2489
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "bpm_bbref",
   "b": "pulse",
   "diff": 0.5323,
   "interval": [
    -0.0054,
    1.1069
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "bpm_bbref",
   "b": "xpm",
   "diff": 0.6686,
   "interval": [
    -0.0204,
    1.4241
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "bpm_bbref",
   "b": "xrapm",
   "diff": 0.4914,
   "interval": [
    -0.0108,
    1.0454
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "danny",
   "b": "darko",
   "diff": 0.2146,
   "interval": [
    -0.3137,
    0.748
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "danny",
   "b": "epm",
   "diff": 0.0431,
   "interval": [
    -0.4752,
    0.5739
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "danny",
   "b": "lebron",
   "diff": 0.0801,
   "interval": [
    -0.5428,
    0.6945
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "danny",
   "b": "loki",
   "diff": 0.2437,
   "interval": [
    -0.2337,
    0.7561
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "danny",
   "b": "openrapm",
   "diff": 0.1596,
   "interval": [
    -0.5582,
    0.9254
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "danny",
   "b": "pulse",
   "diff": 0.1234,
   "interval": [
    -0.4854,
    0.7662
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "danny",
   "b": "xpm",
   "diff": 0.2596,
   "interval": [
    -0.3245,
    0.91
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "danny",
   "b": "xrapm",
   "diff": 0.0824,
   "interval": [
    -0.4519,
    0.6726
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "darko",
   "b": "epm",
   "diff": -0.1715,
   "interval": [
    -0.7691,
    0.4228
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "darko",
   "b": "lebron",
   "diff": -0.1345,
   "interval": [
    -0.6368,
    0.3427
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "darko",
   "b": "loki",
   "diff": 0.0291,
   "interval": [
    -0.5347,
    0.5331
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "darko",
   "b": "openrapm",
   "diff": -0.055,
   "interval": [
    -0.6544,
    0.5558
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "darko",
   "b": "pulse",
   "diff": -0.0913,
   "interval": [
    -0.6923,
    0.4127
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "darko",
   "b": "xpm",
   "diff": 0.045,
   "interval": [
    -0.4251,
    0.5139
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "darko",
   "b": "xrapm",
   "diff": -0.1322,
   "interval": [
    -0.7874,
    0.493
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "epm",
   "b": "lebron",
   "diff": 0.037,
   "interval": [
    -0.4177,
    0.5345
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "epm",
   "b": "loki",
   "diff": 0.2006,
   "interval": [
    -0.5836,
    0.9776
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "epm",
   "b": "openrapm",
   "diff": 0.1165,
   "interval": [
    -0.4516,
    0.7228
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "epm",
   "b": "pulse",
   "diff": 0.0802,
   "interval": [
    -0.5253,
    0.7006
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "epm",
   "b": "xpm",
   "diff": 0.2165,
   "interval": [
    -0.5941,
    1.0812
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "epm",
   "b": "xrapm",
   "diff": 0.0393,
   "interval": [
    -0.3853,
    0.4617
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "lebron",
   "b": "loki",
   "diff": 0.1636,
   "interval": [
    -0.5565,
    0.8558
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "lebron",
   "b": "openrapm",
   "diff": 0.0795,
   "interval": [
    -0.2452,
    0.4446
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "lebron",
   "b": "pulse",
   "diff": 0.0432,
   "interval": [
    -0.4204,
    0.4715
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "lebron",
   "b": "xpm",
   "diff": 0.1795,
   "interval": [
    -0.4472,
    0.791
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "lebron",
   "b": "xrapm",
   "diff": 0.0023,
   "interval": [
    -0.4761,
    0.4766
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "loki",
   "b": "openrapm",
   "diff": -0.0841,
   "interval": [
    -0.7966,
    0.7131
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "loki",
   "b": "pulse",
   "diff": -0.1204,
   "interval": [
    -0.7944,
    0.561
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "loki",
   "b": "xpm",
   "diff": 0.0159,
   "interval": [
    -0.4351,
    0.4956
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "loki",
   "b": "xrapm",
   "diff": -0.1613,
   "interval": [
    -0.9444,
    0.6209
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "openrapm",
   "b": "pulse",
   "diff": -0.0363,
   "interval": [
    -0.5037,
    0.4046
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "openrapm",
   "b": "xpm",
   "diff": 0.1,
   "interval": [
    -0.5711,
    0.7554
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "openrapm",
   "b": "xrapm",
   "diff": -0.0772,
   "interval": [
    -0.7193,
    0.54
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "pulse",
   "b": "xpm",
   "diff": 0.1363,
   "interval": [
    -0.3678,
    0.7241
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "pulse",
   "b": "xrapm",
   "diff": -0.0409,
   "interval": [
    -0.5647,
    0.4708
   ],
   "separated": false
  },
  {
   "test": "net_rmse",
   "a": "xpm",
   "b": "xrapm",
   "diff": -0.1772,
   "interval": [
    -0.963,
    0.5824
   ],
   "separated": false
  }
 ]
}
