[
  {
    "team_id": "360",
    "team_name": "Qatar",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_360_joi90.png",
    "n_pairs": 55,
    "median": 0.013237100709433777,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 13944,
        "name": "Abdelkarim Hassan",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17244
      },
      {
        "player_id": 13945,
        "name": "Boualem Khoukhi",
        "position": "MCB",
        "x": 34.0,
        "y": 22.5,
        "row": 4,
        "col": 2,
        "on_seconds": 17244
      },
      {
        "player_id": 13961,
        "name": "Akram Afif",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 17244
      },
      {
        "player_id": 13951,
        "name": "Homam Ahmed",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 16425
      },
      {
        "player_id": 13946,
        "name": "Pedro Miguel",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 16414
      },
      {
        "player_id": 13962,
        "name": "Almoez Ali",
        "position": "CF",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 13847
      },
      {
        "player_id": 13960,
        "name": "Hasan Al-Haydos",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 12491
      },
      {
        "player_id": 13954,
        "name": "Abdulaziz Hatem",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 12462
      },
      {
        "player_id": 13953,
        "name": "Karim Boudiaf",
        "position": "CM",
        "x": 47.6,
        "y": 57.5,
        "row": 2,
        "col": 3,
        "on_seconds": 11759
      },
      {
        "player_id": 13942,
        "name": "Meshaal Barsham",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 11524
      },
      {
        "player_id": 13947,
        "name": "Ismaeel Mohammed",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 10842
      }
    ],
    "pairs": [
      {
        "player_p": 13944,
        "player_q": 13962,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Almoez Ali",
        "value": 0.7417037634483137,
        "minutes_together": 230.78333333333333
      },
      {
        "player_p": 13947,
        "player_q": 13962,
        "name_p": "Ismaeel Mohammed",
        "name_q": "Almoez Ali",
        "value": 0.45355153167821377,
        "minutes_together": 159.76666666666665
      },
      {
        "player_p": 13954,
        "player_q": 13961,
        "name_p": "Abdulaziz Hatem",
        "name_q": "Akram Afif",
        "value": 0.4121086434300826,
        "minutes_together": 207.7
      },
      {
        "player_p": 13945,
        "player_q": 13962,
        "name_p": "Boualem Khoukhi",
        "name_q": "Almoez Ali",
        "value": 0.36199332893304237,
        "minutes_together": 230.78333333333333
      },
      {
        "player_p": 13947,
        "player_q": 13953,
        "name_p": "Ismaeel Mohammed",
        "name_q": "Karim Boudiaf",
        "value": 0.16430476473878766,
        "minutes_together": 89.28333333333333
      },
      {
        "player_p": 13947,
        "player_q": 13954,
        "name_p": "Ismaeel Mohammed",
        "name_q": "Abdulaziz Hatem",
        "value": 0.14294099602723007,
        "minutes_together": 112.36666666666667
      },
      {
        "player_p": 13947,
        "player_q": 13961,
        "name_p": "Ismaeel Mohammed",
        "name_q": "Akram Afif",
        "value": 0.1222911087735021,
        "minutes_together": 180.7
      },
      {
        "player_p": 13960,
        "player_q": 13961,
        "name_p": "Hasan Al-Haydos",
        "name_q": "Akram Afif",
        "value": 0.1005571681527716,
        "minutes_together": 208.18333333333334
      },
      {
        "player_p": 13944,
        "player_q": 13947,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Ismaeel Mohammed",
        "value": 0.09827224012394871,
        "minutes_together": 180.7
      },
      {
        "player_p": 13945,
        "player_q": 13961,
        "name_p": "Boualem Khoukhi",
        "name_q": "Akram Afif",
        "value": 0.09718809283627408,
        "minutes_together": 287.4
      },
      {
        "player_p": 13942,
        "player_q": 13944,
        "name_p": "Meshaal Barsham",
        "name_q": "Abdelkarim Hassan",
        "value": 0.07126708838877861,
        "minutes_together": 192.06666666666666
      },
      {
        "player_p": 13945,
        "player_q": 13954,
        "name_p": "Boualem Khoukhi",
        "name_q": "Abdulaziz Hatem",
        "value": 0.05122743653931492,
        "minutes_together": 207.7
      },
      {
        "player_p": 13945,
        "player_q": 13946,
        "name_p": "Boualem Khoukhi",
        "name_q": "Pedro Miguel",
        "value": 0.047813465275278445,
        "minutes_together": 273.56666666666666
      },
      {
        "player_p": 13951,
        "player_q": 13953,
        "name_p": "Homam Ahmed",
        "name_q": "Karim Boudiaf",
        "value": 0.045770582769962175,
        "minutes_together": 195.98333333333332
      },
      {
        "player_p": 13944,
        "player_q": 13945,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Boualem Khoukhi",
        "value": 0.04522380762195309,
        "minutes_together": 287.4
      },
      {
        "player_p": 13953,
        "player_q": 13962,
        "name_p": "Karim Boudiaf",
        "name_q": "Almoez Ali",
        "value": 0.04375634716520639,
        "minutes_together": 139.36666666666667
      },
      {
        "player_p": 13942,
        "player_q": 13953,
        "name_p": "Meshaal Barsham",
        "name_q": "Karim Boudiaf",
        "value": 0.027902978902994036,
        "minutes_together": 100.65
      },
      {
        "player_p": 13953,
        "player_q": 13961,
        "name_p": "Karim Boudiaf",
        "name_q": "Akram Afif",
        "value": 0.0275568677560881,
        "minutes_together": 195.98333333333332
      },
      {
        "player_p": 13944,
        "player_q": 13954,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Abdulaziz Hatem",
        "value": 0.026906346259441306,
        "minutes_together": 207.7
      },
      {
        "player_p": 13945,
        "player_q": 13947,
        "name_p": "Boualem Khoukhi",
        "name_q": "Ismaeel Mohammed",
        "value": 0.026738300563448954,
        "minutes_together": 180.7
      },
      {
        "player_p": 13946,
        "player_q": 13960,
        "name_p": "Pedro Miguel",
        "name_q": "Hasan Al-Haydos",
        "value": 0.020928400233951882,
        "minutes_together": 208.18333333333334
      },
      {
        "player_p": 13944,
        "player_q": 13951,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Homam Ahmed",
        "value": 0.020447230937491394,
        "minutes_together": 273.75
      },
      {
        "player_p": 13954,
        "player_q": 13960,
        "name_p": "Abdulaziz Hatem",
        "name_q": "Hasan Al-Haydos",
        "value": 0.020246048995104966,
        "minutes_together": 139.86666666666667
      },
      {
        "player_p": 13944,
        "player_q": 13953,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Karim Boudiaf",
        "value": 0.019515496653180243,
        "minutes_together": 195.98333333333332
      },
      {
        "player_p": 13944,
        "player_q": 13961,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Akram Afif",
        "value": 0.016568431744684125,
        "minutes_together": 287.4
      },
      {
        "player_p": 13953,
        "player_q": 13954,
        "name_p": "Karim Boudiaf",
        "name_q": "Abdulaziz Hatem",
        "value": 0.015711408537255667,
        "minutes_together": 116.28333333333333
      },
      {
        "player_p": 13942,
        "player_q": 13951,
        "name_p": "Meshaal Barsham",
        "name_q": "Homam Ahmed",
        "value": 0.014473733528098215,
        "minutes_together": 178.41666666666666
      },
      {
        "player_p": 13944,
        "player_q": 13960,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Hasan Al-Haydos",
        "value": 0.013237100709433777,
        "minutes_together": 208.18333333333334
      },
      {
        "player_p": 13953,
        "player_q": 13960,
        "name_p": "Karim Boudiaf",
        "name_q": "Hasan Al-Haydos",
        "value": 0.011141329095694376,
        "minutes_together": 139.3
      },
      {
        "player_p": 13942,
        "player_q": 13962,
        "name_p": "Meshaal Barsham",
        "name_q": "Almoez Ali",
        "value": 0.010348571081168524,
        "minutes_together": 159.76666666666665
      },
      {
        "player_p": 13954,
        "player_q": 13962,
        "name_p": "Abdulaziz Hatem",
        "name_q": "Almoez Ali",
        "value": 0.009653603186094394,
        "minutes_together": 162.46666666666667
      },
      {
        "player_p": 13945,
        "player_q": 13960,
        "name_p": "Boualem Khoukhi",
        "name_q": "Hasan Al-Haydos",
        "value": 0.008200253981081781,
        "minutes_together": 208.18333333333334
      },
      {
        "player_p": 13946,
        "player_q": 13954,
        "name_p": "Pedro Miguel",
        "name_q": "Abdulaziz Hatem",
        "value": 0.00778903605363585,
        "minutes_together": 193.86666666666667
      },
      {
        "player_p": 13945,
        "player_q": 13951,
        "name_p": "Boualem Khoukhi",
        "name_q": "Homam Ahmed",
        "value": 0.007568991998899525,
        "minutes_together": 273.75
      },
      {
        "player_p": 13946,
        "player_q": 13947,
        "name_p": "Pedro Miguel",
        "name_q": "Ismaeel Mohammed",
        "value": 0.005016837002935002,
        "minutes_together": 166.86666666666667
      },
      {
        "player_p": 13942,
        "player_q": 13947,
        "name_p": "Meshaal Barsham",
        "name_q": "Ismaeel Mohammed",
        "value": 0.003117565950786759,
        "minutes_together": 180.7
      },
      {
        "player_p": 13947,
        "player_q": 13951,
        "name_p": "Ismaeel Mohammed",
        "name_q": "Homam Ahmed",
        "value": 0.003052396126484798,
        "minutes_together": 167.05
      },
      {
        "player_p": 13960,
        "player_q": 13962,
        "name_p": "Hasan Al-Haydos",
        "name_q": "Almoez Ali",
        "value": 0.0030255248765481526,
        "minutes_together": 208.18333333333334
      },
      {
        "player_p": 13942,
        "player_q": 13960,
        "name_p": "Meshaal Barsham",
        "name_q": "Hasan Al-Haydos",
        "value": 0.001817994502301088,
        "minutes_together": 137.21666666666667
      },
      {
        "player_p": 13951,
        "player_q": 13960,
        "name_p": "Homam Ahmed",
        "name_q": "Hasan Al-Haydos",
        "value": 0.001261249981822921,
        "minutes_together": 208.18333333333334
      },
      {
        "player_p": 13944,
        "player_q": 13946,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Pedro Miguel",
        "value": -0.0012771998547706556,
        "minutes_together": 273.56666666666666
      },
      {
        "player_p": 13951,
        "player_q": 13954,
        "name_p": "Homam Ahmed",
        "name_q": "Abdulaziz Hatem",
        "value": -0.00259805478854351,
        "minutes_together": 194.05
      },
      {
        "player_p": 13951,
        "player_q": 13961,
        "name_p": "Homam Ahmed",
        "name_q": "Akram Afif",
        "value": -0.002860121449571243,
        "minutes_together": 273.75
      },
      {
        "player_p": 13942,
        "player_q": 13961,
        "name_p": "Meshaal Barsham",
        "name_q": "Akram Afif",
        "value": -0.004103413276154209,
        "minutes_together": 192.06666666666666
      },
      {
        "player_p": 13942,
        "player_q": 13946,
        "name_p": "Meshaal Barsham",
        "name_q": "Pedro Miguel",
        "value": -0.0072531463111013585,
        "minutes_together": 178.23333333333335
      },
      {
        "player_p": 13945,
        "player_q": 13953,
        "name_p": "Boualem Khoukhi",
        "name_q": "Karim Boudiaf",
        "value": -0.007335367154490019,
        "minutes_together": 195.98333333333332
      },
      {
        "player_p": 13951,
        "player_q": 13962,
        "name_p": "Homam Ahmed",
        "name_q": "Almoez Ali",
        "value": -0.008825409923683048,
        "minutes_together": 217.13333333333333
      },
      {
        "player_p": 13946,
        "player_q": 13951,
        "name_p": "Pedro Miguel",
        "name_q": "Homam Ahmed",
        "value": -0.01102152188346174,
        "minutes_together": 273.56666666666666
      },
      {
        "player_p": 13961,
        "player_q": 13962,
        "name_p": "Akram Afif",
        "name_q": "Almoez Ali",
        "value": -0.011149631227022512,
        "minutes_together": 230.78333333333333
      },
      {
        "player_p": 13947,
        "player_q": 13960,
        "name_p": "Ismaeel Mohammed",
        "name_q": "Hasan Al-Haydos",
        "value": -0.014225267217140848,
        "minutes_together": 137.21666666666667
      },
      {
        "player_p": 13942,
        "player_q": 13954,
        "name_p": "Meshaal Barsham",
        "name_q": "Abdulaziz Hatem",
        "value": -0.01458633767723049,
        "minutes_together": 112.36666666666667
      },
      {
        "player_p": 13946,
        "player_q": 13953,
        "name_p": "Pedro Miguel",
        "name_q": "Karim Boudiaf",
        "value": -0.017376952834577995,
        "minutes_together": 195.98333333333332
      },
      {
        "player_p": 13946,
        "player_q": 13961,
        "name_p": "Pedro Miguel",
        "name_q": "Akram Afif",
        "value": -0.020338991645813126,
        "minutes_together": 273.56666666666666
      },
      {
        "player_p": 13946,
        "player_q": 13962,
        "name_p": "Pedro Miguel",
        "name_q": "Almoez Ali",
        "value": -0.050487538345722574,
        "minutes_together": 216.95
      },
      {
        "player_p": 13942,
        "player_q": 13945,
        "name_p": "Meshaal Barsham",
        "name_q": "Boualem Khoukhi",
        "value": -0.07926615917982346,
        "minutes_together": 192.06666666666666
      }
    ],
    "path": "assets/figures/team_360_joi90.png"
  },
  {
    "team_id": "360",
    "team_name": "Qatar",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_360_jdi90.png",
    "n_pairs": 55,
    "median": 0.015003833793183062,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 13944,
        "name": "Abdelkarim Hassan",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17244
      },
      {
        "player_id": 13945,
        "name": "Boualem Khoukhi",
        "position": "MCB",
        "x": 34.0,
        "y": 22.5,
        "row": 4,
        "col": 2,
        "on_seconds": 17244
      },
      {
        "player_id": 13961,
        "name": "Akram Afif",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 17244
      },
      {
        "player_id": 13951,
        "name": "Homam Ahmed",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 16425
      },
      {
        "player_id": 13946,
        "name": "Pedro Miguel",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 16414
      },
      {
        "player_id": 13962,
        "name": "Almoez Ali",
        "position": "CF",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 13847
      },
      {
        "player_id": 13960,
        "name": "Hasan Al-Haydos",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 12491
      },
      {
        "player_id": 13954,
        "name": "Abdulaziz Hatem",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 12462
      },
      {
        "player_id": 13953,
        "name": "Karim Boudiaf",
        "position": "CM",
        "x": 47.6,
        "y": 57.5,
        "row": 2,
        "col": 3,
        "on_seconds": 11759
      },
      {
        "player_id": 13942,
        "name": "Meshaal Barsham",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 11524
      },
      {
        "player_id": 13947,
        "name": "Ismaeel Mohammed",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 10842
      }
    ],
    "pairs": [
      {
        "player_p": 13945,
        "player_q": 13953,
        "name_p": "Boualem Khoukhi",
        "name_q": "Karim Boudiaf",
        "value": 0.04997017639387046,
        "minutes_together": 195.98333333333332
      },
      {
        "player_p": 13953,
        "player_q": 13960,
        "name_p": "Karim Boudiaf",
        "name_q": "Hasan Al-Haydos",
        "value": 0.039372504189828,
        "minutes_together": 139.3
      },
      {
        "player_p": 13953,
        "player_q": 13954,
        "name_p": "Karim Boudiaf",
        "name_q": "Abdulaziz Hatem",
        "value": 0.038979463283427614,
        "minutes_together": 116.28333333333333
      },
      {
        "player_p": 13945,
        "player_q": 13960,
        "name_p": "Boualem Khoukhi",
        "name_q": "Hasan Al-Haydos",
        "value": 0.037711726315240536,
        "minutes_together": 208.18333333333334
      },
      {
        "player_p": 13944,
        "player_q": 13953,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Karim Boudiaf",
        "value": 0.03432680386915652,
        "minutes_together": 195.98333333333332
      },
      {
        "player_p": 13945,
        "player_q": 13954,
        "name_p": "Boualem Khoukhi",
        "name_q": "Abdulaziz Hatem",
        "value": 0.03274924903724269,
        "minutes_together": 207.7
      },
      {
        "player_p": 13945,
        "player_q": 13951,
        "name_p": "Boualem Khoukhi",
        "name_q": "Homam Ahmed",
        "value": 0.03257201097089193,
        "minutes_together": 273.75
      },
      {
        "player_p": 13945,
        "player_q": 13946,
        "name_p": "Boualem Khoukhi",
        "name_q": "Pedro Miguel",
        "value": 0.032523370522563454,
        "minutes_together": 273.56666666666666
      },
      {
        "player_p": 13951,
        "player_q": 13953,
        "name_p": "Homam Ahmed",
        "name_q": "Karim Boudiaf",
        "value": 0.031140972672527797,
        "minutes_together": 195.98333333333332
      },
      {
        "player_p": 13946,
        "player_q": 13953,
        "name_p": "Pedro Miguel",
        "name_q": "Karim Boudiaf",
        "value": 0.030607541958130556,
        "minutes_together": 195.98333333333332
      },
      {
        "player_p": 13953,
        "player_q": 13962,
        "name_p": "Karim Boudiaf",
        "name_q": "Almoez Ali",
        "value": 0.029629382291471218,
        "minutes_together": 139.36666666666667
      },
      {
        "player_p": 13953,
        "player_q": 13961,
        "name_p": "Karim Boudiaf",
        "name_q": "Akram Afif",
        "value": 0.028007790445177747,
        "minutes_together": 195.98333333333332
      },
      {
        "player_p": 13944,
        "player_q": 13945,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Boualem Khoukhi",
        "value": 0.02618058796193866,
        "minutes_together": 287.4
      },
      {
        "player_p": 13944,
        "player_q": 13960,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Hasan Al-Haydos",
        "value": 0.023684572555986216,
        "minutes_together": 208.18333333333334
      },
      {
        "player_p": 13946,
        "player_q": 13960,
        "name_p": "Pedro Miguel",
        "name_q": "Hasan Al-Haydos",
        "value": 0.021008981026569985,
        "minutes_together": 208.18333333333334
      },
      {
        "player_p": 13951,
        "player_q": 13960,
        "name_p": "Homam Ahmed",
        "name_q": "Hasan Al-Haydos",
        "value": 0.02080578940294845,
        "minutes_together": 208.18333333333334
      },
      {
        "player_p": 13944,
        "player_q": 13951,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Homam Ahmed",
        "value": 0.020545594678929986,
        "minutes_together": 273.75
      },
      {
        "player_p": 13944,
        "player_q": 13946,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Pedro Miguel",
        "value": 0.020433480405954354,
        "minutes_together": 273.56666666666666
      },
      {
        "player_p": 13944,
        "player_q": 13954,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Abdulaziz Hatem",
        "value": 0.020099787627246745,
        "minutes_together": 207.7
      },
      {
        "player_p": 13947,
        "player_q": 13953,
        "name_p": "Ismaeel Mohammed",
        "name_q": "Karim Boudiaf",
        "value": 0.0196706093286027,
        "minutes_together": 89.28333333333333
      },
      {
        "player_p": 13946,
        "player_q": 13954,
        "name_p": "Pedro Miguel",
        "name_q": "Abdulaziz Hatem",
        "value": 0.019510563304645918,
        "minutes_together": 193.86666666666667
      },
      {
        "player_p": 13945,
        "player_q": 13961,
        "name_p": "Boualem Khoukhi",
        "name_q": "Akram Afif",
        "value": 0.01925534009216299,
        "minutes_together": 287.4
      },
      {
        "player_p": 13951,
        "player_q": 13954,
        "name_p": "Homam Ahmed",
        "name_q": "Abdulaziz Hatem",
        "value": 0.01870091559767167,
        "minutes_together": 194.05
      },
      {
        "player_p": 13942,
        "player_q": 13953,
        "name_p": "Meshaal Barsham",
        "name_q": "Karim Boudiaf",
        "value": 0.018295426476868003,
        "minutes_together": 100.65
      },
      {
        "player_p": 13946,
        "player_q": 13951,
        "name_p": "Pedro Miguel",
        "name_q": "Homam Ahmed",
        "value": 0.01795698751174675,
        "minutes_together": 273.56666666666666
      },
      {
        "player_p": 13954,
        "player_q": 13960,
        "name_p": "Abdulaziz Hatem",
        "name_q": "Hasan Al-Haydos",
        "value": 0.01697425955507549,
        "minutes_together": 139.86666666666667
      },
      {
        "player_p": 13945,
        "player_q": 13962,
        "name_p": "Boualem Khoukhi",
        "name_q": "Almoez Ali",
        "value": 0.015471499038259498,
        "minutes_together": 230.78333333333333
      },
      {
        "player_p": 13960,
        "player_q": 13961,
        "name_p": "Hasan Al-Haydos",
        "name_q": "Akram Afif",
        "value": 0.015003833793183062,
        "minutes_together": 208.18333333333334
      },
      {
        "player_p": 13960,
        "player_q": 13962,
        "name_p": "Hasan Al-Haydos",
        "name_q": "Almoez Ali",
        "value": 0.015003833793183062,
        "minutes_together": 208.18333333333334
      },
      {
        "player_p": 13951,
        "player_q": 13962,
        "name_p": "Homam Ahmed",
        "name_q": "Almoez Ali",
        "value": 0.012080475762101915,
        "minutes_together": 217.13333333333333
      },
      {
        "player_p": 13951,
        "player_q": 13961,
        "name_p": "Homam Ahmed",
        "name_q": "Akram Afif",
        "value": 0.011981599049938,
        "minutes_together": 273.75
      },
      {
        "player_p": 13946,
        "player_q": 13961,
        "name_p": "Pedro Miguel",
        "name_q": "Akram Afif",
        "value": 0.011846361760980795,
        "minutes_together": 273.56666666666666
      },
      {
        "player_p": 13944,
        "player_q": 13961,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Akram Afif",
        "value": 0.01172736760149318,
        "minutes_together": 287.4
      },
      {
        "player_p": 13946,
        "player_q": 13962,
        "name_p": "Pedro Miguel",
        "name_q": "Almoez Ali",
        "value": 0.011615065634899967,
        "minutes_together": 216.95
      },
      {
        "player_p": 13954,
        "player_q": 13962,
        "name_p": "Abdulaziz Hatem",
        "name_q": "Almoez Ali",
        "value": 0.011557358839171264,
        "minutes_together": 162.46666666666667
      },
      {
        "player_p": 13954,
        "player_q": 13961,
        "name_p": "Abdulaziz Hatem",
        "name_q": "Akram Afif",
        "value": 0.011161322116301184,
        "minutes_together": 207.7
      },
      {
        "player_p": 13944,
        "player_q": 13962,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Almoez Ali",
        "value": 0.01076429036451874,
        "minutes_together": 230.78333333333333
      },
      {
        "player_p": 13947,
        "player_q": 13960,
        "name_p": "Ismaeel Mohammed",
        "name_q": "Hasan Al-Haydos",
        "value": 0.010496242805848505,
        "minutes_together": 137.21666666666667
      },
      {
        "player_p": 13947,
        "player_q": 13951,
        "name_p": "Ismaeel Mohammed",
        "name_q": "Homam Ahmed",
        "value": 0.008828416160010672,
        "minutes_together": 167.05
      },
      {
        "player_p": 13946,
        "player_q": 13947,
        "name_p": "Pedro Miguel",
        "name_q": "Ismaeel Mohammed",
        "value": 0.008044497230675489,
        "minutes_together": 166.86666666666667
      },
      {
        "player_p": 13942,
        "player_q": 13960,
        "name_p": "Meshaal Barsham",
        "name_q": "Hasan Al-Haydos",
        "value": 0.007303104833424674,
        "minutes_together": 137.21666666666667
      },
      {
        "player_p": 13961,
        "player_q": 13962,
        "name_p": "Akram Afif",
        "name_q": "Almoez Ali",
        "value": 0.005420126192281351,
        "minutes_together": 230.78333333333333
      },
      {
        "player_p": 13942,
        "player_q": 13951,
        "name_p": "Meshaal Barsham",
        "name_q": "Homam Ahmed",
        "value": 0.005098847519577555,
        "minutes_together": 178.41666666666666
      },
      {
        "player_p": 13942,
        "player_q": 13946,
        "name_p": "Meshaal Barsham",
        "name_q": "Pedro Miguel",
        "value": 0.004556498675826852,
        "minutes_together": 178.23333333333335
      },
      {
        "player_p": 13944,
        "player_q": 13947,
        "name_p": "Abdelkarim Hassan",
        "name_q": "Ismaeel Mohammed",
        "value": 0.0037524943661859356,
        "minutes_together": 180.7
      },
      {
        "player_p": 13942,
        "player_q": 13947,
        "name_p": "Meshaal Barsham",
        "name_q": "Ismaeel Mohammed",
        "value": 2.8216289784703732e-05,
        "minutes_together": 180.7
      },
      {
        "player_p": 13942,
        "player_q": 13944,
        "name_p": "Meshaal Barsham",
        "name_q": "Abdelkarim Hassan",
        "value": -0.0006446606758626967,
        "minutes_together": 192.06666666666666
      },
      {
        "player_p": 13947,
        "player_q": 13962,
        "name_p": "Ismaeel Mohammed",
        "name_q": "Almoez Ali",
        "value": -0.0011267989093534823,
        "minutes_together": 159.76666666666665
      },
      {
        "player_p": 13947,
        "player_q": 13961,
        "name_p": "Ismaeel Mohammed",
        "name_q": "Akram Afif",
        "value": -0.0019352144077236517,
        "minutes_together": 180.7
      },
      {
        "player_p": 13947,
        "player_q": 13954,
        "name_p": "Ismaeel Mohammed",
        "name_q": "Abdulaziz Hatem",
        "value": -0.0020159996748053055,
        "minutes_together": 112.36666666666667
      },
      {
        "player_p": 13945,
        "player_q": 13947,
        "name_p": "Boualem Khoukhi",
        "name_q": "Ismaeel Mohammed",
        "value": -0.003787011302811053,
        "minutes_together": 180.7
      },
      {
        "player_p": 13942,
        "player_q": 13962,
        "name_p": "Meshaal Barsham",
        "name_q": "Almoez Ali",
        "value": -0.006574415407586463,
        "minutes_together": 159.76666666666665
      },
      {
        "player_p": 13942,
        "player_q": 13945,
        "name_p": "Meshaal Barsham",
        "name_q": "Boualem Khoukhi",
        "value": -0.006877020557112696,
        "minutes_together": 192.06666666666666
      },
      {
        "player_p": 13942,
        "player_q": 13961,
        "name_p": "Meshaal Barsham",
        "name_q": "Akram Afif",
        "value": -0.007156949742902874,
        "minutes_together": 192.06666666666666
      },
      {
        "player_p": 13942,
        "player_q": 13954,
        "name_p": "Meshaal Barsham",
        "name_q": "Abdulaziz Hatem",
        "value": -0.009433650805414072,
        "minutes_together": 112.36666666666667
      }
    ],
    "path": "assets/figures/team_360_jdi90.png"
  },
  {
    "team_id": "361",
    "team_name": "Brazil",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_361_joi90.png",
    "n_pairs": 50,
    "median": 0.02446026227717782,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 3846,
        "name": "Marquinhos",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 25367
      },
      {
        "player_id": 1926,
        "name": "Thiago Silva",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 22621
      },
      {
        "player_id": 1683,
        "name": "Casemiro",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 22621
      },
      {
        "player_id": 32,
        "name": "Alisson",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 21773
      },
      {
        "player_id": 1676,
        "name": "Eder Militao",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 20902
      },
      {
        "player_id": 2074,
        "name": "Raphinha",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 19816
      },
      {
        "player_id": 195,
        "name": "Richarlison",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 19694
      },
      {
        "player_id": 1695,
        "name": "Vin\u00edcius Junior",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 18392
      },
      {
        "player_id": 3930,
        "name": "Lucas Paquet\u00e1",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 18335
      },
      {
        "player_id": 8061,
        "name": "Danilo",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 15531
      },
      {
        "player_id": 3865,
        "name": "Neymar",
        "position": "AM",
        "x": 20.4,
        "y": 75.0,
        "row": 1,
        "col": 1,
        "on_seconds": 14968
      }
    ],
    "pairs": [
      {
        "player_p": 1695,
        "player_q": 3865,
        "name_p": "Vin\u00edcius Junior",
        "name_q": "Neymar",
        "value": 0.5432976683036927,
        "minutes_together": 210.61666666666667
      },
      {
        "player_p": 195,
        "player_q": 1695,
        "name_p": "Richarlison",
        "name_q": "Vin\u00edcius Junior",
        "value": 0.5204619179920936,
        "minutes_together": 283.28333333333336
      },
      {
        "player_p": 1695,
        "player_q": 3930,
        "name_p": "Vin\u00edcius Junior",
        "name_q": "Lucas Paquet\u00e1",
        "value": 0.3461059436547953,
        "minutes_together": 257.05
      },
      {
        "player_p": 195,
        "player_q": 3865,
        "name_p": "Richarlison",
        "name_q": "Neymar",
        "value": 0.32292096007826093,
        "minutes_together": 241.85
      },
      {
        "player_p": 195,
        "player_q": 1926,
        "name_p": "Richarlison",
        "name_q": "Thiago Silva",
        "value": 0.16780089608467297,
        "minutes_together": 328.23333333333335
      },
      {
        "player_p": 1926,
        "player_q": 3846,
        "name_p": "Thiago Silva",
        "name_q": "Marquinhos",
        "value": 0.14830542848471365,
        "minutes_together": 377.01666666666665
      },
      {
        "player_p": 1676,
        "player_q": 8061,
        "name_p": "Eder Militao",
        "name_q": "Danilo",
        "value": 0.11652420726550748,
        "minutes_together": 152.4
      },
      {
        "player_p": 1926,
        "player_q": 8061,
        "name_p": "Thiago Silva",
        "name_q": "Danilo",
        "value": 0.11277335274394175,
        "minutes_together": 258.85
      },
      {
        "player_p": 3865,
        "player_q": 8061,
        "name_p": "Neymar",
        "name_q": "Danilo",
        "value": 0.09716343779288546,
        "minutes_together": 240.93333333333334
      },
      {
        "player_p": 2074,
        "player_q": 3865,
        "name_p": "Raphinha",
        "name_q": "Neymar",
        "value": 0.08196367782674095,
        "minutes_together": 214.6
      },
      {
        "player_p": 2074,
        "player_q": 3930,
        "name_p": "Raphinha",
        "name_q": "Lucas Paquet\u00e1",
        "value": 0.07330404100928546,
        "minutes_together": 270.71666666666664
      },
      {
        "player_p": 195,
        "player_q": 3846,
        "name_p": "Richarlison",
        "name_q": "Marquinhos",
        "value": 0.07120126561947267,
        "minutes_together": 328.23333333333335
      },
      {
        "player_p": 2074,
        "player_q": 3846,
        "name_p": "Raphinha",
        "name_q": "Marquinhos",
        "value": 0.05594462967287854,
        "minutes_together": 330.26666666666665
      },
      {
        "player_p": 195,
        "player_q": 3930,
        "name_p": "Richarlison",
        "name_q": "Lucas Paquet\u00e1",
        "value": 0.05471282527851645,
        "minutes_together": 298.8833333333333
      },
      {
        "player_p": 195,
        "player_q": 2074,
        "name_p": "Richarlison",
        "name_q": "Raphinha",
        "value": 0.05115925470808876,
        "minutes_together": 300.06666666666666
      },
      {
        "player_p": 3846,
        "player_q": 8061,
        "name_p": "Marquinhos",
        "name_q": "Danilo",
        "value": 0.04736086095121295,
        "minutes_together": 258.85
      },
      {
        "player_p": 1695,
        "player_q": 3846,
        "name_p": "Vin\u00edcius Junior",
        "name_q": "Marquinhos",
        "value": 0.04373657560939825,
        "minutes_together": 306.53333333333336
      },
      {
        "player_p": 1926,
        "player_q": 3865,
        "name_p": "Thiago Silva",
        "name_q": "Neymar",
        "value": 0.0430405627789555,
        "minutes_together": 249.46666666666667
      },
      {
        "player_p": 1676,
        "player_q": 3846,
        "name_p": "Eder Militao",
        "name_q": "Marquinhos",
        "value": 0.04157745290952515,
        "minutes_together": 294.08333333333337
      },
      {
        "player_p": 1683,
        "player_q": 1695,
        "name_p": "Casemiro",
        "name_q": "Vin\u00edcius Junior",
        "value": 0.039546148327868964,
        "minutes_together": 306.53333333333336
      },
      {
        "player_p": 1676,
        "player_q": 2074,
        "name_p": "Eder Militao",
        "name_q": "Raphinha",
        "value": 0.03953444895992901,
        "minutes_together": 211.8
      },
      {
        "player_p": 32,
        "player_q": 1926,
        "name_p": "Alisson",
        "name_q": "Thiago Silva",
        "value": 0.03359459071872249,
        "minutes_together": 362.8833333333333
      },
      {
        "player_p": 32,
        "player_q": 3846,
        "name_p": "Alisson",
        "name_q": "Marquinhos",
        "value": 0.03077655407230192,
        "minutes_together": 362.8833333333333
      },
      {
        "player_p": 3846,
        "player_q": 3865,
        "name_p": "Marquinhos",
        "name_q": "Neymar",
        "value": 0.025775742035047067,
        "minutes_together": 249.46666666666667
      },
      {
        "player_p": 3930,
        "player_q": 8061,
        "name_p": "Lucas Paquet\u00e1",
        "name_q": "Danilo",
        "value": 0.025322569302906762,
        "minutes_together": 236.53333333333333
      },
      {
        "player_p": 1683,
        "player_q": 8061,
        "name_p": "Casemiro",
        "name_q": "Danilo",
        "value": 0.023597955251448872,
        "minutes_together": 258.85
      },
      {
        "player_p": 1676,
        "player_q": 1683,
        "name_p": "Eder Militao",
        "name_q": "Casemiro",
        "value": 0.023252510582988797,
        "minutes_together": 248.31666666666666
      },
      {
        "player_p": 1676,
        "player_q": 3930,
        "name_p": "Eder Militao",
        "name_q": "Lucas Paquet\u00e1",
        "value": 0.0218541335470031,
        "minutes_together": 199.2
      },
      {
        "player_p": 1676,
        "player_q": 1695,
        "name_p": "Eder Militao",
        "name_q": "Vin\u00edcius Junior",
        "value": 0.020602648633593967,
        "minutes_together": 222.01666666666668
      },
      {
        "player_p": 1683,
        "player_q": 3846,
        "name_p": "Casemiro",
        "name_q": "Marquinhos",
        "value": 0.018135184976219697,
        "minutes_together": 377.01666666666665
      },
      {
        "player_p": 1926,
        "player_q": 2074,
        "name_p": "Thiago Silva",
        "name_q": "Raphinha",
        "value": 0.018073622703223317,
        "minutes_together": 308.8833333333333
      },
      {
        "player_p": 3846,
        "player_q": 3930,
        "name_p": "Marquinhos",
        "name_q": "Lucas Paquet\u00e1",
        "value": 0.015295658907860301,
        "minutes_together": 305.5833333333333
      },
      {
        "player_p": 1683,
        "player_q": 1926,
        "name_p": "Casemiro",
        "name_q": "Thiago Silva",
        "value": 0.01424147440450118,
        "minutes_together": 377.01666666666665
      },
      {
        "player_p": 1695,
        "player_q": 1926,
        "name_p": "Vin\u00edcius Junior",
        "name_q": "Thiago Silva",
        "value": 0.014193673910858066,
        "minutes_together": 306.53333333333336
      },
      {
        "player_p": 1683,
        "player_q": 3865,
        "name_p": "Casemiro",
        "name_q": "Neymar",
        "value": 0.013951419143940264,
        "minutes_together": 249.46666666666667
      },
      {
        "player_p": 1926,
        "player_q": 3930,
        "name_p": "Thiago Silva",
        "name_q": "Lucas Paquet\u00e1",
        "value": 0.01136689251524236,
        "minutes_together": 305.5833333333333
      },
      {
        "player_p": 195,
        "player_q": 8061,
        "name_p": "Richarlison",
        "name_q": "Danilo",
        "value": 0.01001644843302652,
        "minutes_together": 233.31666666666666
      },
      {
        "player_p": 1676,
        "player_q": 1926,
        "name_p": "Eder Militao",
        "name_q": "Thiago Silva",
        "value": 0.00921827964824788,
        "minutes_together": 248.31666666666666
      },
      {
        "player_p": 2074,
        "player_q": 8061,
        "name_p": "Raphinha",
        "name_q": "Danilo",
        "value": 0.004482066223957168,
        "minutes_together": 213.75
      },
      {
        "player_p": 1695,
        "player_q": 2074,
        "name_p": "Vin\u00edcius Junior",
        "name_q": "Raphinha",
        "value": 0.004361647187071861,
        "minutes_together": 274.93333333333334
      },
      {
        "player_p": 32,
        "player_q": 1683,
        "name_p": "Alisson",
        "name_q": "Casemiro",
        "value": 0.0023193220358799053,
        "minutes_together": 362.8833333333333
      },
      {
        "player_p": 195,
        "player_q": 1676,
        "name_p": "Richarlison",
        "name_q": "Eder Militao",
        "value": 0.000630649607016322,
        "minutes_together": 218.36666666666667
      },
      {
        "player_p": 32,
        "player_q": 195,
        "name_p": "Alisson",
        "name_q": "Richarlison",
        "value": -4.307198031763343e-05,
        "minutes_together": 314.1
      },
      {
        "player_p": 32,
        "player_q": 1676,
        "name_p": "Alisson",
        "name_q": "Eder Militao",
        "value": -0.0021820214720071813,
        "minutes_together": 248.31666666666666
      },
      {
        "player_p": 195,
        "player_q": 1683,
        "name_p": "Richarlison",
        "name_q": "Casemiro",
        "value": -0.004034698701088938,
        "minutes_together": 328.23333333333335
      },
      {
        "player_p": 3865,
        "player_q": 3930,
        "name_p": "Neymar",
        "name_q": "Lucas Paquet\u00e1",
        "value": -0.005232010037855871,
        "minutes_together": 245.06666666666666
      },
      {
        "player_p": 1683,
        "player_q": 3930,
        "name_p": "Casemiro",
        "name_q": "Lucas Paquet\u00e1",
        "value": -0.020789123981286538,
        "minutes_together": 305.5833333333333
      },
      {
        "player_p": 32,
        "player_q": 8061,
        "name_p": "Alisson",
        "name_q": "Danilo",
        "value": -0.02290614479913566,
        "minutes_together": 258.85
      },
      {
        "player_p": 1683,
        "player_q": 2074,
        "name_p": "Casemiro",
        "name_q": "Raphinha",
        "value": -0.023929002526685717,
        "minutes_together": 308.8833333333333
      },
      {
        "player_p": 1695,
        "player_q": 8061,
        "name_p": "Vin\u00edcius Junior",
        "name_q": "Danilo",
        "value": -0.03867563461699503,
        "minutes_together": 210.60000000000002
      }
    ],
    "path": "assets/figures/team_361_joi90.png"
  },
  {
    "team_id": "361",
    "team_name": "Brazil",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_361_jdi90.png",
    "n_pairs": 55,
    "median": -0.020172959111976706,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 3846,
        "name": "Marquinhos",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 25367
      },
      {
        "player_id": 1926,
        "name": "Thiago Silva",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 22621
      },
      {
        "player_id": 1683,
        "name": "Casemiro",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 22621
      },
      {
        "player_id": 32,
        "name": "Alisson",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 21773
      },
      {
        "player_id": 1676,
        "name": "Eder Militao",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 20902
      },
      {
        "player_id": 2074,
        "name": "Raphinha",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 19816
      },
      {
        "player_id": 195,
        "name": "Richarlison",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 19694
      },
      {
        "player_id": 1695,
        "name": "Vin\u00edcius Junior",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 18392
      },
      {
        "player_id": 3930,
        "name": "Lucas Paquet\u00e1",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 18335
      },
      {
        "player_id": 8061,
        "name": "Danilo",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 15531
      },
      {
        "player_id": 3865,
        "name": "Neymar",
        "position": "AM",
        "x": 20.4,
        "y": 75.0,
        "row": 1,
        "col": 1,
        "on_seconds": 14968
      }
    ],
    "pairs": [
      {
        "player_p": 1676,
        "player_q": 2074,
        "name_p": "Eder Militao",
        "name_q": "Raphinha",
        "value": 0.012454047810252498,
        "minutes_together": 211.8
      },
      {
        "player_p": 1695,
        "player_q": 2074,
        "name_p": "Vin\u00edcius Junior",
        "name_q": "Raphinha",
        "value": 0.0097746680280967,
        "minutes_together": 274.93333333333334
      },
      {
        "player_p": 1676,
        "player_q": 1683,
        "name_p": "Eder Militao",
        "name_q": "Casemiro",
        "value": 0.007021052439688388,
        "minutes_together": 248.31666666666666
      },
      {
        "player_p": 1676,
        "player_q": 3846,
        "name_p": "Eder Militao",
        "name_q": "Marquinhos",
        "value": 0.0043688057244479495,
        "minutes_together": 294.08333333333337
      },
      {
        "player_p": 1683,
        "player_q": 1695,
        "name_p": "Casemiro",
        "name_q": "Vin\u00edcius Junior",
        "value": 0.004227617716161738,
        "minutes_together": 306.53333333333336
      },
      {
        "player_p": 1676,
        "player_q": 1695,
        "name_p": "Eder Militao",
        "name_q": "Vin\u00edcius Junior",
        "value": 0.0035146846566482645,
        "minutes_together": 222.01666666666668
      },
      {
        "player_p": 195,
        "player_q": 1695,
        "name_p": "Richarlison",
        "name_q": "Vin\u00edcius Junior",
        "value": 0.0022270266875452417,
        "minutes_together": 283.28333333333336
      },
      {
        "player_p": 1676,
        "player_q": 3930,
        "name_p": "Eder Militao",
        "name_q": "Lucas Paquet\u00e1",
        "value": 0.0006591745485648104,
        "minutes_together": 199.2
      },
      {
        "player_p": 195,
        "player_q": 1676,
        "name_p": "Richarlison",
        "name_q": "Eder Militao",
        "value": 0.0006272739647205348,
        "minutes_together": 218.36666666666667
      },
      {
        "player_p": 195,
        "player_q": 2074,
        "name_p": "Richarlison",
        "name_q": "Raphinha",
        "value": -0.0014683683493820065,
        "minutes_together": 300.06666666666666
      },
      {
        "player_p": 1695,
        "player_q": 3930,
        "name_p": "Vin\u00edcius Junior",
        "name_q": "Lucas Paquet\u00e1",
        "value": -0.0025241688062539614,
        "minutes_together": 257.05
      },
      {
        "player_p": 1683,
        "player_q": 2074,
        "name_p": "Casemiro",
        "name_q": "Raphinha",
        "value": -0.003645062294877771,
        "minutes_together": 308.8833333333333
      },
      {
        "player_p": 1676,
        "player_q": 1926,
        "name_p": "Eder Militao",
        "name_q": "Thiago Silva",
        "value": -0.007674736158151109,
        "minutes_together": 248.31666666666666
      },
      {
        "player_p": 195,
        "player_q": 1683,
        "name_p": "Richarlison",
        "name_q": "Casemiro",
        "value": -0.008514979651521981,
        "minutes_together": 328.23333333333335
      },
      {
        "player_p": 2074,
        "player_q": 3930,
        "name_p": "Raphinha",
        "name_q": "Lucas Paquet\u00e1",
        "value": -0.010663580743880149,
        "minutes_together": 270.71666666666664
      },
      {
        "player_p": 1695,
        "player_q": 3846,
        "name_p": "Vin\u00edcius Junior",
        "name_q": "Marquinhos",
        "value": -0.013074695799940327,
        "minutes_together": 306.53333333333336
      },
      {
        "player_p": 1695,
        "player_q": 1926,
        "name_p": "Vin\u00edcius Junior",
        "name_q": "Thiago Silva",
        "value": -0.013359006988178304,
        "minutes_together": 306.53333333333336
      },
      {
        "player_p": 2074,
        "player_q": 3846,
        "name_p": "Raphinha",
        "name_q": "Marquinhos",
        "value": -0.013386915697150996,
        "minutes_together": 330.26666666666665
      },
      {
        "player_p": 2074,
        "player_q": 3865,
        "name_p": "Raphinha",
        "name_q": "Neymar",
        "value": -0.013824581774809188,
        "minutes_together": 214.6
      },
      {
        "player_p": 195,
        "player_q": 3930,
        "name_p": "Richarlison",
        "name_q": "Lucas Paquet\u00e1",
        "value": -0.014384284530174806,
        "minutes_together": 298.8833333333333
      },
      {
        "player_p": 32,
        "player_q": 1676,
        "name_p": "Alisson",
        "name_q": "Eder Militao",
        "value": -0.015023876655243804,
        "minutes_together": 248.31666666666666
      },
      {
        "player_p": 2074,
        "player_q": 8061,
        "name_p": "Raphinha",
        "name_q": "Danilo",
        "value": -0.017155751603168547,
        "minutes_together": 213.75
      },
      {
        "player_p": 1695,
        "player_q": 3865,
        "name_p": "Vin\u00edcius Junior",
        "name_q": "Neymar",
        "value": -0.0171711744533309,
        "minutes_together": 210.61666666666667
      },
      {
        "player_p": 1683,
        "player_q": 3930,
        "name_p": "Casemiro",
        "name_q": "Lucas Paquet\u00e1",
        "value": -0.017437463698842085,
        "minutes_together": 305.5833333333333
      },
      {
        "player_p": 1676,
        "player_q": 3865,
        "name_p": "Eder Militao",
        "name_q": "Neymar",
        "value": -0.017705246657951017,
        "minutes_together": 152.4
      },
      {
        "player_p": 195,
        "player_q": 3865,
        "name_p": "Richarlison",
        "name_q": "Neymar",
        "value": -0.017979355126903032,
        "minutes_together": 241.85
      },
      {
        "player_p": 1926,
        "player_q": 2074,
        "name_p": "Thiago Silva",
        "name_q": "Raphinha",
        "value": -0.019009686670995767,
        "minutes_together": 308.8833333333333
      },
      {
        "player_p": 1683,
        "player_q": 3846,
        "name_p": "Casemiro",
        "name_q": "Marquinhos",
        "value": -0.020172959111976706,
        "minutes_together": 377.01666666666665
      },
      {
        "player_p": 1683,
        "player_q": 1926,
        "name_p": "Casemiro",
        "name_q": "Thiago Silva",
        "value": -0.020614274117894155,
        "minutes_together": 377.01666666666665
      },
      {
        "player_p": 32,
        "player_q": 1695,
        "name_p": "Alisson",
        "name_q": "Vin\u00edcius Junior",
        "value": -0.020742365754259216,
        "minutes_together": 306.53333333333336
      },
      {
        "player_p": 32,
        "player_q": 1683,
        "name_p": "Alisson",
        "name_q": "Casemiro",
        "value": -0.02127393867184796,
        "minutes_together": 362.8833333333333
      },
      {
        "player_p": 32,
        "player_q": 2074,
        "name_p": "Alisson",
        "name_q": "Raphinha",
        "value": -0.021610693720324252,
        "minutes_together": 294.75
      },
      {
        "player_p": 1683,
        "player_q": 8061,
        "name_p": "Casemiro",
        "name_q": "Danilo",
        "value": -0.021968619565973076,
        "minutes_together": 258.85
      },
      {
        "player_p": 195,
        "player_q": 3846,
        "name_p": "Richarlison",
        "name_q": "Marquinhos",
        "value": -0.022223829207602044,
        "minutes_together": 328.23333333333335
      },
      {
        "player_p": 195,
        "player_q": 8061,
        "name_p": "Richarlison",
        "name_q": "Danilo",
        "value": -0.022240265151449064,
        "minutes_together": 233.31666666666666
      },
      {
        "player_p": 1683,
        "player_q": 3865,
        "name_p": "Casemiro",
        "name_q": "Neymar",
        "value": -0.02257680914184371,
        "minutes_together": 249.46666666666667
      },
      {
        "player_p": 195,
        "player_q": 1926,
        "name_p": "Richarlison",
        "name_q": "Thiago Silva",
        "value": -0.02267078442907881,
        "minutes_together": 328.23333333333335
      },
      {
        "player_p": 3865,
        "player_q": 3930,
        "name_p": "Neymar",
        "name_q": "Lucas Paquet\u00e1",
        "value": -0.02279258009690208,
        "minutes_together": 245.06666666666666
      },
      {
        "player_p": 3865,
        "player_q": 8061,
        "name_p": "Neymar",
        "name_q": "Danilo",
        "value": -0.02307432200702479,
        "minutes_together": 240.93333333333334
      },
      {
        "player_p": 1676,
        "player_q": 8061,
        "name_p": "Eder Militao",
        "name_q": "Danilo",
        "value": -0.02413396716147051,
        "minutes_together": 152.4
      },
      {
        "player_p": 3930,
        "player_q": 8061,
        "name_p": "Lucas Paquet\u00e1",
        "name_q": "Danilo",
        "value": -0.02504040586006057,
        "minutes_together": 236.53333333333333
      },
      {
        "player_p": 1695,
        "player_q": 8061,
        "name_p": "Vin\u00edcius Junior",
        "name_q": "Danilo",
        "value": -0.025195647630837637,
        "minutes_together": 210.60000000000002
      },
      {
        "player_p": 32,
        "player_q": 195,
        "name_p": "Alisson",
        "name_q": "Richarlison",
        "value": -0.025368445955421082,
        "minutes_together": 314.1
      },
      {
        "player_p": 3846,
        "player_q": 3930,
        "name_p": "Marquinhos",
        "name_q": "Lucas Paquet\u00e1",
        "value": -0.031093905912992752,
        "minutes_together": 305.5833333333333
      },
      {
        "player_p": 32,
        "player_q": 3930,
        "name_p": "Alisson",
        "name_q": "Lucas Paquet\u00e1",
        "value": -0.03164927226567229,
        "minutes_together": 291.45
      },
      {
        "player_p": 1926,
        "player_q": 3930,
        "name_p": "Thiago Silva",
        "name_q": "Lucas Paquet\u00e1",
        "value": -0.031703565091149924,
        "minutes_together": 305.5833333333333
      },
      {
        "player_p": 1926,
        "player_q": 3846,
        "name_p": "Thiago Silva",
        "name_q": "Marquinhos",
        "value": -0.034547708261629985,
        "minutes_together": 377.01666666666665
      },
      {
        "player_p": 32,
        "player_q": 3846,
        "name_p": "Alisson",
        "name_q": "Marquinhos",
        "value": -0.03623681606183035,
        "minutes_together": 362.8833333333333
      },
      {
        "player_p": 32,
        "player_q": 1926,
        "name_p": "Alisson",
        "name_q": "Thiago Silva",
        "value": -0.03669302103383394,
        "minutes_together": 362.8833333333333
      },
      {
        "player_p": 3846,
        "player_q": 8061,
        "name_p": "Marquinhos",
        "name_q": "Danilo",
        "value": -0.0383311511466702,
        "minutes_together": 258.85
      },
      {
        "player_p": 3846,
        "player_q": 3865,
        "name_p": "Marquinhos",
        "name_q": "Neymar",
        "value": -0.03879483642734483,
        "minutes_together": 249.46666666666667
      },
      {
        "player_p": 1926,
        "player_q": 8061,
        "name_p": "Thiago Silva",
        "name_q": "Danilo",
        "value": -0.03931191633917873,
        "minutes_together": 258.85
      },
      {
        "player_p": 1926,
        "player_q": 3865,
        "name_p": "Thiago Silva",
        "name_q": "Neymar",
        "value": -0.03977864329115757,
        "minutes_together": 249.46666666666667
      },
      {
        "player_p": 32,
        "player_q": 8061,
        "name_p": "Alisson",
        "name_q": "Danilo",
        "value": -0.04571877495038991,
        "minutes_together": 258.85
      },
      {
        "player_p": 32,
        "player_q": 3865,
        "name_p": "Alisson",
        "name_q": "Neymar",
        "value": -0.04644621106000385,
        "minutes_together": 249.05
      }
    ],
    "path": "assets/figures/team_361_jdi90.png"
  },
  {
    "team_id": "362",
    "team_name": "Belgium",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_362_joi90.png",
    "n_pairs": 51,
    "median": 0.014679471599583663,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 22,
        "name": "Kevin De Bruyne",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 17057
      },
      {
        "player_id": 67,
        "name": "Jan Vertonghen",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17057
      },
      {
        "player_id": 1672,
        "name": "Thibaut Courtois",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17057
      },
      {
        "player_id": 1960,
        "name": "Timothy Castagne",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 17057
      },
      {
        "player_id": 4674,
        "name": "Axel Witsel",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17057
      },
      {
        "player_id": 66,
        "name": "Toby Alderweireld",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17057
      },
      {
        "player_id": 4669,
        "name": "Thomas Meunier",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 12658
      },
      {
        "player_id": 241,
        "name": "Leander Dendoncker",
        "position": "RCB",
        "x": 47.6,
        "y": 40.0,
        "row": 3,
        "col": 3,
        "on_seconds": 9998
      },
      {
        "player_id": 112,
        "name": "Michy Batshuayi",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 9108
      },
      {
        "player_id": 1694,
        "name": "Eden Hazard",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 7730
      },
      {
        "player_id": 1387,
        "name": "Yannick Carrasco",
        "position": "LW",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 7363
      }
    ],
    "pairs": [
      {
        "player_p": 66,
        "player_q": 112,
        "name_p": "Toby Alderweireld",
        "name_q": "Michy Batshuayi",
        "value": 0.5628960586401466,
        "minutes_together": 151.8
      },
      {
        "player_p": 1387,
        "player_q": 1960,
        "name_p": "Yannick Carrasco",
        "name_q": "Timothy Castagne",
        "value": 0.12186639417155823,
        "minutes_together": 122.71666666666667
      },
      {
        "player_p": 67,
        "player_q": 1960,
        "name_p": "Jan Vertonghen",
        "name_q": "Timothy Castagne",
        "value": 0.07057340971204058,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 22,
        "player_q": 1694,
        "name_p": "Kevin De Bruyne",
        "name_q": "Eden Hazard",
        "value": 0.06775072421466018,
        "minutes_together": 128.83333333333334
      },
      {
        "player_p": 22,
        "player_q": 112,
        "name_p": "Kevin De Bruyne",
        "name_q": "Michy Batshuayi",
        "value": 0.06688927994018287,
        "minutes_together": 151.8
      },
      {
        "player_p": 22,
        "player_q": 1672,
        "name_p": "Kevin De Bruyne",
        "name_q": "Thibaut Courtois",
        "value": 0.04446616029852903,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 22,
        "player_q": 66,
        "name_p": "Kevin De Bruyne",
        "name_q": "Toby Alderweireld",
        "value": 0.04424164740616031,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 22,
        "player_q": 4669,
        "name_p": "Kevin De Bruyne",
        "name_q": "Thomas Meunier",
        "value": 0.04239999380549837,
        "minutes_together": 210.96666666666667
      },
      {
        "player_p": 22,
        "player_q": 1960,
        "name_p": "Kevin De Bruyne",
        "name_q": "Timothy Castagne",
        "value": 0.039167600906813295,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 1694,
        "player_q": 4674,
        "name_p": "Eden Hazard",
        "name_q": "Axel Witsel",
        "value": 0.03899237950893992,
        "minutes_together": 128.83333333333334
      },
      {
        "player_p": 241,
        "player_q": 4669,
        "name_p": "Leander Dendoncker",
        "name_q": "Thomas Meunier",
        "value": 0.03584090681871193,
        "minutes_together": 115.28333333333333
      },
      {
        "player_p": 241,
        "player_q": 4674,
        "name_p": "Leander Dendoncker",
        "name_q": "Axel Witsel",
        "value": 0.033497622710293724,
        "minutes_together": 166.63333333333333
      },
      {
        "player_p": 1694,
        "player_q": 4669,
        "name_p": "Eden Hazard",
        "name_q": "Thomas Meunier",
        "value": 0.03206493427376314,
        "minutes_together": 70.06666666666666
      },
      {
        "player_p": 1960,
        "player_q": 4674,
        "name_p": "Timothy Castagne",
        "name_q": "Axel Witsel",
        "value": 0.026543764183022876,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 1387,
        "player_q": 4674,
        "name_p": "Yannick Carrasco",
        "name_q": "Axel Witsel",
        "value": 0.025469548651889443,
        "minutes_together": 122.71666666666667
      },
      {
        "player_p": 66,
        "player_q": 1672,
        "name_p": "Toby Alderweireld",
        "name_q": "Thibaut Courtois",
        "value": 0.02421501716815674,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 22,
        "player_q": 67,
        "name_p": "Kevin De Bruyne",
        "name_q": "Jan Vertonghen",
        "value": 0.023280957872104786,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 1672,
        "player_q": 1694,
        "name_p": "Thibaut Courtois",
        "name_q": "Eden Hazard",
        "value": 0.02244277953467398,
        "minutes_together": 128.83333333333334
      },
      {
        "player_p": 67,
        "player_q": 1387,
        "name_p": "Jan Vertonghen",
        "name_q": "Yannick Carrasco",
        "value": 0.020637271594159668,
        "minutes_together": 122.71666666666667
      },
      {
        "player_p": 66,
        "player_q": 4674,
        "name_p": "Toby Alderweireld",
        "name_q": "Axel Witsel",
        "value": 0.018735222378514518,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 66,
        "player_q": 1960,
        "name_p": "Toby Alderweireld",
        "name_q": "Timothy Castagne",
        "value": 0.017283109486838973,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 1672,
        "player_q": 4669,
        "name_p": "Thibaut Courtois",
        "name_q": "Thomas Meunier",
        "value": 0.01665095110818336,
        "minutes_together": 210.96666666666667
      },
      {
        "player_p": 22,
        "player_q": 4674,
        "name_p": "Kevin De Bruyne",
        "name_q": "Axel Witsel",
        "value": 0.016571612617849164,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 67,
        "player_q": 4674,
        "name_p": "Jan Vertonghen",
        "name_q": "Axel Witsel",
        "value": 0.015384186473362586,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 66,
        "player_q": 1694,
        "name_p": "Toby Alderweireld",
        "name_q": "Eden Hazard",
        "value": 0.014972337846724857,
        "minutes_together": 128.83333333333334
      },
      {
        "player_p": 22,
        "player_q": 1387,
        "name_p": "Kevin De Bruyne",
        "name_q": "Yannick Carrasco",
        "value": 0.014679471599583663,
        "minutes_together": 122.71666666666667
      },
      {
        "player_p": 67,
        "player_q": 1694,
        "name_p": "Jan Vertonghen",
        "name_q": "Eden Hazard",
        "value": 0.014440489260302048,
        "minutes_together": 128.83333333333334
      },
      {
        "player_p": 67,
        "player_q": 1672,
        "name_p": "Jan Vertonghen",
        "name_q": "Thibaut Courtois",
        "value": 0.014040524682903248,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 1672,
        "player_q": 1960,
        "name_p": "Thibaut Courtois",
        "name_q": "Timothy Castagne",
        "value": 0.01378013081220388,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 112,
        "player_q": 1960,
        "name_p": "Michy Batshuayi",
        "name_q": "Timothy Castagne",
        "value": 0.013066455423473518,
        "minutes_together": 151.8
      },
      {
        "player_p": 22,
        "player_q": 241,
        "name_p": "Kevin De Bruyne",
        "name_q": "Leander Dendoncker",
        "value": 0.012967147087221796,
        "minutes_together": 166.63333333333333
      },
      {
        "player_p": 1960,
        "player_q": 4669,
        "name_p": "Timothy Castagne",
        "name_q": "Thomas Meunier",
        "value": 0.011797030126284571,
        "minutes_together": 210.96666666666667
      },
      {
        "player_p": 241,
        "player_q": 1672,
        "name_p": "Leander Dendoncker",
        "name_q": "Thibaut Courtois",
        "value": 0.011765747507892168,
        "minutes_together": 166.63333333333333
      },
      {
        "player_p": 241,
        "player_q": 1694,
        "name_p": "Leander Dendoncker",
        "name_q": "Eden Hazard",
        "value": 0.010142274734047566,
        "minutes_together": 61.75
      },
      {
        "player_p": 67,
        "player_q": 241,
        "name_p": "Jan Vertonghen",
        "name_q": "Leander Dendoncker",
        "value": 0.008538050732380386,
        "minutes_together": 166.63333333333333
      },
      {
        "player_p": 112,
        "player_q": 4669,
        "name_p": "Michy Batshuayi",
        "name_q": "Thomas Meunier",
        "value": 0.008013482458185497,
        "minutes_together": 100.44999999999999
      },
      {
        "player_p": 66,
        "player_q": 67,
        "name_p": "Toby Alderweireld",
        "name_q": "Jan Vertonghen",
        "value": 0.007644198961260502,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 4669,
        "player_q": 4674,
        "name_p": "Thomas Meunier",
        "name_q": "Axel Witsel",
        "value": 0.006476907402270018,
        "minutes_together": 210.96666666666667
      },
      {
        "player_p": 66,
        "player_q": 1387,
        "name_p": "Toby Alderweireld",
        "name_q": "Yannick Carrasco",
        "value": 0.005595504626543696,
        "minutes_together": 122.71666666666667
      },
      {
        "player_p": 241,
        "player_q": 1387,
        "name_p": "Leander Dendoncker",
        "name_q": "Yannick Carrasco",
        "value": 0.005140312091232573,
        "minutes_together": 122.71666666666667
      },
      {
        "player_p": 112,
        "player_q": 1672,
        "name_p": "Michy Batshuayi",
        "name_q": "Thibaut Courtois",
        "value": 0.00503157598853384,
        "minutes_together": 151.8
      },
      {
        "player_p": 66,
        "player_q": 4669,
        "name_p": "Toby Alderweireld",
        "name_q": "Thomas Meunier",
        "value": 0.0047407544061742486,
        "minutes_together": 210.96666666666667
      },
      {
        "player_p": 67,
        "player_q": 112,
        "name_p": "Jan Vertonghen",
        "name_q": "Michy Batshuayi",
        "value": 0.0044067560653414046,
        "minutes_together": 151.8
      },
      {
        "player_p": 1694,
        "player_q": 1960,
        "name_p": "Eden Hazard",
        "name_q": "Timothy Castagne",
        "value": 0.00356188311718146,
        "minutes_together": 128.83333333333334
      },
      {
        "player_p": 67,
        "player_q": 4669,
        "name_p": "Jan Vertonghen",
        "name_q": "Thomas Meunier",
        "value": 0.0021188994873176815,
        "minutes_together": 210.96666666666667
      },
      {
        "player_p": 1672,
        "player_q": 4674,
        "name_p": "Thibaut Courtois",
        "name_q": "Axel Witsel",
        "value": 0.0007429934570955808,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 112,
        "player_q": 1694,
        "name_p": "Michy Batshuayi",
        "name_q": "Eden Hazard",
        "value": 0.0004262000611062684,
        "minutes_together": 121.41666666666666
      },
      {
        "player_p": 1387,
        "player_q": 4669,
        "name_p": "Yannick Carrasco",
        "name_q": "Thomas Meunier",
        "value": -0.0010518636816471028,
        "minutes_together": 71.36666666666666
      },
      {
        "player_p": 112,
        "player_q": 4674,
        "name_p": "Michy Batshuayi",
        "name_q": "Axel Witsel",
        "value": -0.0026846204002081847,
        "minutes_together": 151.8
      },
      {
        "player_p": 66,
        "player_q": 241,
        "name_p": "Toby Alderweireld",
        "name_q": "Leander Dendoncker",
        "value": -0.008587112911315111,
        "minutes_together": 166.63333333333333
      },
      {
        "player_p": 241,
        "player_q": 1960,
        "name_p": "Leander Dendoncker",
        "name_q": "Timothy Castagne",
        "value": -0.009628193723288696,
        "minutes_together": 166.63333333333333
      }
    ],
    "path": "assets/figures/team_362_joi90.png"
  },
  {
    "team_id": "362",
    "team_name": "Belgium",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_362_jdi90.png",
    "n_pairs": 53,
    "median": 0.02391270272382011,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 22,
        "name": "Kevin De Bruyne",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 17057
      },
      {
        "player_id": 67,
        "name": "Jan Vertonghen",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17057
      },
      {
        "player_id": 1672,
        "name": "Thibaut Courtois",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17057
      },
      {
        "player_id": 1960,
        "name": "Timothy Castagne",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 17057
      },
      {
        "player_id": 4674,
        "name": "Axel Witsel",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17057
      },
      {
        "player_id": 66,
        "name": "Toby Alderweireld",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17057
      },
      {
        "player_id": 4669,
        "name": "Thomas Meunier",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 12658
      },
      {
        "player_id": 241,
        "name": "Leander Dendoncker",
        "position": "RCB",
        "x": 47.6,
        "y": 40.0,
        "row": 3,
        "col": 3,
        "on_seconds": 9998
      },
      {
        "player_id": 112,
        "name": "Michy Batshuayi",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 9108
      },
      {
        "player_id": 1694,
        "name": "Eden Hazard",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 7730
      },
      {
        "player_id": 1387,
        "name": "Yannick Carrasco",
        "position": "LW",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 7363
      }
    ],
    "pairs": [
      {
        "player_p": 241,
        "player_q": 1694,
        "name_p": "Leander Dendoncker",
        "name_q": "Eden Hazard",
        "value": 0.04347192286820055,
        "minutes_together": 61.75
      },
      {
        "player_p": 66,
        "player_q": 241,
        "name_p": "Toby Alderweireld",
        "name_q": "Leander Dendoncker",
        "value": 0.04013008874527636,
        "minutes_together": 166.63333333333333
      },
      {
        "player_p": 66,
        "player_q": 1387,
        "name_p": "Toby Alderweireld",
        "name_q": "Yannick Carrasco",
        "value": 0.03983075632129726,
        "minutes_together": 122.71666666666667
      },
      {
        "player_p": 241,
        "player_q": 1387,
        "name_p": "Leander Dendoncker",
        "name_q": "Yannick Carrasco",
        "value": 0.03805370681793913,
        "minutes_together": 122.71666666666667
      },
      {
        "player_p": 66,
        "player_q": 1694,
        "name_p": "Toby Alderweireld",
        "name_q": "Eden Hazard",
        "value": 0.03651346721839819,
        "minutes_together": 128.83333333333334
      },
      {
        "player_p": 1387,
        "player_q": 4674,
        "name_p": "Yannick Carrasco",
        "name_q": "Axel Witsel",
        "value": 0.034099856705293315,
        "minutes_together": 122.71666666666667
      },
      {
        "player_p": 67,
        "player_q": 1387,
        "name_p": "Jan Vertonghen",
        "name_q": "Yannick Carrasco",
        "value": 0.03388350829721389,
        "minutes_together": 122.71666666666667
      },
      {
        "player_p": 1387,
        "player_q": 4669,
        "name_p": "Yannick Carrasco",
        "name_q": "Thomas Meunier",
        "value": 0.032409415924188216,
        "minutes_together": 71.36666666666666
      },
      {
        "player_p": 66,
        "player_q": 4674,
        "name_p": "Toby Alderweireld",
        "name_q": "Axel Witsel",
        "value": 0.031663607488593766,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 67,
        "player_q": 241,
        "name_p": "Jan Vertonghen",
        "name_q": "Leander Dendoncker",
        "value": 0.03159702038082752,
        "minutes_together": 166.63333333333333
      },
      {
        "player_p": 66,
        "player_q": 67,
        "name_p": "Toby Alderweireld",
        "name_q": "Jan Vertonghen",
        "value": 0.03016508000402279,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 241,
        "player_q": 4674,
        "name_p": "Leander Dendoncker",
        "name_q": "Axel Witsel",
        "value": 0.02999930922927194,
        "minutes_together": 166.63333333333333
      },
      {
        "player_p": 67,
        "player_q": 1694,
        "name_p": "Jan Vertonghen",
        "name_q": "Eden Hazard",
        "value": 0.029562307062367517,
        "minutes_together": 128.83333333333334
      },
      {
        "player_p": 241,
        "player_q": 4669,
        "name_p": "Leander Dendoncker",
        "name_q": "Thomas Meunier",
        "value": 0.028836028312503512,
        "minutes_together": 115.28333333333333
      },
      {
        "player_p": 1672,
        "player_q": 1694,
        "name_p": "Thibaut Courtois",
        "name_q": "Eden Hazard",
        "value": 0.028501617798701268,
        "minutes_together": 128.83333333333334
      },
      {
        "player_p": 1694,
        "player_q": 4674,
        "name_p": "Eden Hazard",
        "name_q": "Axel Witsel",
        "value": 0.028255047955366368,
        "minutes_together": 128.83333333333334
      },
      {
        "player_p": 1387,
        "player_q": 1960,
        "name_p": "Yannick Carrasco",
        "name_q": "Timothy Castagne",
        "value": 0.027802891487246347,
        "minutes_together": 122.71666666666667
      },
      {
        "player_p": 67,
        "player_q": 4674,
        "name_p": "Jan Vertonghen",
        "name_q": "Axel Witsel",
        "value": 0.026737979115481435,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 4669,
        "player_q": 4674,
        "name_p": "Thomas Meunier",
        "name_q": "Axel Witsel",
        "value": 0.02650790711542829,
        "minutes_together": 210.96666666666667
      },
      {
        "player_p": 66,
        "player_q": 1672,
        "name_p": "Toby Alderweireld",
        "name_q": "Thibaut Courtois",
        "value": 0.02629483755682935,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 1387,
        "player_q": 1672,
        "name_p": "Yannick Carrasco",
        "name_q": "Thibaut Courtois",
        "value": 0.02609207327540813,
        "minutes_together": 122.71666666666667
      },
      {
        "player_p": 241,
        "player_q": 1960,
        "name_p": "Leander Dendoncker",
        "name_q": "Timothy Castagne",
        "value": 0.025556758952915832,
        "minutes_together": 166.63333333333333
      },
      {
        "player_p": 241,
        "player_q": 1672,
        "name_p": "Leander Dendoncker",
        "name_q": "Thibaut Courtois",
        "value": 0.025468258583976153,
        "minutes_together": 166.63333333333333
      },
      {
        "player_p": 22,
        "player_q": 1387,
        "name_p": "Kevin De Bruyne",
        "name_q": "Yannick Carrasco",
        "value": 0.025156474796624993,
        "minutes_together": 122.71666666666667
      },
      {
        "player_p": 66,
        "player_q": 1960,
        "name_p": "Toby Alderweireld",
        "name_q": "Timothy Castagne",
        "value": 0.024515212646346353,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 66,
        "player_q": 4669,
        "name_p": "Toby Alderweireld",
        "name_q": "Thomas Meunier",
        "value": 0.02443491514705333,
        "minutes_together": 210.96666666666667
      },
      {
        "player_p": 1694,
        "player_q": 1960,
        "name_p": "Eden Hazard",
        "name_q": "Timothy Castagne",
        "value": 0.02391270272382011,
        "minutes_together": 128.83333333333334
      },
      {
        "player_p": 1672,
        "player_q": 4674,
        "name_p": "Thibaut Courtois",
        "name_q": "Axel Witsel",
        "value": 0.022867736668288008,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 22,
        "player_q": 241,
        "name_p": "Kevin De Bruyne",
        "name_q": "Leander Dendoncker",
        "value": 0.022064764097896355,
        "minutes_together": 166.63333333333333
      },
      {
        "player_p": 67,
        "player_q": 4669,
        "name_p": "Jan Vertonghen",
        "name_q": "Thomas Meunier",
        "value": 0.021770131194317567,
        "minutes_together": 210.96666666666667
      },
      {
        "player_p": 67,
        "player_q": 1672,
        "name_p": "Jan Vertonghen",
        "name_q": "Thibaut Courtois",
        "value": 0.02136920918371702,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 22,
        "player_q": 66,
        "name_p": "Kevin De Bruyne",
        "name_q": "Toby Alderweireld",
        "value": 0.02130174997832188,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 1960,
        "player_q": 4674,
        "name_p": "Timothy Castagne",
        "name_q": "Axel Witsel",
        "value": 0.021088111757804992,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 22,
        "player_q": 1694,
        "name_p": "Kevin De Bruyne",
        "name_q": "Eden Hazard",
        "value": 0.020092747845106694,
        "minutes_together": 128.83333333333334
      },
      {
        "player_p": 67,
        "player_q": 1960,
        "name_p": "Jan Vertonghen",
        "name_q": "Timothy Castagne",
        "value": 0.019589584273234005,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 22,
        "player_q": 4674,
        "name_p": "Kevin De Bruyne",
        "name_q": "Axel Witsel",
        "value": 0.017874649089780526,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 1672,
        "player_q": 4669,
        "name_p": "Thibaut Courtois",
        "name_q": "Thomas Meunier",
        "value": 0.017048528139860287,
        "minutes_together": 210.96666666666667
      },
      {
        "player_p": 22,
        "player_q": 67,
        "name_p": "Kevin De Bruyne",
        "name_q": "Jan Vertonghen",
        "value": 0.01637612160520955,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 1960,
        "player_q": 4669,
        "name_p": "Timothy Castagne",
        "name_q": "Thomas Meunier",
        "value": 0.015898919558023004,
        "minutes_together": 210.96666666666667
      },
      {
        "player_p": 1672,
        "player_q": 1960,
        "name_p": "Thibaut Courtois",
        "name_q": "Timothy Castagne",
        "value": 0.015719341826040577,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 66,
        "player_q": 112,
        "name_p": "Toby Alderweireld",
        "name_q": "Michy Batshuayi",
        "value": 0.015352293943890401,
        "minutes_together": 151.8
      },
      {
        "player_p": 22,
        "player_q": 4669,
        "name_p": "Kevin De Bruyne",
        "name_q": "Thomas Meunier",
        "value": 0.012539307424800031,
        "minutes_together": 210.96666666666667
      },
      {
        "player_p": 22,
        "player_q": 1672,
        "name_p": "Kevin De Bruyne",
        "name_q": "Thibaut Courtois",
        "value": 0.012505879158016113,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 1694,
        "player_q": 4669,
        "name_p": "Eden Hazard",
        "name_q": "Thomas Meunier",
        "value": 0.011943591469920288,
        "minutes_together": 70.06666666666666
      },
      {
        "player_p": 112,
        "player_q": 1694,
        "name_p": "Michy Batshuayi",
        "name_q": "Eden Hazard",
        "value": 0.011837712858825873,
        "minutes_together": 121.41666666666666
      },
      {
        "player_p": 22,
        "player_q": 1960,
        "name_p": "Kevin De Bruyne",
        "name_q": "Timothy Castagne",
        "value": 0.010726254247533106,
        "minutes_together": 284.2833333333333
      },
      {
        "player_p": 112,
        "player_q": 241,
        "name_p": "Michy Batshuayi",
        "name_q": "Leander Dendoncker",
        "value": 0.009385601901542947,
        "minutes_together": 77.73333333333333
      },
      {
        "player_p": 67,
        "player_q": 112,
        "name_p": "Jan Vertonghen",
        "name_q": "Michy Batshuayi",
        "value": 0.007877040318170075,
        "minutes_together": 151.8
      },
      {
        "player_p": 112,
        "player_q": 1672,
        "name_p": "Michy Batshuayi",
        "name_q": "Thibaut Courtois",
        "value": 0.007479866945019204,
        "minutes_together": 151.8
      },
      {
        "player_p": 112,
        "player_q": 4674,
        "name_p": "Michy Batshuayi",
        "name_q": "Axel Witsel",
        "value": 0.005896653039532236,
        "minutes_together": 151.8
      },
      {
        "player_p": 112,
        "player_q": 1960,
        "name_p": "Michy Batshuayi",
        "name_q": "Timothy Castagne",
        "value": 0.002179365361649917,
        "minutes_together": 151.8
      },
      {
        "player_p": 112,
        "player_q": 4669,
        "name_p": "Michy Batshuayi",
        "name_q": "Thomas Meunier",
        "value": -0.0005538661451029052,
        "minutes_together": 100.44999999999999
      },
      {
        "player_p": 22,
        "player_q": 112,
        "name_p": "Kevin De Bruyne",
        "name_q": "Michy Batshuayi",
        "value": -0.0019753187828733987,
        "minutes_together": 151.8
      }
    ],
    "path": "assets/figures/team_362_jdi90.png"
  },
  {
    "team_id": "363",
    "team_name": "France",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_363_joi90.png",
    "n_pairs": 55,
    "median": 0.02045294439381225,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 3888,
        "name": "Aur\u00e9lien Tchouam\u00e9ni",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 37687
      },
      {
        "player_id": 3870,
        "name": "Kylian Mbapp\u00e9",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 37186
      },
      {
        "player_id": 1534,
        "name": "Antoine Griezmann",
        "position": "AM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 35146
      },
      {
        "player_id": 61,
        "name": "Hugo Lloris",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 34799
      },
      {
        "player_id": 8583,
        "name": "Theo Hernandez",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 32905
      },
      {
        "player_id": 8054,
        "name": "Adrien Rabiot",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 31435
      },
      {
        "player_id": 1675,
        "name": "Raphael Varane",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 31340
      },
      {
        "player_id": 4606,
        "name": "Dayot Upamecano",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 29040
      },
      {
        "player_id": 1789,
        "name": "Jules Kounde",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 29011
      },
      {
        "player_id": 1532,
        "name": "Ousmane Dembele",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 26869
      },
      {
        "player_id": 113,
        "name": "Olivier Giroud",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 25953
      }
    ],
    "pairs": [
      {
        "player_p": 113,
        "player_q": 3888,
        "name_p": "Olivier Giroud",
        "name_q": "Aur\u00e9lien Tchouam\u00e9ni",
        "value": 0.6087448064416721,
        "minutes_together": 410.08333333333337
      },
      {
        "player_p": 1532,
        "player_q": 3870,
        "name_p": "Ousmane Dembele",
        "name_q": "Kylian Mbapp\u00e9",
        "value": 0.5044118973860204,
        "minutes_together": 447.81666666666666
      },
      {
        "player_p": 3870,
        "player_q": 8583,
        "name_p": "Kylian Mbapp\u00e9",
        "name_q": "Theo Hernandez",
        "value": 0.4018367247722779,
        "minutes_together": 548.4166666666667
      },
      {
        "player_p": 113,
        "player_q": 3870,
        "name_p": "Olivier Giroud",
        "name_q": "Kylian Mbapp\u00e9",
        "value": 0.3268228068898602,
        "minutes_together": 432.55
      },
      {
        "player_p": 113,
        "player_q": 8054,
        "name_p": "Olivier Giroud",
        "name_q": "Adrien Rabiot",
        "value": 0.2265360901004323,
        "minutes_together": 367.7166666666667
      },
      {
        "player_p": 8054,
        "player_q": 8583,
        "name_p": "Adrien Rabiot",
        "name_q": "Theo Hernandez",
        "value": 0.21935510213577245,
        "minutes_together": 452.43333333333334
      },
      {
        "player_p": 1534,
        "player_q": 3870,
        "name_p": "Antoine Griezmann",
        "name_q": "Kylian Mbapp\u00e9",
        "value": 0.21441181350625194,
        "minutes_together": 585.7666666666667
      },
      {
        "player_p": 1534,
        "player_q": 8054,
        "name_p": "Antoine Griezmann",
        "name_q": "Adrien Rabiot",
        "value": 0.21313764371968222,
        "minutes_together": 489.78333333333336
      },
      {
        "player_p": 1534,
        "player_q": 3888,
        "name_p": "Antoine Griezmann",
        "name_q": "Aur\u00e9lien Tchouam\u00e9ni",
        "value": 0.17404816712591528,
        "minutes_together": 531.2
      },
      {
        "player_p": 113,
        "player_q": 1534,
        "name_p": "Olivier Giroud",
        "name_q": "Antoine Griezmann",
        "value": 0.15702128382619276,
        "minutes_together": 432.55
      },
      {
        "player_p": 3870,
        "player_q": 8054,
        "name_p": "Kylian Mbapp\u00e9",
        "name_q": "Adrien Rabiot",
        "value": 0.10430581820730112,
        "minutes_together": 523.7833333333333
      },
      {
        "player_p": 1532,
        "player_q": 1534,
        "name_p": "Ousmane Dembele",
        "name_q": "Antoine Griezmann",
        "value": 0.09095232984903012,
        "minutes_together": 447.81666666666666
      },
      {
        "player_p": 1534,
        "player_q": 4606,
        "name_p": "Antoine Griezmann",
        "name_q": "Dayot Upamecano",
        "value": 0.08728213820299398,
        "minutes_together": 459.45000000000005
      },
      {
        "player_p": 1532,
        "player_q": 8054,
        "name_p": "Ousmane Dembele",
        "name_q": "Adrien Rabiot",
        "value": 0.0835573980919277,
        "minutes_together": 369.7
      },
      {
        "player_p": 4606,
        "player_q": 8583,
        "name_p": "Dayot Upamecano",
        "name_q": "Theo Hernandez",
        "value": 0.08085117375154882,
        "minutes_together": 452.43333333333334
      },
      {
        "player_p": 3870,
        "player_q": 4606,
        "name_p": "Kylian Mbapp\u00e9",
        "name_q": "Dayot Upamecano",
        "value": 0.07606279002047513,
        "minutes_together": 484.0
      },
      {
        "player_p": 1532,
        "player_q": 4606,
        "name_p": "Ousmane Dembele",
        "name_q": "Dayot Upamecano",
        "value": 0.0737135228449189,
        "minutes_together": 345.08333333333337
      },
      {
        "player_p": 1534,
        "player_q": 8583,
        "name_p": "Antoine Griezmann",
        "name_q": "Theo Hernandez",
        "value": 0.06405187284787756,
        "minutes_together": 543.3833333333333
      },
      {
        "player_p": 1532,
        "player_q": 1675,
        "name_p": "Ousmane Dembele",
        "name_q": "Raphael Varane",
        "value": 0.06001684933791461,
        "minutes_together": 346.85
      },
      {
        "player_p": 1789,
        "player_q": 3888,
        "name_p": "Jules Kounde",
        "name_q": "Aur\u00e9lien Tchouam\u00e9ni",
        "value": 0.05433036359775605,
        "minutes_together": 449.26666666666665
      },
      {
        "player_p": 1534,
        "player_q": 1675,
        "name_p": "Antoine Griezmann",
        "name_q": "Raphael Varane",
        "value": 0.05411514188535995,
        "minutes_together": 440.25
      },
      {
        "player_p": 1675,
        "player_q": 4606,
        "name_p": "Raphael Varane",
        "name_q": "Dayot Upamecano",
        "value": 0.05032573893167939,
        "minutes_together": 363.78333333333336
      },
      {
        "player_p": 3870,
        "player_q": 3888,
        "name_p": "Kylian Mbapp\u00e9",
        "name_q": "Aur\u00e9lien Tchouam\u00e9ni",
        "value": 0.03897948905908728,
        "minutes_together": 565.2
      },
      {
        "player_p": 1532,
        "player_q": 8583,
        "name_p": "Ousmane Dembele",
        "name_q": "Theo Hernandez",
        "value": 0.03813361305059416,
        "minutes_together": 411.15
      },
      {
        "player_p": 3888,
        "player_q": 8583,
        "name_p": "Aur\u00e9lien Tchouam\u00e9ni",
        "name_q": "Theo Hernandez",
        "value": 0.03273444420169165,
        "minutes_together": 493.85
      },
      {
        "player_p": 3888,
        "player_q": 4606,
        "name_p": "Aur\u00e9lien Tchouam\u00e9ni",
        "name_q": "Dayot Upamecano",
        "value": 0.03094237044511809,
        "minutes_together": 429.43333333333334
      },
      {
        "player_p": 1675,
        "player_q": 8583,
        "name_p": "Raphael Varane",
        "name_q": "Theo Hernandez",
        "value": 0.02597419736658122,
        "minutes_together": 440.25
      },
      {
        "player_p": 1532,
        "player_q": 1789,
        "name_p": "Ousmane Dembele",
        "name_q": "Jules Kounde",
        "value": 0.02045294439381225,
        "minutes_together": 346.8833333333333
      },
      {
        "player_p": 61,
        "player_q": 1675,
        "name_p": "Hugo Lloris",
        "name_q": "Raphael Varane",
        "value": 0.0198228319815226,
        "minutes_together": 459.76666666666665
      },
      {
        "player_p": 1789,
        "player_q": 8054,
        "name_p": "Jules Kounde",
        "name_q": "Adrien Rabiot",
        "value": 0.017713033694449248,
        "minutes_together": 387.53333333333336
      },
      {
        "player_p": 1789,
        "player_q": 4606,
        "name_p": "Jules Kounde",
        "name_q": "Dayot Upamecano",
        "value": 0.010475237668574649,
        "minutes_together": 387.53333333333336
      },
      {
        "player_p": 61,
        "player_q": 8054,
        "name_p": "Hugo Lloris",
        "name_q": "Adrien Rabiot",
        "value": 0.010303121549179952,
        "minutes_together": 484.0
      },
      {
        "player_p": 4606,
        "player_q": 8054,
        "name_p": "Dayot Upamecano",
        "name_q": "Adrien Rabiot",
        "value": 0.009065112860593737,
        "minutes_together": 484.0
      },
      {
        "player_p": 61,
        "player_q": 8583,
        "name_p": "Hugo Lloris",
        "name_q": "Theo Hernandez",
        "value": 0.009048578422045244,
        "minutes_together": 548.4166666666667
      },
      {
        "player_p": 1675,
        "player_q": 1789,
        "name_p": "Raphael Varane",
        "name_q": "Jules Kounde",
        "value": 0.0066682446006593185,
        "minutes_together": 451.83333333333337
      },
      {
        "player_p": 61,
        "player_q": 113,
        "name_p": "Hugo Lloris",
        "name_q": "Olivier Giroud",
        "value": 0.005571600632991377,
        "minutes_together": 432.55
      },
      {
        "player_p": 61,
        "player_q": 3870,
        "name_p": "Hugo Lloris",
        "name_q": "Kylian Mbapp\u00e9",
        "value": 0.004777059872235463,
        "minutes_together": 579.9833333333333
      },
      {
        "player_p": 1675,
        "player_q": 3888,
        "name_p": "Raphael Varane",
        "name_q": "Aur\u00e9lien Tchouam\u00e9ni",
        "value": 0.004405759687777362,
        "minutes_together": 488.8
      },
      {
        "player_p": 61,
        "player_q": 1534,
        "name_p": "Hugo Lloris",
        "name_q": "Antoine Griezmann",
        "value": 0.004291274167046052,
        "minutes_together": 555.4333333333334
      },
      {
        "player_p": 61,
        "player_q": 1789,
        "name_p": "Hugo Lloris",
        "name_q": "Jules Kounde",
        "value": 0.003972051264722023,
        "minutes_together": 483.51666666666665
      },
      {
        "player_p": 113,
        "player_q": 8583,
        "name_p": "Olivier Giroud",
        "name_q": "Theo Hernandez",
        "value": 0.0035904513229941073,
        "minutes_together": 420.5
      },
      {
        "player_p": 61,
        "player_q": 1532,
        "name_p": "Hugo Lloris",
        "name_q": "Ousmane Dembele",
        "value": 0.0026809879894429595,
        "minutes_together": 423.2
      },
      {
        "player_p": 61,
        "player_q": 4606,
        "name_p": "Hugo Lloris",
        "name_q": "Dayot Upamecano",
        "value": 0.0022770789651887285,
        "minutes_together": 484.0
      },
      {
        "player_p": 61,
        "player_q": 3888,
        "name_p": "Hugo Lloris",
        "name_q": "Aur\u00e9lien Tchouam\u00e9ni",
        "value": 0.002254739108781947,
        "minutes_together": 525.4166666666667
      },
      {
        "player_p": 3888,
        "player_q": 8054,
        "name_p": "Aur\u00e9lien Tchouam\u00e9ni",
        "name_q": "Adrien Rabiot",
        "value": 0.0011564849578888175,
        "minutes_together": 469.35
      },
      {
        "player_p": 113,
        "player_q": 1675,
        "name_p": "Olivier Giroud",
        "name_q": "Raphael Varane",
        "value": 0.00038142841422069904,
        "minutes_together": 343.98333333333335
      },
      {
        "player_p": 113,
        "player_q": 4606,
        "name_p": "Olivier Giroud",
        "name_q": "Dayot Upamecano",
        "value": -0.0005989403595574603,
        "minutes_together": 367.7166666666667
      },
      {
        "player_p": 1675,
        "player_q": 3870,
        "name_p": "Raphael Varane",
        "name_q": "Kylian Mbapp\u00e9",
        "value": -0.0009154733052863198,
        "minutes_together": 459.76666666666665
      },
      {
        "player_p": 1532,
        "player_q": 3888,
        "name_p": "Ousmane Dembele",
        "name_q": "Aur\u00e9lien Tchouam\u00e9ni",
        "value": -0.004300352264561011,
        "minutes_together": 437.65000000000003
      },
      {
        "player_p": 113,
        "player_q": 1532,
        "name_p": "Olivier Giroud",
        "name_q": "Ousmane Dembele",
        "value": -0.006052047296710084,
        "minutes_together": 397.75
      },
      {
        "player_p": 1534,
        "player_q": 1789,
        "name_p": "Antoine Griezmann",
        "name_q": "Jules Kounde",
        "value": -0.008460766711359346,
        "minutes_together": 458.9666666666667
      },
      {
        "player_p": 1675,
        "player_q": 8054,
        "name_p": "Raphael Varane",
        "name_q": "Adrien Rabiot",
        "value": -0.008707934172422951,
        "minutes_together": 363.78333333333336
      },
      {
        "player_p": 113,
        "player_q": 1789,
        "name_p": "Olivier Giroud",
        "name_q": "Jules Kounde",
        "value": -0.011770052483803726,
        "minutes_together": 344.01666666666665
      },
      {
        "player_p": 1789,
        "player_q": 3870,
        "name_p": "Jules Kounde",
        "name_q": "Kylian Mbapp\u00e9",
        "value": -0.01455828865158953,
        "minutes_together": 483.51666666666665
      },
      {
        "player_p": 1789,
        "player_q": 8583,
        "name_p": "Jules Kounde",
        "name_q": "Theo Hernandez",
        "value": -0.07883894053249761,
        "minutes_together": 464.0
      }
    ],
    "path": "assets/figures/team_363_joi90.png"
  },
  {
    "team_id": "363",
    "team_name": "France",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_363_jdi90.png",
    "n_pairs": 55,
    "median": -0.02779742428326798,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 3888,
        "name": "Aur\u00e9lien Tchouam\u00e9ni",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 37687
      },
      {
        "player_id": 3870,
        "name": "Kylian Mbapp\u00e9",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 37186
      },
      {
        "player_id": 1534,
        "name": "Antoine Griezmann",
        "position": "AM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 35146
      },
      {
        "player_id": 61,
        "name": "Hugo Lloris",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 34799
      },
      {
        "player_id": 8583,
        "name": "Theo Hernandez",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 32905
      },
      {
        "player_id": 8054,
        "name": "Adrien Rabiot",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 31435
      },
      {
        "player_id": 1675,
        "name": "Raphael Varane",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 31340
      },
      {
        "player_id": 4606,
        "name": "Dayot Upamecano",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 29040
      },
      {
        "player_id": 1789,
        "name": "Jules Kounde",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 29011
      },
      {
        "player_id": 1532,
        "name": "Ousmane Dembele",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 26869
      },
      {
        "player_id": 113,
        "name": "Olivier Giroud",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 25953
      }
    ],
    "pairs": [
      {
        "player_p": 3888,
        "player_q": 8054,
        "name_p": "Aur\u00e9lien Tchouam\u00e9ni",
        "name_q": "Adrien Rabiot",
        "value": -0.012119668480148619,
        "minutes_together": 469.35
      },
      {
        "player_p": 1534,
        "player_q": 8054,
        "name_p": "Antoine Griezmann",
        "name_q": "Adrien Rabiot",
        "value": -0.016343438250836798,
        "minutes_together": 489.78333333333336
      },
      {
        "player_p": 1532,
        "player_q": 1789,
        "name_p": "Ousmane Dembele",
        "name_q": "Jules Kounde",
        "value": -0.0173701811955423,
        "minutes_together": 346.8833333333333
      },
      {
        "player_p": 1532,
        "player_q": 1534,
        "name_p": "Ousmane Dembele",
        "name_q": "Antoine Griezmann",
        "value": -0.017531535776298124,
        "minutes_together": 447.81666666666666
      },
      {
        "player_p": 1675,
        "player_q": 3888,
        "name_p": "Raphael Varane",
        "name_q": "Aur\u00e9lien Tchouam\u00e9ni",
        "value": -0.01805422444197258,
        "minutes_together": 488.8
      },
      {
        "player_p": 113,
        "player_q": 1534,
        "name_p": "Olivier Giroud",
        "name_q": "Antoine Griezmann",
        "value": -0.019790269713552,
        "minutes_together": 432.55
      },
      {
        "player_p": 1534,
        "player_q": 3888,
        "name_p": "Antoine Griezmann",
        "name_q": "Aur\u00e9lien Tchouam\u00e9ni",
        "value": -0.0204290132352048,
        "minutes_together": 531.2
      },
      {
        "player_p": 1534,
        "player_q": 1789,
        "name_p": "Antoine Griezmann",
        "name_q": "Jules Kounde",
        "value": -0.020925559433078125,
        "minutes_together": 458.9666666666667
      },
      {
        "player_p": 1789,
        "player_q": 8054,
        "name_p": "Jules Kounde",
        "name_q": "Adrien Rabiot",
        "value": -0.02157267247900118,
        "minutes_together": 387.53333333333336
      },
      {
        "player_p": 1532,
        "player_q": 3888,
        "name_p": "Ousmane Dembele",
        "name_q": "Aur\u00e9lien Tchouam\u00e9ni",
        "value": -0.021898191882168568,
        "minutes_together": 437.65000000000003
      },
      {
        "player_p": 1532,
        "player_q": 8054,
        "name_p": "Ousmane Dembele",
        "name_q": "Adrien Rabiot",
        "value": -0.02191352943650956,
        "minutes_together": 369.7
      },
      {
        "player_p": 1789,
        "player_q": 3888,
        "name_p": "Jules Kounde",
        "name_q": "Aur\u00e9lien Tchouam\u00e9ni",
        "value": -0.022599299191620917,
        "minutes_together": 449.26666666666665
      },
      {
        "player_p": 1532,
        "player_q": 1675,
        "name_p": "Ousmane Dembele",
        "name_q": "Raphael Varane",
        "value": -0.02309109969210902,
        "minutes_together": 346.85
      },
      {
        "player_p": 113,
        "player_q": 1789,
        "name_p": "Olivier Giroud",
        "name_q": "Jules Kounde",
        "value": -0.02341416131861131,
        "minutes_together": 344.01666666666665
      },
      {
        "player_p": 1534,
        "player_q": 8583,
        "name_p": "Antoine Griezmann",
        "name_q": "Theo Hernandez",
        "value": -0.023429075219431758,
        "minutes_together": 543.3833333333333
      },
      {
        "player_p": 1532,
        "player_q": 8583,
        "name_p": "Ousmane Dembele",
        "name_q": "Theo Hernandez",
        "value": -0.02354361706290902,
        "minutes_together": 411.15
      },
      {
        "player_p": 113,
        "player_q": 8054,
        "name_p": "Olivier Giroud",
        "name_q": "Adrien Rabiot",
        "value": -0.023831385439898097,
        "minutes_together": 367.7166666666667
      },
      {
        "player_p": 1789,
        "player_q": 8583,
        "name_p": "Jules Kounde",
        "name_q": "Theo Hernandez",
        "value": -0.023946502770700692,
        "minutes_together": 464.0
      },
      {
        "player_p": 1675,
        "player_q": 1789,
        "name_p": "Raphael Varane",
        "name_q": "Jules Kounde",
        "value": -0.024270031090753725,
        "minutes_together": 451.83333333333337
      },
      {
        "player_p": 1532,
        "player_q": 3870,
        "name_p": "Ousmane Dembele",
        "name_q": "Kylian Mbapp\u00e9",
        "value": -0.02439093908444628,
        "minutes_together": 447.81666666666666
      },
      {
        "player_p": 113,
        "player_q": 3888,
        "name_p": "Olivier Giroud",
        "name_q": "Aur\u00e9lien Tchouam\u00e9ni",
        "value": -0.024764051655775093,
        "minutes_together": 410.08333333333337
      },
      {
        "player_p": 1534,
        "player_q": 1675,
        "name_p": "Antoine Griezmann",
        "name_q": "Raphael Varane",
        "value": -0.025189410514411453,
        "minutes_together": 440.25
      },
      {
        "player_p": 113,
        "player_q": 8583,
        "name_p": "Olivier Giroud",
        "name_q": "Theo Hernandez",
        "value": -0.025457645754110896,
        "minutes_together": 420.5
      },
      {
        "player_p": 1675,
        "player_q": 8054,
        "name_p": "Raphael Varane",
        "name_q": "Adrien Rabiot",
        "value": -0.02559718733465748,
        "minutes_together": 363.78333333333336
      },
      {
        "player_p": 113,
        "player_q": 1532,
        "name_p": "Olivier Giroud",
        "name_q": "Ousmane Dembele",
        "value": -0.026173157026393896,
        "minutes_together": 397.75
      },
      {
        "player_p": 8054,
        "player_q": 8583,
        "name_p": "Adrien Rabiot",
        "name_q": "Theo Hernandez",
        "value": -0.027685767195698756,
        "minutes_together": 452.43333333333334
      },
      {
        "player_p": 3888,
        "player_q": 8583,
        "name_p": "Aur\u00e9lien Tchouam\u00e9ni",
        "name_q": "Theo Hernandez",
        "value": -0.027697746983341303,
        "minutes_together": 493.85
      },
      {
        "player_p": 61,
        "player_q": 1789,
        "name_p": "Hugo Lloris",
        "name_q": "Jules Kounde",
        "value": -0.02779742428326798,
        "minutes_together": 483.51666666666665
      },
      {
        "player_p": 1675,
        "player_q": 8583,
        "name_p": "Raphael Varane",
        "name_q": "Theo Hernandez",
        "value": -0.028077363948791487,
        "minutes_together": 440.25
      },
      {
        "player_p": 1534,
        "player_q": 3870,
        "name_p": "Antoine Griezmann",
        "name_q": "Kylian Mbapp\u00e9",
        "value": -0.028618311435218452,
        "minutes_together": 585.7666666666667
      },
      {
        "player_p": 113,
        "player_q": 1675,
        "name_p": "Olivier Giroud",
        "name_q": "Raphael Varane",
        "value": -0.02937668952736131,
        "minutes_together": 343.98333333333335
      },
      {
        "player_p": 113,
        "player_q": 3870,
        "name_p": "Olivier Giroud",
        "name_q": "Kylian Mbapp\u00e9",
        "value": -0.029640464209792522,
        "minutes_together": 432.55
      },
      {
        "player_p": 61,
        "player_q": 1675,
        "name_p": "Hugo Lloris",
        "name_q": "Raphael Varane",
        "value": -0.03089091906741139,
        "minutes_together": 459.76666666666665
      },
      {
        "player_p": 61,
        "player_q": 1534,
        "name_p": "Hugo Lloris",
        "name_q": "Antoine Griezmann",
        "value": -0.03324355330358607,
        "minutes_together": 555.4333333333334
      },
      {
        "player_p": 61,
        "player_q": 3888,
        "name_p": "Hugo Lloris",
        "name_q": "Aur\u00e9lien Tchouam\u00e9ni",
        "value": -0.03376730030300181,
        "minutes_together": 525.4166666666667
      },
      {
        "player_p": 61,
        "player_q": 1532,
        "name_p": "Hugo Lloris",
        "name_q": "Ousmane Dembele",
        "value": -0.034337175477026534,
        "minutes_together": 423.2
      },
      {
        "player_p": 3888,
        "player_q": 4606,
        "name_p": "Aur\u00e9lien Tchouam\u00e9ni",
        "name_q": "Dayot Upamecano",
        "value": -0.03456440955548685,
        "minutes_together": 429.43333333333334
      },
      {
        "player_p": 4606,
        "player_q": 8054,
        "name_p": "Dayot Upamecano",
        "name_q": "Adrien Rabiot",
        "value": -0.03620541177289605,
        "minutes_together": 484.0
      },
      {
        "player_p": 61,
        "player_q": 113,
        "name_p": "Hugo Lloris",
        "name_q": "Olivier Giroud",
        "value": -0.036233335697234616,
        "minutes_together": 432.55
      },
      {
        "player_p": 3870,
        "player_q": 3888,
        "name_p": "Kylian Mbapp\u00e9",
        "name_q": "Aur\u00e9lien Tchouam\u00e9ni",
        "value": -0.03704749187256997,
        "minutes_together": 565.2
      },
      {
        "player_p": 3870,
        "player_q": 8583,
        "name_p": "Kylian Mbapp\u00e9",
        "name_q": "Theo Hernandez",
        "value": -0.03706278376599694,
        "minutes_together": 548.4166666666667
      },
      {
        "player_p": 1789,
        "player_q": 4606,
        "name_p": "Jules Kounde",
        "name_q": "Dayot Upamecano",
        "value": -0.03720827058394556,
        "minutes_together": 387.53333333333336
      },
      {
        "player_p": 61,
        "player_q": 8583,
        "name_p": "Hugo Lloris",
        "name_q": "Theo Hernandez",
        "value": -0.03740340881565979,
        "minutes_together": 548.4166666666667
      },
      {
        "player_p": 61,
        "player_q": 8054,
        "name_p": "Hugo Lloris",
        "name_q": "Adrien Rabiot",
        "value": -0.03746777947678478,
        "minutes_together": 484.0
      },
      {
        "player_p": 1534,
        "player_q": 4606,
        "name_p": "Antoine Griezmann",
        "name_q": "Dayot Upamecano",
        "value": -0.03831330332580368,
        "minutes_together": 459.45000000000005
      },
      {
        "player_p": 3870,
        "player_q": 8054,
        "name_p": "Kylian Mbapp\u00e9",
        "name_q": "Adrien Rabiot",
        "value": -0.039352992157381486,
        "minutes_together": 523.7833333333333
      },
      {
        "player_p": 1675,
        "player_q": 4606,
        "name_p": "Raphael Varane",
        "name_q": "Dayot Upamecano",
        "value": -0.04184277355703652,
        "minutes_together": 363.78333333333336
      },
      {
        "player_p": 1789,
        "player_q": 3870,
        "name_p": "Jules Kounde",
        "name_q": "Kylian Mbapp\u00e9",
        "value": -0.04245026060224306,
        "minutes_together": 483.51666666666665
      },
      {
        "player_p": 113,
        "player_q": 4606,
        "name_p": "Olivier Giroud",
        "name_q": "Dayot Upamecano",
        "value": -0.04290837619875162,
        "minutes_together": 367.7166666666667
      },
      {
        "player_p": 1532,
        "player_q": 4606,
        "name_p": "Ousmane Dembele",
        "name_q": "Dayot Upamecano",
        "value": -0.0433647890267101,
        "minutes_together": 345.08333333333337
      },
      {
        "player_p": 4606,
        "player_q": 8583,
        "name_p": "Dayot Upamecano",
        "name_q": "Theo Hernandez",
        "value": -0.045313936243530875,
        "minutes_together": 452.43333333333334
      },
      {
        "player_p": 1675,
        "player_q": 3870,
        "name_p": "Raphael Varane",
        "name_q": "Kylian Mbapp\u00e9",
        "value": -0.04784409790005609,
        "minutes_together": 459.76666666666665
      },
      {
        "player_p": 61,
        "player_q": 3870,
        "name_p": "Hugo Lloris",
        "name_q": "Kylian Mbapp\u00e9",
        "value": -0.050718674871956,
        "minutes_together": 579.9833333333333
      },
      {
        "player_p": 61,
        "player_q": 4606,
        "name_p": "Hugo Lloris",
        "name_q": "Dayot Upamecano",
        "value": -0.05501946597208961,
        "minutes_together": 484.0
      },
      {
        "player_p": 3870,
        "player_q": 4606,
        "name_p": "Kylian Mbapp\u00e9",
        "name_q": "Dayot Upamecano",
        "value": -0.06409967094540751,
        "minutes_together": 484.0
      }
    ],
    "path": "assets/figures/team_363_jdi90.png"
  },
  {
    "team_id": "364",
    "team_name": "Argentina",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_364_joi90.png",
    "n_pairs": 50,
    "median": 0.018091072763879862,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 11,
        "name": "Nicol\u00e1s Otamendi",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 40124
      },
      {
        "player_id": 144,
        "name": "Emiliano Mart\u00ednez",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 40124
      },
      {
        "player_id": 1531,
        "name": "Lionel Messi",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 40124
      },
      {
        "player_id": 6895,
        "name": "Rodrigo de Paul",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 37414
      },
      {
        "player_id": 13222,
        "name": "Nahuel Molina",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 34749
      },
      {
        "player_id": 5116,
        "name": "Cristian Romero",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 32556
      },
      {
        "player_id": 11856,
        "name": "Enzo Fernandez",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 32149
      },
      {
        "player_id": 453,
        "name": "Alexis Mac Allister",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 29775
      },
      {
        "player_id": 10715,
        "name": "Julian Alvarez",
        "position": "CF",
        "x": 6.8,
        "y": 92.5,
        "row": 0,
        "col": 0,
        "on_seconds": 28450
      },
      {
        "player_id": 9178,
        "name": "Marcos Acu\u00f1a",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 21831
      },
      {
        "player_id": 8025,
        "name": "Nicolas Tagliafico",
        "position": "LB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 19856
      }
    ],
    "pairs": [
      {
        "player_p": 1531,
        "player_q": 13222,
        "name_p": "Lionel Messi",
        "name_q": "Nahuel Molina",
        "value": 0.3177163260719286,
        "minutes_together": 579.15
      },
      {
        "player_p": 1531,
        "player_q": 11856,
        "name_p": "Lionel Messi",
        "name_q": "Enzo Fernandez",
        "value": 0.3097337271636154,
        "minutes_together": 535.8166666666667
      },
      {
        "player_p": 10715,
        "player_q": 11856,
        "name_p": "Julian Alvarez",
        "name_q": "Enzo Fernandez",
        "value": 0.22073062513207153,
        "minutes_together": 473.7833333333333
      },
      {
        "player_p": 453,
        "player_q": 13222,
        "name_p": "Alexis Mac Allister",
        "name_q": "Nahuel Molina",
        "value": 0.19210206335959276,
        "minutes_together": 433.8333333333333
      },
      {
        "player_p": 1531,
        "player_q": 10715,
        "name_p": "Lionel Messi",
        "name_q": "Julian Alvarez",
        "value": 0.12825001917491802,
        "minutes_together": 474.16666666666663
      },
      {
        "player_p": 453,
        "player_q": 9178,
        "name_p": "Alexis Mac Allister",
        "name_q": "Marcos Acu\u00f1a",
        "value": 0.10562253138425493,
        "minutes_together": 301.8
      },
      {
        "player_p": 6895,
        "player_q": 13222,
        "name_p": "Rodrigo de Paul",
        "name_q": "Nahuel Molina",
        "value": 0.07726997778447957,
        "minutes_together": 543.0833333333333
      },
      {
        "player_p": 1531,
        "player_q": 6895,
        "name_p": "Lionel Messi",
        "name_q": "Rodrigo de Paul",
        "value": 0.07647693412032251,
        "minutes_together": 623.5666666666666
      },
      {
        "player_p": 11,
        "player_q": 1531,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Lionel Messi",
        "value": 0.0739568942387527,
        "minutes_together": 668.7333333333333
      },
      {
        "player_p": 453,
        "player_q": 1531,
        "name_p": "Alexis Mac Allister",
        "name_q": "Lionel Messi",
        "value": 0.05370942846821594,
        "minutes_together": 496.25
      },
      {
        "player_p": 11,
        "player_q": 11856,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Enzo Fernandez",
        "value": 0.05315876092131586,
        "minutes_together": 535.8166666666667
      },
      {
        "player_p": 453,
        "player_q": 11856,
        "name_p": "Alexis Mac Allister",
        "name_q": "Enzo Fernandez",
        "value": 0.05076206071333789,
        "minutes_together": 434.58333333333337
      },
      {
        "player_p": 8025,
        "player_q": 10715,
        "name_p": "Nicolas Tagliafico",
        "name_q": "Julian Alvarez",
        "value": 0.0490891343363333,
        "minutes_together": 199.13333333333333
      },
      {
        "player_p": 11,
        "player_q": 9178,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Marcos Acu\u00f1a",
        "value": 0.04717343586136623,
        "minutes_together": 363.85
      },
      {
        "player_p": 1531,
        "player_q": 8025,
        "name_p": "Lionel Messi",
        "name_q": "Nicolas Tagliafico",
        "value": 0.04635524200947987,
        "minutes_together": 330.93333333333334
      },
      {
        "player_p": 8025,
        "player_q": 11856,
        "name_p": "Nicolas Tagliafico",
        "name_q": "Enzo Fernandez",
        "value": 0.043971187062843094,
        "minutes_together": 254.78333333333333
      },
      {
        "player_p": 5116,
        "player_q": 6895,
        "name_p": "Cristian Romero",
        "name_q": "Rodrigo de Paul",
        "value": 0.03712337807287982,
        "minutes_together": 509.65
      },
      {
        "player_p": 9178,
        "player_q": 11856,
        "name_p": "Marcos Acu\u00f1a",
        "name_q": "Enzo Fernandez",
        "value": 0.030806114120357775,
        "minutes_together": 307.0833333333333
      },
      {
        "player_p": 11,
        "player_q": 144,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Emiliano Mart\u00ednez",
        "value": 0.028093136123098824,
        "minutes_together": 668.7333333333333
      },
      {
        "player_p": 11,
        "player_q": 453,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Alexis Mac Allister",
        "value": 0.023493460140291817,
        "minutes_together": 496.25
      },
      {
        "player_p": 1531,
        "player_q": 9178,
        "name_p": "Lionel Messi",
        "name_q": "Marcos Acu\u00f1a",
        "value": 0.021999997090612376,
        "minutes_together": 363.85
      },
      {
        "player_p": 11,
        "player_q": 6895,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Rodrigo de Paul",
        "value": 0.02140699927655763,
        "minutes_together": 623.5666666666666
      },
      {
        "player_p": 144,
        "player_q": 9178,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Marcos Acu\u00f1a",
        "value": 0.0206012226331371,
        "minutes_together": 363.85
      },
      {
        "player_p": 453,
        "player_q": 8025,
        "name_p": "Alexis Mac Allister",
        "name_q": "Nicolas Tagliafico",
        "value": 0.01965684735123226,
        "minutes_together": 220.5
      },
      {
        "player_p": 144,
        "player_q": 6895,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Rodrigo de Paul",
        "value": 0.01941236699660183,
        "minutes_together": 623.5666666666666
      },
      {
        "player_p": 1531,
        "player_q": 5116,
        "name_p": "Lionel Messi",
        "name_q": "Cristian Romero",
        "value": 0.016769778531157898,
        "minutes_together": 542.6
      },
      {
        "player_p": 453,
        "player_q": 6895,
        "name_p": "Alexis Mac Allister",
        "name_q": "Rodrigo de Paul",
        "value": 0.01214069977472196,
        "minutes_together": 460.5
      },
      {
        "player_p": 11,
        "player_q": 10715,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Julian Alvarez",
        "value": 0.009538515575072702,
        "minutes_together": 474.16666666666663
      },
      {
        "player_p": 6895,
        "player_q": 10715,
        "name_p": "Rodrigo de Paul",
        "name_q": "Julian Alvarez",
        "value": 0.007619569121647143,
        "minutes_together": 458.9666666666667
      },
      {
        "player_p": 144,
        "player_q": 5116,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Cristian Romero",
        "value": 0.007526182916928462,
        "minutes_together": 542.6
      },
      {
        "player_p": 6895,
        "player_q": 8025,
        "name_p": "Rodrigo de Paul",
        "name_q": "Nicolas Tagliafico",
        "value": 0.007224729136333091,
        "minutes_together": 297.0833333333333
      },
      {
        "player_p": 144,
        "player_q": 11856,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Enzo Fernandez",
        "value": 0.006892040721190499,
        "minutes_together": 535.8166666666667
      },
      {
        "player_p": 6895,
        "player_q": 11856,
        "name_p": "Rodrigo de Paul",
        "name_q": "Enzo Fernandez",
        "value": 0.006806039733406956,
        "minutes_together": 490.65
      },
      {
        "player_p": 144,
        "player_q": 453,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Alexis Mac Allister",
        "value": 0.003457421227573408,
        "minutes_together": 496.25
      },
      {
        "player_p": 11,
        "player_q": 8025,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Nicolas Tagliafico",
        "value": 0.0032437187343626684,
        "minutes_together": 330.93333333333334
      },
      {
        "player_p": 5116,
        "player_q": 11856,
        "name_p": "Cristian Romero",
        "name_q": "Enzo Fernandez",
        "value": 0.0027907746890937068,
        "minutes_together": 466.83333333333337
      },
      {
        "player_p": 453,
        "player_q": 5116,
        "name_p": "Alexis Mac Allister",
        "name_q": "Cristian Romero",
        "value": 0.002585582428689122,
        "minutes_together": 415.81666666666666
      },
      {
        "player_p": 5116,
        "player_q": 10715,
        "name_p": "Cristian Romero",
        "name_q": "Julian Alvarez",
        "value": 0.002185153624872429,
        "minutes_together": 419.3666666666667
      },
      {
        "player_p": 11856,
        "player_q": 13222,
        "name_p": "Enzo Fernandez",
        "name_q": "Nahuel Molina",
        "value": 0.0011114256988086916,
        "minutes_together": 503.0
      },
      {
        "player_p": 11,
        "player_q": 5116,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Cristian Romero",
        "value": 8.247422572661298e-05,
        "minutes_together": 542.6
      },
      {
        "player_p": 5116,
        "player_q": 9178,
        "name_p": "Cristian Romero",
        "name_q": "Marcos Acu\u00f1a",
        "value": 1.8328655747824643e-05,
        "minutes_together": 261.8333333333333
      },
      {
        "player_p": 453,
        "player_q": 10715,
        "name_p": "Alexis Mac Allister",
        "name_q": "Julian Alvarez",
        "value": -0.0009562665453753796,
        "minutes_together": 400.41666666666663
      },
      {
        "player_p": 5116,
        "player_q": 8025,
        "name_p": "Cristian Romero",
        "name_q": "Nicolas Tagliafico",
        "value": -0.0014726283527493511,
        "minutes_together": 306.81666666666666
      },
      {
        "player_p": 144,
        "player_q": 13222,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Nahuel Molina",
        "value": -0.0031838899067191673,
        "minutes_together": 579.15
      },
      {
        "player_p": 9178,
        "player_q": 10715,
        "name_p": "Marcos Acu\u00f1a",
        "name_q": "Julian Alvarez",
        "value": -0.006165276565645618,
        "minutes_together": 301.0833333333333
      },
      {
        "player_p": 5116,
        "player_q": 13222,
        "name_p": "Cristian Romero",
        "name_q": "Nahuel Molina",
        "value": -0.007853184802229598,
        "minutes_together": 515.4333333333334
      },
      {
        "player_p": 6895,
        "player_q": 9178,
        "name_p": "Rodrigo de Paul",
        "name_q": "Marcos Acu\u00f1a",
        "value": -0.014743119472745621,
        "minutes_together": 352.5333333333333
      },
      {
        "player_p": 10715,
        "player_q": 13222,
        "name_p": "Julian Alvarez",
        "name_q": "Nahuel Molina",
        "value": -0.014866361456501642,
        "minutes_together": 474.16666666666663
      },
      {
        "player_p": 11,
        "player_q": 13222,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Nahuel Molina",
        "value": -0.01746522733969716,
        "minutes_together": 579.15
      },
      {
        "player_p": 9178,
        "player_q": 13222,
        "name_p": "Marcos Acu\u00f1a",
        "name_q": "Nahuel Molina",
        "value": -0.03269628358114714,
        "minutes_together": 301.43333333333334
      }
    ],
    "path": "assets/figures/team_364_joi90.png"
  },
  {
    "team_id": "364",
    "team_name": "Argentina",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_364_jdi90.png",
    "n_pairs": 54,
    "median": -0.006975992995267792,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 11,
        "name": "Nicol\u00e1s Otamendi",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 40124
      },
      {
        "player_id": 144,
        "name": "Emiliano Mart\u00ednez",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 40124
      },
      {
        "player_id": 1531,
        "name": "Lionel Messi",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 40124
      },
      {
        "player_id": 6895,
        "name": "Rodrigo de Paul",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 37414
      },
      {
        "player_id": 13222,
        "name": "Nahuel Molina",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 34749
      },
      {
        "player_id": 5116,
        "name": "Cristian Romero",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 32556
      },
      {
        "player_id": 11856,
        "name": "Enzo Fernandez",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 32149
      },
      {
        "player_id": 453,
        "name": "Alexis Mac Allister",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 29775
      },
      {
        "player_id": 10715,
        "name": "Julian Alvarez",
        "position": "CF",
        "x": 6.8,
        "y": 92.5,
        "row": 0,
        "col": 0,
        "on_seconds": 28450
      },
      {
        "player_id": 9178,
        "name": "Marcos Acu\u00f1a",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 21831
      },
      {
        "player_id": 8025,
        "name": "Nicolas Tagliafico",
        "position": "LB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 19856
      }
    ],
    "pairs": [
      {
        "player_p": 453,
        "player_q": 9178,
        "name_p": "Alexis Mac Allister",
        "name_q": "Marcos Acu\u00f1a",
        "value": 0.030226977138746714,
        "minutes_together": 301.8
      },
      {
        "player_p": 6895,
        "player_q": 9178,
        "name_p": "Rodrigo de Paul",
        "name_q": "Marcos Acu\u00f1a",
        "value": 0.028485700998323107,
        "minutes_together": 352.5333333333333
      },
      {
        "player_p": 453,
        "player_q": 6895,
        "name_p": "Alexis Mac Allister",
        "name_q": "Rodrigo de Paul",
        "value": 0.02737598680935558,
        "minutes_together": 460.5
      },
      {
        "player_p": 453,
        "player_q": 11856,
        "name_p": "Alexis Mac Allister",
        "name_q": "Enzo Fernandez",
        "value": 0.01893102937942849,
        "minutes_together": 434.58333333333337
      },
      {
        "player_p": 9178,
        "player_q": 11856,
        "name_p": "Marcos Acu\u00f1a",
        "name_q": "Enzo Fernandez",
        "value": 0.017449473608883118,
        "minutes_together": 307.0833333333333
      },
      {
        "player_p": 1531,
        "player_q": 9178,
        "name_p": "Lionel Messi",
        "name_q": "Marcos Acu\u00f1a",
        "value": 0.016096388603588755,
        "minutes_together": 363.85
      },
      {
        "player_p": 453,
        "player_q": 1531,
        "name_p": "Alexis Mac Allister",
        "name_q": "Lionel Messi",
        "value": 0.015550584052326264,
        "minutes_together": 496.25
      },
      {
        "player_p": 6895,
        "player_q": 11856,
        "name_p": "Rodrigo de Paul",
        "name_q": "Enzo Fernandez",
        "value": 0.01489651963002242,
        "minutes_together": 490.65
      },
      {
        "player_p": 1531,
        "player_q": 6895,
        "name_p": "Lionel Messi",
        "name_q": "Rodrigo de Paul",
        "value": 0.012810137310895982,
        "minutes_together": 623.5666666666666
      },
      {
        "player_p": 6895,
        "player_q": 10715,
        "name_p": "Rodrigo de Paul",
        "name_q": "Julian Alvarez",
        "value": 0.00951570474588871,
        "minutes_together": 458.9666666666667
      },
      {
        "player_p": 10715,
        "player_q": 11856,
        "name_p": "Julian Alvarez",
        "name_q": "Enzo Fernandez",
        "value": 0.008877982469002848,
        "minutes_together": 473.7833333333333
      },
      {
        "player_p": 453,
        "player_q": 10715,
        "name_p": "Alexis Mac Allister",
        "name_q": "Julian Alvarez",
        "value": 0.008084065811990861,
        "minutes_together": 400.41666666666663
      },
      {
        "player_p": 1531,
        "player_q": 11856,
        "name_p": "Lionel Messi",
        "name_q": "Enzo Fernandez",
        "value": 0.00639637779696421,
        "minutes_together": 535.8166666666667
      },
      {
        "player_p": 144,
        "player_q": 453,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Alexis Mac Allister",
        "value": 0.006354672005304447,
        "minutes_together": 496.25
      },
      {
        "player_p": 453,
        "player_q": 13222,
        "name_p": "Alexis Mac Allister",
        "name_q": "Nahuel Molina",
        "value": 0.003906548566414101,
        "minutes_together": 433.8333333333333
      },
      {
        "player_p": 144,
        "player_q": 9178,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Marcos Acu\u00f1a",
        "value": 0.0032702838223563012,
        "minutes_together": 363.85
      },
      {
        "player_p": 11856,
        "player_q": 13222,
        "name_p": "Enzo Fernandez",
        "name_q": "Nahuel Molina",
        "value": 0.0025380464155116056,
        "minutes_together": 503.0
      },
      {
        "player_p": 9178,
        "player_q": 10715,
        "name_p": "Marcos Acu\u00f1a",
        "name_q": "Julian Alvarez",
        "value": 0.0014895076355774255,
        "minutes_together": 301.0833333333333
      },
      {
        "player_p": 11,
        "player_q": 453,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Alexis Mac Allister",
        "value": -0.0012637443942495835,
        "minutes_together": 496.25
      },
      {
        "player_p": 6895,
        "player_q": 13222,
        "name_p": "Rodrigo de Paul",
        "name_q": "Nahuel Molina",
        "value": -0.001955046301431988,
        "minutes_together": 543.0833333333333
      },
      {
        "player_p": 1531,
        "player_q": 10715,
        "name_p": "Lionel Messi",
        "name_q": "Julian Alvarez",
        "value": -0.001969617823417282,
        "minutes_together": 474.16666666666663
      },
      {
        "player_p": 144,
        "player_q": 6895,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Rodrigo de Paul",
        "value": -0.0022101941220753754,
        "minutes_together": 623.5666666666666
      },
      {
        "player_p": 9178,
        "player_q": 13222,
        "name_p": "Marcos Acu\u00f1a",
        "name_q": "Nahuel Molina",
        "value": -0.002769358467726165,
        "minutes_together": 301.43333333333334
      },
      {
        "player_p": 11,
        "player_q": 9178,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Marcos Acu\u00f1a",
        "value": -0.0036394372383995403,
        "minutes_together": 363.85
      },
      {
        "player_p": 11,
        "player_q": 6895,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Rodrigo de Paul",
        "value": -0.005075427956480612,
        "minutes_together": 623.5666666666666
      },
      {
        "player_p": 10715,
        "player_q": 13222,
        "name_p": "Julian Alvarez",
        "name_q": "Nahuel Molina",
        "value": -0.005347042962698123,
        "minutes_together": 474.16666666666663
      },
      {
        "player_p": 453,
        "player_q": 5116,
        "name_p": "Alexis Mac Allister",
        "name_q": "Cristian Romero",
        "value": -0.006406240937954582,
        "minutes_together": 415.81666666666666
      },
      {
        "player_p": 144,
        "player_q": 11856,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Enzo Fernandez",
        "value": -0.007545745052581002,
        "minutes_together": 535.8166666666667
      },
      {
        "player_p": 453,
        "player_q": 8025,
        "name_p": "Alexis Mac Allister",
        "name_q": "Nicolas Tagliafico",
        "value": -0.008678626350745804,
        "minutes_together": 220.5
      },
      {
        "player_p": 5116,
        "player_q": 11856,
        "name_p": "Cristian Romero",
        "name_q": "Enzo Fernandez",
        "value": -0.009320422207604056,
        "minutes_together": 466.83333333333337
      },
      {
        "player_p": 1531,
        "player_q": 13222,
        "name_p": "Lionel Messi",
        "name_q": "Nahuel Molina",
        "value": -0.009389477481591777,
        "minutes_together": 579.15
      },
      {
        "player_p": 144,
        "player_q": 1531,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Lionel Messi",
        "value": -0.009908160258097676,
        "minutes_together": 668.7333333333333
      },
      {
        "player_p": 5116,
        "player_q": 9178,
        "name_p": "Cristian Romero",
        "name_q": "Marcos Acu\u00f1a",
        "value": -0.011038728527508453,
        "minutes_together": 261.8333333333333
      },
      {
        "player_p": 8025,
        "player_q": 11856,
        "name_p": "Nicolas Tagliafico",
        "name_q": "Enzo Fernandez",
        "value": -0.012376488660264879,
        "minutes_together": 254.78333333333333
      },
      {
        "player_p": 5116,
        "player_q": 6895,
        "name_p": "Cristian Romero",
        "name_q": "Rodrigo de Paul",
        "value": -0.013748326803052754,
        "minutes_together": 509.65
      },
      {
        "player_p": 11,
        "player_q": 11856,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Enzo Fernandez",
        "value": -0.01390537153471639,
        "minutes_together": 535.8166666666667
      },
      {
        "player_p": 8025,
        "player_q": 10715,
        "name_p": "Nicolas Tagliafico",
        "name_q": "Julian Alvarez",
        "value": -0.013910673479405899,
        "minutes_together": 199.13333333333333
      },
      {
        "player_p": 11,
        "player_q": 1531,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Lionel Messi",
        "value": -0.014426834543575085,
        "minutes_together": 668.7333333333333
      },
      {
        "player_p": 144,
        "player_q": 10715,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Julian Alvarez",
        "value": -0.01575104954588778,
        "minutes_together": 474.16666666666663
      },
      {
        "player_p": 5116,
        "player_q": 10715,
        "name_p": "Cristian Romero",
        "name_q": "Julian Alvarez",
        "value": -0.015919001141697867,
        "minutes_together": 419.3666666666667
      },
      {
        "player_p": 6895,
        "player_q": 8025,
        "name_p": "Rodrigo de Paul",
        "name_q": "Nicolas Tagliafico",
        "value": -0.016863580899016222,
        "minutes_together": 297.0833333333333
      },
      {
        "player_p": 1531,
        "player_q": 5116,
        "name_p": "Lionel Messi",
        "name_q": "Cristian Romero",
        "value": -0.021031507593873882,
        "minutes_together": 542.6
      },
      {
        "player_p": 11,
        "player_q": 10715,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Julian Alvarez",
        "value": -0.021892532458665556,
        "minutes_together": 474.16666666666663
      },
      {
        "player_p": 1531,
        "player_q": 8025,
        "name_p": "Lionel Messi",
        "name_q": "Nicolas Tagliafico",
        "value": -0.021997579079939357,
        "minutes_together": 330.93333333333334
      },
      {
        "player_p": 8025,
        "player_q": 13222,
        "name_p": "Nicolas Tagliafico",
        "name_q": "Nahuel Molina",
        "value": -0.024176093848136904,
        "minutes_together": 303.76666666666665
      },
      {
        "player_p": 5116,
        "player_q": 13222,
        "name_p": "Cristian Romero",
        "name_q": "Nahuel Molina",
        "value": -0.025400986166888632,
        "minutes_together": 515.4333333333334
      },
      {
        "player_p": 144,
        "player_q": 13222,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Nahuel Molina",
        "value": -0.025885294425699156,
        "minutes_together": 579.15
      },
      {
        "player_p": 11,
        "player_q": 144,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Emiliano Mart\u00ednez",
        "value": -0.029311349014530943,
        "minutes_together": 668.7333333333333
      },
      {
        "player_p": 11,
        "player_q": 13222,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Nahuel Molina",
        "value": -0.030898498647433922,
        "minutes_together": 579.15
      },
      {
        "player_p": 144,
        "player_q": 8025,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Nicolas Tagliafico",
        "value": -0.03501881697327128,
        "minutes_together": 330.93333333333334
      },
      {
        "player_p": 5116,
        "player_q": 8025,
        "name_p": "Cristian Romero",
        "name_q": "Nicolas Tagliafico",
        "value": -0.03519127647013602,
        "minutes_together": 306.81666666666666
      },
      {
        "player_p": 11,
        "player_q": 8025,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Nicolas Tagliafico",
        "value": -0.03640730340762549,
        "minutes_together": 330.93333333333334
      },
      {
        "player_p": 144,
        "player_q": 5116,
        "name_p": "Emiliano Mart\u00ednez",
        "name_q": "Cristian Romero",
        "value": -0.03708457236264648,
        "minutes_together": 542.6
      },
      {
        "player_p": 11,
        "player_q": 5116,
        "name_p": "Nicol\u00e1s Otamendi",
        "name_q": "Cristian Romero",
        "value": -0.04205039545822477,
        "minutes_together": 542.6
      }
    ],
    "path": "assets/figures/team_364_jdi90.png"
  },
  {
    "team_id": "365",
    "team_name": "Portugal",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_365_joi90.png",
    "n_pairs": 54,
    "median": 0.011436828155746707,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 8538,
        "name": "Diogo Costa",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 29360
      },
      {
        "player_id": 2066,
        "name": "Ruben Dias",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 23540
      },
      {
        "player_id": 8564,
        "name": "Pepe",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 23353
      },
      {
        "player_id": 133,
        "name": "Bruno Fernandes",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 23094
      },
      {
        "player_id": 27,
        "name": "Bernardo Silva",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 22935
      },
      {
        "player_id": 17,
        "name": "Jo\u00e3o Cancelo",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 20671
      },
      {
        "player_id": 1393,
        "name": "Joao Felix",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 20417
      },
      {
        "player_id": 4666,
        "name": "Rapha\u00ebl Guerreiro",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 18220
      },
      {
        "player_id": 6020,
        "name": "Cristiano Ronaldo",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 18162
      },
      {
        "player_id": 240,
        "name": "R\u00faben Neves",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 16452
      },
      {
        "player_id": 127,
        "name": "Diogo Dalot",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 16199
      }
    ],
    "pairs": [
      {
        "player_p": 133,
        "player_q": 8564,
        "name_p": "Bruno Fernandes",
        "name_q": "Pepe",
        "value": 0.3048734788649858,
        "minutes_together": 284.78333333333336
      },
      {
        "player_p": 133,
        "player_q": 1393,
        "name_p": "Bruno Fernandes",
        "name_q": "Joao Felix",
        "value": 0.289240285524864,
        "minutes_together": 340.2833333333333
      },
      {
        "player_p": 4666,
        "player_q": 6020,
        "name_p": "Rapha\u00ebl Guerreiro",
        "name_q": "Cristiano Ronaldo",
        "value": 0.2859425707325145,
        "minutes_together": 149.2
      },
      {
        "player_p": 27,
        "player_q": 8564,
        "name_p": "Bernardo Silva",
        "name_q": "Pepe",
        "value": 0.2813981892979729,
        "minutes_together": 294.93333333333334
      },
      {
        "player_p": 27,
        "player_q": 4666,
        "name_p": "Bernardo Silva",
        "name_q": "Rapha\u00ebl Guerreiro",
        "value": 0.11900189590216462,
        "minutes_together": 277.43333333333334
      },
      {
        "player_p": 2066,
        "player_q": 4666,
        "name_p": "Ruben Dias",
        "name_q": "Rapha\u00ebl Guerreiro",
        "value": 0.09877407074915785,
        "minutes_together": 303.66666666666663
      },
      {
        "player_p": 1393,
        "player_q": 4666,
        "name_p": "Joao Felix",
        "name_q": "Rapha\u00ebl Guerreiro",
        "value": 0.08220449617636308,
        "minutes_together": 251.61666666666667
      },
      {
        "player_p": 133,
        "player_q": 6020,
        "name_p": "Bruno Fernandes",
        "name_q": "Cristiano Ronaldo",
        "value": 0.07583455143279555,
        "minutes_together": 230.35
      },
      {
        "player_p": 27,
        "player_q": 1393,
        "name_p": "Bernardo Silva",
        "name_q": "Joao Felix",
        "value": 0.07012391646399595,
        "minutes_together": 340.0833333333333
      },
      {
        "player_p": 17,
        "player_q": 27,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Bernardo Silva",
        "value": 0.059185404738064676,
        "minutes_together": 250.86666666666667
      },
      {
        "player_p": 2066,
        "player_q": 8538,
        "name_p": "Ruben Dias",
        "name_q": "Diogo Costa",
        "value": 0.05117050767810511,
        "minutes_together": 392.3333333333333
      },
      {
        "player_p": 17,
        "player_q": 240,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "R\u00faben Neves",
        "value": 0.04558226259624223,
        "minutes_together": 210.03333333333333
      },
      {
        "player_p": 17,
        "player_q": 2066,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Ruben Dias",
        "value": 0.04550966457088637,
        "minutes_together": 247.51666666666665
      },
      {
        "player_p": 127,
        "player_q": 8564,
        "name_p": "Diogo Dalot",
        "name_q": "Pepe",
        "value": 0.04251270534529152,
        "minutes_together": 269.98333333333335
      },
      {
        "player_p": 17,
        "player_q": 133,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Bruno Fernandes",
        "value": 0.041028639672334534,
        "minutes_together": 247.51666666666665
      },
      {
        "player_p": 133,
        "player_q": 240,
        "name_p": "Bruno Fernandes",
        "name_q": "R\u00faben Neves",
        "value": 0.03684573020579792,
        "minutes_together": 202.08333333333331
      },
      {
        "player_p": 127,
        "player_q": 240,
        "name_p": "Diogo Dalot",
        "name_q": "R\u00faben Neves",
        "value": 0.03438157234813797,
        "minutes_together": 128.93333333333334
      },
      {
        "player_p": 240,
        "player_q": 1393,
        "name_p": "R\u00faben Neves",
        "name_q": "Joao Felix",
        "value": 0.02557077418370084,
        "minutes_together": 196.08333333333331
      },
      {
        "player_p": 27,
        "player_q": 2066,
        "name_p": "Bernardo Silva",
        "name_q": "Ruben Dias",
        "value": 0.02200830605901165,
        "minutes_together": 366.1
      },
      {
        "player_p": 27,
        "player_q": 133,
        "name_p": "Bernardo Silva",
        "name_q": "Bruno Fernandes",
        "value": 0.020962186390990217,
        "minutes_together": 366.1
      },
      {
        "player_p": 2066,
        "player_q": 8564,
        "name_p": "Ruben Dias",
        "name_q": "Pepe",
        "value": 0.01995004106953552,
        "minutes_together": 292.2166666666667
      },
      {
        "player_p": 240,
        "player_q": 8564,
        "name_p": "R\u00faben Neves",
        "name_q": "Pepe",
        "value": 0.01944022309882019,
        "minutes_together": 197.75
      },
      {
        "player_p": 4666,
        "player_q": 8538,
        "name_p": "Rapha\u00ebl Guerreiro",
        "name_q": "Diogo Costa",
        "value": 0.015275556511993188,
        "minutes_together": 303.66666666666663
      },
      {
        "player_p": 240,
        "player_q": 8538,
        "name_p": "R\u00faben Neves",
        "name_q": "Diogo Costa",
        "value": 0.014457200456652495,
        "minutes_together": 274.20000000000005
      },
      {
        "player_p": 6020,
        "player_q": 8564,
        "name_p": "Cristiano Ronaldo",
        "name_q": "Pepe",
        "value": 0.013398274980643938,
        "minutes_together": 215.4
      },
      {
        "player_p": 133,
        "player_q": 2066,
        "name_p": "Bruno Fernandes",
        "name_q": "Ruben Dias",
        "value": 0.012693328754454308,
        "minutes_together": 384.9
      },
      {
        "player_p": 17,
        "player_q": 8538,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Diogo Costa",
        "value": 0.012141542875228579,
        "minutes_together": 344.51666666666665
      },
      {
        "player_p": 1393,
        "player_q": 8564,
        "name_p": "Joao Felix",
        "name_q": "Pepe",
        "value": 0.010732113436264833,
        "minutes_together": 252.76666666666665
      },
      {
        "player_p": 27,
        "player_q": 6020,
        "name_p": "Bernardo Silva",
        "name_q": "Cristiano Ronaldo",
        "value": 0.008609599696658284,
        "minutes_together": 224.35
      },
      {
        "player_p": 1393,
        "player_q": 2066,
        "name_p": "Joao Felix",
        "name_q": "Ruben Dias",
        "value": 0.008456273451146312,
        "minutes_together": 340.2833333333333
      },
      {
        "player_p": 17,
        "player_q": 6020,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Cristiano Ronaldo",
        "value": 0.007783321261137611,
        "minutes_together": 281.4
      },
      {
        "player_p": 127,
        "player_q": 8538,
        "name_p": "Diogo Dalot",
        "name_q": "Diogo Costa",
        "value": 0.00770656706635925,
        "minutes_together": 269.98333333333335
      },
      {
        "player_p": 4666,
        "player_q": 8564,
        "name_p": "Rapha\u00ebl Guerreiro",
        "name_q": "Pepe",
        "value": 0.007449031553631605,
        "minutes_together": 203.55
      },
      {
        "player_p": 240,
        "player_q": 2066,
        "name_p": "R\u00faben Neves",
        "name_q": "Ruben Dias",
        "value": 0.006432177212865066,
        "minutes_together": 209.51666666666668
      },
      {
        "player_p": 2066,
        "player_q": 6020,
        "name_p": "Ruben Dias",
        "name_q": "Cristiano Ronaldo",
        "value": 0.003314901527523309,
        "minutes_together": 237.7833333333333
      },
      {
        "player_p": 1393,
        "player_q": 8538,
        "name_p": "Joao Felix",
        "name_q": "Diogo Costa",
        "value": 0.001199676728157784,
        "minutes_together": 340.2833333333333
      },
      {
        "player_p": 8538,
        "player_q": 8564,
        "name_p": "Diogo Costa",
        "name_q": "Pepe",
        "value": 0.0007033286700518723,
        "minutes_together": 389.2166666666667
      },
      {
        "player_p": 127,
        "player_q": 1393,
        "name_p": "Diogo Dalot",
        "name_q": "Joao Felix",
        "value": -0.00032155034840610224,
        "minutes_together": 151.68333333333334
      },
      {
        "player_p": 27,
        "player_q": 240,
        "name_p": "Bernardo Silva",
        "name_q": "R\u00faben Neves",
        "value": -0.0014347495708048384,
        "minutes_together": 196.08333333333331
      },
      {
        "player_p": 240,
        "player_q": 4666,
        "name_p": "R\u00faben Neves",
        "name_q": "Rapha\u00ebl Guerreiro",
        "value": -0.0015355132892583797,
        "minutes_together": 168.03333333333333
      },
      {
        "player_p": 127,
        "player_q": 2066,
        "name_p": "Diogo Dalot",
        "name_q": "Ruben Dias",
        "value": -0.0022815106856523275,
        "minutes_together": 172.98333333333335
      },
      {
        "player_p": 17,
        "player_q": 8564,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Pepe",
        "value": -0.0027606031937777867,
        "minutes_together": 244.4
      },
      {
        "player_p": 133,
        "player_q": 8538,
        "name_p": "Bruno Fernandes",
        "name_q": "Diogo Costa",
        "value": -0.004667516975480913,
        "minutes_together": 384.9
      },
      {
        "player_p": 127,
        "player_q": 133,
        "name_p": "Diogo Dalot",
        "name_q": "Bruno Fernandes",
        "value": -0.008541072288896891,
        "minutes_together": 165.55
      },
      {
        "player_p": 127,
        "player_q": 6020,
        "name_p": "Diogo Dalot",
        "name_q": "Cristiano Ronaldo",
        "value": -0.009546991428989874,
        "minutes_together": 114.30000000000001
      },
      {
        "player_p": 27,
        "player_q": 8538,
        "name_p": "Bernardo Silva",
        "name_q": "Diogo Costa",
        "value": -0.010075019845964565,
        "minutes_together": 382.25
      },
      {
        "player_p": 240,
        "player_q": 6020,
        "name_p": "R\u00faben Neves",
        "name_q": "Cristiano Ronaldo",
        "value": -0.010615252442329845,
        "minutes_together": 223.38333333333333
      },
      {
        "player_p": 17,
        "player_q": 1393,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Joao Felix",
        "value": -0.016020986671290822,
        "minutes_together": 216.76666666666665
      },
      {
        "player_p": 17,
        "player_q": 127,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Diogo Dalot",
        "value": -0.017251887975354582,
        "minutes_together": 125.16666666666667
      },
      {
        "player_p": 127,
        "player_q": 4666,
        "name_p": "Diogo Dalot",
        "name_q": "Rapha\u00ebl Guerreiro",
        "value": -0.01915643438034719,
        "minutes_together": 144.81666666666666
      },
      {
        "player_p": 17,
        "player_q": 4666,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Rapha\u00ebl Guerreiro",
        "value": -0.021042967865375774,
        "minutes_together": 158.85
      },
      {
        "player_p": 133,
        "player_q": 4666,
        "name_p": "Bruno Fernandes",
        "name_q": "Rapha\u00ebl Guerreiro",
        "value": -0.03534742324789153,
        "minutes_together": 296.23333333333335
      },
      {
        "player_p": 1393,
        "player_q": 6020,
        "name_p": "Joao Felix",
        "name_q": "Cristiano Ronaldo",
        "value": -0.052147606494428,
        "minutes_together": 216.46666666666667
      },
      {
        "player_p": 27,
        "player_q": 127,
        "name_p": "Bernardo Silva",
        "name_q": "Diogo Dalot",
        "value": -0.05670403949099987,
        "minutes_together": 175.70000000000002
      }
    ],
    "path": "assets/figures/team_365_joi90.png"
  },
  {
    "team_id": "365",
    "team_name": "Portugal",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_365_jdi90.png",
    "n_pairs": 55,
    "median": -0.01788561213480648,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 8538,
        "name": "Diogo Costa",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 29360
      },
      {
        "player_id": 2066,
        "name": "Ruben Dias",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 23540
      },
      {
        "player_id": 8564,
        "name": "Pepe",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 23353
      },
      {
        "player_id": 133,
        "name": "Bruno Fernandes",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 23094
      },
      {
        "player_id": 27,
        "name": "Bernardo Silva",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 22935
      },
      {
        "player_id": 17,
        "name": "Jo\u00e3o Cancelo",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 20671
      },
      {
        "player_id": 1393,
        "name": "Joao Felix",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 20417
      },
      {
        "player_id": 4666,
        "name": "Rapha\u00ebl Guerreiro",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 18220
      },
      {
        "player_id": 6020,
        "name": "Cristiano Ronaldo",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 18162
      },
      {
        "player_id": 240,
        "name": "R\u00faben Neves",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 16452
      },
      {
        "player_id": 127,
        "name": "Diogo Dalot",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 16199
      }
    ],
    "pairs": [
      {
        "player_p": 240,
        "player_q": 8564,
        "name_p": "R\u00faben Neves",
        "name_q": "Pepe",
        "value": 0.0418076581513084,
        "minutes_together": 197.75
      },
      {
        "player_p": 17,
        "player_q": 8564,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Pepe",
        "value": 0.03157798167039338,
        "minutes_together": 244.4
      },
      {
        "player_p": 6020,
        "player_q": 8564,
        "name_p": "Cristiano Ronaldo",
        "name_q": "Pepe",
        "value": 0.019031531091004444,
        "minutes_together": 215.4
      },
      {
        "player_p": 127,
        "player_q": 240,
        "name_p": "Diogo Dalot",
        "name_q": "R\u00faben Neves",
        "value": 0.01746443661235033,
        "minutes_together": 128.93333333333334
      },
      {
        "player_p": 17,
        "player_q": 127,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Diogo Dalot",
        "value": 0.016434535168769773,
        "minutes_together": 125.16666666666667
      },
      {
        "player_p": 17,
        "player_q": 240,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "R\u00faben Neves",
        "value": 0.00390357687260033,
        "minutes_together": 210.03333333333333
      },
      {
        "player_p": 1393,
        "player_q": 6020,
        "name_p": "Joao Felix",
        "name_q": "Cristiano Ronaldo",
        "value": 0.0027812515447490295,
        "minutes_together": 216.46666666666667
      },
      {
        "player_p": 240,
        "player_q": 8538,
        "name_p": "R\u00faben Neves",
        "name_q": "Diogo Costa",
        "value": 0.0021830978115612142,
        "minutes_together": 274.20000000000005
      },
      {
        "player_p": 240,
        "player_q": 1393,
        "name_p": "R\u00faben Neves",
        "name_q": "Joao Felix",
        "value": 0.0009529752608820919,
        "minutes_together": 196.08333333333331
      },
      {
        "player_p": 17,
        "player_q": 6020,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Cristiano Ronaldo",
        "value": -0.000923068538459119,
        "minutes_together": 281.4
      },
      {
        "player_p": 240,
        "player_q": 6020,
        "name_p": "R\u00faben Neves",
        "name_q": "Cristiano Ronaldo",
        "value": -0.0012629526565056148,
        "minutes_together": 223.38333333333333
      },
      {
        "player_p": 17,
        "player_q": 8538,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Diogo Costa",
        "value": -0.003050144348252712,
        "minutes_together": 344.51666666666665
      },
      {
        "player_p": 27,
        "player_q": 240,
        "name_p": "Bernardo Silva",
        "name_q": "R\u00faben Neves",
        "value": -0.004452573001210522,
        "minutes_together": 196.08333333333331
      },
      {
        "player_p": 133,
        "player_q": 6020,
        "name_p": "Bruno Fernandes",
        "name_q": "Cristiano Ronaldo",
        "value": -0.004845225439000445,
        "minutes_together": 230.35
      },
      {
        "player_p": 6020,
        "player_q": 8538,
        "name_p": "Cristiano Ronaldo",
        "name_q": "Diogo Costa",
        "value": -0.005499427134127359,
        "minutes_together": 302.7
      },
      {
        "player_p": 27,
        "player_q": 6020,
        "name_p": "Bernardo Silva",
        "name_q": "Cristiano Ronaldo",
        "value": -0.005759217287454818,
        "minutes_together": 224.35
      },
      {
        "player_p": 17,
        "player_q": 1393,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Joao Felix",
        "value": -0.006521970603028031,
        "minutes_together": 216.76666666666665
      },
      {
        "player_p": 133,
        "player_q": 240,
        "name_p": "Bruno Fernandes",
        "name_q": "R\u00faben Neves",
        "value": -0.0072038269309125085,
        "minutes_together": 202.08333333333331
      },
      {
        "player_p": 1393,
        "player_q": 8564,
        "name_p": "Joao Felix",
        "name_q": "Pepe",
        "value": -0.007978555859903296,
        "minutes_together": 252.76666666666665
      },
      {
        "player_p": 8538,
        "player_q": 8564,
        "name_p": "Diogo Costa",
        "name_q": "Pepe",
        "value": -0.008375582472257876,
        "minutes_together": 389.2166666666667
      },
      {
        "player_p": 127,
        "player_q": 6020,
        "name_p": "Diogo Dalot",
        "name_q": "Cristiano Ronaldo",
        "value": -0.009165525887740325,
        "minutes_together": 114.30000000000001
      },
      {
        "player_p": 17,
        "player_q": 27,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Bernardo Silva",
        "value": -0.009288535054708606,
        "minutes_together": 250.86666666666667
      },
      {
        "player_p": 17,
        "player_q": 133,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Bruno Fernandes",
        "value": -0.010098958039459687,
        "minutes_together": 247.51666666666665
      },
      {
        "player_p": 2066,
        "player_q": 6020,
        "name_p": "Ruben Dias",
        "name_q": "Cristiano Ronaldo",
        "value": -0.011758380878510328,
        "minutes_together": 237.7833333333333
      },
      {
        "player_p": 240,
        "player_q": 2066,
        "name_p": "R\u00faben Neves",
        "name_q": "Ruben Dias",
        "value": -0.01273446509216488,
        "minutes_together": 209.51666666666668
      },
      {
        "player_p": 27,
        "player_q": 8564,
        "name_p": "Bernardo Silva",
        "name_q": "Pepe",
        "value": -0.015353494138155488,
        "minutes_together": 294.93333333333334
      },
      {
        "player_p": 17,
        "player_q": 2066,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Ruben Dias",
        "value": -0.01618186407708995,
        "minutes_together": 247.51666666666665
      },
      {
        "player_p": 133,
        "player_q": 1393,
        "name_p": "Bruno Fernandes",
        "name_q": "Joao Felix",
        "value": -0.01788561213480648,
        "minutes_together": 340.2833333333333
      },
      {
        "player_p": 133,
        "player_q": 8564,
        "name_p": "Bruno Fernandes",
        "name_q": "Pepe",
        "value": -0.017979770026062117,
        "minutes_together": 284.78333333333336
      },
      {
        "player_p": 2066,
        "player_q": 8564,
        "name_p": "Ruben Dias",
        "name_q": "Pepe",
        "value": -0.02175835666065877,
        "minutes_together": 292.2166666666667
      },
      {
        "player_p": 27,
        "player_q": 1393,
        "name_p": "Bernardo Silva",
        "name_q": "Joao Felix",
        "value": -0.021783425252141633,
        "minutes_together": 340.0833333333333
      },
      {
        "player_p": 1393,
        "player_q": 8538,
        "name_p": "Joao Felix",
        "name_q": "Diogo Costa",
        "value": -0.02501330562769631,
        "minutes_together": 340.2833333333333
      },
      {
        "player_p": 240,
        "player_q": 4666,
        "name_p": "R\u00faben Neves",
        "name_q": "Rapha\u00ebl Guerreiro",
        "value": -0.025942993345315742,
        "minutes_together": 168.03333333333333
      },
      {
        "player_p": 4666,
        "player_q": 6020,
        "name_p": "Rapha\u00ebl Guerreiro",
        "name_q": "Cristiano Ronaldo",
        "value": -0.026211508776540722,
        "minutes_together": 149.2
      },
      {
        "player_p": 1393,
        "player_q": 2066,
        "name_p": "Joao Felix",
        "name_q": "Ruben Dias",
        "value": -0.026570148455467815,
        "minutes_together": 340.2833333333333
      },
      {
        "player_p": 27,
        "player_q": 133,
        "name_p": "Bernardo Silva",
        "name_q": "Bruno Fernandes",
        "value": -0.026658513060469242,
        "minutes_together": 366.1
      },
      {
        "player_p": 127,
        "player_q": 8564,
        "name_p": "Diogo Dalot",
        "name_q": "Pepe",
        "value": -0.029003407500870444,
        "minutes_together": 269.98333333333335
      },
      {
        "player_p": 127,
        "player_q": 8538,
        "name_p": "Diogo Dalot",
        "name_q": "Diogo Costa",
        "value": -0.02997527647411265,
        "minutes_together": 269.98333333333335
      },
      {
        "player_p": 17,
        "player_q": 4666,
        "name_p": "Jo\u00e3o Cancelo",
        "name_q": "Rapha\u00ebl Guerreiro",
        "value": -0.03239104877158822,
        "minutes_together": 158.85
      },
      {
        "player_p": 27,
        "player_q": 8538,
        "name_p": "Bernardo Silva",
        "name_q": "Diogo Costa",
        "value": -0.03299454201930195,
        "minutes_together": 382.25
      },
      {
        "player_p": 133,
        "player_q": 8538,
        "name_p": "Bruno Fernandes",
        "name_q": "Diogo Costa",
        "value": -0.033114889488589414,
        "minutes_together": 384.9
      },
      {
        "player_p": 127,
        "player_q": 1393,
        "name_p": "Diogo Dalot",
        "name_q": "Joao Felix",
        "value": -0.03360309261575672,
        "minutes_together": 151.68333333333334
      },
      {
        "player_p": 1393,
        "player_q": 4666,
        "name_p": "Joao Felix",
        "name_q": "Rapha\u00ebl Guerreiro",
        "value": -0.03389254312422646,
        "minutes_together": 251.61666666666667
      },
      {
        "player_p": 133,
        "player_q": 2066,
        "name_p": "Bruno Fernandes",
        "name_q": "Ruben Dias",
        "value": -0.034801000178589094,
        "minutes_together": 384.9
      },
      {
        "player_p": 27,
        "player_q": 2066,
        "name_p": "Bernardo Silva",
        "name_q": "Ruben Dias",
        "value": -0.036125581411479854,
        "minutes_together": 366.1
      },
      {
        "player_p": 4666,
        "player_q": 8564,
        "name_p": "Rapha\u00ebl Guerreiro",
        "name_q": "Pepe",
        "value": -0.03946460507625525,
        "minutes_together": 203.55
      },
      {
        "player_p": 133,
        "player_q": 4666,
        "name_p": "Bruno Fernandes",
        "name_q": "Rapha\u00ebl Guerreiro",
        "value": -0.03955476475916812,
        "minutes_together": 296.23333333333335
      },
      {
        "player_p": 2066,
        "player_q": 8538,
        "name_p": "Ruben Dias",
        "name_q": "Diogo Costa",
        "value": -0.04309381123755322,
        "minutes_together": 392.3333333333333
      },
      {
        "player_p": 27,
        "player_q": 127,
        "name_p": "Bernardo Silva",
        "name_q": "Diogo Dalot",
        "value": -0.043462428601252524,
        "minutes_together": 175.70000000000002
      },
      {
        "player_p": 27,
        "player_q": 4666,
        "name_p": "Bernardo Silva",
        "name_q": "Rapha\u00ebl Guerreiro",
        "value": -0.04648398830612822,
        "minutes_together": 277.43333333333334
      },
      {
        "player_p": 127,
        "player_q": 133,
        "name_p": "Diogo Dalot",
        "name_q": "Bruno Fernandes",
        "value": -0.04859220031893812,
        "minutes_together": 165.55
      },
      {
        "player_p": 4666,
        "player_q": 8538,
        "name_p": "Rapha\u00ebl Guerreiro",
        "name_q": "Diogo Costa",
        "value": -0.05379265034581373,
        "minutes_together": 303.66666666666663
      },
      {
        "player_p": 127,
        "player_q": 4666,
        "name_p": "Diogo Dalot",
        "name_q": "Rapha\u00ebl Guerreiro",
        "value": -0.054108271836995764,
        "minutes_together": 144.81666666666666
      },
      {
        "player_p": 2066,
        "player_q": 4666,
        "name_p": "Ruben Dias",
        "name_q": "Rapha\u00ebl Guerreiro",
        "value": -0.0560043664264488,
        "minutes_together": 303.66666666666663
      },
      {
        "player_p": 127,
        "player_q": 2066,
        "name_p": "Diogo Dalot",
        "name_q": "Ruben Dias",
        "value": -0.0602052396411096,
        "minutes_together": 172.98333333333335
      }
    ],
    "path": "assets/figures/team_365_jdi90.png"
  },
  {
    "team_id": "366",
    "team_name": "Netherlands",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_366_joi90.png",
    "n_pairs": 53,
    "median": 0.016570050318767255,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 37,
        "name": "Virgil van Dijk",
        "position": "MCB",
        "x": 34.0,
        "y": 22.5,
        "row": 4,
        "col": 2,
        "on_seconds": 28708
      },
      {
        "player_id": 8134,
        "name": "Denzel Dumfries",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 28708
      },
      {
        "player_id": 11241,
        "name": "Andries Noppert",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 28708
      },
      {
        "player_id": 284,
        "name": "Nathan Ak\u00e9",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 28506
      },
      {
        "player_id": 1522,
        "name": "Frenkie de Jong",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 28103
      },
      {
        "player_id": 8026,
        "name": "Daley Blind",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 27147
      },
      {
        "player_id": 11094,
        "name": "Cody Gakpo",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 26256
      },
      {
        "player_id": 8022,
        "name": "Jurrien Timber",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 22703
      },
      {
        "player_id": 8342,
        "name": "Memphis Depay",
        "position": "CF",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 18603
      },
      {
        "player_id": 84,
        "name": "Steven Bergwijn",
        "position": "CF",
        "x": 6.8,
        "y": 92.5,
        "row": 0,
        "col": 0,
        "on_seconds": 13723
      },
      {
        "player_id": 8327,
        "name": "Marten De Roon",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 12281
      }
    ],
    "pairs": [
      {
        "player_p": 8026,
        "player_q": 8134,
        "name_p": "Daley Blind",
        "name_q": "Denzel Dumfries",
        "value": 0.3762673643604947,
        "minutes_together": 452.45
      },
      {
        "player_p": 8342,
        "player_q": 11241,
        "name_p": "Memphis Depay",
        "name_q": "Andries Noppert",
        "value": 0.3330739287226099,
        "minutes_together": 310.05
      },
      {
        "player_p": 284,
        "player_q": 8342,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Memphis Depay",
        "value": 0.28293112321695174,
        "minutes_together": 310.05
      },
      {
        "player_p": 8134,
        "player_q": 8342,
        "name_p": "Denzel Dumfries",
        "name_q": "Memphis Depay",
        "value": 0.2641795283783228,
        "minutes_together": 310.05
      },
      {
        "player_p": 1522,
        "player_q": 11094,
        "name_p": "Frenkie de Jong",
        "name_q": "Cody Gakpo",
        "value": 0.15258484680165413,
        "minutes_together": 437.59999999999997
      },
      {
        "player_p": 1522,
        "player_q": 8342,
        "name_p": "Frenkie de Jong",
        "name_q": "Memphis Depay",
        "value": 0.14904186047322363,
        "minutes_together": 310.05
      },
      {
        "player_p": 84,
        "player_q": 8342,
        "name_p": "Steven Bergwijn",
        "name_q": "Memphis Depay",
        "value": 0.09248444878829602,
        "minutes_together": 103.01666666666668
      },
      {
        "player_p": 37,
        "player_q": 284,
        "name_p": "Virgil van Dijk",
        "name_q": "Nathan Ak\u00e9",
        "value": 0.0892132973496681,
        "minutes_together": 475.1
      },
      {
        "player_p": 8342,
        "player_q": 11094,
        "name_p": "Memphis Depay",
        "name_q": "Cody Gakpo",
        "value": 0.08667638295544688,
        "minutes_together": 286.48333333333335
      },
      {
        "player_p": 84,
        "player_q": 8026,
        "name_p": "Steven Bergwijn",
        "name_q": "Daley Blind",
        "value": 0.0836012597599223,
        "minutes_together": 228.71666666666667
      },
      {
        "player_p": 37,
        "player_q": 8022,
        "name_p": "Virgil van Dijk",
        "name_q": "Jurrien Timber",
        "value": 0.07914629346507358,
        "minutes_together": 378.3833333333333
      },
      {
        "player_p": 8134,
        "player_q": 11094,
        "name_p": "Denzel Dumfries",
        "name_q": "Cody Gakpo",
        "value": 0.07449756394208933,
        "minutes_together": 437.59999999999997
      },
      {
        "player_p": 284,
        "player_q": 8022,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Jurrien Timber",
        "value": 0.07174135508610623,
        "minutes_together": 375.01666666666665
      },
      {
        "player_p": 284,
        "player_q": 8026,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Daley Blind",
        "value": 0.07055953132453743,
        "minutes_together": 449.0833333333333
      },
      {
        "player_p": 1522,
        "player_q": 8026,
        "name_p": "Frenkie de Jong",
        "name_q": "Daley Blind",
        "value": 0.06276316972531236,
        "minutes_together": 442.3666666666667
      },
      {
        "player_p": 284,
        "player_q": 1522,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Frenkie de Jong",
        "value": 0.05621924336673318,
        "minutes_together": 465.01666666666665
      },
      {
        "player_p": 1522,
        "player_q": 8022,
        "name_p": "Frenkie de Jong",
        "name_q": "Jurrien Timber",
        "value": 0.051516069946603384,
        "minutes_together": 368.3
      },
      {
        "player_p": 37,
        "player_q": 11241,
        "name_p": "Virgil van Dijk",
        "name_q": "Andries Noppert",
        "value": 0.03884808511851141,
        "minutes_together": 478.4666666666667
      },
      {
        "player_p": 284,
        "player_q": 11241,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Andries Noppert",
        "value": 0.03507883081316165,
        "minutes_together": 475.1
      },
      {
        "player_p": 284,
        "player_q": 8327,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Marten De Roon",
        "value": 0.03249174458448718,
        "minutes_together": 204.68333333333334
      },
      {
        "player_p": 8327,
        "player_q": 8342,
        "name_p": "Marten De Roon",
        "name_q": "Memphis Depay",
        "value": 0.032411093226199825,
        "minutes_together": 187.93333333333334
      },
      {
        "player_p": 37,
        "player_q": 1522,
        "name_p": "Virgil van Dijk",
        "name_q": "Frenkie de Jong",
        "value": 0.029057121152288895,
        "minutes_together": 468.3833333333333
      },
      {
        "player_p": 8022,
        "player_q": 11241,
        "name_p": "Jurrien Timber",
        "name_q": "Andries Noppert",
        "value": 0.028898874198244905,
        "minutes_together": 378.3833333333333
      },
      {
        "player_p": 37,
        "player_q": 8342,
        "name_p": "Virgil van Dijk",
        "name_q": "Memphis Depay",
        "value": 0.025955770845254453,
        "minutes_together": 310.05
      },
      {
        "player_p": 284,
        "player_q": 8134,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Denzel Dumfries",
        "value": 0.02386196147822771,
        "minutes_together": 475.1
      },
      {
        "player_p": 84,
        "player_q": 11094,
        "name_p": "Steven Bergwijn",
        "name_q": "Cody Gakpo",
        "value": 0.020417379316095937,
        "minutes_together": 225.36666666666667
      },
      {
        "player_p": 1522,
        "player_q": 8327,
        "name_p": "Frenkie de Jong",
        "name_q": "Marten De Roon",
        "value": 0.016570050318767255,
        "minutes_together": 204.68333333333334
      },
      {
        "player_p": 8327,
        "player_q": 11241,
        "name_p": "Marten De Roon",
        "name_q": "Andries Noppert",
        "value": 0.01400894740340685,
        "minutes_together": 204.68333333333334
      },
      {
        "player_p": 8022,
        "player_q": 8327,
        "name_p": "Jurrien Timber",
        "name_q": "Marten De Roon",
        "value": 0.01374943008102259,
        "minutes_together": 198.20000000000002
      },
      {
        "player_p": 8327,
        "player_q": 11094,
        "name_p": "Marten De Roon",
        "name_q": "Cody Gakpo",
        "value": 0.013318650584958666,
        "minutes_together": 181.06666666666666
      },
      {
        "player_p": 8026,
        "player_q": 11094,
        "name_p": "Daley Blind",
        "name_q": "Cody Gakpo",
        "value": 0.013206093656629904,
        "minutes_together": 411.5833333333333
      },
      {
        "player_p": 284,
        "player_q": 11094,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Cody Gakpo",
        "value": 0.009533440637457672,
        "minutes_together": 437.5833333333333
      },
      {
        "player_p": 37,
        "player_q": 11094,
        "name_p": "Virgil van Dijk",
        "name_q": "Cody Gakpo",
        "value": 0.009265124163255008,
        "minutes_together": 437.59999999999997
      },
      {
        "player_p": 1522,
        "player_q": 8134,
        "name_p": "Frenkie de Jong",
        "name_q": "Denzel Dumfries",
        "value": 0.008582819894674014,
        "minutes_together": 468.3833333333333
      },
      {
        "player_p": 37,
        "player_q": 8026,
        "name_p": "Virgil van Dijk",
        "name_q": "Daley Blind",
        "value": 0.00795223096625189,
        "minutes_together": 452.45
      },
      {
        "player_p": 8134,
        "player_q": 8327,
        "name_p": "Denzel Dumfries",
        "name_q": "Marten De Roon",
        "value": 0.00786563273791012,
        "minutes_together": 204.68333333333334
      },
      {
        "player_p": 37,
        "player_q": 8134,
        "name_p": "Virgil van Dijk",
        "name_q": "Denzel Dumfries",
        "value": 0.006984314732689584,
        "minutes_together": 478.4666666666667
      },
      {
        "player_p": 84,
        "player_q": 8022,
        "name_p": "Steven Bergwijn",
        "name_q": "Jurrien Timber",
        "value": 0.006669995406366238,
        "minutes_together": 150.61666666666667
      },
      {
        "player_p": 8022,
        "player_q": 11094,
        "name_p": "Jurrien Timber",
        "name_q": "Cody Gakpo",
        "value": 0.0065978623000030245,
        "minutes_together": 344.0
      },
      {
        "player_p": 8022,
        "player_q": 8342,
        "name_p": "Jurrien Timber",
        "name_q": "Memphis Depay",
        "value": 0.0062904318884302035,
        "minutes_together": 271.31666666666666
      },
      {
        "player_p": 8134,
        "player_q": 11241,
        "name_p": "Denzel Dumfries",
        "name_q": "Andries Noppert",
        "value": 0.005002666420102499,
        "minutes_together": 478.4666666666667
      },
      {
        "player_p": 11094,
        "player_q": 11241,
        "name_p": "Cody Gakpo",
        "name_q": "Andries Noppert",
        "value": 0.0017019165435718999,
        "minutes_together": 437.59999999999997
      },
      {
        "player_p": 8026,
        "player_q": 11241,
        "name_p": "Daley Blind",
        "name_q": "Andries Noppert",
        "value": 0.0016761451704735044,
        "minutes_together": 452.45
      },
      {
        "player_p": 37,
        "player_q": 84,
        "name_p": "Virgil van Dijk",
        "name_q": "Steven Bergwijn",
        "value": 0.00016499133160969673,
        "minutes_together": 228.71666666666667
      },
      {
        "player_p": 37,
        "player_q": 8327,
        "name_p": "Virgil van Dijk",
        "name_q": "Marten De Roon",
        "value": -0.0022942462479004933,
        "minutes_together": 204.68333333333334
      },
      {
        "player_p": 8022,
        "player_q": 8026,
        "name_p": "Jurrien Timber",
        "name_q": "Daley Blind",
        "value": -0.003438465053365296,
        "minutes_together": 352.3666666666667
      },
      {
        "player_p": 84,
        "player_q": 284,
        "name_p": "Steven Bergwijn",
        "name_q": "Nathan Ak\u00e9",
        "value": -0.00481511162167345,
        "minutes_together": 225.35
      },
      {
        "player_p": 84,
        "player_q": 1522,
        "name_p": "Steven Bergwijn",
        "name_q": "Frenkie de Jong",
        "value": -0.013729537781641786,
        "minutes_together": 228.71666666666667
      },
      {
        "player_p": 8026,
        "player_q": 8342,
        "name_p": "Daley Blind",
        "name_q": "Memphis Depay",
        "value": -0.018614571317306042,
        "minutes_together": 296.1
      },
      {
        "player_p": 1522,
        "player_q": 11241,
        "name_p": "Frenkie de Jong",
        "name_q": "Andries Noppert",
        "value": -0.028890741325982943,
        "minutes_together": 468.3833333333333
      },
      {
        "player_p": 8026,
        "player_q": 8327,
        "name_p": "Daley Blind",
        "name_q": "Marten De Roon",
        "value": -0.03138255872397924,
        "minutes_together": 204.68333333333334
      },
      {
        "player_p": 8022,
        "player_q": 8134,
        "name_p": "Jurrien Timber",
        "name_q": "Denzel Dumfries",
        "value": -0.036375524891685614,
        "minutes_together": 378.3833333333333
      },
      {
        "player_p": 84,
        "player_q": 8134,
        "name_p": "Steven Bergwijn",
        "name_q": "Denzel Dumfries",
        "value": -0.04697963258044358,
        "minutes_together": 228.71666666666667
      }
    ],
    "path": "assets/figures/team_366_joi90.png"
  },
  {
    "team_id": "366",
    "team_name": "Netherlands",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_366_jdi90.png",
    "n_pairs": 54,
    "median": 0.007612508168133065,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 37,
        "name": "Virgil van Dijk",
        "position": "MCB",
        "x": 34.0,
        "y": 22.5,
        "row": 4,
        "col": 2,
        "on_seconds": 28708
      },
      {
        "player_id": 8134,
        "name": "Denzel Dumfries",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 28708
      },
      {
        "player_id": 11241,
        "name": "Andries Noppert",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 28708
      },
      {
        "player_id": 284,
        "name": "Nathan Ak\u00e9",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 28506
      },
      {
        "player_id": 1522,
        "name": "Frenkie de Jong",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 28103
      },
      {
        "player_id": 8026,
        "name": "Daley Blind",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 27147
      },
      {
        "player_id": 11094,
        "name": "Cody Gakpo",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 26256
      },
      {
        "player_id": 8022,
        "name": "Jurrien Timber",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 22703
      },
      {
        "player_id": 8342,
        "name": "Memphis Depay",
        "position": "CF",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 18603
      },
      {
        "player_id": 84,
        "name": "Steven Bergwijn",
        "position": "CF",
        "x": 6.8,
        "y": 92.5,
        "row": 0,
        "col": 0,
        "on_seconds": 13723
      },
      {
        "player_id": 8327,
        "name": "Marten De Roon",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 12281
      }
    ],
    "pairs": [
      {
        "player_p": 1522,
        "player_q": 8327,
        "name_p": "Frenkie de Jong",
        "name_q": "Marten De Roon",
        "value": 0.03579419667768829,
        "minutes_together": 204.68333333333334
      },
      {
        "player_p": 37,
        "player_q": 84,
        "name_p": "Virgil van Dijk",
        "name_q": "Steven Bergwijn",
        "value": 0.03556459737520194,
        "minutes_together": 228.71666666666667
      },
      {
        "player_p": 37,
        "player_q": 8327,
        "name_p": "Virgil van Dijk",
        "name_q": "Marten De Roon",
        "value": 0.029773823279756136,
        "minutes_together": 204.68333333333334
      },
      {
        "player_p": 37,
        "player_q": 1522,
        "name_p": "Virgil van Dijk",
        "name_q": "Frenkie de Jong",
        "value": 0.024960079079838483,
        "minutes_together": 468.3833333333333
      },
      {
        "player_p": 284,
        "player_q": 8327,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Marten De Roon",
        "value": 0.023115001444060486,
        "minutes_together": 204.68333333333334
      },
      {
        "player_p": 8327,
        "player_q": 11094,
        "name_p": "Marten De Roon",
        "name_q": "Cody Gakpo",
        "value": 0.02176026497952208,
        "minutes_together": 181.06666666666666
      },
      {
        "player_p": 8026,
        "player_q": 8327,
        "name_p": "Daley Blind",
        "name_q": "Marten De Roon",
        "value": 0.02155903839129819,
        "minutes_together": 204.68333333333334
      },
      {
        "player_p": 8022,
        "player_q": 8327,
        "name_p": "Jurrien Timber",
        "name_q": "Marten De Roon",
        "value": 0.021370456606404947,
        "minutes_together": 198.20000000000002
      },
      {
        "player_p": 8327,
        "player_q": 11241,
        "name_p": "Marten De Roon",
        "name_q": "Andries Noppert",
        "value": 0.02079734094694059,
        "minutes_together": 204.68333333333334
      },
      {
        "player_p": 37,
        "player_q": 11094,
        "name_p": "Virgil van Dijk",
        "name_q": "Cody Gakpo",
        "value": 0.019043337080022954,
        "minutes_together": 437.59999999999997
      },
      {
        "player_p": 84,
        "player_q": 1522,
        "name_p": "Steven Bergwijn",
        "name_q": "Frenkie de Jong",
        "value": 0.019024795023123556,
        "minutes_together": 228.71666666666667
      },
      {
        "player_p": 8134,
        "player_q": 8327,
        "name_p": "Denzel Dumfries",
        "name_q": "Marten De Roon",
        "value": 0.01765084579490242,
        "minutes_together": 204.68333333333334
      },
      {
        "player_p": 37,
        "player_q": 284,
        "name_p": "Virgil van Dijk",
        "name_q": "Nathan Ak\u00e9",
        "value": 0.01741212218642543,
        "minutes_together": 475.1
      },
      {
        "player_p": 284,
        "player_q": 1522,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Frenkie de Jong",
        "value": 0.017152106668469138,
        "minutes_together": 465.01666666666665
      },
      {
        "player_p": 1522,
        "player_q": 11094,
        "name_p": "Frenkie de Jong",
        "name_q": "Cody Gakpo",
        "value": 0.017151107418762922,
        "minutes_together": 437.59999999999997
      },
      {
        "player_p": 37,
        "player_q": 8026,
        "name_p": "Virgil van Dijk",
        "name_q": "Daley Blind",
        "value": 0.017106059802746848,
        "minutes_together": 452.45
      },
      {
        "player_p": 1522,
        "player_q": 8026,
        "name_p": "Frenkie de Jong",
        "name_q": "Daley Blind",
        "value": 0.016607522901187676,
        "minutes_together": 442.3666666666667
      },
      {
        "player_p": 8327,
        "player_q": 8342,
        "name_p": "Marten De Roon",
        "name_q": "Memphis Depay",
        "value": 0.0162481131320368,
        "minutes_together": 187.93333333333334
      },
      {
        "player_p": 84,
        "player_q": 284,
        "name_p": "Steven Bergwijn",
        "name_q": "Nathan Ak\u00e9",
        "value": 0.015615137011553495,
        "minutes_together": 225.35
      },
      {
        "player_p": 84,
        "player_q": 11094,
        "name_p": "Steven Bergwijn",
        "name_q": "Cody Gakpo",
        "value": 0.012778330035932144,
        "minutes_together": 225.36666666666667
      },
      {
        "player_p": 84,
        "player_q": 8026,
        "name_p": "Steven Bergwijn",
        "name_q": "Daley Blind",
        "value": 0.010887779236727383,
        "minutes_together": 228.71666666666667
      },
      {
        "player_p": 1522,
        "player_q": 8342,
        "name_p": "Frenkie de Jong",
        "name_q": "Memphis Depay",
        "value": 0.009889108590699702,
        "minutes_together": 310.05
      },
      {
        "player_p": 284,
        "player_q": 8026,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Daley Blind",
        "value": 0.009396545038528112,
        "minutes_together": 449.0833333333333
      },
      {
        "player_p": 8026,
        "player_q": 11094,
        "name_p": "Daley Blind",
        "name_q": "Cody Gakpo",
        "value": 0.008572786618074892,
        "minutes_together": 411.5833333333333
      },
      {
        "player_p": 284,
        "player_q": 11094,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Cody Gakpo",
        "value": 0.008559813189743885,
        "minutes_together": 437.5833333333333
      },
      {
        "player_p": 37,
        "player_q": 11241,
        "name_p": "Virgil van Dijk",
        "name_q": "Andries Noppert",
        "value": 0.008432820916085998,
        "minutes_together": 478.4666666666667
      },
      {
        "player_p": 1522,
        "player_q": 11241,
        "name_p": "Frenkie de Jong",
        "name_q": "Andries Noppert",
        "value": 0.008284262238906931,
        "minutes_together": 468.3833333333333
      },
      {
        "player_p": 37,
        "player_q": 8134,
        "name_p": "Virgil van Dijk",
        "name_q": "Denzel Dumfries",
        "value": 0.006940754097359199,
        "minutes_together": 478.4666666666667
      },
      {
        "player_p": 1522,
        "player_q": 8134,
        "name_p": "Frenkie de Jong",
        "name_q": "Denzel Dumfries",
        "value": 0.0067232848068508,
        "minutes_together": 468.3833333333333
      },
      {
        "player_p": 84,
        "player_q": 11241,
        "name_p": "Steven Bergwijn",
        "name_q": "Andries Noppert",
        "value": 0.0062101379563398364,
        "minutes_together": 228.71666666666667
      },
      {
        "player_p": 37,
        "player_q": 8342,
        "name_p": "Virgil van Dijk",
        "name_q": "Memphis Depay",
        "value": 0.004716291341106501,
        "minutes_together": 310.05
      },
      {
        "player_p": 84,
        "player_q": 8342,
        "name_p": "Steven Bergwijn",
        "name_q": "Memphis Depay",
        "value": 0.0025118836863933995,
        "minutes_together": 103.01666666666668
      },
      {
        "player_p": 11094,
        "player_q": 11241,
        "name_p": "Cody Gakpo",
        "name_q": "Andries Noppert",
        "value": 0.0015860942164604378,
        "minutes_together": 437.59999999999997
      },
      {
        "player_p": 84,
        "player_q": 8134,
        "name_p": "Steven Bergwijn",
        "name_q": "Denzel Dumfries",
        "value": 0.0012184461277272923,
        "minutes_together": 228.71666666666667
      },
      {
        "player_p": 284,
        "player_q": 11241,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Andries Noppert",
        "value": 0.0006068983784999813,
        "minutes_together": 475.1
      },
      {
        "player_p": 37,
        "player_q": 8022,
        "name_p": "Virgil van Dijk",
        "name_q": "Jurrien Timber",
        "value": 0.0005041883062880642,
        "minutes_together": 378.3833333333333
      },
      {
        "player_p": 8026,
        "player_q": 11241,
        "name_p": "Daley Blind",
        "name_q": "Andries Noppert",
        "value": 0.00010369158327080377,
        "minutes_together": 452.45
      },
      {
        "player_p": 8342,
        "player_q": 11094,
        "name_p": "Memphis Depay",
        "name_q": "Cody Gakpo",
        "value": 4.7681591138089135e-05,
        "minutes_together": 286.48333333333335
      },
      {
        "player_p": 284,
        "player_q": 8342,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Memphis Depay",
        "value": -0.00010077061829321601,
        "minutes_together": 310.05
      },
      {
        "player_p": 8026,
        "player_q": 8342,
        "name_p": "Daley Blind",
        "name_q": "Memphis Depay",
        "value": -0.0005631998365967078,
        "minutes_together": 296.1
      },
      {
        "player_p": 284,
        "player_q": 8134,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Denzel Dumfries",
        "value": -0.0008009471941364785,
        "minutes_together": 475.1
      },
      {
        "player_p": 8134,
        "player_q": 11094,
        "name_p": "Denzel Dumfries",
        "name_q": "Cody Gakpo",
        "value": -0.0013538848547485997,
        "minutes_together": 437.59999999999997
      },
      {
        "player_p": 8026,
        "player_q": 8134,
        "name_p": "Daley Blind",
        "name_q": "Denzel Dumfries",
        "value": -0.0013628744390419363,
        "minutes_together": 452.45
      },
      {
        "player_p": 1522,
        "player_q": 8022,
        "name_p": "Frenkie de Jong",
        "name_q": "Jurrien Timber",
        "value": -0.003639421052383328,
        "minutes_together": 368.3
      },
      {
        "player_p": 8342,
        "player_q": 11241,
        "name_p": "Memphis Depay",
        "name_q": "Andries Noppert",
        "value": -0.005067303000310703,
        "minutes_together": 310.05
      },
      {
        "player_p": 8022,
        "player_q": 8342,
        "name_p": "Jurrien Timber",
        "name_q": "Memphis Depay",
        "value": -0.0067155361530695365,
        "minutes_together": 271.31666666666666
      },
      {
        "player_p": 284,
        "player_q": 8022,
        "name_p": "Nathan Ak\u00e9",
        "name_q": "Jurrien Timber",
        "value": -0.007363790957841492,
        "minutes_together": 375.01666666666665
      },
      {
        "player_p": 8022,
        "player_q": 8026,
        "name_p": "Jurrien Timber",
        "name_q": "Daley Blind",
        "value": -0.007540212546339016,
        "minutes_together": 352.3666666666667
      },
      {
        "player_p": 8134,
        "player_q": 8342,
        "name_p": "Denzel Dumfries",
        "name_q": "Memphis Depay",
        "value": -0.008041066913509223,
        "minutes_together": 310.05
      },
      {
        "player_p": 8134,
        "player_q": 11241,
        "name_p": "Denzel Dumfries",
        "name_q": "Andries Noppert",
        "value": -0.009392053334573821,
        "minutes_together": 478.4666666666667
      },
      {
        "player_p": 8022,
        "player_q": 11094,
        "name_p": "Jurrien Timber",
        "name_q": "Cody Gakpo",
        "value": -0.01035036569264566,
        "minutes_together": 344.0
      },
      {
        "player_p": 8022,
        "player_q": 11241,
        "name_p": "Jurrien Timber",
        "name_q": "Andries Noppert",
        "value": -0.017768767260446263,
        "minutes_together": 378.3833333333333
      },
      {
        "player_p": 8022,
        "player_q": 8134,
        "name_p": "Jurrien Timber",
        "name_q": "Denzel Dumfries",
        "value": -0.019339056589303034,
        "minutes_together": 378.3833333333333
      },
      {
        "player_p": 84,
        "player_q": 8022,
        "name_p": "Steven Bergwijn",
        "name_q": "Jurrien Timber",
        "value": -0.01959207680794019,
        "minutes_together": 150.61666666666667
      }
    ],
    "path": "assets/figures/team_366_jdi90.png"
  },
  {
    "team_id": "367",
    "team_name": "Denmark",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_367_joi90.png",
    "n_pairs": 49,
    "median": 0.01825440023679766,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 92,
        "name": "Andreas Christensen",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17447
      },
      {
        "player_id": 395,
        "name": "Pierre-Emile H\u00f6jbjerg",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17447
      },
      {
        "player_id": 2073,
        "name": "Joachim Andersen",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17447
      },
      {
        "player_id": 7443,
        "name": "Christian Eriksen",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 17447
      },
      {
        "player_id": 200,
        "name": "Kasper Schmeichel",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17447
      },
      {
        "player_id": 8324,
        "name": "Joakim Maehle",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 15829
      },
      {
        "player_id": 8099,
        "name": "Rasmus Kristensen",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 14193
      },
      {
        "player_id": 4737,
        "name": "Jesper Lindstr\u00f6m",
        "position": "AM",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 12816
      },
      {
        "player_id": 12779,
        "name": "Mikkel Damsgaard",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 9748
      },
      {
        "player_id": 9089,
        "name": "Andreas Skov Olsen",
        "position": "CF",
        "x": 6.8,
        "y": 92.5,
        "row": 0,
        "col": 0,
        "on_seconds": 8005
      },
      {
        "player_id": 4053,
        "name": "Kasper Dolberg",
        "position": "CF",
        "x": 61.199999999999996,
        "y": 92.5,
        "row": 0,
        "col": 4,
        "on_seconds": 7585
      }
    ],
    "pairs": [
      {
        "player_p": 2073,
        "player_q": 4053,
        "name_p": "Joachim Andersen",
        "name_q": "Kasper Dolberg",
        "value": 0.6427190995058585,
        "minutes_together": 126.41666666666666
      },
      {
        "player_p": 395,
        "player_q": 4053,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Kasper Dolberg",
        "value": 0.6302434952927217,
        "minutes_together": 126.41666666666666
      },
      {
        "player_p": 92,
        "player_q": 2073,
        "name_p": "Andreas Christensen",
        "name_q": "Joachim Andersen",
        "value": 0.30899544189634387,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 8324,
        "player_q": 12779,
        "name_p": "Joakim Maehle",
        "name_q": "Mikkel Damsgaard",
        "value": 0.249382345379408,
        "minutes_together": 135.5
      },
      {
        "player_p": 8099,
        "player_q": 9089,
        "name_p": "Rasmus Kristensen",
        "name_q": "Andreas Skov Olsen",
        "value": 0.1148253873554608,
        "minutes_together": 111.83333333333334
      },
      {
        "player_p": 2073,
        "player_q": 8324,
        "name_p": "Joachim Andersen",
        "name_q": "Joakim Maehle",
        "value": 0.10590349908486171,
        "minutes_together": 263.81666666666666
      },
      {
        "player_p": 395,
        "player_q": 12779,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Mikkel Damsgaard",
        "value": 0.0783510546368549,
        "minutes_together": 162.46666666666667
      },
      {
        "player_p": 395,
        "player_q": 9089,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Andreas Skov Olsen",
        "value": 0.075813276457632,
        "minutes_together": 133.41666666666669
      },
      {
        "player_p": 4737,
        "player_q": 7443,
        "name_p": "Jesper Lindstr\u00f6m",
        "name_q": "Christian Eriksen",
        "value": 0.06664382226124735,
        "minutes_together": 213.6
      },
      {
        "player_p": 7443,
        "player_q": 9089,
        "name_p": "Christian Eriksen",
        "name_q": "Andreas Skov Olsen",
        "value": 0.06326163171051379,
        "minutes_together": 133.41666666666669
      },
      {
        "player_p": 7443,
        "player_q": 12779,
        "name_p": "Christian Eriksen",
        "name_q": "Mikkel Damsgaard",
        "value": 0.06110154409493011,
        "minutes_together": 162.46666666666667
      },
      {
        "player_p": 7443,
        "player_q": 8324,
        "name_p": "Christian Eriksen",
        "name_q": "Joakim Maehle",
        "value": 0.058152920173022524,
        "minutes_together": 263.81666666666666
      },
      {
        "player_p": 92,
        "player_q": 7443,
        "name_p": "Andreas Christensen",
        "name_q": "Christian Eriksen",
        "value": 0.05493650812727487,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 92,
        "player_q": 395,
        "name_p": "Andreas Christensen",
        "name_q": "Pierre-Emile H\u00f6jbjerg",
        "value": 0.04483597337726124,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 7443,
        "player_q": 8099,
        "name_p": "Christian Eriksen",
        "name_q": "Rasmus Kristensen",
        "value": 0.04196633073945238,
        "minutes_together": 236.54999999999998
      },
      {
        "player_p": 2073,
        "player_q": 7443,
        "name_p": "Joachim Andersen",
        "name_q": "Christian Eriksen",
        "value": 0.033822088603961874,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 92,
        "player_q": 8324,
        "name_p": "Andreas Christensen",
        "name_q": "Joakim Maehle",
        "value": 0.03369491740175511,
        "minutes_together": 263.81666666666666
      },
      {
        "player_p": 4737,
        "player_q": 8099,
        "name_p": "Jesper Lindstr\u00f6m",
        "name_q": "Rasmus Kristensen",
        "value": 0.03342591703128984,
        "minutes_together": 164.95
      },
      {
        "player_p": 8324,
        "player_q": 9089,
        "name_p": "Joakim Maehle",
        "name_q": "Andreas Skov Olsen",
        "value": 0.032200049119532934,
        "minutes_together": 133.41666666666669
      },
      {
        "player_p": 4737,
        "player_q": 9089,
        "name_p": "Jesper Lindstr\u00f6m",
        "name_q": "Andreas Skov Olsen",
        "value": 0.030711236763259594,
        "minutes_together": 68.98333333333333
      },
      {
        "player_p": 92,
        "player_q": 12779,
        "name_p": "Andreas Christensen",
        "name_q": "Mikkel Damsgaard",
        "value": 0.028230522368880857,
        "minutes_together": 162.46666666666667
      },
      {
        "player_p": 200,
        "player_q": 8099,
        "name_p": "Kasper Schmeichel",
        "name_q": "Rasmus Kristensen",
        "value": 0.02598032002826174,
        "minutes_together": 236.54999999999998
      },
      {
        "player_p": 4053,
        "player_q": 9089,
        "name_p": "Kasper Dolberg",
        "name_q": "Andreas Skov Olsen",
        "value": 0.024712016449770075,
        "minutes_together": 74.98333333333332
      },
      {
        "player_p": 4737,
        "player_q": 8324,
        "name_p": "Jesper Lindstr\u00f6m",
        "name_q": "Joakim Maehle",
        "value": 0.018405101750243125,
        "minutes_together": 186.63333333333333
      },
      {
        "player_p": 395,
        "player_q": 8324,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Joakim Maehle",
        "value": 0.01825440023679766,
        "minutes_together": 263.81666666666666
      },
      {
        "player_p": 395,
        "player_q": 2073,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Joachim Andersen",
        "value": 0.01823102155840467,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 2073,
        "player_q": 8099,
        "name_p": "Joachim Andersen",
        "name_q": "Rasmus Kristensen",
        "value": 0.017535395255228327,
        "minutes_together": 236.54999999999998
      },
      {
        "player_p": 92,
        "player_q": 200,
        "name_p": "Andreas Christensen",
        "name_q": "Kasper Schmeichel",
        "value": 0.016042021536391664,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 92,
        "player_q": 8099,
        "name_p": "Andreas Christensen",
        "name_q": "Rasmus Kristensen",
        "value": 0.012654797904197856,
        "minutes_together": 236.54999999999998
      },
      {
        "player_p": 92,
        "player_q": 9089,
        "name_p": "Andreas Christensen",
        "name_q": "Andreas Skov Olsen",
        "value": 0.012068749127827315,
        "minutes_together": 133.41666666666669
      },
      {
        "player_p": 395,
        "player_q": 7443,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Christian Eriksen",
        "value": 0.00946634107226919,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 395,
        "player_q": 4737,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Jesper Lindstr\u00f6m",
        "value": 0.008429892662377477,
        "minutes_together": 213.6
      },
      {
        "player_p": 395,
        "player_q": 8099,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Rasmus Kristensen",
        "value": 0.00789584291149081,
        "minutes_together": 236.54999999999998
      },
      {
        "player_p": 200,
        "player_q": 8324,
        "name_p": "Kasper Schmeichel",
        "name_q": "Joakim Maehle",
        "value": 0.007355952411832121,
        "minutes_together": 263.81666666666666
      },
      {
        "player_p": 200,
        "player_q": 395,
        "name_p": "Kasper Schmeichel",
        "name_q": "Pierre-Emile H\u00f6jbjerg",
        "value": 0.006640955425640798,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 200,
        "player_q": 2073,
        "name_p": "Kasper Schmeichel",
        "name_q": "Joachim Andersen",
        "value": 0.005686661870274713,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 4053,
        "player_q": 8099,
        "name_p": "Kasper Dolberg",
        "name_q": "Rasmus Kristensen",
        "value": 0.0045033981734572655,
        "minutes_together": 83.14999999999999
      },
      {
        "player_p": 92,
        "player_q": 4053,
        "name_p": "Andreas Christensen",
        "name_q": "Kasper Dolberg",
        "value": 0.0032518982651113444,
        "minutes_together": 126.41666666666666
      },
      {
        "player_p": 8099,
        "player_q": 8324,
        "name_p": "Rasmus Kristensen",
        "name_q": "Joakim Maehle",
        "value": 0.0025929637119167467,
        "minutes_together": 236.54999999999998
      },
      {
        "player_p": 200,
        "player_q": 9089,
        "name_p": "Kasper Schmeichel",
        "name_q": "Andreas Skov Olsen",
        "value": 0.002424225372386952,
        "minutes_together": 133.41666666666669
      },
      {
        "player_p": 8099,
        "player_q": 12779,
        "name_p": "Rasmus Kristensen",
        "name_q": "Mikkel Damsgaard",
        "value": 0.0016122305584377868,
        "minutes_together": 124.86666666666667
      },
      {
        "player_p": 92,
        "player_q": 4737,
        "name_p": "Andreas Christensen",
        "name_q": "Jesper Lindstr\u00f6m",
        "value": -2.8751746348428406e-05,
        "minutes_together": 213.6
      },
      {
        "player_p": 2073,
        "player_q": 9089,
        "name_p": "Joachim Andersen",
        "name_q": "Andreas Skov Olsen",
        "value": -0.0012825120063454278,
        "minutes_together": 133.41666666666669
      },
      {
        "player_p": 200,
        "player_q": 7443,
        "name_p": "Kasper Schmeichel",
        "name_q": "Christian Eriksen",
        "value": -0.0014781434506776373,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 4053,
        "player_q": 7443,
        "name_p": "Kasper Dolberg",
        "name_q": "Christian Eriksen",
        "value": -0.004366116914164719,
        "minutes_together": 126.41666666666666
      },
      {
        "player_p": 2073,
        "player_q": 4737,
        "name_p": "Joachim Andersen",
        "name_q": "Jesper Lindstr\u00f6m",
        "value": -0.004766256695874536,
        "minutes_together": 213.6
      },
      {
        "player_p": 2073,
        "player_q": 12779,
        "name_p": "Joachim Andersen",
        "name_q": "Mikkel Damsgaard",
        "value": -0.005552510302119032,
        "minutes_together": 162.46666666666667
      },
      {
        "player_p": 4053,
        "player_q": 8324,
        "name_p": "Kasper Dolberg",
        "name_q": "Joakim Maehle",
        "value": -0.005928585587357914,
        "minutes_together": 99.44999999999999
      },
      {
        "player_p": 4737,
        "player_q": 12779,
        "name_p": "Jesper Lindstr\u00f6m",
        "name_q": "Mikkel Damsgaard",
        "value": -0.008158585225582007,
        "minutes_together": 143.53333333333333
      }
    ],
    "path": "assets/figures/team_367_joi90.png"
  },
  {
    "team_id": "367",
    "team_name": "Denmark",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_367_jdi90.png",
    "n_pairs": 52,
    "median": 0.03893517103003406,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 92,
        "name": "Andreas Christensen",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17447
      },
      {
        "player_id": 395,
        "name": "Pierre-Emile H\u00f6jbjerg",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17447
      },
      {
        "player_id": 2073,
        "name": "Joachim Andersen",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17447
      },
      {
        "player_id": 7443,
        "name": "Christian Eriksen",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 17447
      },
      {
        "player_id": 200,
        "name": "Kasper Schmeichel",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17447
      },
      {
        "player_id": 8324,
        "name": "Joakim Maehle",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 15829
      },
      {
        "player_id": 8099,
        "name": "Rasmus Kristensen",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 14193
      },
      {
        "player_id": 4737,
        "name": "Jesper Lindstr\u00f6m",
        "position": "AM",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 12816
      },
      {
        "player_id": 12779,
        "name": "Mikkel Damsgaard",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 9748
      },
      {
        "player_id": 9089,
        "name": "Andreas Skov Olsen",
        "position": "CF",
        "x": 6.8,
        "y": 92.5,
        "row": 0,
        "col": 0,
        "on_seconds": 8005
      },
      {
        "player_id": 4053,
        "name": "Kasper Dolberg",
        "position": "CF",
        "x": 61.199999999999996,
        "y": 92.5,
        "row": 0,
        "col": 4,
        "on_seconds": 7585
      }
    ],
    "pairs": [
      {
        "player_p": 92,
        "player_q": 12779,
        "name_p": "Andreas Christensen",
        "name_q": "Mikkel Damsgaard",
        "value": 0.0659989256837784,
        "minutes_together": 162.46666666666667
      },
      {
        "player_p": 4053,
        "player_q": 9089,
        "name_p": "Kasper Dolberg",
        "name_q": "Andreas Skov Olsen",
        "value": 0.06200813131286742,
        "minutes_together": 74.98333333333332
      },
      {
        "player_p": 395,
        "player_q": 12779,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Mikkel Damsgaard",
        "value": 0.0590808228446875,
        "minutes_together": 162.46666666666667
      },
      {
        "player_p": 7443,
        "player_q": 12779,
        "name_p": "Christian Eriksen",
        "name_q": "Mikkel Damsgaard",
        "value": 0.0590808228446875,
        "minutes_together": 162.46666666666667
      },
      {
        "player_p": 8324,
        "player_q": 12779,
        "name_p": "Joakim Maehle",
        "name_q": "Mikkel Damsgaard",
        "value": 0.057823226127920714,
        "minutes_together": 135.5
      },
      {
        "player_p": 7443,
        "player_q": 9089,
        "name_p": "Christian Eriksen",
        "name_q": "Andreas Skov Olsen",
        "value": 0.057315192166935786,
        "minutes_together": 133.41666666666669
      },
      {
        "player_p": 395,
        "player_q": 9089,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Andreas Skov Olsen",
        "value": 0.057315192166935786,
        "minutes_together": 133.41666666666669
      },
      {
        "player_p": 2073,
        "player_q": 9089,
        "name_p": "Joachim Andersen",
        "name_q": "Andreas Skov Olsen",
        "value": 0.05714784841191183,
        "minutes_together": 133.41666666666669
      },
      {
        "player_p": 92,
        "player_q": 395,
        "name_p": "Andreas Christensen",
        "name_q": "Pierre-Emile H\u00f6jbjerg",
        "value": 0.0557590737454196,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 92,
        "player_q": 7443,
        "name_p": "Andreas Christensen",
        "name_q": "Christian Eriksen",
        "value": 0.0557590737454196,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 92,
        "player_q": 9089,
        "name_p": "Andreas Christensen",
        "name_q": "Andreas Skov Olsen",
        "value": 0.0551552897355225,
        "minutes_together": 133.41666666666669
      },
      {
        "player_p": 395,
        "player_q": 7443,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Christian Eriksen",
        "value": 0.0532997642598701,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 8099,
        "player_q": 9089,
        "name_p": "Rasmus Kristensen",
        "name_q": "Andreas Skov Olsen",
        "value": 0.052479485934533984,
        "minutes_together": 111.83333333333334
      },
      {
        "player_p": 92,
        "player_q": 8324,
        "name_p": "Andreas Christensen",
        "name_q": "Joakim Maehle",
        "value": 0.04910401262621152,
        "minutes_together": 263.81666666666666
      },
      {
        "player_p": 92,
        "player_q": 2073,
        "name_p": "Andreas Christensen",
        "name_q": "Joachim Andersen",
        "value": 0.04750993457362044,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 8324,
        "player_q": 9089,
        "name_p": "Joakim Maehle",
        "name_q": "Andreas Skov Olsen",
        "value": 0.04732725891311667,
        "minutes_together": 133.41666666666669
      },
      {
        "player_p": 2073,
        "player_q": 12779,
        "name_p": "Joachim Andersen",
        "name_q": "Mikkel Damsgaard",
        "value": 0.0470600948266587,
        "minutes_together": 162.46666666666667
      },
      {
        "player_p": 395,
        "player_q": 8324,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Joakim Maehle",
        "value": 0.04596011195717336,
        "minutes_together": 263.81666666666666
      },
      {
        "player_p": 7443,
        "player_q": 8324,
        "name_p": "Christian Eriksen",
        "name_q": "Joakim Maehle",
        "value": 0.04596011195717336,
        "minutes_together": 263.81666666666666
      },
      {
        "player_p": 2073,
        "player_q": 7443,
        "name_p": "Joachim Andersen",
        "name_q": "Christian Eriksen",
        "value": 0.04505062508807093,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 395,
        "player_q": 2073,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Joachim Andersen",
        "value": 0.04505062508807093,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 200,
        "player_q": 9089,
        "name_p": "Kasper Schmeichel",
        "name_q": "Andreas Skov Olsen",
        "value": 0.04458095367461151,
        "minutes_together": 133.41666666666669
      },
      {
        "player_p": 200,
        "player_q": 12779,
        "name_p": "Kasper Schmeichel",
        "name_q": "Mikkel Damsgaard",
        "value": 0.04189640791189898,
        "minutes_together": 162.46666666666667
      },
      {
        "player_p": 92,
        "player_q": 200,
        "name_p": "Andreas Christensen",
        "name_q": "Kasper Schmeichel",
        "value": 0.04123372342538359,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 395,
        "player_q": 4053,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Kasper Dolberg",
        "value": 0.03909592812023404,
        "minutes_together": 126.41666666666666
      },
      {
        "player_p": 4053,
        "player_q": 7443,
        "name_p": "Kasper Dolberg",
        "name_q": "Christian Eriksen",
        "value": 0.03909592812023404,
        "minutes_together": 126.41666666666666
      },
      {
        "player_p": 200,
        "player_q": 395,
        "name_p": "Kasper Schmeichel",
        "name_q": "Pierre-Emile H\u00f6jbjerg",
        "value": 0.03877441393983408,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 200,
        "player_q": 7443,
        "name_p": "Kasper Schmeichel",
        "name_q": "Christian Eriksen",
        "value": 0.03877441393983408,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 2073,
        "player_q": 8324,
        "name_p": "Joachim Andersen",
        "name_q": "Joakim Maehle",
        "value": 0.037058394617428755,
        "minutes_together": 263.81666666666666
      },
      {
        "player_p": 8099,
        "player_q": 12779,
        "name_p": "Rasmus Kristensen",
        "name_q": "Mikkel Damsgaard",
        "value": 0.03522349487755178,
        "minutes_together": 124.86666666666667
      },
      {
        "player_p": 92,
        "player_q": 8099,
        "name_p": "Andreas Christensen",
        "name_q": "Rasmus Kristensen",
        "value": 0.034638026371619474,
        "minutes_together": 236.54999999999998
      },
      {
        "player_p": 4053,
        "player_q": 8324,
        "name_p": "Kasper Dolberg",
        "name_q": "Joakim Maehle",
        "value": 0.03419221605361176,
        "minutes_together": 99.44999999999999
      },
      {
        "player_p": 7443,
        "player_q": 8099,
        "name_p": "Christian Eriksen",
        "name_q": "Rasmus Kristensen",
        "value": 0.03161737207599829,
        "minutes_together": 236.54999999999998
      },
      {
        "player_p": 395,
        "player_q": 8099,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Rasmus Kristensen",
        "value": 0.03161737207599829,
        "minutes_together": 236.54999999999998
      },
      {
        "player_p": 92,
        "player_q": 4053,
        "name_p": "Andreas Christensen",
        "name_q": "Kasper Dolberg",
        "value": 0.03114988933616464,
        "minutes_together": 126.41666666666666
      },
      {
        "player_p": 200,
        "player_q": 8324,
        "name_p": "Kasper Schmeichel",
        "name_q": "Joakim Maehle",
        "value": 0.03060068992508319,
        "minutes_together": 263.81666666666666
      },
      {
        "player_p": 200,
        "player_q": 2073,
        "name_p": "Kasper Schmeichel",
        "name_q": "Joachim Andersen",
        "value": 0.030525274768034894,
        "minutes_together": 290.7833333333333
      },
      {
        "player_p": 2073,
        "player_q": 4053,
        "name_p": "Joachim Andersen",
        "name_q": "Kasper Dolberg",
        "value": 0.029821273369419105,
        "minutes_together": 126.41666666666666
      },
      {
        "player_p": 4053,
        "player_q": 8099,
        "name_p": "Kasper Dolberg",
        "name_q": "Rasmus Kristensen",
        "value": 0.028613743803284065,
        "minutes_together": 83.14999999999999
      },
      {
        "player_p": 4737,
        "player_q": 9089,
        "name_p": "Jesper Lindstr\u00f6m",
        "name_q": "Andreas Skov Olsen",
        "value": 0.022988537936187672,
        "minutes_together": 68.98333333333333
      },
      {
        "player_p": 8099,
        "player_q": 8324,
        "name_p": "Rasmus Kristensen",
        "name_q": "Joakim Maehle",
        "value": 0.021619051462682753,
        "minutes_together": 236.54999999999998
      },
      {
        "player_p": 2073,
        "player_q": 8099,
        "name_p": "Joachim Andersen",
        "name_q": "Rasmus Kristensen",
        "value": 0.02109108289894558,
        "minutes_together": 236.54999999999998
      },
      {
        "player_p": 200,
        "player_q": 4053,
        "name_p": "Kasper Schmeichel",
        "name_q": "Kasper Dolberg",
        "value": 0.019856051227821442,
        "minutes_together": 126.41666666666666
      },
      {
        "player_p": 200,
        "player_q": 8099,
        "name_p": "Kasper Schmeichel",
        "name_q": "Rasmus Kristensen",
        "value": 0.013980451482566835,
        "minutes_together": 236.54999999999998
      },
      {
        "player_p": 92,
        "player_q": 4737,
        "name_p": "Andreas Christensen",
        "name_q": "Jesper Lindstr\u00f6m",
        "value": -0.018387659354755677,
        "minutes_together": 213.6
      },
      {
        "player_p": 395,
        "player_q": 4737,
        "name_p": "Pierre-Emile H\u00f6jbjerg",
        "name_q": "Jesper Lindstr\u00f6m",
        "value": -0.025738431635790676,
        "minutes_together": 213.6
      },
      {
        "player_p": 4737,
        "player_q": 7443,
        "name_p": "Jesper Lindstr\u00f6m",
        "name_q": "Christian Eriksen",
        "value": -0.025738431635790676,
        "minutes_together": 213.6
      },
      {
        "player_p": 4737,
        "player_q": 12779,
        "name_p": "Jesper Lindstr\u00f6m",
        "name_q": "Mikkel Damsgaard",
        "value": -0.03164551705083939,
        "minutes_together": 143.53333333333333
      },
      {
        "player_p": 2073,
        "player_q": 4737,
        "name_p": "Joachim Andersen",
        "name_q": "Jesper Lindstr\u00f6m",
        "value": -0.03235266050132117,
        "minutes_together": 213.6
      },
      {
        "player_p": 200,
        "player_q": 4737,
        "name_p": "Kasper Schmeichel",
        "name_q": "Jesper Lindstr\u00f6m",
        "value": -0.035246325685645515,
        "minutes_together": 213.6
      },
      {
        "player_p": 4737,
        "player_q": 8324,
        "name_p": "Jesper Lindstr\u00f6m",
        "name_q": "Joakim Maehle",
        "value": -0.040892127767668415,
        "minutes_together": 186.63333333333333
      },
      {
        "player_p": 4737,
        "player_q": 8099,
        "name_p": "Jesper Lindstr\u00f6m",
        "name_q": "Rasmus Kristensen",
        "value": -0.0706372917697166,
        "minutes_together": 164.95
      }
    ],
    "path": "assets/figures/team_367_jdi90.png"
  },
  {
    "team_id": "368",
    "team_name": "Germany",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_368_joi90.png",
    "n_pairs": 53,
    "median": 0.024360068295363035,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 90,
        "name": "Antonio R\u00fcdiger",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17640
      },
      {
        "player_id": 4602,
        "name": "Manuel Neuer",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17640
      },
      {
        "player_id": 4616,
        "name": "Joshua Kimmich",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17640
      },
      {
        "player_id": 4608,
        "name": "Niklas S\u00fcle",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17184
      },
      {
        "player_id": 4621,
        "name": "Jamal Musiala",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 16442
      },
      {
        "player_id": 4623,
        "name": "Serge Gnabry",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 16400
      },
      {
        "player_id": 4868,
        "name": "David Raum",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 15038
      },
      {
        "player_id": 4624,
        "name": "Thomas M\u00fcller",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 12103
      },
      {
        "player_id": 20,
        "name": "Ilkay G\u00fcndogan",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 11404
      },
      {
        "player_id": 4618,
        "name": "Leon Goretzka",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 10443
      },
      {
        "player_id": 26,
        "name": "Leroy San\u00e9",
        "position": "LW",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 7602
      }
    ],
    "pairs": [
      {
        "player_p": 26,
        "player_q": 4616,
        "name_p": "Leroy San\u00e9",
        "name_q": "Joshua Kimmich",
        "value": 0.4912210261280809,
        "minutes_together": 126.7
      },
      {
        "player_p": 4623,
        "player_q": 4868,
        "name_p": "Serge Gnabry",
        "name_q": "David Raum",
        "value": 0.2735441947183452,
        "minutes_together": 239.26666666666665
      },
      {
        "player_p": 4621,
        "player_q": 4868,
        "name_p": "Jamal Musiala",
        "name_q": "David Raum",
        "value": 0.23404273045857682,
        "minutes_together": 230.66666666666669
      },
      {
        "player_p": 4621,
        "player_q": 4623,
        "name_p": "Jamal Musiala",
        "name_q": "Serge Gnabry",
        "value": 0.1822352138904869,
        "minutes_together": 262.51666666666665
      },
      {
        "player_p": 20,
        "player_q": 4621,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Jamal Musiala",
        "value": 0.15448040541443303,
        "minutes_together": 190.06666666666666
      },
      {
        "player_p": 26,
        "player_q": 4868,
        "name_p": "Leroy San\u00e9",
        "name_q": "David Raum",
        "value": 0.15052509652479784,
        "minutes_together": 83.33333333333334
      },
      {
        "player_p": 4616,
        "player_q": 4623,
        "name_p": "Joshua Kimmich",
        "name_q": "Serge Gnabry",
        "value": 0.13889275852001456,
        "minutes_together": 273.3333333333333
      },
      {
        "player_p": 26,
        "player_q": 4608,
        "name_p": "Leroy San\u00e9",
        "name_q": "Niklas S\u00fcle",
        "value": 0.11774837462634287,
        "minutes_together": 119.10000000000001
      },
      {
        "player_p": 26,
        "player_q": 4618,
        "name_p": "Leroy San\u00e9",
        "name_q": "Leon Goretzka",
        "value": 0.10962503632445038,
        "minutes_together": 73.66666666666667
      },
      {
        "player_p": 4621,
        "player_q": 4624,
        "name_p": "Jamal Musiala",
        "name_q": "Thomas M\u00fcller",
        "value": 0.10417494722840073,
        "minutes_together": 201.71666666666664
      },
      {
        "player_p": 4608,
        "player_q": 4624,
        "name_p": "Niklas S\u00fcle",
        "name_q": "Thomas M\u00fcller",
        "value": 0.09098628218362864,
        "minutes_together": 201.71666666666664
      },
      {
        "player_p": 20,
        "player_q": 4608,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Niklas S\u00fcle",
        "value": 0.08807984685035643,
        "minutes_together": 190.06666666666666
      },
      {
        "player_p": 90,
        "player_q": 4608,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "Niklas S\u00fcle",
        "value": 0.08615723025229452,
        "minutes_together": 286.4
      },
      {
        "player_p": 4616,
        "player_q": 4868,
        "name_p": "Joshua Kimmich",
        "name_q": "David Raum",
        "value": 0.07114036713685826,
        "minutes_together": 250.63333333333333
      },
      {
        "player_p": 90,
        "player_q": 4868,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "David Raum",
        "value": 0.06727977628237543,
        "minutes_together": 250.63333333333333
      },
      {
        "player_p": 20,
        "player_q": 4623,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Serge Gnabry",
        "value": 0.06501822506238147,
        "minutes_together": 190.06666666666666
      },
      {
        "player_p": 20,
        "player_q": 90,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Antonio R\u00fcdiger",
        "value": 0.060499265754141135,
        "minutes_together": 190.06666666666666
      },
      {
        "player_p": 4602,
        "player_q": 4608,
        "name_p": "Manuel Neuer",
        "name_q": "Niklas S\u00fcle",
        "value": 0.047240931961097035,
        "minutes_together": 286.4
      },
      {
        "player_p": 4602,
        "player_q": 4623,
        "name_p": "Manuel Neuer",
        "name_q": "Serge Gnabry",
        "value": 0.040511728902377094,
        "minutes_together": 273.3333333333333
      },
      {
        "player_p": 20,
        "player_q": 4618,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Leon Goretzka",
        "value": 0.0397839174422175,
        "minutes_together": 116.13333333333334
      },
      {
        "player_p": 20,
        "player_q": 4616,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Joshua Kimmich",
        "value": 0.03743330153851624,
        "minutes_together": 190.06666666666666
      },
      {
        "player_p": 4602,
        "player_q": 4616,
        "name_p": "Manuel Neuer",
        "name_q": "Joshua Kimmich",
        "value": 0.03708441351515222,
        "minutes_together": 294.0
      },
      {
        "player_p": 4616,
        "player_q": 4621,
        "name_p": "Joshua Kimmich",
        "name_q": "Jamal Musiala",
        "value": 0.036892677266583254,
        "minutes_together": 274.0333333333333
      },
      {
        "player_p": 4608,
        "player_q": 4616,
        "name_p": "Niklas S\u00fcle",
        "name_q": "Joshua Kimmich",
        "value": 0.03528541032842129,
        "minutes_together": 286.4
      },
      {
        "player_p": 90,
        "player_q": 4602,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "Manuel Neuer",
        "value": 0.03176055017544999,
        "minutes_together": 294.0
      },
      {
        "player_p": 90,
        "player_q": 4621,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "Jamal Musiala",
        "value": 0.02470380638726761,
        "minutes_together": 274.0333333333333
      },
      {
        "player_p": 90,
        "player_q": 4616,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "Joshua Kimmich",
        "value": 0.024360068295363035,
        "minutes_together": 294.0
      },
      {
        "player_p": 4602,
        "player_q": 4868,
        "name_p": "Manuel Neuer",
        "name_q": "David Raum",
        "value": 0.018538947610135283,
        "minutes_together": 250.63333333333333
      },
      {
        "player_p": 4618,
        "player_q": 4868,
        "name_p": "Leon Goretzka",
        "name_q": "David Raum",
        "value": 0.017416737249182447,
        "minutes_together": 164.75
      },
      {
        "player_p": 90,
        "player_q": 4623,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "Serge Gnabry",
        "value": 0.016207053400848184,
        "minutes_together": 273.3333333333333
      },
      {
        "player_p": 26,
        "player_q": 90,
        "name_p": "Leroy San\u00e9",
        "name_q": "Antonio R\u00fcdiger",
        "value": 0.015566950056669514,
        "minutes_together": 126.7
      },
      {
        "player_p": 4602,
        "player_q": 4624,
        "name_p": "Manuel Neuer",
        "name_q": "Thomas M\u00fcller",
        "value": 0.015187858218384944,
        "minutes_together": 201.71666666666664
      },
      {
        "player_p": 4608,
        "player_q": 4618,
        "name_p": "Niklas S\u00fcle",
        "name_q": "Leon Goretzka",
        "value": 0.013450296306659967,
        "minutes_together": 174.05
      },
      {
        "player_p": 26,
        "player_q": 4623,
        "name_p": "Leroy San\u00e9",
        "name_q": "Serge Gnabry",
        "value": 0.013191718830259104,
        "minutes_together": 115.18333333333334
      },
      {
        "player_p": 4602,
        "player_q": 4621,
        "name_p": "Manuel Neuer",
        "name_q": "Jamal Musiala",
        "value": 0.012946695329085961,
        "minutes_together": 274.0333333333333
      },
      {
        "player_p": 26,
        "player_q": 4621,
        "name_p": "Leroy San\u00e9",
        "name_q": "Jamal Musiala",
        "value": 0.012201507937277582,
        "minutes_together": 126.7
      },
      {
        "player_p": 4608,
        "player_q": 4623,
        "name_p": "Niklas S\u00fcle",
        "name_q": "Serge Gnabry",
        "value": 0.011838982427342697,
        "minutes_together": 265.73333333333335
      },
      {
        "player_p": 4608,
        "player_q": 4621,
        "name_p": "Niklas S\u00fcle",
        "name_q": "Jamal Musiala",
        "value": 0.011234944527976576,
        "minutes_together": 266.43333333333334
      },
      {
        "player_p": 4618,
        "player_q": 4623,
        "name_p": "Leon Goretzka",
        "name_q": "Serge Gnabry",
        "value": 0.011094960844254535,
        "minutes_together": 153.38333333333333
      },
      {
        "player_p": 26,
        "player_q": 4624,
        "name_p": "Leroy San\u00e9",
        "name_q": "Thomas M\u00fcller",
        "value": 0.004959840712409279,
        "minutes_together": 65.98333333333332
      },
      {
        "player_p": 26,
        "player_q": 4602,
        "name_p": "Leroy San\u00e9",
        "name_q": "Manuel Neuer",
        "value": 0.004264089818446279,
        "minutes_together": 126.7
      },
      {
        "player_p": 20,
        "player_q": 4602,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Manuel Neuer",
        "value": -0.002236595648555435,
        "minutes_together": 190.06666666666666
      },
      {
        "player_p": 4624,
        "player_q": 4868,
        "name_p": "Thomas M\u00fcller",
        "name_q": "David Raum",
        "value": -0.0031084311670631993,
        "minutes_together": 201.71666666666664
      },
      {
        "player_p": 4616,
        "player_q": 4618,
        "name_p": "Joshua Kimmich",
        "name_q": "Leon Goretzka",
        "value": -0.0033664729417929805,
        "minutes_together": 174.05
      },
      {
        "player_p": 90,
        "player_q": 4618,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "Leon Goretzka",
        "value": -0.006425386948445134,
        "minutes_together": 174.05
      },
      {
        "player_p": 4623,
        "player_q": 4624,
        "name_p": "Serge Gnabry",
        "name_q": "Thomas M\u00fcller",
        "value": -0.007763959123391491,
        "minutes_together": 201.71666666666664
      },
      {
        "player_p": 4618,
        "player_q": 4621,
        "name_p": "Leon Goretzka",
        "name_q": "Jamal Musiala",
        "value": -0.010443114736881956,
        "minutes_together": 154.08333333333331
      },
      {
        "player_p": 4608,
        "player_q": 4868,
        "name_p": "Niklas S\u00fcle",
        "name_q": "David Raum",
        "value": -0.01173328683161534,
        "minutes_together": 250.63333333333333
      },
      {
        "player_p": 20,
        "player_q": 4868,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "David Raum",
        "value": -0.017063989602614443,
        "minutes_together": 190.06666666666666
      },
      {
        "player_p": 20,
        "player_q": 4624,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Thomas M\u00fcller",
        "value": -0.021990949698353305,
        "minutes_together": 189.75
      },
      {
        "player_p": 90,
        "player_q": 4624,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "Thomas M\u00fcller",
        "value": -0.024770644744454985,
        "minutes_together": 201.71666666666664
      },
      {
        "player_p": 4616,
        "player_q": 4624,
        "name_p": "Joshua Kimmich",
        "name_q": "Thomas M\u00fcller",
        "value": -0.10395050550682865,
        "minutes_together": 201.71666666666664
      },
      {
        "player_p": 4618,
        "player_q": 4624,
        "name_p": "Leon Goretzka",
        "name_q": "Thomas M\u00fcller",
        "value": -0.11766979823007702,
        "minutes_together": 116.25
      }
    ],
    "path": "assets/figures/team_368_joi90.png"
  },
  {
    "team_id": "368",
    "team_name": "Germany",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_368_jdi90.png",
    "n_pairs": 54,
    "median": -0.02260088380303909,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 90,
        "name": "Antonio R\u00fcdiger",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17640
      },
      {
        "player_id": 4602,
        "name": "Manuel Neuer",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17640
      },
      {
        "player_id": 4616,
        "name": "Joshua Kimmich",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17640
      },
      {
        "player_id": 4608,
        "name": "Niklas S\u00fcle",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17184
      },
      {
        "player_id": 4621,
        "name": "Jamal Musiala",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 16442
      },
      {
        "player_id": 4623,
        "name": "Serge Gnabry",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 16400
      },
      {
        "player_id": 4868,
        "name": "David Raum",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 15038
      },
      {
        "player_id": 4624,
        "name": "Thomas M\u00fcller",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 12103
      },
      {
        "player_id": 20,
        "name": "Ilkay G\u00fcndogan",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 11404
      },
      {
        "player_id": 4618,
        "name": "Leon Goretzka",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 10443
      },
      {
        "player_id": 26,
        "name": "Leroy San\u00e9",
        "position": "LW",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 7602
      }
    ],
    "pairs": [
      {
        "player_p": 20,
        "player_q": 4621,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Jamal Musiala",
        "value": -0.007329892068029365,
        "minutes_together": 190.06666666666666
      },
      {
        "player_p": 4621,
        "player_q": 4624,
        "name_p": "Jamal Musiala",
        "name_q": "Thomas M\u00fcller",
        "value": -0.010826181942207174,
        "minutes_together": 201.71666666666664
      },
      {
        "player_p": 20,
        "player_q": 4624,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Thomas M\u00fcller",
        "value": -0.012415388457784593,
        "minutes_together": 189.75
      },
      {
        "player_p": 20,
        "player_q": 4868,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "David Raum",
        "value": -0.014193468885931452,
        "minutes_together": 190.06666666666666
      },
      {
        "player_p": 4621,
        "player_q": 4868,
        "name_p": "Jamal Musiala",
        "name_q": "David Raum",
        "value": -0.014334920713425629,
        "minutes_together": 230.66666666666669
      },
      {
        "player_p": 20,
        "player_q": 4608,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Niklas S\u00fcle",
        "value": -0.01490821967182034,
        "minutes_together": 190.06666666666666
      },
      {
        "player_p": 20,
        "player_q": 4616,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Joshua Kimmich",
        "value": -0.015037112874050093,
        "minutes_together": 190.06666666666666
      },
      {
        "player_p": 20,
        "player_q": 4602,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Manuel Neuer",
        "value": -0.015319374219699188,
        "minutes_together": 190.06666666666666
      },
      {
        "player_p": 20,
        "player_q": 90,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Antonio R\u00fcdiger",
        "value": -0.016089130875725565,
        "minutes_together": 190.06666666666666
      },
      {
        "player_p": 4602,
        "player_q": 4868,
        "name_p": "Manuel Neuer",
        "name_q": "David Raum",
        "value": -0.017495249819545193,
        "minutes_together": 250.63333333333333
      },
      {
        "player_p": 4616,
        "player_q": 4868,
        "name_p": "Joshua Kimmich",
        "name_q": "David Raum",
        "value": -0.017511130124837477,
        "minutes_together": 250.63333333333333
      },
      {
        "player_p": 4608,
        "player_q": 4868,
        "name_p": "Niklas S\u00fcle",
        "name_q": "David Raum",
        "value": -0.01760023168859832,
        "minutes_together": 250.63333333333333
      },
      {
        "player_p": 4624,
        "player_q": 4868,
        "name_p": "Thomas M\u00fcller",
        "name_q": "David Raum",
        "value": -0.017970990830536954,
        "minutes_together": 201.71666666666664
      },
      {
        "player_p": 4616,
        "player_q": 4624,
        "name_p": "Joshua Kimmich",
        "name_q": "Thomas M\u00fcller",
        "value": -0.018151320218864522,
        "minutes_together": 201.71666666666664
      },
      {
        "player_p": 90,
        "player_q": 4868,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "David Raum",
        "value": -0.018290162096062094,
        "minutes_together": 250.63333333333333
      },
      {
        "player_p": 4608,
        "player_q": 4621,
        "name_p": "Niklas S\u00fcle",
        "name_q": "Jamal Musiala",
        "value": -0.018581193505567268,
        "minutes_together": 266.43333333333334
      },
      {
        "player_p": 4602,
        "player_q": 4621,
        "name_p": "Manuel Neuer",
        "name_q": "Jamal Musiala",
        "value": -0.01906368470137435,
        "minutes_together": 274.0333333333333
      },
      {
        "player_p": 4608,
        "player_q": 4624,
        "name_p": "Niklas S\u00fcle",
        "name_q": "Thomas M\u00fcller",
        "value": -0.019091238025843192,
        "minutes_together": 201.71666666666664
      },
      {
        "player_p": 4616,
        "player_q": 4621,
        "name_p": "Joshua Kimmich",
        "name_q": "Jamal Musiala",
        "value": -0.01954543730694227,
        "minutes_together": 274.0333333333333
      },
      {
        "player_p": 4602,
        "player_q": 4624,
        "name_p": "Manuel Neuer",
        "name_q": "Thomas M\u00fcller",
        "value": -0.019626329411830457,
        "minutes_together": 201.71666666666664
      },
      {
        "player_p": 90,
        "player_q": 4621,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "Jamal Musiala",
        "value": -0.0202512528679476,
        "minutes_together": 274.0333333333333
      },
      {
        "player_p": 90,
        "player_q": 4624,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "Thomas M\u00fcller",
        "value": -0.020628255469416205,
        "minutes_together": 201.71666666666664
      },
      {
        "player_p": 4602,
        "player_q": 4608,
        "name_p": "Manuel Neuer",
        "name_q": "Niklas S\u00fcle",
        "value": -0.02127588442759381,
        "minutes_together": 286.4
      },
      {
        "player_p": 4608,
        "player_q": 4616,
        "name_p": "Niklas S\u00fcle",
        "name_q": "Joshua Kimmich",
        "value": -0.021389656999920473,
        "minutes_together": 286.4
      },
      {
        "player_p": 4602,
        "player_q": 4616,
        "name_p": "Manuel Neuer",
        "name_q": "Joshua Kimmich",
        "value": -0.021451247668164888,
        "minutes_together": 294.0
      },
      {
        "player_p": 90,
        "player_q": 4608,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "Niklas S\u00fcle",
        "value": -0.022353862064393097,
        "minutes_together": 286.4
      },
      {
        "player_p": 90,
        "player_q": 4616,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "Joshua Kimmich",
        "value": -0.02258149120759692,
        "minutes_together": 294.0
      },
      {
        "player_p": 90,
        "player_q": 4602,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "Manuel Neuer",
        "value": -0.022620276398481253,
        "minutes_together": 294.0
      },
      {
        "player_p": 20,
        "player_q": 4623,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Serge Gnabry",
        "value": -0.03276562201578476,
        "minutes_together": 190.06666666666666
      },
      {
        "player_p": 4623,
        "player_q": 4868,
        "name_p": "Serge Gnabry",
        "name_q": "David Raum",
        "value": -0.035430047464918915,
        "minutes_together": 239.26666666666665
      },
      {
        "player_p": 4623,
        "player_q": 4624,
        "name_p": "Serge Gnabry",
        "name_q": "Thomas M\u00fcller",
        "value": -0.040260437730939236,
        "minutes_together": 201.71666666666664
      },
      {
        "player_p": 4618,
        "player_q": 4868,
        "name_p": "Leon Goretzka",
        "name_q": "David Raum",
        "value": -0.04181610273635651,
        "minutes_together": 164.75
      },
      {
        "player_p": 4608,
        "player_q": 4618,
        "name_p": "Niklas S\u00fcle",
        "name_q": "Leon Goretzka",
        "value": -0.04226636401453149,
        "minutes_together": 174.05
      },
      {
        "player_p": 4602,
        "player_q": 4618,
        "name_p": "Manuel Neuer",
        "name_q": "Leon Goretzka",
        "value": -0.04302502309738778,
        "minutes_together": 174.05
      },
      {
        "player_p": 90,
        "player_q": 4618,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "Leon Goretzka",
        "value": -0.04337679669858014,
        "minutes_together": 174.05
      },
      {
        "player_p": 26,
        "player_q": 4621,
        "name_p": "Leroy San\u00e9",
        "name_q": "Jamal Musiala",
        "value": -0.04502253734223182,
        "minutes_together": 126.7
      },
      {
        "player_p": 4621,
        "player_q": 4623,
        "name_p": "Jamal Musiala",
        "name_q": "Serge Gnabry",
        "value": -0.04575354643821402,
        "minutes_together": 262.51666666666665
      },
      {
        "player_p": 4618,
        "player_q": 4621,
        "name_p": "Leon Goretzka",
        "name_q": "Jamal Musiala",
        "value": -0.046137170247879306,
        "minutes_together": 154.08333333333331
      },
      {
        "player_p": 4608,
        "player_q": 4623,
        "name_p": "Niklas S\u00fcle",
        "name_q": "Serge Gnabry",
        "value": -0.04637669424601179,
        "minutes_together": 265.73333333333335
      },
      {
        "player_p": 4616,
        "player_q": 4623,
        "name_p": "Joshua Kimmich",
        "name_q": "Serge Gnabry",
        "value": -0.04736990885191481,
        "minutes_together": 273.3333333333333
      },
      {
        "player_p": 4602,
        "player_q": 4623,
        "name_p": "Manuel Neuer",
        "name_q": "Serge Gnabry",
        "value": -0.0485013742399425,
        "minutes_together": 273.3333333333333
      },
      {
        "player_p": 90,
        "player_q": 4623,
        "name_p": "Antonio R\u00fcdiger",
        "name_q": "Serge Gnabry",
        "value": -0.049765268231518674,
        "minutes_together": 273.3333333333333
      },
      {
        "player_p": 26,
        "player_q": 4616,
        "name_p": "Leroy San\u00e9",
        "name_q": "Joshua Kimmich",
        "value": -0.051483799320758354,
        "minutes_together": 126.7
      },
      {
        "player_p": 4616,
        "player_q": 4618,
        "name_p": "Joshua Kimmich",
        "name_q": "Leon Goretzka",
        "value": -0.05578707028447858,
        "minutes_together": 174.05
      },
      {
        "player_p": 26,
        "player_q": 4602,
        "name_p": "Leroy San\u00e9",
        "name_q": "Manuel Neuer",
        "value": -0.05828021614085238,
        "minutes_together": 126.7
      },
      {
        "player_p": 4618,
        "player_q": 4624,
        "name_p": "Leon Goretzka",
        "name_q": "Thomas M\u00fcller",
        "value": -0.05863567520740337,
        "minutes_together": 116.25
      },
      {
        "player_p": 26,
        "player_q": 4608,
        "name_p": "Leroy San\u00e9",
        "name_q": "Niklas S\u00fcle",
        "value": -0.05908991392786199,
        "minutes_together": 119.10000000000001
      },
      {
        "player_p": 26,
        "player_q": 90,
        "name_p": "Leroy San\u00e9",
        "name_q": "Antonio R\u00fcdiger",
        "value": -0.061670168686035,
        "minutes_together": 126.7
      },
      {
        "player_p": 4618,
        "player_q": 4623,
        "name_p": "Leon Goretzka",
        "name_q": "Serge Gnabry",
        "value": -0.06369121161978017,
        "minutes_together": 153.38333333333333
      },
      {
        "player_p": 26,
        "player_q": 4868,
        "name_p": "Leroy San\u00e9",
        "name_q": "David Raum",
        "value": -0.06396060056459633,
        "minutes_together": 83.33333333333334
      },
      {
        "player_p": 26,
        "player_q": 4624,
        "name_p": "Leroy San\u00e9",
        "name_q": "Thomas M\u00fcller",
        "value": -0.06529804651249704,
        "minutes_together": 65.98333333333332
      },
      {
        "player_p": 20,
        "player_q": 4618,
        "name_p": "Ilkay G\u00fcndogan",
        "name_q": "Leon Goretzka",
        "value": -0.06867304043898358,
        "minutes_together": 116.13333333333334
      },
      {
        "player_p": 26,
        "player_q": 4618,
        "name_p": "Leroy San\u00e9",
        "name_q": "Leon Goretzka",
        "value": -0.07497399113810266,
        "minutes_together": 73.66666666666667
      },
      {
        "player_p": 26,
        "player_q": 4623,
        "name_p": "Leroy San\u00e9",
        "name_q": "Serge Gnabry",
        "value": -0.12697604955265965,
        "minutes_together": 115.18333333333334
      }
    ],
    "path": "assets/figures/team_368_jdi90.png"
  },
  {
    "team_id": "369",
    "team_name": "Uruguay",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_369_joi90.png",
    "n_pairs": 50,
    "median": 0.017248919445145255,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 13924,
        "name": "Sergio Rochet",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17858
      },
      {
        "player_id": 1684,
        "name": "Federico Valverde",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17858
      },
      {
        "player_id": 1368,
        "name": "Jose Gimenez",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17858
      },
      {
        "player_id": 1545,
        "name": "Math\u00ed\u00adas Olivera",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 15772
      },
      {
        "player_id": 8009,
        "name": "Darwin Nunez",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 14952
      },
      {
        "player_id": 7584,
        "name": "Rodrigo Bentancur",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 13904
      },
      {
        "player_id": 13927,
        "name": "Guillermo Varela",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 12619
      },
      {
        "player_id": 8133,
        "name": "Matias Vecino",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 12338
      },
      {
        "player_id": 8071,
        "name": "Sebastian Coates",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 11990
      },
      {
        "player_id": 2075,
        "name": "Facundo Pellistri",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 11456
      },
      {
        "player_id": 13926,
        "name": "Diego Godin",
        "position": "RCB",
        "x": 47.6,
        "y": 40.0,
        "row": 3,
        "col": 3,
        "on_seconds": 9573
      }
    ],
    "pairs": [
      {
        "player_p": 2075,
        "player_q": 8009,
        "name_p": "Facundo Pellistri",
        "name_q": "Darwin Nunez",
        "value": 0.22953518434743536,
        "minutes_together": 162.56666666666666
      },
      {
        "player_p": 1545,
        "player_q": 7584,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Rodrigo Bentancur",
        "value": 0.13045461532069536,
        "minutes_together": 196.96666666666667
      },
      {
        "player_p": 1545,
        "player_q": 2075,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Facundo Pellistri",
        "value": 0.09390257368373511,
        "minutes_together": 166.65
      },
      {
        "player_p": 1545,
        "player_q": 1684,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Federico Valverde",
        "value": 0.08526953572466331,
        "minutes_together": 262.8666666666667
      },
      {
        "player_p": 1684,
        "player_q": 8009,
        "name_p": "Federico Valverde",
        "name_q": "Darwin Nunez",
        "value": 0.07231038720229689,
        "minutes_together": 249.2
      },
      {
        "player_p": 1368,
        "player_q": 1684,
        "name_p": "Jose Gimenez",
        "name_q": "Federico Valverde",
        "value": 0.06294613227405527,
        "minutes_together": 297.6333333333333
      },
      {
        "player_p": 1684,
        "player_q": 13927,
        "name_p": "Federico Valverde",
        "name_q": "Guillermo Varela",
        "value": 0.05143780651507659,
        "minutes_together": 210.31666666666666
      },
      {
        "player_p": 1684,
        "player_q": 8133,
        "name_p": "Federico Valverde",
        "name_q": "Matias Vecino",
        "value": 0.047280015289342225,
        "minutes_together": 205.63333333333333
      },
      {
        "player_p": 1684,
        "player_q": 2075,
        "name_p": "Federico Valverde",
        "name_q": "Facundo Pellistri",
        "value": 0.04330250908616069,
        "minutes_together": 190.93333333333334
      },
      {
        "player_p": 7584,
        "player_q": 8071,
        "name_p": "Rodrigo Bentancur",
        "name_q": "Sebastian Coates",
        "value": 0.04190387071325298,
        "minutes_together": 133.93333333333334
      },
      {
        "player_p": 8071,
        "player_q": 13927,
        "name_p": "Sebastian Coates",
        "name_q": "Guillermo Varela",
        "value": 0.039867199372684896,
        "minutes_together": 199.83333333333334
      },
      {
        "player_p": 1545,
        "player_q": 8071,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Sebastian Coates",
        "value": 0.03665243773231101,
        "minutes_together": 184.88333333333333
      },
      {
        "player_p": 1368,
        "player_q": 13926,
        "name_p": "Jose Gimenez",
        "name_q": "Diego Godin",
        "value": 0.036612146662207044,
        "minutes_together": 159.55
      },
      {
        "player_p": 1368,
        "player_q": 7584,
        "name_p": "Jose Gimenez",
        "name_q": "Rodrigo Bentancur",
        "value": 0.032457671778872925,
        "minutes_together": 231.73333333333335
      },
      {
        "player_p": 7584,
        "player_q": 13926,
        "name_p": "Rodrigo Bentancur",
        "name_q": "Diego Godin",
        "value": 0.03112597569304025,
        "minutes_together": 159.55
      },
      {
        "player_p": 1545,
        "player_q": 13926,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Diego Godin",
        "value": 0.028025603627842545,
        "minutes_together": 139.73333333333335
      },
      {
        "player_p": 8009,
        "player_q": 8133,
        "name_p": "Darwin Nunez",
        "name_q": "Matias Vecino",
        "value": 0.02712189285018144,
        "minutes_together": 185.56666666666666
      },
      {
        "player_p": 1545,
        "player_q": 8133,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Matias Vecino",
        "value": 0.026512275480933552,
        "minutes_together": 205.63333333333333
      },
      {
        "player_p": 1368,
        "player_q": 13927,
        "name_p": "Jose Gimenez",
        "name_q": "Guillermo Varela",
        "value": 0.02355847134676826,
        "minutes_together": 210.31666666666666
      },
      {
        "player_p": 7584,
        "player_q": 8133,
        "name_p": "Rodrigo Bentancur",
        "name_q": "Matias Vecino",
        "value": 0.020634536262971136,
        "minutes_together": 139.73333333333335
      },
      {
        "player_p": 1684,
        "player_q": 7584,
        "name_p": "Federico Valverde",
        "name_q": "Rodrigo Bentancur",
        "value": 0.019939627114951033,
        "minutes_together": 231.73333333333335
      },
      {
        "player_p": 8071,
        "player_q": 13926,
        "name_p": "Sebastian Coates",
        "name_q": "Diego Godin",
        "value": 0.01970040218493449,
        "minutes_together": 61.75
      },
      {
        "player_p": 1684,
        "player_q": 13924,
        "name_p": "Federico Valverde",
        "name_q": "Sergio Rochet",
        "value": 0.019425121953493954,
        "minutes_together": 297.6333333333333
      },
      {
        "player_p": 1545,
        "player_q": 8009,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Darwin Nunez",
        "value": 0.01862781081372461,
        "minutes_together": 229.38333333333333
      },
      {
        "player_p": 7584,
        "player_q": 13927,
        "name_p": "Rodrigo Bentancur",
        "name_q": "Guillermo Varela",
        "value": 0.01776094568217175,
        "minutes_together": 144.41666666666669
      },
      {
        "player_p": 8071,
        "player_q": 13924,
        "name_p": "Sebastian Coates",
        "name_q": "Sergio Rochet",
        "value": 0.016736893208118758,
        "minutes_together": 199.83333333333334
      },
      {
        "player_p": 8071,
        "player_q": 8133,
        "name_p": "Sebastian Coates",
        "name_q": "Matias Vecino",
        "value": 0.015670559182674883,
        "minutes_together": 127.66666666666667
      },
      {
        "player_p": 7584,
        "player_q": 13924,
        "name_p": "Rodrigo Bentancur",
        "name_q": "Sergio Rochet",
        "value": 0.011591352803315058,
        "minutes_together": 231.73333333333335
      },
      {
        "player_p": 1684,
        "player_q": 13926,
        "name_p": "Federico Valverde",
        "name_q": "Diego Godin",
        "value": 0.011016587209628817,
        "minutes_together": 159.55
      },
      {
        "player_p": 8009,
        "player_q": 13927,
        "name_p": "Darwin Nunez",
        "name_q": "Guillermo Varela",
        "value": 0.00948009939637836,
        "minutes_together": 161.88333333333333
      },
      {
        "player_p": 2075,
        "player_q": 8133,
        "name_p": "Facundo Pellistri",
        "name_q": "Matias Vecino",
        "value": 0.008939422875734166,
        "minutes_together": 109.41666666666667
      },
      {
        "player_p": 2075,
        "player_q": 8071,
        "name_p": "Facundo Pellistri",
        "name_q": "Sebastian Coates",
        "value": 0.00885695146394273,
        "minutes_together": 103.61666666666667
      },
      {
        "player_p": 1684,
        "player_q": 8071,
        "name_p": "Federico Valverde",
        "name_q": "Sebastian Coates",
        "value": 0.008668093915834459,
        "minutes_together": 199.83333333333334
      },
      {
        "player_p": 1368,
        "player_q": 1545,
        "name_p": "Jose Gimenez",
        "name_q": "Math\u00ed\u00adas Olivera",
        "value": 0.0067751666880861905,
        "minutes_together": 262.8666666666667
      },
      {
        "player_p": 1368,
        "player_q": 8009,
        "name_p": "Jose Gimenez",
        "name_q": "Darwin Nunez",
        "value": 0.006353807762906627,
        "minutes_together": 249.2
      },
      {
        "player_p": 1368,
        "player_q": 2075,
        "name_p": "Jose Gimenez",
        "name_q": "Facundo Pellistri",
        "value": 0.006045923623889925,
        "minutes_together": 190.93333333333334
      },
      {
        "player_p": 8009,
        "player_q": 13924,
        "name_p": "Darwin Nunez",
        "name_q": "Sergio Rochet",
        "value": 0.004642621859231672,
        "minutes_together": 249.2
      },
      {
        "player_p": 1368,
        "player_q": 13924,
        "name_p": "Jose Gimenez",
        "name_q": "Sergio Rochet",
        "value": 0.0031922377651378234,
        "minutes_together": 297.6333333333333
      },
      {
        "player_p": 13926,
        "player_q": 13927,
        "name_p": "Diego Godin",
        "name_q": "Guillermo Varela",
        "value": 0.0004656575973563553,
        "minutes_together": 72.23333333333333
      },
      {
        "player_p": 8133,
        "player_q": 13924,
        "name_p": "Matias Vecino",
        "name_q": "Sergio Rochet",
        "value": -0.0014798712845017679,
        "minutes_together": 205.63333333333333
      },
      {
        "player_p": 13924,
        "player_q": 13927,
        "name_p": "Sergio Rochet",
        "name_q": "Guillermo Varela",
        "value": -0.0038080263921801906,
        "minutes_together": 210.31666666666666
      },
      {
        "player_p": 2075,
        "player_q": 7584,
        "name_p": "Facundo Pellistri",
        "name_q": "Rodrigo Bentancur",
        "value": -0.004595901439671421,
        "minutes_together": 159.5
      },
      {
        "player_p": 8133,
        "player_q": 13926,
        "name_p": "Matias Vecino",
        "name_q": "Diego Godin",
        "value": -0.005946155168137611,
        "minutes_together": 139.71666666666667
      },
      {
        "player_p": 2075,
        "player_q": 13926,
        "name_p": "Facundo Pellistri",
        "name_q": "Diego Godin",
        "value": -0.014416989372783124,
        "minutes_together": 87.31666666666666
      },
      {
        "player_p": 8133,
        "player_q": 13927,
        "name_p": "Matias Vecino",
        "name_q": "Guillermo Varela",
        "value": -0.016899128354486898,
        "minutes_together": 127.66666666666667
      },
      {
        "player_p": 1368,
        "player_q": 8133,
        "name_p": "Jose Gimenez",
        "name_q": "Matias Vecino",
        "value": -0.019224762609782727,
        "minutes_together": 205.63333333333333
      },
      {
        "player_p": 13924,
        "player_q": 13926,
        "name_p": "Sergio Rochet",
        "name_q": "Diego Godin",
        "value": -0.031594861122674,
        "minutes_together": 159.55
      },
      {
        "player_p": 7584,
        "player_q": 8009,
        "name_p": "Rodrigo Bentancur",
        "name_q": "Darwin Nunez",
        "value": -0.047240149091581383,
        "minutes_together": 203.36666666666667
      },
      {
        "player_p": 1368,
        "player_q": 8071,
        "name_p": "Jose Gimenez",
        "name_q": "Sebastian Coates",
        "value": -0.05068851118586024,
        "minutes_together": 199.83333333333334
      },
      {
        "player_p": 2075,
        "player_q": 13927,
        "name_p": "Facundo Pellistri",
        "name_q": "Guillermo Varela",
        "value": -0.11253158433082476,
        "minutes_together": 103.61666666666667
      }
    ],
    "path": "assets/figures/team_369_joi90.png"
  },
  {
    "team_id": "369",
    "team_name": "Uruguay",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_369_jdi90.png",
    "n_pairs": 55,
    "median": 0.06223097366784606,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 13924,
        "name": "Sergio Rochet",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17858
      },
      {
        "player_id": 1684,
        "name": "Federico Valverde",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17858
      },
      {
        "player_id": 1368,
        "name": "Jose Gimenez",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17858
      },
      {
        "player_id": 1545,
        "name": "Math\u00ed\u00adas Olivera",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 15772
      },
      {
        "player_id": 8009,
        "name": "Darwin Nunez",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 14952
      },
      {
        "player_id": 7584,
        "name": "Rodrigo Bentancur",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 13904
      },
      {
        "player_id": 13927,
        "name": "Guillermo Varela",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 12619
      },
      {
        "player_id": 8133,
        "name": "Matias Vecino",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 12338
      },
      {
        "player_id": 8071,
        "name": "Sebastian Coates",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 11990
      },
      {
        "player_id": 2075,
        "name": "Facundo Pellistri",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 11456
      },
      {
        "player_id": 13926,
        "name": "Diego Godin",
        "position": "RCB",
        "x": 47.6,
        "y": 40.0,
        "row": 3,
        "col": 3,
        "on_seconds": 9573
      }
    ],
    "pairs": [
      {
        "player_p": 8071,
        "player_q": 13926,
        "name_p": "Sebastian Coates",
        "name_q": "Diego Godin",
        "value": 0.19717521429206042,
        "minutes_together": 61.75
      },
      {
        "player_p": 13926,
        "player_q": 13927,
        "name_p": "Diego Godin",
        "name_q": "Guillermo Varela",
        "value": 0.1558386104197561,
        "minutes_together": 72.23333333333333
      },
      {
        "player_p": 8133,
        "player_q": 13926,
        "name_p": "Matias Vecino",
        "name_q": "Diego Godin",
        "value": 0.13253651080590598,
        "minutes_together": 139.71666666666667
      },
      {
        "player_p": 1684,
        "player_q": 13926,
        "name_p": "Federico Valverde",
        "name_q": "Diego Godin",
        "value": 0.12243509171464168,
        "minutes_together": 159.55
      },
      {
        "player_p": 7584,
        "player_q": 13926,
        "name_p": "Rodrigo Bentancur",
        "name_q": "Diego Godin",
        "value": 0.12243509171464168,
        "minutes_together": 159.55
      },
      {
        "player_p": 1368,
        "player_q": 13926,
        "name_p": "Jose Gimenez",
        "name_q": "Diego Godin",
        "value": 0.12084655853925093,
        "minutes_together": 159.55
      },
      {
        "player_p": 13924,
        "player_q": 13926,
        "name_p": "Sergio Rochet",
        "name_q": "Diego Godin",
        "value": 0.11880810209104106,
        "minutes_together": 159.55
      },
      {
        "player_p": 1545,
        "player_q": 13926,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Diego Godin",
        "value": 0.11738194945902057,
        "minutes_together": 139.73333333333335
      },
      {
        "player_p": 2075,
        "player_q": 13926,
        "name_p": "Facundo Pellistri",
        "name_q": "Diego Godin",
        "value": 0.11077923491698233,
        "minutes_together": 87.31666666666666
      },
      {
        "player_p": 8009,
        "player_q": 13926,
        "name_p": "Darwin Nunez",
        "name_q": "Diego Godin",
        "value": 0.10456044530593385,
        "minutes_together": 159.55
      },
      {
        "player_p": 7584,
        "player_q": 8133,
        "name_p": "Rodrigo Bentancur",
        "name_q": "Matias Vecino",
        "value": 0.09531103683956783,
        "minutes_together": 139.73333333333335
      },
      {
        "player_p": 2075,
        "player_q": 8133,
        "name_p": "Facundo Pellistri",
        "name_q": "Matias Vecino",
        "value": 0.08996530266521226,
        "minutes_together": 109.41666666666667
      },
      {
        "player_p": 2075,
        "player_q": 7584,
        "name_p": "Facundo Pellistri",
        "name_q": "Rodrigo Bentancur",
        "value": 0.08436369240794937,
        "minutes_together": 159.5
      },
      {
        "player_p": 1684,
        "player_q": 7584,
        "name_p": "Federico Valverde",
        "name_q": "Rodrigo Bentancur",
        "value": 0.07726987317143412,
        "minutes_together": 231.73333333333335
      },
      {
        "player_p": 1368,
        "player_q": 7584,
        "name_p": "Jose Gimenez",
        "name_q": "Rodrigo Bentancur",
        "value": 0.07689618913132401,
        "minutes_together": 231.73333333333335
      },
      {
        "player_p": 7584,
        "player_q": 8071,
        "name_p": "Rodrigo Bentancur",
        "name_q": "Sebastian Coates",
        "value": 0.07503378393127626,
        "minutes_together": 133.93333333333334
      },
      {
        "player_p": 7584,
        "player_q": 13924,
        "name_p": "Rodrigo Bentancur",
        "name_q": "Sergio Rochet",
        "value": 0.07459543478349295,
        "minutes_together": 231.73333333333335
      },
      {
        "player_p": 1684,
        "player_q": 2075,
        "name_p": "Federico Valverde",
        "name_q": "Facundo Pellistri",
        "value": 0.07328538929214154,
        "minutes_together": 190.93333333333334
      },
      {
        "player_p": 1368,
        "player_q": 2075,
        "name_p": "Jose Gimenez",
        "name_q": "Facundo Pellistri",
        "value": 0.07040883638762142,
        "minutes_together": 190.93333333333334
      },
      {
        "player_p": 1368,
        "player_q": 8133,
        "name_p": "Jose Gimenez",
        "name_q": "Matias Vecino",
        "value": 0.07039697752973606,
        "minutes_together": 205.63333333333333
      },
      {
        "player_p": 1684,
        "player_q": 8133,
        "name_p": "Federico Valverde",
        "name_q": "Matias Vecino",
        "value": 0.07008161320068071,
        "minutes_together": 205.63333333333333
      },
      {
        "player_p": 1545,
        "player_q": 7584,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Rodrigo Bentancur",
        "value": 0.06871852413257767,
        "minutes_together": 196.96666666666667
      },
      {
        "player_p": 8133,
        "player_q": 13924,
        "name_p": "Matias Vecino",
        "name_q": "Sergio Rochet",
        "value": 0.06784945880183839,
        "minutes_together": 205.63333333333333
      },
      {
        "player_p": 2075,
        "player_q": 8009,
        "name_p": "Facundo Pellistri",
        "name_q": "Darwin Nunez",
        "value": 0.06762646089551277,
        "minutes_together": 162.56666666666666
      },
      {
        "player_p": 2075,
        "player_q": 13924,
        "name_p": "Facundo Pellistri",
        "name_q": "Sergio Rochet",
        "value": 0.06754875657513325,
        "minutes_together": 190.93333333333334
      },
      {
        "player_p": 7584,
        "player_q": 8009,
        "name_p": "Rodrigo Bentancur",
        "name_q": "Darwin Nunez",
        "value": 0.06417296597485461,
        "minutes_together": 203.36666666666667
      },
      {
        "player_p": 1368,
        "player_q": 1684,
        "name_p": "Jose Gimenez",
        "name_q": "Federico Valverde",
        "value": 0.06391392700604011,
        "minutes_together": 297.6333333333333
      },
      {
        "player_p": 8009,
        "player_q": 8133,
        "name_p": "Darwin Nunez",
        "name_q": "Matias Vecino",
        "value": 0.06223097366784606,
        "minutes_together": 185.56666666666666
      },
      {
        "player_p": 1545,
        "player_q": 2075,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Facundo Pellistri",
        "value": 0.0619196331832066,
        "minutes_together": 166.65
      },
      {
        "player_p": 1368,
        "player_q": 13924,
        "name_p": "Jose Gimenez",
        "name_q": "Sergio Rochet",
        "value": 0.061495340234357786,
        "minutes_together": 297.6333333333333
      },
      {
        "player_p": 1684,
        "player_q": 13924,
        "name_p": "Federico Valverde",
        "name_q": "Sergio Rochet",
        "value": 0.06141496275137079,
        "minutes_together": 297.6333333333333
      },
      {
        "player_p": 7584,
        "player_q": 13927,
        "name_p": "Rodrigo Bentancur",
        "name_q": "Guillermo Varela",
        "value": 0.06094003613268645,
        "minutes_together": 144.41666666666669
      },
      {
        "player_p": 1368,
        "player_q": 8071,
        "name_p": "Jose Gimenez",
        "name_q": "Sebastian Coates",
        "value": 0.05976343653578542,
        "minutes_together": 199.83333333333334
      },
      {
        "player_p": 8071,
        "player_q": 8133,
        "name_p": "Sebastian Coates",
        "name_q": "Matias Vecino",
        "value": 0.05965229164837714,
        "minutes_together": 127.66666666666667
      },
      {
        "player_p": 1545,
        "player_q": 8133,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Matias Vecino",
        "value": 0.05864379676725729,
        "minutes_together": 205.63333333333333
      },
      {
        "player_p": 8071,
        "player_q": 13924,
        "name_p": "Sebastian Coates",
        "name_q": "Sergio Rochet",
        "value": 0.05719764149471317,
        "minutes_together": 199.83333333333334
      },
      {
        "player_p": 1684,
        "player_q": 8009,
        "name_p": "Federico Valverde",
        "name_q": "Darwin Nunez",
        "value": 0.05563920489972357,
        "minutes_together": 249.2
      },
      {
        "player_p": 1684,
        "player_q": 8071,
        "name_p": "Federico Valverde",
        "name_q": "Sebastian Coates",
        "value": 0.05552898475969391,
        "minutes_together": 199.83333333333334
      },
      {
        "player_p": 1368,
        "player_q": 1545,
        "name_p": "Jose Gimenez",
        "name_q": "Math\u00ed\u00adas Olivera",
        "value": 0.05552646794997496,
        "minutes_together": 262.8666666666667
      },
      {
        "player_p": 1368,
        "player_q": 8009,
        "name_p": "Jose Gimenez",
        "name_q": "Darwin Nunez",
        "value": 0.05500694770175044,
        "minutes_together": 249.2
      },
      {
        "player_p": 1545,
        "player_q": 1684,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Federico Valverde",
        "value": 0.05475175195364063,
        "minutes_together": 262.8666666666667
      },
      {
        "player_p": 1545,
        "player_q": 13924,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Sergio Rochet",
        "value": 0.052822716023670696,
        "minutes_together": 262.8666666666667
      },
      {
        "player_p": 8009,
        "player_q": 13924,
        "name_p": "Darwin Nunez",
        "name_q": "Sergio Rochet",
        "value": 0.05245158725537903,
        "minutes_together": 249.2
      },
      {
        "player_p": 1368,
        "player_q": 13927,
        "name_p": "Jose Gimenez",
        "name_q": "Guillermo Varela",
        "value": 0.050643975030828736,
        "minutes_together": 210.31666666666666
      },
      {
        "player_p": 8071,
        "player_q": 13927,
        "name_p": "Sebastian Coates",
        "name_q": "Guillermo Varela",
        "value": 0.050168468188443095,
        "minutes_together": 199.83333333333334
      },
      {
        "player_p": 8133,
        "player_q": 13927,
        "name_p": "Matias Vecino",
        "name_q": "Guillermo Varela",
        "value": 0.04958021946422749,
        "minutes_together": 127.66666666666667
      },
      {
        "player_p": 1545,
        "player_q": 8071,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Sebastian Coates",
        "value": 0.04927113545320667,
        "minutes_together": 184.88333333333333
      },
      {
        "player_p": 13924,
        "player_q": 13927,
        "name_p": "Sergio Rochet",
        "name_q": "Guillermo Varela",
        "value": 0.04817586396857547,
        "minutes_together": 210.31666666666666
      },
      {
        "player_p": 1684,
        "player_q": 13927,
        "name_p": "Federico Valverde",
        "name_q": "Guillermo Varela",
        "value": 0.047142407361991705,
        "minutes_together": 210.31666666666666
      },
      {
        "player_p": 8009,
        "player_q": 8071,
        "name_p": "Darwin Nunez",
        "name_q": "Sebastian Coates",
        "value": 0.04682997501308276,
        "minutes_together": 151.4
      },
      {
        "player_p": 1545,
        "player_q": 8009,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Darwin Nunez",
        "value": 0.044627679113186595,
        "minutes_together": 229.38333333333333
      },
      {
        "player_p": 1545,
        "player_q": 13927,
        "name_p": "Math\u00ed\u00adas Olivera",
        "name_q": "Guillermo Varela",
        "value": 0.040485945247194045,
        "minutes_together": 184.88333333333333
      },
      {
        "player_p": 8009,
        "player_q": 13927,
        "name_p": "Darwin Nunez",
        "name_q": "Guillermo Varela",
        "value": 0.03768032809864561,
        "minutes_together": 161.88333333333333
      },
      {
        "player_p": 2075,
        "player_q": 8071,
        "name_p": "Facundo Pellistri",
        "name_q": "Sebastian Coates",
        "value": 0.036462842176810534,
        "minutes_together": 103.61666666666667
      },
      {
        "player_p": 2075,
        "player_q": 13927,
        "name_p": "Facundo Pellistri",
        "name_q": "Guillermo Varela",
        "value": 0.03354564915479338,
        "minutes_together": 103.61666666666667
      }
    ],
    "path": "assets/figures/team_369_jdi90.png"
  },
  {
    "team_id": "370",
    "team_name": "Switzerland",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_370_joi90.png",
    "n_pairs": 51,
    "median": 0.03154948528783236,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 157,
        "name": "Granit Xhaka",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 23197
      },
      {
        "player_id": 4661,
        "name": "Manuel Akanji",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 23197
      },
      {
        "player_id": 12960,
        "name": "Ricardo Rodriguez",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 22812
      },
      {
        "player_id": 8328,
        "name": "Remo Freuler",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 20780
      },
      {
        "player_id": 4717,
        "name": "Breel Embolo",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 19827
      },
      {
        "player_id": 4566,
        "name": "Rub\u00e9n Vargas",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 17241
      },
      {
        "player_id": 4691,
        "name": "Yann Sommer",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17179
      },
      {
        "player_id": 5029,
        "name": "Silvan Widmer",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 16919
      },
      {
        "player_id": 4732,
        "name": "Djibril Sow",
        "position": "AM",
        "x": 20.4,
        "y": 75.0,
        "row": 1,
        "col": 1,
        "on_seconds": 16065
      },
      {
        "player_id": 57,
        "name": "Xherdan Shaqiri",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 13990
      },
      {
        "player_id": 4695,
        "name": "Nico Elvedi",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 11534
      }
    ],
    "pairs": [
      {
        "player_p": 157,
        "player_q": 4717,
        "name_p": "Granit Xhaka",
        "name_q": "Breel Embolo",
        "value": 0.471121549190101,
        "minutes_together": 330.45
      },
      {
        "player_p": 57,
        "player_q": 4717,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Breel Embolo",
        "value": 0.42853235974458487,
        "minutes_together": 227.46666666666667
      },
      {
        "player_p": 57,
        "player_q": 4732,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Djibril Sow",
        "value": 0.404609903965873,
        "minutes_together": 192.66666666666669
      },
      {
        "player_p": 4717,
        "player_q": 5029,
        "name_p": "Breel Embolo",
        "name_q": "Silvan Widmer",
        "value": 0.3396795417749976,
        "minutes_together": 242.06666666666666
      },
      {
        "player_p": 4717,
        "player_q": 4732,
        "name_p": "Breel Embolo",
        "name_q": "Djibril Sow",
        "value": 0.33808700471585584,
        "minutes_together": 267.75
      },
      {
        "player_p": 4661,
        "player_q": 4732,
        "name_p": "Manuel Akanji",
        "name_q": "Djibril Sow",
        "value": 0.3350071604801108,
        "minutes_together": 267.75
      },
      {
        "player_p": 4566,
        "player_q": 8328,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Remo Freuler",
        "value": 0.2926895937910951,
        "minutes_together": 275.41666666666663
      },
      {
        "player_p": 4661,
        "player_q": 4717,
        "name_p": "Manuel Akanji",
        "name_q": "Breel Embolo",
        "value": 0.24019342714056657,
        "minutes_together": 330.45
      },
      {
        "player_p": 4566,
        "player_q": 12960,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Ricardo Rodriguez",
        "value": 0.14632979753652775,
        "minutes_together": 287.35
      },
      {
        "player_p": 4732,
        "player_q": 5029,
        "name_p": "Djibril Sow",
        "name_q": "Silvan Widmer",
        "value": 0.13955151576821118,
        "minutes_together": 213.85
      },
      {
        "player_p": 57,
        "player_q": 8328,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Remo Freuler",
        "value": 0.1348604399180621,
        "minutes_together": 192.88333333333333
      },
      {
        "player_p": 57,
        "player_q": 157,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Granit Xhaka",
        "value": 0.09093242177233139,
        "minutes_together": 233.16666666666666
      },
      {
        "player_p": 4691,
        "player_q": 4695,
        "name_p": "Yann Sommer",
        "name_q": "Nico Elvedi",
        "value": 0.08125587897721138,
        "minutes_together": 192.23333333333335
      },
      {
        "player_p": 157,
        "player_q": 4566,
        "name_p": "Granit Xhaka",
        "name_q": "Rub\u00e9n Vargas",
        "value": 0.06924414144734356,
        "minutes_together": 287.35
      },
      {
        "player_p": 4661,
        "player_q": 4691,
        "name_p": "Manuel Akanji",
        "name_q": "Yann Sommer",
        "value": 0.05296077376474556,
        "minutes_together": 286.31666666666666
      },
      {
        "player_p": 4691,
        "player_q": 5029,
        "name_p": "Yann Sommer",
        "name_q": "Silvan Widmer",
        "value": 0.05041973457007941,
        "minutes_together": 181.68333333333334
      },
      {
        "player_p": 4695,
        "player_q": 12960,
        "name_p": "Nico Elvedi",
        "name_q": "Ricardo Rodriguez",
        "value": 0.0480366575783715,
        "minutes_together": 185.81666666666666
      },
      {
        "player_p": 4695,
        "player_q": 4717,
        "name_p": "Nico Elvedi",
        "name_q": "Breel Embolo",
        "value": 0.04772536643913582,
        "minutes_together": 146.66666666666666
      },
      {
        "player_p": 157,
        "player_q": 12960,
        "name_p": "Granit Xhaka",
        "name_q": "Ricardo Rodriguez",
        "value": 0.046618659305418364,
        "minutes_together": 380.2
      },
      {
        "player_p": 4566,
        "player_q": 5029,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Silvan Widmer",
        "value": 0.04537523515724356,
        "minutes_together": 221.61666666666667
      },
      {
        "player_p": 157,
        "player_q": 5029,
        "name_p": "Granit Xhaka",
        "name_q": "Silvan Widmer",
        "value": 0.04446022949098085,
        "minutes_together": 281.98333333333335
      },
      {
        "player_p": 4661,
        "player_q": 12960,
        "name_p": "Manuel Akanji",
        "name_q": "Ricardo Rodriguez",
        "value": 0.03724945723649124,
        "minutes_together": 380.2
      },
      {
        "player_p": 4661,
        "player_q": 4695,
        "name_p": "Manuel Akanji",
        "name_q": "Nico Elvedi",
        "value": 0.036226535135306305,
        "minutes_together": 192.23333333333335
      },
      {
        "player_p": 4717,
        "player_q": 8328,
        "name_p": "Breel Embolo",
        "name_q": "Remo Freuler",
        "value": 0.03212418394517048,
        "minutes_together": 295.8666666666667
      },
      {
        "player_p": 157,
        "player_q": 4732,
        "name_p": "Granit Xhaka",
        "name_q": "Djibril Sow",
        "value": 0.031550580643064444,
        "minutes_together": 267.75
      },
      {
        "player_p": 57,
        "player_q": 4566,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Rub\u00e9n Vargas",
        "value": 0.03154948528783236,
        "minutes_together": 204.81666666666666
      },
      {
        "player_p": 157,
        "player_q": 4695,
        "name_p": "Granit Xhaka",
        "name_q": "Nico Elvedi",
        "value": 0.03154918888585527,
        "minutes_together": 192.23333333333335
      },
      {
        "player_p": 4691,
        "player_q": 12960,
        "name_p": "Yann Sommer",
        "name_q": "Ricardo Rodriguez",
        "value": 0.02514494292840261,
        "minutes_together": 279.9
      },
      {
        "player_p": 57,
        "player_q": 4695,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Nico Elvedi",
        "value": 0.02324848534913313,
        "minutes_together": 71.05
      },
      {
        "player_p": 4566,
        "player_q": 4732,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Djibril Sow",
        "value": 0.022051864243260146,
        "minutes_together": 250.86666666666667
      },
      {
        "player_p": 57,
        "player_q": 12960,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Ricardo Rodriguez",
        "value": 0.02097087651695149,
        "minutes_together": 233.16666666666666
      },
      {
        "player_p": 4732,
        "player_q": 12960,
        "name_p": "Djibril Sow",
        "name_q": "Ricardo Rodriguez",
        "value": 0.02096691399272597,
        "minutes_together": 267.75
      },
      {
        "player_p": 4566,
        "player_q": 4717,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Breel Embolo",
        "value": 0.017457117468518753,
        "minutes_together": 278.1
      },
      {
        "player_p": 4732,
        "player_q": 8328,
        "name_p": "Djibril Sow",
        "name_q": "Remo Freuler",
        "value": 0.011224964033486773,
        "minutes_together": 267.65
      },
      {
        "player_p": 4661,
        "player_q": 5029,
        "name_p": "Manuel Akanji",
        "name_q": "Silvan Widmer",
        "value": 0.008816725732903957,
        "minutes_together": 281.98333333333335
      },
      {
        "player_p": 4691,
        "player_q": 4732,
        "name_p": "Yann Sommer",
        "name_q": "Djibril Sow",
        "value": 0.008497731932812676,
        "minutes_together": 199.91666666666669
      },
      {
        "player_p": 57,
        "player_q": 4661,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Manuel Akanji",
        "value": 0.008296486841675516,
        "minutes_together": 233.16666666666666
      },
      {
        "player_p": 4695,
        "player_q": 5029,
        "name_p": "Nico Elvedi",
        "name_q": "Silvan Widmer",
        "value": 0.008090068723594959,
        "minutes_together": 181.68333333333334
      },
      {
        "player_p": 157,
        "player_q": 8328,
        "name_p": "Granit Xhaka",
        "name_q": "Remo Freuler",
        "value": 0.006330046579917559,
        "minutes_together": 346.3333333333333
      },
      {
        "player_p": 4695,
        "player_q": 8328,
        "name_p": "Nico Elvedi",
        "name_q": "Remo Freuler",
        "value": 0.005883721600971932,
        "minutes_together": 192.23333333333335
      },
      {
        "player_p": 4717,
        "player_q": 12960,
        "name_p": "Breel Embolo",
        "name_q": "Ricardo Rodriguez",
        "value": 0.004629076788203066,
        "minutes_together": 330.45
      },
      {
        "player_p": 4661,
        "player_q": 8328,
        "name_p": "Manuel Akanji",
        "name_q": "Remo Freuler",
        "value": 0.004405790465248604,
        "minutes_together": 346.3333333333333
      },
      {
        "player_p": 5029,
        "player_q": 8328,
        "name_p": "Silvan Widmer",
        "name_q": "Remo Freuler",
        "value": 0.0037109730912906103,
        "minutes_together": 281.98333333333335
      },
      {
        "player_p": 8328,
        "player_q": 12960,
        "name_p": "Remo Freuler",
        "name_q": "Ricardo Rodriguez",
        "value": 0.003491370629612745,
        "minutes_together": 339.9166666666667
      },
      {
        "player_p": 157,
        "player_q": 4691,
        "name_p": "Granit Xhaka",
        "name_q": "Yann Sommer",
        "value": 0.0004308109173390303,
        "minutes_together": 286.31666666666666
      },
      {
        "player_p": 4691,
        "player_q": 8328,
        "name_p": "Yann Sommer",
        "name_q": "Remo Freuler",
        "value": -0.004714315256263671,
        "minutes_together": 246.03333333333333
      },
      {
        "player_p": 157,
        "player_q": 4661,
        "name_p": "Granit Xhaka",
        "name_q": "Manuel Akanji",
        "value": -0.004938877251158187,
        "minutes_together": 386.6166666666667
      },
      {
        "player_p": 4566,
        "player_q": 4695,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Nico Elvedi",
        "value": -0.005336114733971442,
        "minutes_together": 138.78333333333333
      },
      {
        "player_p": 4695,
        "player_q": 4732,
        "name_p": "Nico Elvedi",
        "name_q": "Djibril Sow",
        "value": -0.011181181431338868,
        "minutes_together": 146.01666666666665
      },
      {
        "player_p": 4566,
        "player_q": 4661,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Manuel Akanji",
        "value": -0.01577924752682216,
        "minutes_together": 287.35
      },
      {
        "player_p": 57,
        "player_q": 5029,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Silvan Widmer",
        "value": -0.051296288989457754,
        "minutes_together": 139.08333333333331
      }
    ],
    "path": "assets/figures/team_370_joi90.png"
  },
  {
    "team_id": "370",
    "team_name": "Switzerland",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_370_jdi90.png",
    "n_pairs": 55,
    "median": -0.023629971358868625,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 157,
        "name": "Granit Xhaka",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 23197
      },
      {
        "player_id": 4661,
        "name": "Manuel Akanji",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 23197
      },
      {
        "player_id": 12960,
        "name": "Ricardo Rodriguez",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 22812
      },
      {
        "player_id": 8328,
        "name": "Remo Freuler",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 20780
      },
      {
        "player_id": 4717,
        "name": "Breel Embolo",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 19827
      },
      {
        "player_id": 4566,
        "name": "Rub\u00e9n Vargas",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 17241
      },
      {
        "player_id": 4691,
        "name": "Yann Sommer",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17179
      },
      {
        "player_id": 5029,
        "name": "Silvan Widmer",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 16919
      },
      {
        "player_id": 4732,
        "name": "Djibril Sow",
        "position": "AM",
        "x": 20.4,
        "y": 75.0,
        "row": 1,
        "col": 1,
        "on_seconds": 16065
      },
      {
        "player_id": 57,
        "name": "Xherdan Shaqiri",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 13990
      },
      {
        "player_id": 4695,
        "name": "Nico Elvedi",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 11534
      }
    ],
    "pairs": [
      {
        "player_p": 4566,
        "player_q": 4695,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Nico Elvedi",
        "value": 0.04207494102585735,
        "minutes_together": 138.78333333333333
      },
      {
        "player_p": 57,
        "player_q": 4695,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Nico Elvedi",
        "value": 0.024329222870484522,
        "minutes_together": 71.05
      },
      {
        "player_p": 4695,
        "player_q": 12960,
        "name_p": "Nico Elvedi",
        "name_q": "Ricardo Rodriguez",
        "value": 0.017768378193141674,
        "minutes_together": 185.81666666666666
      },
      {
        "player_p": 4661,
        "player_q": 4695,
        "name_p": "Manuel Akanji",
        "name_q": "Nico Elvedi",
        "value": 0.017382520580233634,
        "minutes_together": 192.23333333333335
      },
      {
        "player_p": 4695,
        "player_q": 4732,
        "name_p": "Nico Elvedi",
        "name_q": "Djibril Sow",
        "value": 0.01633823565588558,
        "minutes_together": 146.01666666666665
      },
      {
        "player_p": 4695,
        "player_q": 5029,
        "name_p": "Nico Elvedi",
        "name_q": "Silvan Widmer",
        "value": 0.015791299148173305,
        "minutes_together": 181.68333333333334
      },
      {
        "player_p": 4691,
        "player_q": 4695,
        "name_p": "Yann Sommer",
        "name_q": "Nico Elvedi",
        "value": 0.015534538151324932,
        "minutes_together": 192.23333333333335
      },
      {
        "player_p": 4695,
        "player_q": 4717,
        "name_p": "Nico Elvedi",
        "name_q": "Breel Embolo",
        "value": 0.015113016896352555,
        "minutes_together": 146.66666666666666
      },
      {
        "player_p": 4691,
        "player_q": 5029,
        "name_p": "Yann Sommer",
        "name_q": "Silvan Widmer",
        "value": 0.012070026617716887,
        "minutes_together": 181.68333333333334
      },
      {
        "player_p": 4566,
        "player_q": 5029,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Silvan Widmer",
        "value": 0.009942342504931874,
        "minutes_together": 221.61666666666667
      },
      {
        "player_p": 4695,
        "player_q": 8328,
        "name_p": "Nico Elvedi",
        "name_q": "Remo Freuler",
        "value": 0.00648885189442691,
        "minutes_together": 192.23333333333335
      },
      {
        "player_p": 157,
        "player_q": 4695,
        "name_p": "Granit Xhaka",
        "name_q": "Nico Elvedi",
        "value": 0.00648885189442691,
        "minutes_together": 192.23333333333335
      },
      {
        "player_p": 4717,
        "player_q": 5029,
        "name_p": "Breel Embolo",
        "name_q": "Silvan Widmer",
        "value": -0.0008382635363769099,
        "minutes_together": 242.06666666666666
      },
      {
        "player_p": 4732,
        "player_q": 5029,
        "name_p": "Djibril Sow",
        "name_q": "Silvan Widmer",
        "value": -0.004421805100841431,
        "minutes_together": 213.85
      },
      {
        "player_p": 4566,
        "player_q": 4691,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Yann Sommer",
        "value": -0.00701881974112644,
        "minutes_together": 204.51666666666665
      },
      {
        "player_p": 5029,
        "player_q": 12960,
        "name_p": "Silvan Widmer",
        "name_q": "Ricardo Rodriguez",
        "value": -0.00800218255738935,
        "minutes_together": 275.56666666666666
      },
      {
        "player_p": 157,
        "player_q": 5029,
        "name_p": "Granit Xhaka",
        "name_q": "Silvan Widmer",
        "value": -0.00871951705692963,
        "minutes_together": 281.98333333333335
      },
      {
        "player_p": 5029,
        "player_q": 8328,
        "name_p": "Silvan Widmer",
        "name_q": "Remo Freuler",
        "value": -0.00871951705692963,
        "minutes_together": 281.98333333333335
      },
      {
        "player_p": 4566,
        "player_q": 4717,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Breel Embolo",
        "value": -0.011442689550705853,
        "minutes_together": 278.1
      },
      {
        "player_p": 57,
        "player_q": 5029,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Silvan Widmer",
        "value": -0.013869423816557706,
        "minutes_together": 139.08333333333331
      },
      {
        "player_p": 4661,
        "player_q": 5029,
        "name_p": "Manuel Akanji",
        "name_q": "Silvan Widmer",
        "value": -0.015315960165204288,
        "minutes_together": 281.98333333333335
      },
      {
        "player_p": 4566,
        "player_q": 12960,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Ricardo Rodriguez",
        "value": -0.01543137201982929,
        "minutes_together": 287.35
      },
      {
        "player_p": 157,
        "player_q": 4566,
        "name_p": "Granit Xhaka",
        "name_q": "Rub\u00e9n Vargas",
        "value": -0.01673570941361354,
        "minutes_together": 287.35
      },
      {
        "player_p": 4566,
        "player_q": 8328,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Remo Freuler",
        "value": -0.017314238820750092,
        "minutes_together": 275.41666666666663
      },
      {
        "player_p": 4566,
        "player_q": 4732,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Djibril Sow",
        "value": -0.017381649464274788,
        "minutes_together": 250.86666666666667
      },
      {
        "player_p": 4691,
        "player_q": 12960,
        "name_p": "Yann Sommer",
        "name_q": "Ricardo Rodriguez",
        "value": -0.023226864821350807,
        "minutes_together": 279.9
      },
      {
        "player_p": 4566,
        "player_q": 4661,
        "name_p": "Rub\u00e9n Vargas",
        "name_q": "Manuel Akanji",
        "value": -0.023275555478088666,
        "minutes_together": 287.35
      },
      {
        "player_p": 4661,
        "player_q": 4691,
        "name_p": "Manuel Akanji",
        "name_q": "Yann Sommer",
        "value": -0.023629971358868625,
        "minutes_together": 286.31666666666666
      },
      {
        "player_p": 57,
        "player_q": 4566,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Rub\u00e9n Vargas",
        "value": -0.027994821106202238,
        "minutes_together": 204.81666666666666
      },
      {
        "player_p": 4717,
        "player_q": 4732,
        "name_p": "Breel Embolo",
        "name_q": "Djibril Sow",
        "value": -0.029634573804613613,
        "minutes_together": 267.75
      },
      {
        "player_p": 4717,
        "player_q": 8328,
        "name_p": "Breel Embolo",
        "name_q": "Remo Freuler",
        "value": -0.030392478825439533,
        "minutes_together": 295.8666666666667
      },
      {
        "player_p": 4717,
        "player_q": 12960,
        "name_p": "Breel Embolo",
        "name_q": "Ricardo Rodriguez",
        "value": -0.03094596050866919,
        "minutes_together": 330.45
      },
      {
        "player_p": 4691,
        "player_q": 8328,
        "name_p": "Yann Sommer",
        "name_q": "Remo Freuler",
        "value": -0.03182618725564983,
        "minutes_together": 246.03333333333333
      },
      {
        "player_p": 4691,
        "player_q": 4732,
        "name_p": "Yann Sommer",
        "name_q": "Djibril Sow",
        "value": -0.03277701951182188,
        "minutes_together": 199.91666666666669
      },
      {
        "player_p": 8328,
        "player_q": 12960,
        "name_p": "Remo Freuler",
        "name_q": "Ricardo Rodriguez",
        "value": -0.03285856977638154,
        "minutes_together": 339.9166666666667
      },
      {
        "player_p": 157,
        "player_q": 4691,
        "name_p": "Granit Xhaka",
        "name_q": "Yann Sommer",
        "value": -0.03415888755341558,
        "minutes_together": 286.31666666666666
      },
      {
        "player_p": 4732,
        "player_q": 12960,
        "name_p": "Djibril Sow",
        "name_q": "Ricardo Rodriguez",
        "value": -0.034335406007459955,
        "minutes_together": 267.75
      },
      {
        "player_p": 157,
        "player_q": 4717,
        "name_p": "Granit Xhaka",
        "name_q": "Breel Embolo",
        "value": -0.03461937005666668,
        "minutes_together": 330.45
      },
      {
        "player_p": 4691,
        "player_q": 4717,
        "name_p": "Yann Sommer",
        "name_q": "Breel Embolo",
        "value": -0.03511340229842466,
        "minutes_together": 235.05
      },
      {
        "player_p": 157,
        "player_q": 12960,
        "name_p": "Granit Xhaka",
        "name_q": "Ricardo Rodriguez",
        "value": -0.035169128168005756,
        "minutes_together": 380.2
      },
      {
        "player_p": 157,
        "player_q": 8328,
        "name_p": "Granit Xhaka",
        "name_q": "Remo Freuler",
        "value": -0.03635382754027612,
        "minutes_together": 346.3333333333333
      },
      {
        "player_p": 4661,
        "player_q": 12960,
        "name_p": "Manuel Akanji",
        "name_q": "Ricardo Rodriguez",
        "value": -0.036544866239564835,
        "minutes_together": 380.2
      },
      {
        "player_p": 4661,
        "player_q": 4717,
        "name_p": "Manuel Akanji",
        "name_q": "Breel Embolo",
        "value": -0.038159854569872476,
        "minutes_together": 330.45
      },
      {
        "player_p": 157,
        "player_q": 4732,
        "name_p": "Granit Xhaka",
        "name_q": "Djibril Sow",
        "value": -0.03834202612901967,
        "minutes_together": 267.75
      },
      {
        "player_p": 4661,
        "player_q": 8328,
        "name_p": "Manuel Akanji",
        "name_q": "Remo Freuler",
        "value": -0.038779745400462425,
        "minutes_together": 346.3333333333333
      },
      {
        "player_p": 157,
        "player_q": 4661,
        "name_p": "Granit Xhaka",
        "name_q": "Manuel Akanji",
        "value": -0.040763799472719686,
        "minutes_together": 386.6166666666667
      },
      {
        "player_p": 4661,
        "player_q": 4732,
        "name_p": "Manuel Akanji",
        "name_q": "Djibril Sow",
        "value": -0.04191439688730081,
        "minutes_together": 267.75
      },
      {
        "player_p": 4732,
        "player_q": 8328,
        "name_p": "Djibril Sow",
        "name_q": "Remo Freuler",
        "value": -0.043610767919690846,
        "minutes_together": 267.65
      },
      {
        "player_p": 57,
        "player_q": 4732,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Djibril Sow",
        "value": -0.04460421416722347,
        "minutes_together": 192.66666666666669
      },
      {
        "player_p": 57,
        "player_q": 8328,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Remo Freuler",
        "value": -0.044903707870593175,
        "minutes_together": 192.88333333333333
      },
      {
        "player_p": 57,
        "player_q": 4717,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Breel Embolo",
        "value": -0.0457394497919351,
        "minutes_together": 227.46666666666667
      },
      {
        "player_p": 57,
        "player_q": 157,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Granit Xhaka",
        "value": -0.05011307666803885,
        "minutes_together": 233.16666666666666
      },
      {
        "player_p": 57,
        "player_q": 12960,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Ricardo Rodriguez",
        "value": -0.05446125485040808,
        "minutes_together": 233.16666666666666
      },
      {
        "player_p": 57,
        "player_q": 4691,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Yann Sommer",
        "value": -0.05650386325566533,
        "minutes_together": 165.13333333333333
      },
      {
        "player_p": 57,
        "player_q": 4661,
        "name_p": "Xherdan Shaqiri",
        "name_q": "Manuel Akanji",
        "value": -0.06502539272212489,
        "minutes_together": 233.16666666666666
      }
    ],
    "path": "assets/figures/team_370_jdi90.png"
  },
  {
    "team_id": "371",
    "team_name": "Croatia",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_371_joi90.png",
    "n_pairs": 55,
    "median": 0.02202443966560518,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 13854,
        "name": "Dominik Livakovic",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 39429
      },
      {
        "player_id": 4892,
        "name": "Josko Gvardiol",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 39429
      },
      {
        "player_id": 8136,
        "name": "Ivan Perisic",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 38395
      },
      {
        "player_id": 1687,
        "name": "Luka Modric",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 37928
      },
      {
        "player_id": 100,
        "name": "Mateo Kovacic",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 37618
      },
      {
        "player_id": 40,
        "name": "Dejan Lovren",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 33661
      },
      {
        "player_id": 13858,
        "name": "Josip Juranovic",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 33661
      },
      {
        "player_id": 8129,
        "name": "Marcelo Brozovic",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 30941
      },
      {
        "player_id": 4883,
        "name": "Andrej Kramaric",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 28671
      },
      {
        "player_id": 4926,
        "name": "Borna Sosa",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 25590
      },
      {
        "player_id": 8330,
        "name": "Mario Pasalic",
        "position": "AM",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 15836
      }
    ],
    "pairs": [
      {
        "player_p": 4883,
        "player_q": 8136,
        "name_p": "Andrej Kramaric",
        "name_q": "Ivan Perisic",
        "value": 0.384609936230189,
        "minutes_together": 477.85
      },
      {
        "player_p": 4883,
        "player_q": 8129,
        "name_p": "Andrej Kramaric",
        "name_q": "Marcelo Brozovic",
        "value": 0.2594055350944394,
        "minutes_together": 394.98333333333335
      },
      {
        "player_p": 40,
        "player_q": 4883,
        "name_p": "Dejan Lovren",
        "name_q": "Andrej Kramaric",
        "value": 0.22176499897511578,
        "minutes_together": 417.05
      },
      {
        "player_p": 1687,
        "player_q": 4883,
        "name_p": "Luka Modric",
        "name_q": "Andrej Kramaric",
        "value": 0.19730426390063893,
        "minutes_together": 477.85
      },
      {
        "player_p": 40,
        "player_q": 8136,
        "name_p": "Dejan Lovren",
        "name_q": "Ivan Perisic",
        "value": 0.15838281301487223,
        "minutes_together": 543.7833333333333
      },
      {
        "player_p": 4892,
        "player_q": 8136,
        "name_p": "Josko Gvardiol",
        "name_q": "Ivan Perisic",
        "value": 0.14672146112834009,
        "minutes_together": 639.9166666666666
      },
      {
        "player_p": 1687,
        "player_q": 13858,
        "name_p": "Luka Modric",
        "name_q": "Josip Juranovic",
        "value": 0.11584882232337353,
        "minutes_together": 536.0
      },
      {
        "player_p": 100,
        "player_q": 8136,
        "name_p": "Mateo Kovacic",
        "name_q": "Ivan Perisic",
        "value": 0.09922263978444543,
        "minutes_together": 626.5
      },
      {
        "player_p": 8129,
        "player_q": 8136,
        "name_p": "Marcelo Brozovic",
        "name_q": "Ivan Perisic",
        "value": 0.06832073252536493,
        "minutes_together": 498.45
      },
      {
        "player_p": 4883,
        "player_q": 8330,
        "name_p": "Andrej Kramaric",
        "name_q": "Mario Pasalic",
        "value": 0.06623600972301816,
        "minutes_together": 144.5
      },
      {
        "player_p": 4926,
        "player_q": 8129,
        "name_p": "Borna Sosa",
        "name_q": "Marcelo Brozovic",
        "value": 0.0637424137252976,
        "minutes_together": 425.68333333333334
      },
      {
        "player_p": 40,
        "player_q": 4892,
        "name_p": "Dejan Lovren",
        "name_q": "Josko Gvardiol",
        "value": 0.06290415612258551,
        "minutes_together": 561.0166666666667
      },
      {
        "player_p": 40,
        "player_q": 13854,
        "name_p": "Dejan Lovren",
        "name_q": "Dominik Livakovic",
        "value": 0.05188323601611474,
        "minutes_together": 561.0166666666667
      },
      {
        "player_p": 4926,
        "player_q": 8136,
        "name_p": "Borna Sosa",
        "name_q": "Ivan Perisic",
        "value": 0.05046982686276889,
        "minutes_together": 409.26666666666665
      },
      {
        "player_p": 100,
        "player_q": 4883,
        "name_p": "Mateo Kovacic",
        "name_q": "Andrej Kramaric",
        "value": 0.049370397871425206,
        "minutes_together": 477.85
      },
      {
        "player_p": 1687,
        "player_q": 8129,
        "name_p": "Luka Modric",
        "name_q": "Marcelo Brozovic",
        "value": 0.048696302817314796,
        "minutes_together": 505.03333333333336
      },
      {
        "player_p": 100,
        "player_q": 4926,
        "name_p": "Mateo Kovacic",
        "name_q": "Borna Sosa",
        "value": 0.04809316355503588,
        "minutes_together": 396.31666666666666
      },
      {
        "player_p": 1687,
        "player_q": 8330,
        "name_p": "Luka Modric",
        "name_q": "Mario Pasalic",
        "value": 0.042632718119509354,
        "minutes_together": 253.28333333333333
      },
      {
        "player_p": 40,
        "player_q": 1687,
        "name_p": "Dejan Lovren",
        "name_q": "Luka Modric",
        "value": 0.039309930363878746,
        "minutes_together": 536.0
      },
      {
        "player_p": 4892,
        "player_q": 4926,
        "name_p": "Josko Gvardiol",
        "name_q": "Borna Sosa",
        "value": 0.03543559653368719,
        "minutes_together": 426.5
      },
      {
        "player_p": 4883,
        "player_q": 13858,
        "name_p": "Andrej Kramaric",
        "name_q": "Josip Juranovic",
        "value": 0.03426781733870513,
        "minutes_together": 417.05
      },
      {
        "player_p": 4892,
        "player_q": 13854,
        "name_p": "Josko Gvardiol",
        "name_q": "Dominik Livakovic",
        "value": 0.03329083802887773,
        "minutes_together": 657.15
      },
      {
        "player_p": 4892,
        "player_q": 8129,
        "name_p": "Josko Gvardiol",
        "name_q": "Marcelo Brozovic",
        "value": 0.033220412280125365,
        "minutes_together": 515.6833333333334
      },
      {
        "player_p": 100,
        "player_q": 8129,
        "name_p": "Mateo Kovacic",
        "name_q": "Marcelo Brozovic",
        "value": 0.03144637437629216,
        "minutes_together": 485.5
      },
      {
        "player_p": 100,
        "player_q": 1687,
        "name_p": "Mateo Kovacic",
        "name_q": "Luka Modric",
        "value": 0.03083234452168786,
        "minutes_together": 611.9833333333333
      },
      {
        "player_p": 100,
        "player_q": 4892,
        "name_p": "Mateo Kovacic",
        "name_q": "Josko Gvardiol",
        "value": 0.02903292492621667,
        "minutes_together": 626.9666666666667
      },
      {
        "player_p": 8129,
        "player_q": 8330,
        "name_p": "Marcelo Brozovic",
        "name_q": "Mario Pasalic",
        "value": 0.02873579869493941,
        "minutes_together": 233.01666666666665
      },
      {
        "player_p": 40,
        "player_q": 8330,
        "name_p": "Dejan Lovren",
        "name_q": "Mario Pasalic",
        "value": 0.02202443966560518,
        "minutes_together": 233.83333333333331
      },
      {
        "player_p": 100,
        "player_q": 8330,
        "name_p": "Mateo Kovacic",
        "name_q": "Mario Pasalic",
        "value": 0.019527403479334373,
        "minutes_together": 233.75
      },
      {
        "player_p": 4883,
        "player_q": 4892,
        "name_p": "Andrej Kramaric",
        "name_q": "Josko Gvardiol",
        "value": 0.018645643229500408,
        "minutes_together": 477.85
      },
      {
        "player_p": 40,
        "player_q": 8129,
        "name_p": "Dejan Lovren",
        "name_q": "Marcelo Brozovic",
        "value": 0.018374485565733633,
        "minutes_together": 515.6833333333334
      },
      {
        "player_p": 40,
        "player_q": 4926,
        "name_p": "Dejan Lovren",
        "name_q": "Borna Sosa",
        "value": 0.018111330464924146,
        "minutes_together": 426.5
      },
      {
        "player_p": 8129,
        "player_q": 13858,
        "name_p": "Marcelo Brozovic",
        "name_q": "Josip Juranovic",
        "value": 0.017594015797037132,
        "minutes_together": 515.6833333333334
      },
      {
        "player_p": 40,
        "player_q": 100,
        "name_p": "Dejan Lovren",
        "name_q": "Mateo Kovacic",
        "value": 0.01603735960884064,
        "minutes_together": 530.8333333333334
      },
      {
        "player_p": 1687,
        "player_q": 8136,
        "name_p": "Luka Modric",
        "name_q": "Ivan Perisic",
        "value": 0.015121715598785421,
        "minutes_together": 625.4
      },
      {
        "player_p": 4926,
        "player_q": 13854,
        "name_p": "Borna Sosa",
        "name_q": "Dominik Livakovic",
        "value": 0.012153742611689588,
        "minutes_together": 426.5
      },
      {
        "player_p": 8129,
        "player_q": 13854,
        "name_p": "Marcelo Brozovic",
        "name_q": "Dominik Livakovic",
        "value": 0.011909425648399643,
        "minutes_together": 515.6833333333334
      },
      {
        "player_p": 8330,
        "player_q": 13858,
        "name_p": "Mario Pasalic",
        "name_q": "Josip Juranovic",
        "value": 0.0110356537117746,
        "minutes_together": 233.83333333333331
      },
      {
        "player_p": 1687,
        "player_q": 4926,
        "name_p": "Luka Modric",
        "name_q": "Borna Sosa",
        "value": 0.00865964243397222,
        "minutes_together": 415.85
      },
      {
        "player_p": 1687,
        "player_q": 13854,
        "name_p": "Luka Modric",
        "name_q": "Dominik Livakovic",
        "value": 0.008538590412646398,
        "minutes_together": 632.1333333333333
      },
      {
        "player_p": 8330,
        "player_q": 13854,
        "name_p": "Mario Pasalic",
        "name_q": "Dominik Livakovic",
        "value": 0.008452344483233742,
        "minutes_together": 263.93333333333334
      },
      {
        "player_p": 8136,
        "player_q": 13854,
        "name_p": "Ivan Perisic",
        "name_q": "Dominik Livakovic",
        "value": 0.008007146292437957,
        "minutes_together": 639.9166666666666
      },
      {
        "player_p": 100,
        "player_q": 13854,
        "name_p": "Mateo Kovacic",
        "name_q": "Dominik Livakovic",
        "value": 0.0073602024602272545,
        "minutes_together": 626.9666666666667
      },
      {
        "player_p": 1687,
        "player_q": 4892,
        "name_p": "Luka Modric",
        "name_q": "Josko Gvardiol",
        "value": 0.0063187928677884315,
        "minutes_together": 632.1333333333333
      },
      {
        "player_p": 4892,
        "player_q": 13858,
        "name_p": "Josko Gvardiol",
        "name_q": "Josip Juranovic",
        "value": 0.004872925600177189,
        "minutes_together": 561.0166666666667
      },
      {
        "player_p": 4892,
        "player_q": 8330,
        "name_p": "Josko Gvardiol",
        "name_q": "Mario Pasalic",
        "value": 0.004739623021274474,
        "minutes_together": 263.93333333333334
      },
      {
        "player_p": 13854,
        "player_q": 13858,
        "name_p": "Dominik Livakovic",
        "name_q": "Josip Juranovic",
        "value": 0.004394588236845283,
        "minutes_together": 561.0166666666667
      },
      {
        "player_p": 4926,
        "player_q": 13858,
        "name_p": "Borna Sosa",
        "name_q": "Josip Juranovic",
        "value": 0.0042924618308725045,
        "minutes_together": 426.5
      },
      {
        "player_p": 4926,
        "player_q": 8330,
        "name_p": "Borna Sosa",
        "name_q": "Mario Pasalic",
        "value": 0.002341907125870985,
        "minutes_together": 211.66666666666666
      },
      {
        "player_p": 100,
        "player_q": 13858,
        "name_p": "Mateo Kovacic",
        "name_q": "Josip Juranovic",
        "value": 5.72708206393644e-05,
        "minutes_together": 530.8333333333334
      },
      {
        "player_p": 8136,
        "player_q": 13858,
        "name_p": "Ivan Perisic",
        "name_q": "Josip Juranovic",
        "value": -0.00017391572169649956,
        "minutes_together": 543.7833333333333
      },
      {
        "player_p": 40,
        "player_q": 13858,
        "name_p": "Dejan Lovren",
        "name_q": "Josip Juranovic",
        "value": -0.00033077288637280107,
        "minutes_together": 561.0166666666667
      },
      {
        "player_p": 8136,
        "player_q": 8330,
        "name_p": "Ivan Perisic",
        "name_q": "Mario Pasalic",
        "value": -0.0025450796173186385,
        "minutes_together": 246.7
      },
      {
        "player_p": 4883,
        "player_q": 13854,
        "name_p": "Andrej Kramaric",
        "name_q": "Dominik Livakovic",
        "value": -0.0025925718497104735,
        "minutes_together": 477.85
      },
      {
        "player_p": 4883,
        "player_q": 4926,
        "name_p": "Andrej Kramaric",
        "name_q": "Borna Sosa",
        "value": -0.006764301171038463,
        "minutes_together": 327.9666666666667
      }
    ],
    "path": "assets/figures/team_371_joi90.png"
  },
  {
    "team_id": "371",
    "team_name": "Croatia",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_371_jdi90.png",
    "n_pairs": 55,
    "median": 0.017400042015481967,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 13854,
        "name": "Dominik Livakovic",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 39429
      },
      {
        "player_id": 4892,
        "name": "Josko Gvardiol",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 39429
      },
      {
        "player_id": 8136,
        "name": "Ivan Perisic",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 38395
      },
      {
        "player_id": 1687,
        "name": "Luka Modric",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 37928
      },
      {
        "player_id": 100,
        "name": "Mateo Kovacic",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 37618
      },
      {
        "player_id": 40,
        "name": "Dejan Lovren",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 33661
      },
      {
        "player_id": 13858,
        "name": "Josip Juranovic",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 33661
      },
      {
        "player_id": 8129,
        "name": "Marcelo Brozovic",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 30941
      },
      {
        "player_id": 4883,
        "name": "Andrej Kramaric",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 28671
      },
      {
        "player_id": 4926,
        "name": "Borna Sosa",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 25590
      },
      {
        "player_id": 8330,
        "name": "Mario Pasalic",
        "position": "AM",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 15836
      }
    ],
    "pairs": [
      {
        "player_p": 4883,
        "player_q": 8330,
        "name_p": "Andrej Kramaric",
        "name_q": "Mario Pasalic",
        "value": 0.047737780633440925,
        "minutes_together": 144.5
      },
      {
        "player_p": 8129,
        "player_q": 8330,
        "name_p": "Marcelo Brozovic",
        "name_q": "Mario Pasalic",
        "value": 0.04603808638161404,
        "minutes_together": 233.01666666666665
      },
      {
        "player_p": 8136,
        "player_q": 8330,
        "name_p": "Ivan Perisic",
        "name_q": "Mario Pasalic",
        "value": 0.04350378011018627,
        "minutes_together": 246.7
      },
      {
        "player_p": 1687,
        "player_q": 8330,
        "name_p": "Luka Modric",
        "name_q": "Mario Pasalic",
        "value": 0.0426471488155702,
        "minutes_together": 253.28333333333333
      },
      {
        "player_p": 100,
        "player_q": 8330,
        "name_p": "Mateo Kovacic",
        "name_q": "Mario Pasalic",
        "value": 0.04157769057842767,
        "minutes_together": 233.75
      },
      {
        "player_p": 40,
        "player_q": 8330,
        "name_p": "Dejan Lovren",
        "name_q": "Mario Pasalic",
        "value": 0.0375940126859766,
        "minutes_together": 233.83333333333331
      },
      {
        "player_p": 4892,
        "player_q": 8330,
        "name_p": "Josko Gvardiol",
        "name_q": "Mario Pasalic",
        "value": 0.03602638716203912,
        "minutes_together": 263.93333333333334
      },
      {
        "player_p": 4926,
        "player_q": 8330,
        "name_p": "Borna Sosa",
        "name_q": "Mario Pasalic",
        "value": 0.0359922209598029,
        "minutes_together": 211.66666666666666
      },
      {
        "player_p": 8330,
        "player_q": 13854,
        "name_p": "Mario Pasalic",
        "name_q": "Dominik Livakovic",
        "value": 0.03294679656467252,
        "minutes_together": 263.93333333333334
      },
      {
        "player_p": 8330,
        "player_q": 13858,
        "name_p": "Mario Pasalic",
        "name_q": "Josip Juranovic",
        "value": 0.032003018450452204,
        "minutes_together": 233.83333333333331
      },
      {
        "player_p": 1687,
        "player_q": 4926,
        "name_p": "Luka Modric",
        "name_q": "Borna Sosa",
        "value": 0.030355377029395593,
        "minutes_together": 415.85
      },
      {
        "player_p": 100,
        "player_q": 4926,
        "name_p": "Mateo Kovacic",
        "name_q": "Borna Sosa",
        "value": 0.029339555576461767,
        "minutes_together": 396.31666666666666
      },
      {
        "player_p": 4926,
        "player_q": 8129,
        "name_p": "Borna Sosa",
        "name_q": "Marcelo Brozovic",
        "value": 0.028462343732388196,
        "minutes_together": 425.68333333333334
      },
      {
        "player_p": 4883,
        "player_q": 8136,
        "name_p": "Andrej Kramaric",
        "name_q": "Ivan Perisic",
        "value": 0.024622001520983525,
        "minutes_together": 477.85
      },
      {
        "player_p": 8129,
        "player_q": 8136,
        "name_p": "Marcelo Brozovic",
        "name_q": "Ivan Perisic",
        "value": 0.024454934116290718,
        "minutes_together": 498.45
      },
      {
        "player_p": 40,
        "player_q": 8136,
        "name_p": "Dejan Lovren",
        "name_q": "Ivan Perisic",
        "value": 0.02344405384331401,
        "minutes_together": 543.7833333333333
      },
      {
        "player_p": 4926,
        "player_q": 8136,
        "name_p": "Borna Sosa",
        "name_q": "Ivan Perisic",
        "value": 0.023264805759971745,
        "minutes_together": 409.26666666666665
      },
      {
        "player_p": 4892,
        "player_q": 8136,
        "name_p": "Josko Gvardiol",
        "name_q": "Ivan Perisic",
        "value": 0.02318963684173624,
        "minutes_together": 639.9166666666666
      },
      {
        "player_p": 8136,
        "player_q": 13858,
        "name_p": "Ivan Perisic",
        "name_q": "Josip Juranovic",
        "value": 0.021988762955625848,
        "minutes_together": 543.7833333333333
      },
      {
        "player_p": 8136,
        "player_q": 13854,
        "name_p": "Ivan Perisic",
        "name_q": "Dominik Livakovic",
        "value": 0.020935625045761914,
        "minutes_together": 639.9166666666666
      },
      {
        "player_p": 1687,
        "player_q": 8129,
        "name_p": "Luka Modric",
        "name_q": "Marcelo Brozovic",
        "value": 0.01939105016823285,
        "minutes_together": 505.03333333333336
      },
      {
        "player_p": 4883,
        "player_q": 8129,
        "name_p": "Andrej Kramaric",
        "name_q": "Marcelo Brozovic",
        "value": 0.019035633243118213,
        "minutes_together": 394.98333333333335
      },
      {
        "player_p": 40,
        "player_q": 100,
        "name_p": "Dejan Lovren",
        "name_q": "Mateo Kovacic",
        "value": 0.018944088415496597,
        "minutes_together": 530.8333333333334
      },
      {
        "player_p": 100,
        "player_q": 8136,
        "name_p": "Mateo Kovacic",
        "name_q": "Ivan Perisic",
        "value": 0.018853485701818773,
        "minutes_together": 626.5
      },
      {
        "player_p": 1687,
        "player_q": 8136,
        "name_p": "Luka Modric",
        "name_q": "Ivan Perisic",
        "value": 0.018733999335215704,
        "minutes_together": 625.4
      },
      {
        "player_p": 40,
        "player_q": 1687,
        "name_p": "Dejan Lovren",
        "name_q": "Luka Modric",
        "value": 0.01866572204609236,
        "minutes_together": 536.0
      },
      {
        "player_p": 100,
        "player_q": 13858,
        "name_p": "Mateo Kovacic",
        "name_q": "Josip Juranovic",
        "value": 0.01760939845959825,
        "minutes_together": 530.8333333333334
      },
      {
        "player_p": 100,
        "player_q": 8129,
        "name_p": "Mateo Kovacic",
        "name_q": "Marcelo Brozovic",
        "value": 0.017400042015481967,
        "minutes_together": 485.5
      },
      {
        "player_p": 1687,
        "player_q": 13858,
        "name_p": "Luka Modric",
        "name_q": "Josip Juranovic",
        "value": 0.017399662835784542,
        "minutes_together": 536.0
      },
      {
        "player_p": 4892,
        "player_q": 4926,
        "name_p": "Josko Gvardiol",
        "name_q": "Borna Sosa",
        "value": 0.016488443237425838,
        "minutes_together": 426.5
      },
      {
        "player_p": 40,
        "player_q": 4926,
        "name_p": "Dejan Lovren",
        "name_q": "Borna Sosa",
        "value": 0.01592179221179918,
        "minutes_together": 426.5
      },
      {
        "player_p": 4883,
        "player_q": 4926,
        "name_p": "Andrej Kramaric",
        "name_q": "Borna Sosa",
        "value": 0.01582465967709826,
        "minutes_together": 327.9666666666667
      },
      {
        "player_p": 4883,
        "player_q": 4892,
        "name_p": "Andrej Kramaric",
        "name_q": "Josko Gvardiol",
        "value": 0.01566214712583059,
        "minutes_together": 477.85
      },
      {
        "player_p": 4926,
        "player_q": 13854,
        "name_p": "Borna Sosa",
        "name_q": "Dominik Livakovic",
        "value": 0.015640498082618484,
        "minutes_together": 426.5
      },
      {
        "player_p": 4892,
        "player_q": 8129,
        "name_p": "Josko Gvardiol",
        "name_q": "Marcelo Brozovic",
        "value": 0.015521373344212386,
        "minutes_together": 515.6833333333334
      },
      {
        "player_p": 40,
        "player_q": 4883,
        "name_p": "Dejan Lovren",
        "name_q": "Andrej Kramaric",
        "value": 0.015348639334985073,
        "minutes_together": 417.05
      },
      {
        "player_p": 4883,
        "player_q": 13858,
        "name_p": "Andrej Kramaric",
        "name_q": "Josip Juranovic",
        "value": 0.015028907523337364,
        "minutes_together": 417.05
      },
      {
        "player_p": 40,
        "player_q": 8129,
        "name_p": "Dejan Lovren",
        "name_q": "Marcelo Brozovic",
        "value": 0.014972026115755125,
        "minutes_together": 515.6833333333334
      },
      {
        "player_p": 40,
        "player_q": 4892,
        "name_p": "Dejan Lovren",
        "name_q": "Josko Gvardiol",
        "value": 0.014415037168987468,
        "minutes_together": 561.0166666666667
      },
      {
        "player_p": 100,
        "player_q": 4883,
        "name_p": "Mateo Kovacic",
        "name_q": "Andrej Kramaric",
        "value": 0.014343542321209036,
        "minutes_together": 477.85
      },
      {
        "player_p": 1687,
        "player_q": 4883,
        "name_p": "Luka Modric",
        "name_q": "Andrej Kramaric",
        "value": 0.014343542321209036,
        "minutes_together": 477.85
      },
      {
        "player_p": 8129,
        "player_q": 13854,
        "name_p": "Marcelo Brozovic",
        "name_q": "Dominik Livakovic",
        "value": 0.014181372425585004,
        "minutes_together": 515.6833333333334
      },
      {
        "player_p": 8129,
        "player_q": 13858,
        "name_p": "Marcelo Brozovic",
        "name_q": "Josip Juranovic",
        "value": 0.013826175321066989,
        "minutes_together": 515.6833333333334
      },
      {
        "player_p": 4926,
        "player_q": 13858,
        "name_p": "Borna Sosa",
        "name_q": "Josip Juranovic",
        "value": 0.01357676508195956,
        "minutes_together": 426.5
      },
      {
        "player_p": 4883,
        "player_q": 13854,
        "name_p": "Andrej Kramaric",
        "name_q": "Dominik Livakovic",
        "value": 0.013527441398220593,
        "minutes_together": 477.85
      },
      {
        "player_p": 4892,
        "player_q": 13858,
        "name_p": "Josko Gvardiol",
        "name_q": "Josip Juranovic",
        "value": 0.013181422819092231,
        "minutes_together": 561.0166666666667
      },
      {
        "player_p": 40,
        "player_q": 13858,
        "name_p": "Dejan Lovren",
        "name_q": "Josip Juranovic",
        "value": 0.012741473602618611,
        "minutes_together": 561.0166666666667
      },
      {
        "player_p": 40,
        "player_q": 13854,
        "name_p": "Dejan Lovren",
        "name_q": "Dominik Livakovic",
        "value": 0.012642754051577405,
        "minutes_together": 561.0166666666667
      },
      {
        "player_p": 4892,
        "player_q": 13854,
        "name_p": "Josko Gvardiol",
        "name_q": "Dominik Livakovic",
        "value": 0.012427839362933478,
        "minutes_together": 657.15
      },
      {
        "player_p": 100,
        "player_q": 4892,
        "name_p": "Mateo Kovacic",
        "name_q": "Josko Gvardiol",
        "value": 0.011413392868920087,
        "minutes_together": 626.9666666666667
      },
      {
        "player_p": 13854,
        "player_q": 13858,
        "name_p": "Dominik Livakovic",
        "name_q": "Josip Juranovic",
        "value": 0.011409139701682168,
        "minutes_together": 561.0166666666667
      },
      {
        "player_p": 1687,
        "player_q": 4892,
        "name_p": "Luka Modric",
        "name_q": "Josko Gvardiol",
        "value": 0.011303861709525315,
        "minutes_together": 632.1333333333333
      },
      {
        "player_p": 100,
        "player_q": 13854,
        "name_p": "Mateo Kovacic",
        "name_q": "Dominik Livakovic",
        "value": 0.00919358883010211,
        "minutes_together": 626.9666666666667
      },
      {
        "player_p": 1687,
        "player_q": 13854,
        "name_p": "Luka Modric",
        "name_q": "Dominik Livakovic",
        "value": 0.009103167269584574,
        "minutes_together": 632.1333333333333
      },
      {
        "player_p": 100,
        "player_q": 1687,
        "name_p": "Mateo Kovacic",
        "name_q": "Luka Modric",
        "value": 0.00592754435242187,
        "minutes_together": 611.9833333333333
      }
    ],
    "path": "assets/figures/team_371_jdi90.png"
  },
  {
    "team_id": "372",
    "team_name": "Senegal",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_372_joi90.png",
    "n_pairs": 51,
    "median": 0.013022443376286413,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 9993,
        "name": "Kalidou Koulibaly",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 23233
      },
      {
        "player_id": 13228,
        "name": "Youssouf Sabaly",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 23233
      },
      {
        "player_id": 2059,
        "name": "Edouard Mendy",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 23233
      },
      {
        "player_id": 428,
        "name": "Isma\u00efla Sarr",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 21911
      },
      {
        "player_id": 3848,
        "name": "Abdou Diallo",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 20920
      },
      {
        "player_id": 7988,
        "name": "Boulaye Dia",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 19788
      },
      {
        "player_id": 3895,
        "name": "Ismail Jakobs",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 17787
      },
      {
        "player_id": 214,
        "name": "Nampalys Mendy",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17659
      },
      {
        "player_id": 3858,
        "name": "Idrissa Gueye",
        "position": "AM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 17582
      },
      {
        "player_id": 3903,
        "name": "Kr\u00e9pin Diatta",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 11150
      },
      {
        "player_id": 3978,
        "name": "Pape Gueye",
        "position": "DM",
        "x": 34.0,
        "y": 40.0,
        "row": 3,
        "col": 2,
        "on_seconds": 10149
      }
    ],
    "pairs": [
      {
        "player_p": 3848,
        "player_q": 7988,
        "name_p": "Abdou Diallo",
        "name_q": "Boulaye Dia",
        "value": 0.20696618416687484,
        "minutes_together": 323.26666666666665
      },
      {
        "player_p": 428,
        "player_q": 3858,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Idrissa Gueye",
        "value": 0.09479509624268104,
        "minutes_together": 271.0
      },
      {
        "player_p": 3978,
        "player_q": 13228,
        "name_p": "Pape Gueye",
        "name_q": "Youssouf Sabaly",
        "value": 0.08276387132850768,
        "minutes_together": 169.15
      },
      {
        "player_p": 3903,
        "player_q": 13228,
        "name_p": "Kr\u00e9pin Diatta",
        "name_q": "Youssouf Sabaly",
        "value": 0.07390059387058757,
        "minutes_together": 185.83333333333334
      },
      {
        "player_p": 9993,
        "player_q": 13228,
        "name_p": "Kalidou Koulibaly",
        "name_q": "Youssouf Sabaly",
        "value": 0.058525105579997204,
        "minutes_together": 387.2166666666667
      },
      {
        "player_p": 214,
        "player_q": 3978,
        "name_p": "Nampalys Mendy",
        "name_q": "Pape Gueye",
        "value": 0.05350082508780093,
        "minutes_together": 95.33333333333333
      },
      {
        "player_p": 428,
        "player_q": 13228,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Youssouf Sabaly",
        "value": 0.04665553167238266,
        "minutes_together": 365.18333333333334
      },
      {
        "player_p": 3858,
        "player_q": 3895,
        "name_p": "Idrissa Gueye",
        "name_q": "Ismail Jakobs",
        "value": 0.04422974264066043,
        "minutes_together": 212.43333333333334
      },
      {
        "player_p": 3895,
        "player_q": 3978,
        "name_p": "Ismail Jakobs",
        "name_q": "Pape Gueye",
        "value": 0.040065638356548985,
        "minutes_together": 158.98333333333335
      },
      {
        "player_p": 3858,
        "player_q": 3903,
        "name_p": "Idrissa Gueye",
        "name_q": "Kr\u00e9pin Diatta",
        "value": 0.039873740545663755,
        "minutes_together": 136.93333333333334
      },
      {
        "player_p": 214,
        "player_q": 3848,
        "name_p": "Nampalys Mendy",
        "name_q": "Abdou Diallo",
        "value": 0.03869410965489676,
        "minutes_together": 255.76666666666668
      },
      {
        "player_p": 3858,
        "player_q": 13228,
        "name_p": "Idrissa Gueye",
        "name_q": "Youssouf Sabaly",
        "value": 0.036867310060861844,
        "minutes_together": 293.0333333333333
      },
      {
        "player_p": 214,
        "player_q": 13228,
        "name_p": "Nampalys Mendy",
        "name_q": "Youssouf Sabaly",
        "value": 0.03125934649066732,
        "minutes_together": 294.31666666666666
      },
      {
        "player_p": 3848,
        "player_q": 3903,
        "name_p": "Abdou Diallo",
        "name_q": "Kr\u00e9pin Diatta",
        "value": 0.029756123592047826,
        "minutes_together": 174.15
      },
      {
        "player_p": 428,
        "player_q": 9993,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Kalidou Koulibaly",
        "value": 0.027806327091685266,
        "minutes_together": 365.18333333333334
      },
      {
        "player_p": 3895,
        "player_q": 7988,
        "name_p": "Ismail Jakobs",
        "name_q": "Boulaye Dia",
        "value": 0.025713404211949776,
        "minutes_together": 249.2
      },
      {
        "player_p": 3903,
        "player_q": 7988,
        "name_p": "Kr\u00e9pin Diatta",
        "name_q": "Boulaye Dia",
        "value": 0.024008112211698705,
        "minutes_together": 180.68333333333334
      },
      {
        "player_p": 428,
        "player_q": 3978,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Pape Gueye",
        "value": 0.02384688723473193,
        "minutes_together": 169.15
      },
      {
        "player_p": 3858,
        "player_q": 9993,
        "name_p": "Idrissa Gueye",
        "name_q": "Kalidou Koulibaly",
        "value": 0.022560546233252057,
        "minutes_together": 293.0333333333333
      },
      {
        "player_p": 7988,
        "player_q": 13228,
        "name_p": "Boulaye Dia",
        "name_q": "Youssouf Sabaly",
        "value": 0.021939511466305496,
        "minutes_together": 329.8
      },
      {
        "player_p": 3895,
        "player_q": 3903,
        "name_p": "Ismail Jakobs",
        "name_q": "Kr\u00e9pin Diatta",
        "value": 0.020446560304993935,
        "minutes_together": 124.3
      },
      {
        "player_p": 428,
        "player_q": 2059,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Edouard Mendy",
        "value": 0.01871566621603942,
        "minutes_together": 365.18333333333334
      },
      {
        "player_p": 3848,
        "player_q": 3978,
        "name_p": "Abdou Diallo",
        "name_q": "Pape Gueye",
        "value": 0.01651992335792191,
        "minutes_together": 142.18333333333334
      },
      {
        "player_p": 2059,
        "player_q": 3848,
        "name_p": "Edouard Mendy",
        "name_q": "Abdou Diallo",
        "value": 0.014212814721506836,
        "minutes_together": 348.6666666666667
      },
      {
        "player_p": 2059,
        "player_q": 3978,
        "name_p": "Edouard Mendy",
        "name_q": "Pape Gueye",
        "value": 0.013078904141812947,
        "minutes_together": 169.15
      },
      {
        "player_p": 3978,
        "player_q": 7988,
        "name_p": "Pape Gueye",
        "name_q": "Boulaye Dia",
        "value": 0.013022443376286413,
        "minutes_together": 116.78333333333333
      },
      {
        "player_p": 2059,
        "player_q": 13228,
        "name_p": "Edouard Mendy",
        "name_q": "Youssouf Sabaly",
        "value": 0.012858637197354335,
        "minutes_together": 387.2166666666667
      },
      {
        "player_p": 3848,
        "player_q": 3858,
        "name_p": "Abdou Diallo",
        "name_q": "Idrissa Gueye",
        "value": 0.01269474654810165,
        "minutes_together": 254.48333333333335
      },
      {
        "player_p": 214,
        "player_q": 3903,
        "name_p": "Nampalys Mendy",
        "name_q": "Kr\u00e9pin Diatta",
        "value": 0.01137177238226935,
        "minutes_together": 185.83333333333334
      },
      {
        "player_p": 3848,
        "player_q": 13228,
        "name_p": "Abdou Diallo",
        "name_q": "Youssouf Sabaly",
        "value": 0.010027081315451677,
        "minutes_together": 348.6666666666667
      },
      {
        "player_p": 214,
        "player_q": 7988,
        "name_p": "Nampalys Mendy",
        "name_q": "Boulaye Dia",
        "value": 0.009919581046393523,
        "minutes_together": 236.9
      },
      {
        "player_p": 3978,
        "player_q": 9993,
        "name_p": "Pape Gueye",
        "name_q": "Kalidou Koulibaly",
        "value": 0.007831270664100087,
        "minutes_together": 169.15
      },
      {
        "player_p": 214,
        "player_q": 9993,
        "name_p": "Nampalys Mendy",
        "name_q": "Kalidou Koulibaly",
        "value": 0.007570291074096385,
        "minutes_together": 294.31666666666666
      },
      {
        "player_p": 3858,
        "player_q": 7988,
        "name_p": "Idrissa Gueye",
        "name_q": "Boulaye Dia",
        "value": 0.005201226613193905,
        "minutes_together": 258.75
      },
      {
        "player_p": 214,
        "player_q": 2059,
        "name_p": "Nampalys Mendy",
        "name_q": "Edouard Mendy",
        "value": 0.0049357645442356934,
        "minutes_together": 294.31666666666666
      },
      {
        "player_p": 2059,
        "player_q": 3895,
        "name_p": "Edouard Mendy",
        "name_q": "Ismail Jakobs",
        "value": 0.00485003742041031,
        "minutes_together": 296.45
      },
      {
        "player_p": 3895,
        "player_q": 9993,
        "name_p": "Ismail Jakobs",
        "name_q": "Kalidou Koulibaly",
        "value": 0.003554842337690234,
        "minutes_together": 296.45
      },
      {
        "player_p": 3895,
        "player_q": 13228,
        "name_p": "Ismail Jakobs",
        "name_q": "Youssouf Sabaly",
        "value": 0.001868175227354211,
        "minutes_together": 296.45
      },
      {
        "player_p": 7988,
        "player_q": 9993,
        "name_p": "Boulaye Dia",
        "name_q": "Kalidou Koulibaly",
        "value": 0.0013844910129598353,
        "minutes_together": 329.8
      },
      {
        "player_p": 428,
        "player_q": 3895,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Ismail Jakobs",
        "value": 0.0006969994746225657,
        "minutes_together": 293.48333333333335
      },
      {
        "player_p": 214,
        "player_q": 3895,
        "name_p": "Nampalys Mendy",
        "name_q": "Ismail Jakobs",
        "value": -0.00029481933888522987,
        "minutes_together": 222.61666666666667
      },
      {
        "player_p": 2059,
        "player_q": 3858,
        "name_p": "Edouard Mendy",
        "name_q": "Idrissa Gueye",
        "value": -0.0012236402603324516,
        "minutes_together": 293.0333333333333
      },
      {
        "player_p": 428,
        "player_q": 3848,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Abdou Diallo",
        "value": -0.001438340665967443,
        "minutes_together": 326.6333333333333
      },
      {
        "player_p": 3848,
        "player_q": 3895,
        "name_p": "Abdou Diallo",
        "name_q": "Ismail Jakobs",
        "value": -0.00238284864680107,
        "minutes_together": 257.9
      },
      {
        "player_p": 3848,
        "player_q": 9993,
        "name_p": "Abdou Diallo",
        "name_q": "Kalidou Koulibaly",
        "value": -0.0034425399547113266,
        "minutes_together": 348.6666666666667
      },
      {
        "player_p": 3903,
        "player_q": 9993,
        "name_p": "Kr\u00e9pin Diatta",
        "name_q": "Kalidou Koulibaly",
        "value": -0.011025942577507147,
        "minutes_together": 185.83333333333334
      },
      {
        "player_p": 2059,
        "player_q": 9993,
        "name_p": "Edouard Mendy",
        "name_q": "Kalidou Koulibaly",
        "value": -0.01452963159797692,
        "minutes_together": 387.2166666666667
      },
      {
        "player_p": 214,
        "player_q": 428,
        "name_p": "Nampalys Mendy",
        "name_q": "Isma\u00efla Sarr",
        "value": -0.01828977262530476,
        "minutes_together": 291.3666666666667
      },
      {
        "player_p": 3858,
        "player_q": 3978,
        "name_p": "Idrissa Gueye",
        "name_q": "Pape Gueye",
        "value": -0.018504068783702782,
        "minutes_together": 123.91666666666667
      },
      {
        "player_p": 428,
        "player_q": 7988,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Boulaye Dia",
        "value": -0.028045487147485074,
        "minutes_together": 307.76666666666665
      },
      {
        "player_p": 214,
        "player_q": 3858,
        "name_p": "Nampalys Mendy",
        "name_q": "Idrissa Gueye",
        "value": -0.05598080783447761,
        "minutes_together": 200.13333333333333
      }
    ],
    "path": "assets/figures/team_372_joi90.png"
  },
  {
    "team_id": "372",
    "team_name": "Senegal",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_372_jdi90.png",
    "n_pairs": 54,
    "median": 0.010089464011558077,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 9993,
        "name": "Kalidou Koulibaly",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 23233
      },
      {
        "player_id": 13228,
        "name": "Youssouf Sabaly",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 23233
      },
      {
        "player_id": 2059,
        "name": "Edouard Mendy",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 23233
      },
      {
        "player_id": 428,
        "name": "Isma\u00efla Sarr",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 21911
      },
      {
        "player_id": 3848,
        "name": "Abdou Diallo",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 20920
      },
      {
        "player_id": 7988,
        "name": "Boulaye Dia",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 19788
      },
      {
        "player_id": 3895,
        "name": "Ismail Jakobs",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 17787
      },
      {
        "player_id": 214,
        "name": "Nampalys Mendy",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17659
      },
      {
        "player_id": 3858,
        "name": "Idrissa Gueye",
        "position": "AM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 17582
      },
      {
        "player_id": 3903,
        "name": "Kr\u00e9pin Diatta",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 11150
      },
      {
        "player_id": 3978,
        "name": "Pape Gueye",
        "position": "DM",
        "x": 34.0,
        "y": 40.0,
        "row": 3,
        "col": 2,
        "on_seconds": 10149
      }
    ],
    "pairs": [
      {
        "player_p": 428,
        "player_q": 3858,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Idrissa Gueye",
        "value": 0.042034936840435716,
        "minutes_together": 271.0
      },
      {
        "player_p": 428,
        "player_q": 3978,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Pape Gueye",
        "value": 0.03007324340754344,
        "minutes_together": 169.15
      },
      {
        "player_p": 3858,
        "player_q": 3903,
        "name_p": "Idrissa Gueye",
        "name_q": "Kr\u00e9pin Diatta",
        "value": 0.02913580271654621,
        "minutes_together": 136.93333333333334
      },
      {
        "player_p": 428,
        "player_q": 7988,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Boulaye Dia",
        "value": 0.025852191832641293,
        "minutes_together": 307.76666666666665
      },
      {
        "player_p": 428,
        "player_q": 2059,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Edouard Mendy",
        "value": 0.02301613402793869,
        "minutes_together": 365.18333333333334
      },
      {
        "player_p": 214,
        "player_q": 3858,
        "name_p": "Nampalys Mendy",
        "name_q": "Idrissa Gueye",
        "value": 0.022473644438123455,
        "minutes_together": 200.13333333333333
      },
      {
        "player_p": 428,
        "player_q": 9993,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Kalidou Koulibaly",
        "value": 0.02116776252859522,
        "minutes_together": 365.18333333333334
      },
      {
        "player_p": 428,
        "player_q": 3848,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Abdou Diallo",
        "value": 0.020545749278785407,
        "minutes_together": 326.6333333333333
      },
      {
        "player_p": 214,
        "player_q": 7988,
        "name_p": "Nampalys Mendy",
        "name_q": "Boulaye Dia",
        "value": 0.01907190414507734,
        "minutes_together": 236.9
      },
      {
        "player_p": 428,
        "player_q": 13228,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Youssouf Sabaly",
        "value": 0.018570809169861684,
        "minutes_together": 365.18333333333334
      },
      {
        "player_p": 2059,
        "player_q": 3858,
        "name_p": "Edouard Mendy",
        "name_q": "Idrissa Gueye",
        "value": 0.017469837619390843,
        "minutes_together": 293.0333333333333
      },
      {
        "player_p": 428,
        "player_q": 3895,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Ismail Jakobs",
        "value": 0.01704961545773518,
        "minutes_together": 293.48333333333335
      },
      {
        "player_p": 3858,
        "player_q": 7988,
        "name_p": "Idrissa Gueye",
        "name_q": "Boulaye Dia",
        "value": 0.016728579070822015,
        "minutes_together": 258.75
      },
      {
        "player_p": 3858,
        "player_q": 9993,
        "name_p": "Idrissa Gueye",
        "name_q": "Kalidou Koulibaly",
        "value": 0.015062590563402705,
        "minutes_together": 293.0333333333333
      },
      {
        "player_p": 214,
        "player_q": 2059,
        "name_p": "Nampalys Mendy",
        "name_q": "Edouard Mendy",
        "value": 0.014670360223276458,
        "minutes_together": 294.31666666666666
      },
      {
        "player_p": 3858,
        "player_q": 3895,
        "name_p": "Idrissa Gueye",
        "name_q": "Ismail Jakobs",
        "value": 0.014469413947340101,
        "minutes_together": 212.43333333333334
      },
      {
        "player_p": 214,
        "player_q": 3903,
        "name_p": "Nampalys Mendy",
        "name_q": "Kr\u00e9pin Diatta",
        "value": 0.014214754711908912,
        "minutes_together": 185.83333333333334
      },
      {
        "player_p": 2059,
        "player_q": 7988,
        "name_p": "Edouard Mendy",
        "name_q": "Boulaye Dia",
        "value": 0.013774445366786644,
        "minutes_together": 329.8
      },
      {
        "player_p": 214,
        "player_q": 9993,
        "name_p": "Nampalys Mendy",
        "name_q": "Kalidou Koulibaly",
        "value": 0.013419066450495827,
        "minutes_together": 294.31666666666666
      },
      {
        "player_p": 3848,
        "player_q": 3858,
        "name_p": "Abdou Diallo",
        "name_q": "Idrissa Gueye",
        "value": 0.012672919230019983,
        "minutes_together": 254.48333333333335
      },
      {
        "player_p": 214,
        "player_q": 13228,
        "name_p": "Nampalys Mendy",
        "name_q": "Youssouf Sabaly",
        "value": 0.012076745750819547,
        "minutes_together": 294.31666666666666
      },
      {
        "player_p": 7988,
        "player_q": 9993,
        "name_p": "Boulaye Dia",
        "name_q": "Kalidou Koulibaly",
        "value": 0.011720703324647249,
        "minutes_together": 329.8
      },
      {
        "player_p": 3858,
        "player_q": 13228,
        "name_p": "Idrissa Gueye",
        "name_q": "Youssouf Sabaly",
        "value": 0.011678828038619485,
        "minutes_together": 293.0333333333333
      },
      {
        "player_p": 3903,
        "player_q": 7988,
        "name_p": "Kr\u00e9pin Diatta",
        "name_q": "Boulaye Dia",
        "value": 0.011167434301220608,
        "minutes_together": 180.68333333333334
      },
      {
        "player_p": 214,
        "player_q": 428,
        "name_p": "Nampalys Mendy",
        "name_q": "Isma\u00efla Sarr",
        "value": 0.0111194380539155,
        "minutes_together": 291.3666666666667
      },
      {
        "player_p": 2059,
        "player_q": 3903,
        "name_p": "Edouard Mendy",
        "name_q": "Kr\u00e9pin Diatta",
        "value": 0.010459764928194391,
        "minutes_together": 185.83333333333334
      },
      {
        "player_p": 2059,
        "player_q": 9993,
        "name_p": "Edouard Mendy",
        "name_q": "Kalidou Koulibaly",
        "value": 0.010099581090688797,
        "minutes_together": 387.2166666666667
      },
      {
        "player_p": 214,
        "player_q": 3848,
        "name_p": "Nampalys Mendy",
        "name_q": "Abdou Diallo",
        "value": 0.010079346932427359,
        "minutes_together": 255.76666666666668
      },
      {
        "player_p": 3848,
        "player_q": 7988,
        "name_p": "Abdou Diallo",
        "name_q": "Boulaye Dia",
        "value": 0.010060489552798391,
        "minutes_together": 323.26666666666665
      },
      {
        "player_p": 7988,
        "player_q": 13228,
        "name_p": "Boulaye Dia",
        "name_q": "Youssouf Sabaly",
        "value": 0.009578622037458283,
        "minutes_together": 329.8
      },
      {
        "player_p": 3903,
        "player_q": 9993,
        "name_p": "Kr\u00e9pin Diatta",
        "name_q": "Kalidou Koulibaly",
        "value": 0.009288258574203363,
        "minutes_together": 185.83333333333334
      },
      {
        "player_p": 2059,
        "player_q": 13228,
        "name_p": "Edouard Mendy",
        "name_q": "Youssouf Sabaly",
        "value": 0.008225223574255798,
        "minutes_together": 387.2166666666667
      },
      {
        "player_p": 2059,
        "player_q": 3848,
        "name_p": "Edouard Mendy",
        "name_q": "Abdou Diallo",
        "value": 0.007495002306359504,
        "minutes_together": 348.6666666666667
      },
      {
        "player_p": 9993,
        "player_q": 13228,
        "name_p": "Kalidou Koulibaly",
        "name_q": "Youssouf Sabaly",
        "value": 0.0063231086994879546,
        "minutes_together": 387.2166666666667
      },
      {
        "player_p": 3903,
        "player_q": 13228,
        "name_p": "Kr\u00e9pin Diatta",
        "name_q": "Youssouf Sabaly",
        "value": 0.005910125223606834,
        "minutes_together": 185.83333333333334
      },
      {
        "player_p": 3848,
        "player_q": 9993,
        "name_p": "Abdou Diallo",
        "name_q": "Kalidou Koulibaly",
        "value": 0.005677789904473273,
        "minutes_together": 348.6666666666667
      },
      {
        "player_p": 3848,
        "player_q": 3978,
        "name_p": "Abdou Diallo",
        "name_q": "Pape Gueye",
        "value": 0.005405357923154086,
        "minutes_together": 142.18333333333334
      },
      {
        "player_p": 3978,
        "player_q": 7988,
        "name_p": "Pape Gueye",
        "name_q": "Boulaye Dia",
        "value": 0.00478657868143224,
        "minutes_together": 116.78333333333333
      },
      {
        "player_p": 3895,
        "player_q": 7988,
        "name_p": "Ismail Jakobs",
        "name_q": "Boulaye Dia",
        "value": 0.004686533888568481,
        "minutes_together": 249.2
      },
      {
        "player_p": 2059,
        "player_q": 3895,
        "name_p": "Edouard Mendy",
        "name_q": "Ismail Jakobs",
        "value": 0.0044603243795307244,
        "minutes_together": 296.45
      },
      {
        "player_p": 3848,
        "player_q": 13228,
        "name_p": "Abdou Diallo",
        "name_q": "Youssouf Sabaly",
        "value": 0.004023279687561616,
        "minutes_together": 348.6666666666667
      },
      {
        "player_p": 214,
        "player_q": 3895,
        "name_p": "Nampalys Mendy",
        "name_q": "Ismail Jakobs",
        "value": 0.003226765260298718,
        "minutes_together": 222.61666666666667
      },
      {
        "player_p": 3895,
        "player_q": 9993,
        "name_p": "Ismail Jakobs",
        "name_q": "Kalidou Koulibaly",
        "value": 0.0024592984060181245,
        "minutes_together": 296.45
      },
      {
        "player_p": 3848,
        "player_q": 3903,
        "name_p": "Abdou Diallo",
        "name_q": "Kr\u00e9pin Diatta",
        "value": 0.0020872098708598847,
        "minutes_together": 174.15
      },
      {
        "player_p": 3848,
        "player_q": 3895,
        "name_p": "Abdou Diallo",
        "name_q": "Ismail Jakobs",
        "value": 0.0019496054470479925,
        "minutes_together": 257.9
      },
      {
        "player_p": 3895,
        "player_q": 13228,
        "name_p": "Ismail Jakobs",
        "name_q": "Youssouf Sabaly",
        "value": 0.001797750194948527,
        "minutes_together": 296.45
      },
      {
        "player_p": 3895,
        "player_q": 3978,
        "name_p": "Ismail Jakobs",
        "name_q": "Pape Gueye",
        "value": 1.7583256377771407e-05,
        "minutes_together": 158.98333333333335
      },
      {
        "player_p": 2059,
        "player_q": 3978,
        "name_p": "Edouard Mendy",
        "name_q": "Pape Gueye",
        "value": -0.0003242007472911246,
        "minutes_together": 169.15
      },
      {
        "player_p": 3858,
        "player_q": 3978,
        "name_p": "Idrissa Gueye",
        "name_q": "Pape Gueye",
        "value": -0.0014100017420023922,
        "minutes_together": 123.91666666666667
      },
      {
        "player_p": 3978,
        "player_q": 9993,
        "name_p": "Pape Gueye",
        "name_q": "Kalidou Koulibaly",
        "value": -0.002925138900856251,
        "minutes_together": 169.15
      },
      {
        "player_p": 428,
        "player_q": 3903,
        "name_p": "Isma\u00efla Sarr",
        "name_q": "Kr\u00e9pin Diatta",
        "value": -0.003271609678361142,
        "minutes_together": 185.83333333333334
      },
      {
        "player_p": 3978,
        "player_q": 13228,
        "name_p": "Pape Gueye",
        "name_q": "Youssouf Sabaly",
        "value": -0.004990310423036844,
        "minutes_together": 169.15
      },
      {
        "player_p": 214,
        "player_q": 3978,
        "name_p": "Nampalys Mendy",
        "name_q": "Pape Gueye",
        "value": -0.005918050815398391,
        "minutes_together": 95.33333333333333
      },
      {
        "player_p": 3895,
        "player_q": 3903,
        "name_p": "Ismail Jakobs",
        "name_q": "Kr\u00e9pin Diatta",
        "value": -0.013786452467307059,
        "minutes_together": 124.3
      }
    ],
    "path": "assets/figures/team_372_jdi90.png"
  },
  {
    "team_id": "373",
    "team_name": "Iran",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_373_joi90.png",
    "n_pairs": 49,
    "median": 0.016047222490200692,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 8561,
        "name": "Mehdi Taremi",
        "position": "AM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 18305
      },
      {
        "player_id": 12222,
        "name": "Majid Hosseini",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 18305
      },
      {
        "player_id": 13977,
        "name": "Morteza Pouraliganji",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 18305
      },
      {
        "player_id": 13971,
        "name": "Ehsan Hajsafi",
        "position": "LM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 15034
      },
      {
        "player_id": 13980,
        "name": "Saeid Ezatolahi",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 13528
      },
      {
        "player_id": 13982,
        "name": "Ahmad Nourollahi",
        "position": "CM",
        "x": 47.6,
        "y": 57.5,
        "row": 2,
        "col": 3,
        "on_seconds": 13471
      },
      {
        "player_id": 13975,
        "name": "Milad Mohammadi",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 12720
      },
      {
        "player_id": 13978,
        "name": "Ramin Rezaeian",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 12120
      },
      {
        "player_id": 13981,
        "name": "Ali Gholizadeh",
        "position": "RM",
        "x": 47.6,
        "y": 75.0,
        "row": 1,
        "col": 3,
        "on_seconds": 11868
      },
      {
        "player_id": 13969,
        "name": "Hossein Hosseini",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 11172
      },
      {
        "player_id": 7441,
        "name": "Sardar Azmoun",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 8763
      }
    ],
    "pairs": [
      {
        "player_p": 8561,
        "player_q": 13977,
        "name_p": "Mehdi Taremi",
        "name_q": "Morteza Pouraliganji",
        "value": 0.5805053678862642,
        "minutes_together": 305.0833333333333
      },
      {
        "player_p": 7441,
        "player_q": 8561,
        "name_p": "Sardar Azmoun",
        "name_q": "Mehdi Taremi",
        "value": 0.5621353452445351,
        "minutes_together": 146.04999999999998
      },
      {
        "player_p": 8561,
        "player_q": 13981,
        "name_p": "Mehdi Taremi",
        "name_q": "Ali Gholizadeh",
        "value": 0.4647849633078219,
        "minutes_together": 197.8
      },
      {
        "player_p": 8561,
        "player_q": 13980,
        "name_p": "Mehdi Taremi",
        "name_q": "Saeid Ezatolahi",
        "value": 0.4212463767835147,
        "minutes_together": 225.46666666666667
      },
      {
        "player_p": 8561,
        "player_q": 13982,
        "name_p": "Mehdi Taremi",
        "name_q": "Ahmad Nourollahi",
        "value": 0.38555983808990046,
        "minutes_together": 224.51666666666665
      },
      {
        "player_p": 8561,
        "player_q": 13978,
        "name_p": "Mehdi Taremi",
        "name_q": "Ramin Rezaeian",
        "value": 0.2945245479295488,
        "minutes_together": 202.0
      },
      {
        "player_p": 13980,
        "player_q": 13981,
        "name_p": "Saeid Ezatolahi",
        "name_q": "Ali Gholizadeh",
        "value": 0.2435294320486174,
        "minutes_together": 197.8
      },
      {
        "player_p": 7441,
        "player_q": 13981,
        "name_p": "Sardar Azmoun",
        "name_q": "Ali Gholizadeh",
        "value": 0.14362783378100366,
        "minutes_together": 146.04999999999998
      },
      {
        "player_p": 13978,
        "player_q": 13981,
        "name_p": "Ramin Rezaeian",
        "name_q": "Ali Gholizadeh",
        "value": 0.11064230639028262,
        "minutes_together": 154.6
      },
      {
        "player_p": 7441,
        "player_q": 13975,
        "name_p": "Sardar Azmoun",
        "name_q": "Milad Mohammadi",
        "value": 0.08469879617506768,
        "minutes_together": 114.44999999999999
      },
      {
        "player_p": 13969,
        "player_q": 13978,
        "name_p": "Hossein Hosseini",
        "name_q": "Ramin Rezaeian",
        "value": 0.04977011087341562,
        "minutes_together": 102.11666666666666
      },
      {
        "player_p": 12222,
        "player_q": 13977,
        "name_p": "Majid Hosseini",
        "name_q": "Morteza Pouraliganji",
        "value": 0.049484632008726784,
        "minutes_together": 305.0833333333333
      },
      {
        "player_p": 13971,
        "player_q": 13975,
        "name_p": "Ehsan Hajsafi",
        "name_q": "Milad Mohammadi",
        "value": 0.04948348587383941,
        "minutes_together": 186.33333333333334
      },
      {
        "player_p": 7441,
        "player_q": 13978,
        "name_p": "Sardar Azmoun",
        "name_q": "Ramin Rezaeian",
        "value": 0.03279000466147999,
        "minutes_together": 119.69999999999999
      },
      {
        "player_p": 13975,
        "player_q": 13980,
        "name_p": "Milad Mohammadi",
        "name_q": "Saeid Ezatolahi",
        "value": 0.03230713592859754,
        "minutes_together": 132.38333333333333
      },
      {
        "player_p": 12222,
        "player_q": 13971,
        "name_p": "Majid Hosseini",
        "name_q": "Ehsan Hajsafi",
        "value": 0.030108119825534338,
        "minutes_together": 250.56666666666666
      },
      {
        "player_p": 8561,
        "player_q": 13971,
        "name_p": "Mehdi Taremi",
        "name_q": "Ehsan Hajsafi",
        "value": 0.02973375702470338,
        "minutes_together": 250.56666666666666
      },
      {
        "player_p": 13977,
        "player_q": 13980,
        "name_p": "Morteza Pouraliganji",
        "name_q": "Saeid Ezatolahi",
        "value": 0.024000302657066902,
        "minutes_together": 225.46666666666667
      },
      {
        "player_p": 13978,
        "player_q": 13982,
        "name_p": "Ramin Rezaeian",
        "name_q": "Ahmad Nourollahi",
        "value": 0.023898397629658646,
        "minutes_together": 147.78333333333333
      },
      {
        "player_p": 8561,
        "player_q": 13975,
        "name_p": "Mehdi Taremi",
        "name_q": "Milad Mohammadi",
        "value": 0.021678046271649997,
        "minutes_together": 212.0
      },
      {
        "player_p": 12222,
        "player_q": 13978,
        "name_p": "Majid Hosseini",
        "name_q": "Ramin Rezaeian",
        "value": 0.02016123879433468,
        "minutes_together": 202.0
      },
      {
        "player_p": 13971,
        "player_q": 13981,
        "name_p": "Ehsan Hajsafi",
        "name_q": "Ali Gholizadeh",
        "value": 0.018319780878026826,
        "minutes_together": 190.53333333333333
      },
      {
        "player_p": 13971,
        "player_q": 13977,
        "name_p": "Ehsan Hajsafi",
        "name_q": "Morteza Pouraliganji",
        "value": 0.01646525698248692,
        "minutes_together": 250.56666666666666
      },
      {
        "player_p": 13971,
        "player_q": 13980,
        "name_p": "Ehsan Hajsafi",
        "name_q": "Saeid Ezatolahi",
        "value": 0.016256955669003346,
        "minutes_together": 190.89999999999998
      },
      {
        "player_p": 12222,
        "player_q": 13980,
        "name_p": "Majid Hosseini",
        "name_q": "Saeid Ezatolahi",
        "value": 0.016047222490200692,
        "minutes_together": 225.46666666666667
      },
      {
        "player_p": 13971,
        "player_q": 13982,
        "name_p": "Ehsan Hajsafi",
        "name_q": "Ahmad Nourollahi",
        "value": 0.015481393901913332,
        "minutes_together": 223.8
      },
      {
        "player_p": 13975,
        "player_q": 13981,
        "name_p": "Milad Mohammadi",
        "name_q": "Ali Gholizadeh",
        "value": 0.015192547910561962,
        "minutes_together": 126.30000000000001
      },
      {
        "player_p": 12222,
        "player_q": 13982,
        "name_p": "Majid Hosseini",
        "name_q": "Ahmad Nourollahi",
        "value": 0.01363943762864497,
        "minutes_together": 224.51666666666665
      },
      {
        "player_p": 12222,
        "player_q": 13975,
        "name_p": "Majid Hosseini",
        "name_q": "Milad Mohammadi",
        "value": 0.013129922198523604,
        "minutes_together": 212.0
      },
      {
        "player_p": 13977,
        "player_q": 13978,
        "name_p": "Morteza Pouraliganji",
        "name_q": "Ramin Rezaeian",
        "value": 0.012614152728009148,
        "minutes_together": 202.0
      },
      {
        "player_p": 12222,
        "player_q": 13969,
        "name_p": "Majid Hosseini",
        "name_q": "Hossein Hosseini",
        "value": 0.011545556032948653,
        "minutes_together": 186.2
      },
      {
        "player_p": 7441,
        "player_q": 13982,
        "name_p": "Sardar Azmoun",
        "name_q": "Ahmad Nourollahi",
        "value": 0.01147167919989139,
        "minutes_together": 119.69999999999999
      },
      {
        "player_p": 7441,
        "player_q": 13969,
        "name_p": "Sardar Azmoun",
        "name_q": "Hossein Hosseini",
        "value": 0.00814043966413437,
        "minutes_together": 93.68333333333334
      },
      {
        "player_p": 8561,
        "player_q": 12222,
        "name_p": "Mehdi Taremi",
        "name_q": "Majid Hosseini",
        "value": 0.007977869306713768,
        "minutes_together": 305.0833333333333
      },
      {
        "player_p": 13971,
        "player_q": 13978,
        "name_p": "Ehsan Hajsafi",
        "name_q": "Ramin Rezaeian",
        "value": 0.007616520069265383,
        "minutes_together": 147.48333333333335
      },
      {
        "player_p": 13981,
        "player_q": 13982,
        "name_p": "Ali Gholizadeh",
        "name_q": "Ahmad Nourollahi",
        "value": 0.004847195567064095,
        "minutes_together": 163.76666666666665
      },
      {
        "player_p": 7441,
        "player_q": 13980,
        "name_p": "Sardar Azmoun",
        "name_q": "Saeid Ezatolahi",
        "value": 0.001883942077025627,
        "minutes_together": 146.04999999999998
      },
      {
        "player_p": 13978,
        "player_q": 13980,
        "name_p": "Ramin Rezaeian",
        "name_q": "Saeid Ezatolahi",
        "value": 0.0014604002970382962,
        "minutes_together": 182.05
      },
      {
        "player_p": 13975,
        "player_q": 13978,
        "name_p": "Milad Mohammadi",
        "name_q": "Ramin Rezaeian",
        "value": 0.000932170337967774,
        "minutes_together": 149.23333333333332
      },
      {
        "player_p": 13975,
        "player_q": 13982,
        "name_p": "Milad Mohammadi",
        "name_q": "Ahmad Nourollahi",
        "value": -0.00034063016320401185,
        "minutes_together": 187.05
      },
      {
        "player_p": 8561,
        "player_q": 13969,
        "name_p": "Mehdi Taremi",
        "name_q": "Hossein Hosseini",
        "value": -0.0007367501692088193,
        "minutes_together": 186.2
      },
      {
        "player_p": 12222,
        "player_q": 13981,
        "name_p": "Majid Hosseini",
        "name_q": "Ali Gholizadeh",
        "value": -0.0008860714779160655,
        "minutes_together": 197.8
      },
      {
        "player_p": 7441,
        "player_q": 13971,
        "name_p": "Sardar Azmoun",
        "name_q": "Ehsan Hajsafi",
        "value": -0.0015216734383721685,
        "minutes_together": 146.04999999999998
      },
      {
        "player_p": 13969,
        "player_q": 13975,
        "name_p": "Hossein Hosseini",
        "name_q": "Milad Mohammadi",
        "value": -0.005285568633407651,
        "minutes_together": 145.88333333333333
      },
      {
        "player_p": 13980,
        "player_q": 13982,
        "name_p": "Saeid Ezatolahi",
        "name_q": "Ahmad Nourollahi",
        "value": -0.00985774237838961,
        "minutes_together": 164.85
      },
      {
        "player_p": 13969,
        "player_q": 13980,
        "name_p": "Hossein Hosseini",
        "name_q": "Saeid Ezatolahi",
        "value": -0.010986672526549512,
        "minutes_together": 125.58333333333334
      },
      {
        "player_p": 13969,
        "player_q": 13977,
        "name_p": "Hossein Hosseini",
        "name_q": "Morteza Pouraliganji",
        "value": -0.013037762793099383,
        "minutes_together": 186.2
      },
      {
        "player_p": 13969,
        "player_q": 13971,
        "name_p": "Hossein Hosseini",
        "name_q": "Ehsan Hajsafi",
        "value": -0.02380807951802851,
        "minutes_together": 160.53333333333333
      },
      {
        "player_p": 13975,
        "player_q": 13977,
        "name_p": "Milad Mohammadi",
        "name_q": "Morteza Pouraliganji",
        "value": -0.05995570858979642,
        "minutes_together": 212.0
      }
    ],
    "path": "assets/figures/team_373_joi90.png"
  },
  {
    "team_id": "373",
    "team_name": "Iran",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_373_jdi90.png",
    "n_pairs": 55,
    "median": -0.009597894099522096,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 8561,
        "name": "Mehdi Taremi",
        "position": "AM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 18305
      },
      {
        "player_id": 12222,
        "name": "Majid Hosseini",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 18305
      },
      {
        "player_id": 13977,
        "name": "Morteza Pouraliganji",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 18305
      },
      {
        "player_id": 13971,
        "name": "Ehsan Hajsafi",
        "position": "LM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 15034
      },
      {
        "player_id": 13980,
        "name": "Saeid Ezatolahi",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 13528
      },
      {
        "player_id": 13982,
        "name": "Ahmad Nourollahi",
        "position": "CM",
        "x": 47.6,
        "y": 57.5,
        "row": 2,
        "col": 3,
        "on_seconds": 13471
      },
      {
        "player_id": 13975,
        "name": "Milad Mohammadi",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 12720
      },
      {
        "player_id": 13978,
        "name": "Ramin Rezaeian",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 12120
      },
      {
        "player_id": 13981,
        "name": "Ali Gholizadeh",
        "position": "RM",
        "x": 47.6,
        "y": 75.0,
        "row": 1,
        "col": 3,
        "on_seconds": 11868
      },
      {
        "player_id": 13969,
        "name": "Hossein Hosseini",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 11172
      },
      {
        "player_id": 7441,
        "name": "Sardar Azmoun",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 8763
      }
    ],
    "pairs": [
      {
        "player_p": 13980,
        "player_q": 13982,
        "name_p": "Saeid Ezatolahi",
        "name_q": "Ahmad Nourollahi",
        "value": 0.013337312816698348,
        "minutes_together": 164.85
      },
      {
        "player_p": 13978,
        "player_q": 13980,
        "name_p": "Ramin Rezaeian",
        "name_q": "Saeid Ezatolahi",
        "value": 0.009280884563690268,
        "minutes_together": 182.05
      },
      {
        "player_p": 13975,
        "player_q": 13980,
        "name_p": "Milad Mohammadi",
        "name_q": "Saeid Ezatolahi",
        "value": 0.007216549657274775,
        "minutes_together": 132.38333333333333
      },
      {
        "player_p": 13978,
        "player_q": 13982,
        "name_p": "Ramin Rezaeian",
        "name_q": "Ahmad Nourollahi",
        "value": 0.006202161186922303,
        "minutes_together": 147.78333333333333
      },
      {
        "player_p": 8561,
        "player_q": 13978,
        "name_p": "Mehdi Taremi",
        "name_q": "Ramin Rezaeian",
        "value": 0.005597841099609069,
        "minutes_together": 202.0
      },
      {
        "player_p": 13971,
        "player_q": 13978,
        "name_p": "Ehsan Hajsafi",
        "name_q": "Ramin Rezaeian",
        "value": 0.005447163213892702,
        "minutes_together": 147.48333333333335
      },
      {
        "player_p": 7441,
        "player_q": 13982,
        "name_p": "Sardar Azmoun",
        "name_q": "Ahmad Nourollahi",
        "value": 0.005197401168721281,
        "minutes_together": 119.69999999999999
      },
      {
        "player_p": 8561,
        "player_q": 13980,
        "name_p": "Mehdi Taremi",
        "name_q": "Saeid Ezatolahi",
        "value": 0.0024729274738642675,
        "minutes_together": 225.46666666666667
      },
      {
        "player_p": 13978,
        "player_q": 13981,
        "name_p": "Ramin Rezaeian",
        "name_q": "Ali Gholizadeh",
        "value": 0.001954634878260182,
        "minutes_together": 154.6
      },
      {
        "player_p": 13977,
        "player_q": 13978,
        "name_p": "Morteza Pouraliganji",
        "name_q": "Ramin Rezaeian",
        "value": 0.0017259945747411553,
        "minutes_together": 202.0
      },
      {
        "player_p": 12222,
        "player_q": 13978,
        "name_p": "Majid Hosseini",
        "name_q": "Ramin Rezaeian",
        "value": 0.00043095838797875075,
        "minutes_together": 202.0
      },
      {
        "player_p": 13977,
        "player_q": 13982,
        "name_p": "Morteza Pouraliganji",
        "name_q": "Ahmad Nourollahi",
        "value": 0.0003594966760008804,
        "minutes_together": 224.51666666666665
      },
      {
        "player_p": 13977,
        "player_q": 13980,
        "name_p": "Morteza Pouraliganji",
        "name_q": "Saeid Ezatolahi",
        "value": -0.00034050402824800863,
        "minutes_together": 225.46666666666667
      },
      {
        "player_p": 7441,
        "player_q": 13975,
        "name_p": "Sardar Azmoun",
        "name_q": "Milad Mohammadi",
        "value": -0.0007721983915781571,
        "minutes_together": 114.44999999999999
      },
      {
        "player_p": 12222,
        "player_q": 13980,
        "name_p": "Majid Hosseini",
        "name_q": "Saeid Ezatolahi",
        "value": -0.0008669436414607504,
        "minutes_together": 225.46666666666667
      },
      {
        "player_p": 13981,
        "player_q": 13982,
        "name_p": "Ali Gholizadeh",
        "name_q": "Ahmad Nourollahi",
        "value": -0.0015043761447558147,
        "minutes_together": 163.76666666666665
      },
      {
        "player_p": 13975,
        "player_q": 13981,
        "name_p": "Milad Mohammadi",
        "name_q": "Ali Gholizadeh",
        "value": -0.0018098822326584835,
        "minutes_together": 126.30000000000001
      },
      {
        "player_p": 12222,
        "player_q": 13982,
        "name_p": "Majid Hosseini",
        "name_q": "Ahmad Nourollahi",
        "value": -0.002345153651720707,
        "minutes_together": 224.51666666666665
      },
      {
        "player_p": 7441,
        "player_q": 13978,
        "name_p": "Sardar Azmoun",
        "name_q": "Ramin Rezaeian",
        "value": -0.003614485181019833,
        "minutes_together": 119.69999999999999
      },
      {
        "player_p": 13975,
        "player_q": 13978,
        "name_p": "Milad Mohammadi",
        "name_q": "Ramin Rezaeian",
        "value": -0.0037329041556484863,
        "minutes_together": 149.23333333333332
      },
      {
        "player_p": 13971,
        "player_q": 13980,
        "name_p": "Ehsan Hajsafi",
        "name_q": "Saeid Ezatolahi",
        "value": -0.004123861482792137,
        "minutes_together": 190.89999999999998
      },
      {
        "player_p": 12222,
        "player_q": 13977,
        "name_p": "Majid Hosseini",
        "name_q": "Morteza Pouraliganji",
        "value": -0.004874997230000475,
        "minutes_together": 305.0833333333333
      },
      {
        "player_p": 8561,
        "player_q": 13977,
        "name_p": "Mehdi Taremi",
        "name_q": "Morteza Pouraliganji",
        "value": -0.006144253004374511,
        "minutes_together": 305.0833333333333
      },
      {
        "player_p": 8561,
        "player_q": 13982,
        "name_p": "Mehdi Taremi",
        "name_q": "Ahmad Nourollahi",
        "value": -0.006385378586312485,
        "minutes_together": 224.51666666666665
      },
      {
        "player_p": 13969,
        "player_q": 13982,
        "name_p": "Hossein Hosseini",
        "name_q": "Ahmad Nourollahi",
        "value": -0.006784795766712617,
        "minutes_together": 134.9
      },
      {
        "player_p": 7441,
        "player_q": 13971,
        "name_p": "Sardar Azmoun",
        "name_q": "Ehsan Hajsafi",
        "value": -0.007546188588300044,
        "minutes_together": 146.04999999999998
      },
      {
        "player_p": 8561,
        "player_q": 12222,
        "name_p": "Mehdi Taremi",
        "name_q": "Majid Hosseini",
        "value": -0.007598505202345191,
        "minutes_together": 305.0833333333333
      },
      {
        "player_p": 13975,
        "player_q": 13977,
        "name_p": "Milad Mohammadi",
        "name_q": "Morteza Pouraliganji",
        "value": -0.009597894099522096,
        "minutes_together": 212.0
      },
      {
        "player_p": 7441,
        "player_q": 13980,
        "name_p": "Sardar Azmoun",
        "name_q": "Saeid Ezatolahi",
        "value": -0.009864021376152502,
        "minutes_together": 146.04999999999998
      },
      {
        "player_p": 7441,
        "player_q": 8561,
        "name_p": "Sardar Azmoun",
        "name_q": "Mehdi Taremi",
        "value": -0.010325078148377888,
        "minutes_together": 146.04999999999998
      },
      {
        "player_p": 13975,
        "player_q": 13982,
        "name_p": "Milad Mohammadi",
        "name_q": "Ahmad Nourollahi",
        "value": -0.010977192986506979,
        "minutes_together": 187.05
      },
      {
        "player_p": 12222,
        "player_q": 13975,
        "name_p": "Majid Hosseini",
        "name_q": "Milad Mohammadi",
        "value": -0.012102839604282808,
        "minutes_together": 212.0
      },
      {
        "player_p": 8561,
        "player_q": 13975,
        "name_p": "Mehdi Taremi",
        "name_q": "Milad Mohammadi",
        "value": -0.013385259818855692,
        "minutes_together": 212.0
      },
      {
        "player_p": 13969,
        "player_q": 13980,
        "name_p": "Hossein Hosseini",
        "name_q": "Saeid Ezatolahi",
        "value": -0.015545919452630497,
        "minutes_together": 125.58333333333334
      },
      {
        "player_p": 7441,
        "player_q": 13977,
        "name_p": "Sardar Azmoun",
        "name_q": "Morteza Pouraliganji",
        "value": -0.01633645516162471,
        "minutes_together": 146.04999999999998
      },
      {
        "player_p": 7441,
        "player_q": 12222,
        "name_p": "Sardar Azmoun",
        "name_q": "Majid Hosseini",
        "value": -0.016744898871784868,
        "minutes_together": 146.04999999999998
      },
      {
        "player_p": 13980,
        "player_q": 13981,
        "name_p": "Saeid Ezatolahi",
        "name_q": "Ali Gholizadeh",
        "value": -0.017941769697019275,
        "minutes_together": 197.8
      },
      {
        "player_p": 8561,
        "player_q": 13969,
        "name_p": "Mehdi Taremi",
        "name_q": "Hossein Hosseini",
        "value": -0.020115828756424273,
        "minutes_together": 186.2
      },
      {
        "player_p": 13969,
        "player_q": 13975,
        "name_p": "Hossein Hosseini",
        "name_q": "Milad Mohammadi",
        "value": -0.021009322767424125,
        "minutes_together": 145.88333333333333
      },
      {
        "player_p": 13969,
        "player_q": 13978,
        "name_p": "Hossein Hosseini",
        "name_q": "Ramin Rezaeian",
        "value": -0.021126950432489838,
        "minutes_together": 102.11666666666666
      },
      {
        "player_p": 12222,
        "player_q": 13969,
        "name_p": "Majid Hosseini",
        "name_q": "Hossein Hosseini",
        "value": -0.022473557422176108,
        "minutes_together": 186.2
      },
      {
        "player_p": 13969,
        "player_q": 13977,
        "name_p": "Hossein Hosseini",
        "name_q": "Morteza Pouraliganji",
        "value": -0.022526856743519348,
        "minutes_together": 186.2
      },
      {
        "player_p": 8561,
        "player_q": 13981,
        "name_p": "Mehdi Taremi",
        "name_q": "Ali Gholizadeh",
        "value": -0.02268506924802072,
        "minutes_together": 197.8
      },
      {
        "player_p": 13977,
        "player_q": 13981,
        "name_p": "Morteza Pouraliganji",
        "name_q": "Ali Gholizadeh",
        "value": -0.025373682961230767,
        "minutes_together": 197.8
      },
      {
        "player_p": 12222,
        "player_q": 13981,
        "name_p": "Majid Hosseini",
        "name_q": "Ali Gholizadeh",
        "value": -0.02596272916376477,
        "minutes_together": 197.8
      },
      {
        "player_p": 13971,
        "player_q": 13981,
        "name_p": "Ehsan Hajsafi",
        "name_q": "Ali Gholizadeh",
        "value": -0.026804577629680273,
        "minutes_together": 190.53333333333333
      },
      {
        "player_p": 7441,
        "player_q": 13981,
        "name_p": "Sardar Azmoun",
        "name_q": "Ali Gholizadeh",
        "value": -0.028648752921524207,
        "minutes_together": 146.04999999999998
      },
      {
        "player_p": 7441,
        "player_q": 13969,
        "name_p": "Sardar Azmoun",
        "name_q": "Hossein Hosseini",
        "value": -0.03138868095838226,
        "minutes_together": 93.68333333333334
      },
      {
        "player_p": 13971,
        "player_q": 13982,
        "name_p": "Ehsan Hajsafi",
        "name_q": "Ahmad Nourollahi",
        "value": -0.03494767897520586,
        "minutes_together": 223.8
      },
      {
        "player_p": 13971,
        "player_q": 13977,
        "name_p": "Ehsan Hajsafi",
        "name_q": "Morteza Pouraliganji",
        "value": -0.03539920317111049,
        "minutes_together": 250.56666666666666
      },
      {
        "player_p": 12222,
        "player_q": 13971,
        "name_p": "Majid Hosseini",
        "name_q": "Ehsan Hajsafi",
        "value": -0.037159740569943894,
        "minutes_together": 250.56666666666666
      },
      {
        "player_p": 8561,
        "player_q": 13971,
        "name_p": "Mehdi Taremi",
        "name_q": "Ehsan Hajsafi",
        "value": -0.03994440727675834,
        "minutes_together": 250.56666666666666
      },
      {
        "player_p": 13971,
        "player_q": 13975,
        "name_p": "Ehsan Hajsafi",
        "name_q": "Milad Mohammadi",
        "value": -0.04693363500865308,
        "minutes_together": 186.33333333333334
      },
      {
        "player_p": 13969,
        "player_q": 13981,
        "name_p": "Hossein Hosseini",
        "name_q": "Ali Gholizadeh",
        "value": -0.05125282304872773,
        "minutes_together": 119.5
      },
      {
        "player_p": 13969,
        "player_q": 13971,
        "name_p": "Hossein Hosseini",
        "name_q": "Ehsan Hajsafi",
        "value": -0.05307373307858249,
        "minutes_together": 160.53333333333333
      }
    ],
    "path": "assets/figures/team_373_jdi90.png"
  },
  {
    "team_id": "374",
    "team_name": "Morocco",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_374_joi90.png",
    "n_pairs": 55,
    "median": 0.009935450431800321,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 12586,
        "name": "Sofyan Amrabat",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 39915
      },
      {
        "player_id": 1938,
        "name": "Hakim Ziyech",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 37803
      },
      {
        "player_id": 1681,
        "name": "Achraf Hakimi",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 37668
      },
      {
        "player_id": 1785,
        "name": "Bono",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 34199
      },
      {
        "player_id": 4324,
        "name": "Azzedine Ounahi",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 33597
      },
      {
        "player_id": 1810,
        "name": "Youssef En-Nesyri",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 33264
      },
      {
        "player_id": 401,
        "name": "Sofiane Boufal",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 28686
      },
      {
        "player_id": 233,
        "name": "Romain Sa\u00efss",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 27153
      },
      {
        "player_id": 13866,
        "name": "Selim Amallah",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 25458
      },
      {
        "player_id": 8027,
        "name": "Noussair Mazraoui",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 22754
      },
      {
        "player_id": 4002,
        "name": "Nayef Aguerd",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 22149
      }
    ],
    "pairs": [
      {
        "player_p": 233,
        "player_q": 12586,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Sofyan Amrabat",
        "value": 0.18604450004391446,
        "minutes_together": 452.55
      },
      {
        "player_p": 1938,
        "player_q": 12586,
        "name_p": "Hakim Ziyech",
        "name_q": "Sofyan Amrabat",
        "value": 0.17707089799431577,
        "minutes_together": 630.05
      },
      {
        "player_p": 401,
        "player_q": 8027,
        "name_p": "Sofiane Boufal",
        "name_q": "Noussair Mazraoui",
        "value": 0.07633995992528637,
        "minutes_together": 311.2166666666667
      },
      {
        "player_p": 401,
        "player_q": 4324,
        "name_p": "Sofiane Boufal",
        "name_q": "Azzedine Ounahi",
        "value": 0.06510483201978715,
        "minutes_together": 423.06666666666666
      },
      {
        "player_p": 1681,
        "player_q": 1938,
        "name_p": "Achraf Hakimi",
        "name_q": "Hakim Ziyech",
        "value": 0.06304747963784355,
        "minutes_together": 601.6
      },
      {
        "player_p": 1681,
        "player_q": 1810,
        "name_p": "Achraf Hakimi",
        "name_q": "Youssef En-Nesyri",
        "value": 0.04102375143955681,
        "minutes_together": 540.0
      },
      {
        "player_p": 233,
        "player_q": 1785,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Bono",
        "value": 0.0369574862198721,
        "minutes_together": 357.2833333333333
      },
      {
        "player_p": 4324,
        "player_q": 8027,
        "name_p": "Azzedine Ounahi",
        "name_q": "Noussair Mazraoui",
        "value": 0.033137967332813954,
        "minutes_together": 343.7166666666667
      },
      {
        "player_p": 1681,
        "player_q": 4002,
        "name_p": "Achraf Hakimi",
        "name_q": "Nayef Aguerd",
        "value": 0.028261096010755524,
        "minutes_together": 331.7
      },
      {
        "player_p": 401,
        "player_q": 1938,
        "name_p": "Sofiane Boufal",
        "name_q": "Hakim Ziyech",
        "value": 0.02718240183610124,
        "minutes_together": 478.1
      },
      {
        "player_p": 401,
        "player_q": 1681,
        "name_p": "Sofiane Boufal",
        "name_q": "Achraf Hakimi",
        "value": 0.026386946323443315,
        "minutes_together": 472.66666666666663
      },
      {
        "player_p": 4324,
        "player_q": 12586,
        "name_p": "Azzedine Ounahi",
        "name_q": "Sofyan Amrabat",
        "value": 0.024353435299086564,
        "minutes_together": 559.95
      },
      {
        "player_p": 8027,
        "player_q": 12586,
        "name_p": "Noussair Mazraoui",
        "name_q": "Sofyan Amrabat",
        "value": 0.02432978539646188,
        "minutes_together": 379.23333333333335
      },
      {
        "player_p": 233,
        "player_q": 1810,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Youssef En-Nesyri",
        "value": 0.020443245700289474,
        "minutes_together": 405.56666666666666
      },
      {
        "player_p": 1785,
        "player_q": 13866,
        "name_p": "Bono",
        "name_q": "Selim Amallah",
        "value": 0.0180901490878526,
        "minutes_together": 357.05
      },
      {
        "player_p": 1785,
        "player_q": 12586,
        "name_p": "Bono",
        "name_q": "Sofyan Amrabat",
        "value": 0.0180898878356089,
        "minutes_together": 569.9833333333333
      },
      {
        "player_p": 4002,
        "player_q": 4324,
        "name_p": "Nayef Aguerd",
        "name_q": "Azzedine Ounahi",
        "value": 0.017351840539542644,
        "minutes_together": 318.8833333333333
      },
      {
        "player_p": 401,
        "player_q": 12586,
        "name_p": "Sofiane Boufal",
        "name_q": "Sofyan Amrabat",
        "value": 0.01557659916499854,
        "minutes_together": 478.1
      },
      {
        "player_p": 233,
        "player_q": 13866,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Selim Amallah",
        "value": 0.014538024955573004,
        "minutes_together": 330.8333333333333
      },
      {
        "player_p": 1681,
        "player_q": 1785,
        "name_p": "Achraf Hakimi",
        "name_q": "Bono",
        "value": 0.014515134915290944,
        "minutes_together": 560.9833333333333
      },
      {
        "player_p": 8027,
        "player_q": 13866,
        "name_p": "Noussair Mazraoui",
        "name_q": "Selim Amallah",
        "value": 0.01298196998911628,
        "minutes_together": 265.95
      },
      {
        "player_p": 401,
        "player_q": 13866,
        "name_p": "Sofiane Boufal",
        "name_q": "Selim Amallah",
        "value": 0.012570258097255586,
        "minutes_together": 307.41666666666663
      },
      {
        "player_p": 233,
        "player_q": 4002,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Nayef Aguerd",
        "value": 0.01192038003987716,
        "minutes_together": 369.15
      },
      {
        "player_p": 1938,
        "player_q": 4002,
        "name_p": "Hakim Ziyech",
        "name_q": "Nayef Aguerd",
        "value": 0.011125491707865373,
        "minutes_together": 350.8333333333333
      },
      {
        "player_p": 1810,
        "player_q": 1938,
        "name_p": "Youssef En-Nesyri",
        "name_q": "Hakim Ziyech",
        "value": 0.01095804564203258,
        "minutes_together": 536.0833333333334
      },
      {
        "player_p": 1785,
        "player_q": 8027,
        "name_p": "Bono",
        "name_q": "Noussair Mazraoui",
        "value": 0.01077409673334593,
        "minutes_together": 283.9666666666667
      },
      {
        "player_p": 1810,
        "player_q": 4324,
        "name_p": "Youssef En-Nesyri",
        "name_q": "Azzedine Ounahi",
        "value": 0.010465016222858304,
        "minutes_together": 481.4666666666667
      },
      {
        "player_p": 12586,
        "player_q": 13866,
        "name_p": "Sofyan Amrabat",
        "name_q": "Selim Amallah",
        "value": 0.009935450431800321,
        "minutes_together": 424.3
      },
      {
        "player_p": 401,
        "player_q": 1810,
        "name_p": "Sofiane Boufal",
        "name_q": "Youssef En-Nesyri",
        "value": 0.009051945418008989,
        "minutes_together": 461.05
      },
      {
        "player_p": 1938,
        "player_q": 13866,
        "name_p": "Hakim Ziyech",
        "name_q": "Selim Amallah",
        "value": 0.00868529239640263,
        "minutes_together": 405.98333333333335
      },
      {
        "player_p": 1938,
        "player_q": 4324,
        "name_p": "Hakim Ziyech",
        "name_q": "Azzedine Ounahi",
        "value": 0.008295563760957865,
        "minutes_together": 542.65
      },
      {
        "player_p": 1938,
        "player_q": 8027,
        "name_p": "Hakim Ziyech",
        "name_q": "Noussair Mazraoui",
        "value": 0.007825152350777473,
        "minutes_together": 360.91666666666663
      },
      {
        "player_p": 233,
        "player_q": 4324,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Azzedine Ounahi",
        "value": 0.007318754934378815,
        "minutes_together": 402.2833333333333
      },
      {
        "player_p": 1810,
        "player_q": 13866,
        "name_p": "Youssef En-Nesyri",
        "name_q": "Selim Amallah",
        "value": 0.007022898409195092,
        "minutes_together": 397.0
      },
      {
        "player_p": 1810,
        "player_q": 12586,
        "name_p": "Youssef En-Nesyri",
        "name_q": "Sofyan Amrabat",
        "value": 0.006170539382514963,
        "minutes_together": 554.4
      },
      {
        "player_p": 1785,
        "player_q": 4324,
        "name_p": "Bono",
        "name_q": "Azzedine Ounahi",
        "value": 0.005667234808135482,
        "minutes_together": 482.3
      },
      {
        "player_p": 1785,
        "player_q": 1810,
        "name_p": "Bono",
        "name_q": "Youssef En-Nesyri",
        "value": 0.005256492289617381,
        "minutes_together": 482.18333333333334
      },
      {
        "player_p": 1785,
        "player_q": 4002,
        "name_p": "Bono",
        "name_q": "Nayef Aguerd",
        "value": 0.005094744758627746,
        "minutes_together": 273.8833333333333
      },
      {
        "player_p": 233,
        "player_q": 1681,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Achraf Hakimi",
        "value": 0.004840857798126686,
        "minutes_together": 415.1
      },
      {
        "player_p": 4002,
        "player_q": 12586,
        "name_p": "Nayef Aguerd",
        "name_q": "Sofyan Amrabat",
        "value": 0.004716507371556073,
        "minutes_together": 369.15
      },
      {
        "player_p": 1810,
        "player_q": 4002,
        "name_p": "Youssef En-Nesyri",
        "name_q": "Nayef Aguerd",
        "value": 0.00465427378905743,
        "minutes_together": 328.15
      },
      {
        "player_p": 233,
        "player_q": 1938,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Hakim Ziyech",
        "value": 0.0036106709161475314,
        "minutes_together": 434.23333333333335
      },
      {
        "player_p": 1810,
        "player_q": 8027,
        "name_p": "Youssef En-Nesyri",
        "name_q": "Noussair Mazraoui",
        "value": 0.0021109682215476096,
        "minutes_together": 356.1666666666667
      },
      {
        "player_p": 4002,
        "player_q": 8027,
        "name_p": "Nayef Aguerd",
        "name_q": "Noussair Mazraoui",
        "value": 0.0018195231259482368,
        "minutes_together": 330.48333333333335
      },
      {
        "player_p": 4002,
        "player_q": 13866,
        "name_p": "Nayef Aguerd",
        "name_q": "Selim Amallah",
        "value": 0.0011858825241688722,
        "minutes_together": 273.93333333333334
      },
      {
        "player_p": 233,
        "player_q": 8027,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Noussair Mazraoui",
        "value": 0.0006118750279359698,
        "minutes_together": 351.0
      },
      {
        "player_p": 1681,
        "player_q": 8027,
        "name_p": "Achraf Hakimi",
        "name_q": "Noussair Mazraoui",
        "value": -0.001200073640163014,
        "minutes_together": 341.7833333333333
      },
      {
        "player_p": 401,
        "player_q": 1785,
        "name_p": "Sofiane Boufal",
        "name_q": "Bono",
        "value": -0.0016208999290442839,
        "minutes_together": 405.85
      },
      {
        "player_p": 1785,
        "player_q": 1938,
        "name_p": "Bono",
        "name_q": "Hakim Ziyech",
        "value": -0.0019274441826204992,
        "minutes_together": 534.7833333333333
      },
      {
        "player_p": 401,
        "player_q": 4002,
        "name_p": "Sofiane Boufal",
        "name_q": "Nayef Aguerd",
        "value": -0.0028147411009858832,
        "minutes_together": 267.43333333333334
      },
      {
        "player_p": 4324,
        "player_q": 13866,
        "name_p": "Azzedine Ounahi",
        "name_q": "Selim Amallah",
        "value": -0.005994017069144172,
        "minutes_together": 391.65
      },
      {
        "player_p": 1681,
        "player_q": 13866,
        "name_p": "Achraf Hakimi",
        "name_q": "Selim Amallah",
        "value": -0.0064690488906329335,
        "minutes_together": 414.8666666666667
      },
      {
        "player_p": 1681,
        "player_q": 12586,
        "name_p": "Achraf Hakimi",
        "name_q": "Sofyan Amrabat",
        "value": -0.012007864587169922,
        "minutes_together": 627.8
      },
      {
        "player_p": 1681,
        "player_q": 4324,
        "name_p": "Achraf Hakimi",
        "name_q": "Azzedine Ounahi",
        "value": -0.021916319930308792,
        "minutes_together": 549.1166666666667
      },
      {
        "player_p": 233,
        "player_q": 401,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Sofiane Boufal",
        "value": -0.03781527910946316,
        "minutes_together": 344.85
      }
    ],
    "path": "assets/figures/team_374_joi90.png"
  },
  {
    "team_id": "374",
    "team_name": "Morocco",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_374_jdi90.png",
    "n_pairs": 55,
    "median": 0.0403612322692597,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 12586,
        "name": "Sofyan Amrabat",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 39915
      },
      {
        "player_id": 1938,
        "name": "Hakim Ziyech",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 37803
      },
      {
        "player_id": 1681,
        "name": "Achraf Hakimi",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 37668
      },
      {
        "player_id": 1785,
        "name": "Bono",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 34199
      },
      {
        "player_id": 4324,
        "name": "Azzedine Ounahi",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 33597
      },
      {
        "player_id": 1810,
        "name": "Youssef En-Nesyri",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 33264
      },
      {
        "player_id": 401,
        "name": "Sofiane Boufal",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 28686
      },
      {
        "player_id": 233,
        "name": "Romain Sa\u00efss",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 27153
      },
      {
        "player_id": 13866,
        "name": "Selim Amallah",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 25458
      },
      {
        "player_id": 8027,
        "name": "Noussair Mazraoui",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 22754
      },
      {
        "player_id": 4002,
        "name": "Nayef Aguerd",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 22149
      }
    ],
    "pairs": [
      {
        "player_p": 4002,
        "player_q": 4324,
        "name_p": "Nayef Aguerd",
        "name_q": "Azzedine Ounahi",
        "value": 0.060465146689143066,
        "minutes_together": 318.8833333333333
      },
      {
        "player_p": 4324,
        "player_q": 8027,
        "name_p": "Azzedine Ounahi",
        "name_q": "Noussair Mazraoui",
        "value": 0.05491093830148542,
        "minutes_together": 343.7166666666667
      },
      {
        "player_p": 1938,
        "player_q": 4324,
        "name_p": "Hakim Ziyech",
        "name_q": "Azzedine Ounahi",
        "value": 0.05445480845765153,
        "minutes_together": 542.65
      },
      {
        "player_p": 4002,
        "player_q": 13866,
        "name_p": "Nayef Aguerd",
        "name_q": "Selim Amallah",
        "value": 0.05395469029427813,
        "minutes_together": 273.93333333333334
      },
      {
        "player_p": 233,
        "player_q": 4324,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Azzedine Ounahi",
        "value": 0.053519694186206244,
        "minutes_together": 402.2833333333333
      },
      {
        "player_p": 233,
        "player_q": 401,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Sofiane Boufal",
        "value": 0.053020584587626596,
        "minutes_together": 344.85
      },
      {
        "player_p": 4002,
        "player_q": 12586,
        "name_p": "Nayef Aguerd",
        "name_q": "Sofyan Amrabat",
        "value": 0.05283176397161348,
        "minutes_together": 369.15
      },
      {
        "player_p": 233,
        "player_q": 1938,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Hakim Ziyech",
        "value": 0.05223957888072333,
        "minutes_together": 434.23333333333335
      },
      {
        "player_p": 401,
        "player_q": 4324,
        "name_p": "Sofiane Boufal",
        "name_q": "Azzedine Ounahi",
        "value": 0.05129202252232138,
        "minutes_together": 423.06666666666666
      },
      {
        "player_p": 401,
        "player_q": 1938,
        "name_p": "Sofiane Boufal",
        "name_q": "Hakim Ziyech",
        "value": 0.050301280117416636,
        "minutes_together": 478.1
      },
      {
        "player_p": 233,
        "player_q": 12586,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Sofyan Amrabat",
        "value": 0.04801726616316517,
        "minutes_together": 452.55
      },
      {
        "player_p": 8027,
        "player_q": 12586,
        "name_p": "Noussair Mazraoui",
        "name_q": "Sofyan Amrabat",
        "value": 0.0479142593571692,
        "minutes_together": 379.23333333333335
      },
      {
        "player_p": 401,
        "player_q": 12586,
        "name_p": "Sofiane Boufal",
        "name_q": "Sofyan Amrabat",
        "value": 0.04737381277775368,
        "minutes_together": 478.1
      },
      {
        "player_p": 1938,
        "player_q": 8027,
        "name_p": "Hakim Ziyech",
        "name_q": "Noussair Mazraoui",
        "value": 0.046760060779297646,
        "minutes_together": 360.91666666666663
      },
      {
        "player_p": 401,
        "player_q": 4002,
        "name_p": "Sofiane Boufal",
        "name_q": "Nayef Aguerd",
        "value": 0.04675772456087811,
        "minutes_together": 267.43333333333334
      },
      {
        "player_p": 1938,
        "player_q": 13866,
        "name_p": "Hakim Ziyech",
        "name_q": "Selim Amallah",
        "value": 0.046090725278551285,
        "minutes_together": 405.98333333333335
      },
      {
        "player_p": 401,
        "player_q": 1785,
        "name_p": "Sofiane Boufal",
        "name_q": "Bono",
        "value": 0.045573837863278725,
        "minutes_together": 405.85
      },
      {
        "player_p": 8027,
        "player_q": 13866,
        "name_p": "Noussair Mazraoui",
        "name_q": "Selim Amallah",
        "value": 0.044254461715890724,
        "minutes_together": 265.95
      },
      {
        "player_p": 233,
        "player_q": 1785,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Bono",
        "value": 0.04416215661243836,
        "minutes_together": 357.2833333333333
      },
      {
        "player_p": 401,
        "player_q": 13866,
        "name_p": "Sofiane Boufal",
        "name_q": "Selim Amallah",
        "value": 0.043957545634898405,
        "minutes_together": 307.41666666666663
      },
      {
        "player_p": 233,
        "player_q": 1681,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Achraf Hakimi",
        "value": 0.04393292859187521,
        "minutes_together": 415.1
      },
      {
        "player_p": 233,
        "player_q": 13866,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Selim Amallah",
        "value": 0.043720662488223025,
        "minutes_together": 330.8333333333333
      },
      {
        "player_p": 1938,
        "player_q": 4002,
        "name_p": "Hakim Ziyech",
        "name_q": "Nayef Aguerd",
        "value": 0.042777380262062514,
        "minutes_together": 350.8333333333333
      },
      {
        "player_p": 233,
        "player_q": 4002,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Nayef Aguerd",
        "value": 0.04234986089298852,
        "minutes_together": 369.15
      },
      {
        "player_p": 401,
        "player_q": 1681,
        "name_p": "Sofiane Boufal",
        "name_q": "Achraf Hakimi",
        "value": 0.04182160044495252,
        "minutes_together": 472.66666666666663
      },
      {
        "player_p": 1938,
        "player_q": 12586,
        "name_p": "Hakim Ziyech",
        "name_q": "Sofyan Amrabat",
        "value": 0.04168255002755264,
        "minutes_together": 630.05
      },
      {
        "player_p": 4324,
        "player_q": 12586,
        "name_p": "Azzedine Ounahi",
        "name_q": "Sofyan Amrabat",
        "value": 0.04105800319097064,
        "minutes_together": 559.95
      },
      {
        "player_p": 1785,
        "player_q": 1938,
        "name_p": "Bono",
        "name_q": "Hakim Ziyech",
        "value": 0.0403612322692597,
        "minutes_together": 534.7833333333333
      },
      {
        "player_p": 401,
        "player_q": 8027,
        "name_p": "Sofiane Boufal",
        "name_q": "Noussair Mazraoui",
        "value": 0.04001667085403402,
        "minutes_together": 311.2166666666667
      },
      {
        "player_p": 1681,
        "player_q": 4002,
        "name_p": "Achraf Hakimi",
        "name_q": "Nayef Aguerd",
        "value": 0.03996096615592597,
        "minutes_together": 331.7
      },
      {
        "player_p": 233,
        "player_q": 1810,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Youssef En-Nesyri",
        "value": 0.03931228076364654,
        "minutes_together": 405.56666666666666
      },
      {
        "player_p": 1681,
        "player_q": 1938,
        "name_p": "Achraf Hakimi",
        "name_q": "Hakim Ziyech",
        "value": 0.03903843338409836,
        "minutes_together": 601.6
      },
      {
        "player_p": 233,
        "player_q": 8027,
        "name_p": "Romain Sa\u00efss",
        "name_q": "Noussair Mazraoui",
        "value": 0.03896957648611863,
        "minutes_together": 351.0
      },
      {
        "player_p": 1681,
        "player_q": 4324,
        "name_p": "Achraf Hakimi",
        "name_q": "Azzedine Ounahi",
        "value": 0.0384564691495087,
        "minutes_together": 549.1166666666667
      },
      {
        "player_p": 1785,
        "player_q": 4002,
        "name_p": "Bono",
        "name_q": "Nayef Aguerd",
        "value": 0.03789385373665254,
        "minutes_together": 273.8833333333333
      },
      {
        "player_p": 1785,
        "player_q": 4324,
        "name_p": "Bono",
        "name_q": "Azzedine Ounahi",
        "value": 0.03750948934300748,
        "minutes_together": 482.3
      },
      {
        "player_p": 1810,
        "player_q": 4002,
        "name_p": "Youssef En-Nesyri",
        "name_q": "Nayef Aguerd",
        "value": 0.03649074696877245,
        "minutes_together": 328.15
      },
      {
        "player_p": 1785,
        "player_q": 12586,
        "name_p": "Bono",
        "name_q": "Sofyan Amrabat",
        "value": 0.036094368743623796,
        "minutes_together": 569.9833333333333
      },
      {
        "player_p": 1681,
        "player_q": 8027,
        "name_p": "Achraf Hakimi",
        "name_q": "Noussair Mazraoui",
        "value": 0.035901877349494425,
        "minutes_together": 341.7833333333333
      },
      {
        "player_p": 4002,
        "player_q": 8027,
        "name_p": "Nayef Aguerd",
        "name_q": "Noussair Mazraoui",
        "value": 0.0357750992823118,
        "minutes_together": 330.48333333333335
      },
      {
        "player_p": 1681,
        "player_q": 12586,
        "name_p": "Achraf Hakimi",
        "name_q": "Sofyan Amrabat",
        "value": 0.03548423792301035,
        "minutes_together": 627.8
      },
      {
        "player_p": 12586,
        "player_q": 13866,
        "name_p": "Sofyan Amrabat",
        "name_q": "Selim Amallah",
        "value": 0.03499716131753925,
        "minutes_together": 424.3
      },
      {
        "player_p": 1810,
        "player_q": 4324,
        "name_p": "Youssef En-Nesyri",
        "name_q": "Azzedine Ounahi",
        "value": 0.03447228220281043,
        "minutes_together": 481.4666666666667
      },
      {
        "player_p": 4324,
        "player_q": 13866,
        "name_p": "Azzedine Ounahi",
        "name_q": "Selim Amallah",
        "value": 0.03376763005308797,
        "minutes_together": 391.65
      },
      {
        "player_p": 1785,
        "player_q": 8027,
        "name_p": "Bono",
        "name_q": "Noussair Mazraoui",
        "value": 0.03336211489197656,
        "minutes_together": 283.9666666666667
      },
      {
        "player_p": 1681,
        "player_q": 13866,
        "name_p": "Achraf Hakimi",
        "name_q": "Selim Amallah",
        "value": 0.03228868546292712,
        "minutes_together": 414.8666666666667
      },
      {
        "player_p": 401,
        "player_q": 1810,
        "name_p": "Sofiane Boufal",
        "name_q": "Youssef En-Nesyri",
        "value": 0.03180774258447534,
        "minutes_together": 461.05
      },
      {
        "player_p": 1681,
        "player_q": 1785,
        "name_p": "Achraf Hakimi",
        "name_q": "Bono",
        "value": 0.0316510740835529,
        "minutes_together": 560.9833333333333
      },
      {
        "player_p": 1785,
        "player_q": 13866,
        "name_p": "Bono",
        "name_q": "Selim Amallah",
        "value": 0.029884833945688433,
        "minutes_together": 357.05
      },
      {
        "player_p": 1810,
        "player_q": 12586,
        "name_p": "Youssef En-Nesyri",
        "name_q": "Sofyan Amrabat",
        "value": 0.028554348165113385,
        "minutes_together": 554.4
      },
      {
        "player_p": 1810,
        "player_q": 8027,
        "name_p": "Youssef En-Nesyri",
        "name_q": "Noussair Mazraoui",
        "value": 0.028505122983894113,
        "minutes_together": 356.1666666666667
      },
      {
        "player_p": 1810,
        "player_q": 1938,
        "name_p": "Youssef En-Nesyri",
        "name_q": "Hakim Ziyech",
        "value": 0.025161116549783105,
        "minutes_together": 536.0833333333334
      },
      {
        "player_p": 1810,
        "player_q": 13866,
        "name_p": "Youssef En-Nesyri",
        "name_q": "Selim Amallah",
        "value": 0.023227991969533474,
        "minutes_together": 397.0
      },
      {
        "player_p": 1785,
        "player_q": 1810,
        "name_p": "Bono",
        "name_q": "Youssef En-Nesyri",
        "value": 0.022430430857605974,
        "minutes_together": 482.18333333333334
      },
      {
        "player_p": 1681,
        "player_q": 1810,
        "name_p": "Achraf Hakimi",
        "name_q": "Youssef En-Nesyri",
        "value": 0.021008556468625445,
        "minutes_together": 540.0
      }
    ],
    "path": "assets/figures/team_374_jdi90.png"
  },
  {
    "team_id": "375",
    "team_name": "Serbia",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_375_joi90.png",
    "n_pairs": 53,
    "median": 0.020278943883518204,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 12653,
        "name": "Vanja Milinkovi\u0107-Savi\u0107",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17618
      },
      {
        "player_id": 12576,
        "name": "Nikola Milenkovic",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17618
      },
      {
        "player_id": 1991,
        "name": "Aleksandar Mitrovic",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 16764
      },
      {
        "player_id": 8037,
        "name": "Dusan Tadi\u0107",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 16255
      },
      {
        "player_id": 12664,
        "name": "Sa\u0161a Luki\u0107",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 15697
      },
      {
        "player_id": 3880,
        "name": "Strahinja Pavlovic",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 15170
      },
      {
        "player_id": 12561,
        "name": "Sergej Milinkovi\u0107-Savi\u0107",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 14534
      },
      {
        "player_id": 9947,
        "name": "Milos Veljkovic",
        "position": "MCB",
        "x": 34.0,
        "y": 22.5,
        "row": 4,
        "col": 2,
        "on_seconds": 13740
      },
      {
        "player_id": 13906,
        "name": "Andrija Zivkovic",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 12723
      },
      {
        "player_id": 4734,
        "name": "Filip Kostic",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 11488
      },
      {
        "player_id": 1550,
        "name": "Nemanja Maksimovic",
        "position": "DM",
        "x": 34.0,
        "y": 40.0,
        "row": 3,
        "col": 2,
        "on_seconds": 8628
      }
    ],
    "pairs": [
      {
        "player_p": 1991,
        "player_q": 13906,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Andrija Zivkovic",
        "value": 0.8052915650013739,
        "minutes_together": 212.05
      },
      {
        "player_p": 1550,
        "player_q": 1991,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Aleksandar Mitrovic",
        "value": 0.6653246877924461,
        "minutes_together": 129.56666666666666
      },
      {
        "player_p": 1991,
        "player_q": 12576,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Nikola Milenkovic",
        "value": 0.6137104341439773,
        "minutes_together": 279.4
      },
      {
        "player_p": 12561,
        "player_q": 13906,
        "name_p": "Sergej Milinkovi\u0107-Savi\u0107",
        "name_q": "Andrija Zivkovic",
        "value": 0.42339716882308925,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 1991,
        "player_q": 3880,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Strahinja Pavlovic",
        "value": 0.3819185509920237,
        "minutes_together": 238.6
      },
      {
        "player_p": 1991,
        "player_q": 8037,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Dusan Tadi\u0107",
        "value": 0.3481215818866855,
        "minutes_together": 256.68333333333334
      },
      {
        "player_p": 3880,
        "player_q": 8037,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Dusan Tadi\u0107",
        "value": 0.3439913927670117,
        "minutes_together": 230.11666666666665
      },
      {
        "player_p": 4734,
        "player_q": 8037,
        "name_p": "Filip Kostic",
        "name_q": "Dusan Tadi\u0107",
        "value": 0.21217976403320324,
        "minutes_together": 168.75
      },
      {
        "player_p": 3880,
        "player_q": 4734,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Filip Kostic",
        "value": 0.16715651927614006,
        "minutes_together": 155.71666666666667
      },
      {
        "player_p": 8037,
        "player_q": 13906,
        "name_p": "Dusan Tadi\u0107",
        "name_q": "Andrija Zivkovic",
        "value": 0.16501219401502937,
        "minutes_together": 212.05
      },
      {
        "player_p": 1550,
        "player_q": 13906,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Andrija Zivkovic",
        "value": 0.1325251839313678,
        "minutes_together": 88.38333333333333
      },
      {
        "player_p": 1550,
        "player_q": 8037,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Dusan Tadi\u0107",
        "value": 0.08181913143083586,
        "minutes_together": 121.08333333333334
      },
      {
        "player_p": 4734,
        "player_q": 12664,
        "name_p": "Filip Kostic",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": 0.06283635245920076,
        "minutes_together": 191.46666666666667
      },
      {
        "player_p": 9947,
        "player_q": 12653,
        "name_p": "Milos Veljkovic",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": 0.061311938115839515,
        "minutes_together": 229.0
      },
      {
        "player_p": 12576,
        "player_q": 12664,
        "name_p": "Nikola Milenkovic",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": 0.059608220715026305,
        "minutes_together": 261.6166666666667
      },
      {
        "player_p": 1991,
        "player_q": 4734,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Filip Kostic",
        "value": 0.0559016050528273,
        "minutes_together": 191.46666666666667
      },
      {
        "player_p": 12576,
        "player_q": 13906,
        "name_p": "Nikola Milenkovic",
        "name_q": "Andrija Zivkovic",
        "value": 0.048300077372519144,
        "minutes_together": 212.05
      },
      {
        "player_p": 8037,
        "player_q": 12664,
        "name_p": "Dusan Tadi\u0107",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": 0.0479320261462427,
        "minutes_together": 238.89999999999998
      },
      {
        "player_p": 9947,
        "player_q": 13906,
        "name_p": "Milos Veljkovic",
        "name_q": "Andrija Zivkovic",
        "value": 0.04769900526402798,
        "minutes_together": 188.60000000000002
      },
      {
        "player_p": 4734,
        "player_q": 12561,
        "name_p": "Filip Kostic",
        "name_q": "Sergej Milinkovi\u0107-Savi\u0107",
        "value": 0.04072050417260551,
        "minutes_together": 145.11666666666667
      },
      {
        "player_p": 3880,
        "player_q": 12664,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": 0.039483568431024414,
        "minutes_together": 220.81666666666666
      },
      {
        "player_p": 3880,
        "player_q": 9947,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Milos Veljkovic",
        "value": 0.03607858264997889,
        "minutes_together": 206.75
      },
      {
        "player_p": 12664,
        "player_q": 13906,
        "name_p": "Sa\u0161a Luki\u0107",
        "name_q": "Andrija Zivkovic",
        "value": 0.03329492543274829,
        "minutes_together": 212.05
      },
      {
        "player_p": 12561,
        "player_q": 12664,
        "name_p": "Sergej Milinkovi\u0107-Savi\u0107",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": 0.030059705929802245,
        "minutes_together": 210.21666666666667
      },
      {
        "player_p": 1550,
        "player_q": 12576,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Nikola Milenkovic",
        "value": 0.021220519147271973,
        "minutes_together": 143.8
      },
      {
        "player_p": 9947,
        "player_q": 12561,
        "name_p": "Milos Veljkovic",
        "name_q": "Sergej Milinkovi\u0107-Savi\u0107",
        "value": 0.02037386453666926,
        "minutes_together": 229.0
      },
      {
        "player_p": 3880,
        "player_q": 12653,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": 0.020278943883518204,
        "minutes_together": 252.83333333333331
      },
      {
        "player_p": 1550,
        "player_q": 9947,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Milos Veljkovic",
        "value": 0.017152367300271462,
        "minutes_together": 91.9
      },
      {
        "player_p": 8037,
        "player_q": 12576,
        "name_p": "Dusan Tadi\u0107",
        "name_q": "Nikola Milenkovic",
        "value": 0.016963559908687125,
        "minutes_together": 270.91666666666663
      },
      {
        "player_p": 3880,
        "player_q": 12561,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Sergej Milinkovi\u0107-Savi\u0107",
        "value": 0.01618880512597637,
        "minutes_together": 219.48333333333332
      },
      {
        "player_p": 1991,
        "player_q": 12653,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": 0.015533201263380501,
        "minutes_together": 279.4
      },
      {
        "player_p": 1550,
        "player_q": 4734,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Filip Kostic",
        "value": 0.013020467448133156,
        "minutes_together": 124.51666666666668
      },
      {
        "player_p": 9947,
        "player_q": 12576,
        "name_p": "Milos Veljkovic",
        "name_q": "Nikola Milenkovic",
        "value": 0.01289539481844524,
        "minutes_together": 229.0
      },
      {
        "player_p": 1550,
        "player_q": 12664,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": 0.009471978759256015,
        "minutes_together": 129.56666666666666
      },
      {
        "player_p": 9947,
        "player_q": 12664,
        "name_p": "Milos Veljkovic",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": 0.0069258726332558345,
        "minutes_together": 196.98333333333335
      },
      {
        "player_p": 12561,
        "player_q": 12653,
        "name_p": "Sergej Milinkovi\u0107-Savi\u0107",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": 0.006752814358242572,
        "minutes_together": 242.23333333333335
      },
      {
        "player_p": 4734,
        "player_q": 9947,
        "name_p": "Filip Kostic",
        "name_q": "Milos Veljkovic",
        "value": 0.006068038826866478,
        "minutes_together": 131.88333333333333
      },
      {
        "player_p": 3880,
        "player_q": 13906,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Andrija Zivkovic",
        "value": 0.005953993614957568,
        "minutes_together": 189.7
      },
      {
        "player_p": 1550,
        "player_q": 12561,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Sergej Milinkovi\u0107-Savi\u0107",
        "value": 0.005287847180730389,
        "minutes_together": 92.4
      },
      {
        "player_p": 12653,
        "player_q": 12664,
        "name_p": "Vanja Milinkovi\u0107-Savi\u0107",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": 0.00479635719387624,
        "minutes_together": 261.6166666666667
      },
      {
        "player_p": 8037,
        "player_q": 9947,
        "name_p": "Dusan Tadi\u0107",
        "name_q": "Milos Veljkovic",
        "value": 0.004462305028097871,
        "minutes_together": 229.0
      },
      {
        "player_p": 8037,
        "player_q": 12653,
        "name_p": "Dusan Tadi\u0107",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": 0.004170817762794434,
        "minutes_together": 270.91666666666663
      },
      {
        "player_p": 4734,
        "player_q": 12576,
        "name_p": "Filip Kostic",
        "name_q": "Nikola Milenkovic",
        "value": 0.0026600489657749153,
        "minutes_together": 191.46666666666667
      },
      {
        "player_p": 1550,
        "player_q": 3880,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Strahinja Pavlovic",
        "value": 0.0003745579957056692,
        "minutes_together": 103.0
      },
      {
        "player_p": 1991,
        "player_q": 9947,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Milos Veljkovic",
        "value": -0.00031879116271747363,
        "minutes_together": 214.76666666666668
      },
      {
        "player_p": 1991,
        "player_q": 12664,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": -0.0005946042983130113,
        "minutes_together": 261.6166666666667
      },
      {
        "player_p": 12653,
        "player_q": 13906,
        "name_p": "Vanja Milinkovi\u0107-Savi\u0107",
        "name_q": "Andrija Zivkovic",
        "value": -0.0015582746276628973,
        "minutes_together": 212.05
      },
      {
        "player_p": 1550,
        "player_q": 12653,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": -0.001879818616321488,
        "minutes_together": 143.8
      },
      {
        "player_p": 3880,
        "player_q": 12576,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Nikola Milenkovic",
        "value": -0.00331590905079063,
        "minutes_together": 252.83333333333331
      },
      {
        "player_p": 12576,
        "player_q": 12653,
        "name_p": "Nikola Milenkovic",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": -0.004943509542355468,
        "minutes_together": 293.6333333333333
      },
      {
        "player_p": 12561,
        "player_q": 12576,
        "name_p": "Sergej Milinkovi\u0107-Savi\u0107",
        "name_q": "Nikola Milenkovic",
        "value": -0.012416587028414257,
        "minutes_together": 242.23333333333335
      },
      {
        "player_p": 1991,
        "player_q": 12561,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Sergej Milinkovi\u0107-Savi\u0107",
        "value": -0.05457841955133259,
        "minutes_together": 228.0
      },
      {
        "player_p": 8037,
        "player_q": 12561,
        "name_p": "Dusan Tadi\u0107",
        "name_q": "Sergej Milinkovi\u0107-Savi\u0107",
        "value": -0.054992023467841086,
        "minutes_together": 242.23333333333335
      }
    ],
    "path": "assets/figures/team_375_joi90.png"
  },
  {
    "team_id": "375",
    "team_name": "Serbia",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_375_jdi90.png",
    "n_pairs": 55,
    "median": -0.07757864249491796,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 12653,
        "name": "Vanja Milinkovi\u0107-Savi\u0107",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17618
      },
      {
        "player_id": 12576,
        "name": "Nikola Milenkovic",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17618
      },
      {
        "player_id": 1991,
        "name": "Aleksandar Mitrovic",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 16764
      },
      {
        "player_id": 8037,
        "name": "Dusan Tadi\u0107",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 16255
      },
      {
        "player_id": 12664,
        "name": "Sa\u0161a Luki\u0107",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 15697
      },
      {
        "player_id": 3880,
        "name": "Strahinja Pavlovic",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 15170
      },
      {
        "player_id": 12561,
        "name": "Sergej Milinkovi\u0107-Savi\u0107",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 14534
      },
      {
        "player_id": 9947,
        "name": "Milos Veljkovic",
        "position": "MCB",
        "x": 34.0,
        "y": 22.5,
        "row": 4,
        "col": 2,
        "on_seconds": 13740
      },
      {
        "player_id": 13906,
        "name": "Andrija Zivkovic",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 12723
      },
      {
        "player_id": 4734,
        "name": "Filip Kostic",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 11488
      },
      {
        "player_id": 1550,
        "name": "Nemanja Maksimovic",
        "position": "DM",
        "x": 34.0,
        "y": 40.0,
        "row": 3,
        "col": 2,
        "on_seconds": 8628
      }
    ],
    "pairs": [
      {
        "player_p": 1991,
        "player_q": 12561,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Sergej Milinkovi\u0107-Savi\u0107",
        "value": -0.043743013306909335,
        "minutes_together": 228.0
      },
      {
        "player_p": 1991,
        "player_q": 13906,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Andrija Zivkovic",
        "value": -0.047525949149819204,
        "minutes_together": 212.05
      },
      {
        "player_p": 1991,
        "player_q": 8037,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Dusan Tadi\u0107",
        "value": -0.048820864721509934,
        "minutes_together": 256.68333333333334
      },
      {
        "player_p": 8037,
        "player_q": 12561,
        "name_p": "Dusan Tadi\u0107",
        "name_q": "Sergej Milinkovi\u0107-Savi\u0107",
        "value": -0.05065492818746636,
        "minutes_together": 242.23333333333335
      },
      {
        "player_p": 1991,
        "player_q": 3880,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Strahinja Pavlovic",
        "value": -0.05392632892365783,
        "minutes_together": 238.6
      },
      {
        "player_p": 1550,
        "player_q": 12561,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Sergej Milinkovi\u0107-Savi\u0107",
        "value": -0.05573910050760879,
        "minutes_together": 92.4
      },
      {
        "player_p": 12561,
        "player_q": 13906,
        "name_p": "Sergej Milinkovi\u0107-Savi\u0107",
        "name_q": "Andrija Zivkovic",
        "value": -0.0566599376241667,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 8037,
        "player_q": 13906,
        "name_p": "Dusan Tadi\u0107",
        "name_q": "Andrija Zivkovic",
        "value": -0.058087011683392496,
        "minutes_together": 212.05
      },
      {
        "player_p": 1991,
        "player_q": 12664,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": -0.05813539512606618,
        "minutes_together": 261.6166666666667
      },
      {
        "player_p": 3880,
        "player_q": 12561,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Sergej Milinkovi\u0107-Savi\u0107",
        "value": -0.059841841522812085,
        "minutes_together": 219.48333333333332
      },
      {
        "player_p": 3880,
        "player_q": 8037,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Dusan Tadi\u0107",
        "value": -0.06154630828937993,
        "minutes_together": 230.11666666666665
      },
      {
        "player_p": 12561,
        "player_q": 12664,
        "name_p": "Sergej Milinkovi\u0107-Savi\u0107",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": -0.06258969549510202,
        "minutes_together": 210.21666666666667
      },
      {
        "player_p": 1991,
        "player_q": 4734,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Filip Kostic",
        "value": -0.06364849077384192,
        "minutes_together": 191.46666666666667
      },
      {
        "player_p": 1991,
        "player_q": 12576,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Nikola Milenkovic",
        "value": -0.0641900668579371,
        "minutes_together": 279.4
      },
      {
        "player_p": 12561,
        "player_q": 12576,
        "name_p": "Sergej Milinkovi\u0107-Savi\u0107",
        "name_q": "Nikola Milenkovic",
        "value": -0.0642976452975181,
        "minutes_together": 242.23333333333335
      },
      {
        "player_p": 12664,
        "player_q": 13906,
        "name_p": "Sa\u0161a Luki\u0107",
        "name_q": "Andrija Zivkovic",
        "value": -0.0653603983680376,
        "minutes_together": 212.05
      },
      {
        "player_p": 1991,
        "player_q": 12653,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": -0.06628545637726235,
        "minutes_together": 279.4
      },
      {
        "player_p": 12561,
        "player_q": 12653,
        "name_p": "Sergej Milinkovi\u0107-Savi\u0107",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": -0.06657240450185359,
        "minutes_together": 242.23333333333335
      },
      {
        "player_p": 8037,
        "player_q": 12664,
        "name_p": "Dusan Tadi\u0107",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": -0.0681878687843264,
        "minutes_together": 238.89999999999998
      },
      {
        "player_p": 3880,
        "player_q": 13906,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Andrija Zivkovic",
        "value": -0.06905385866756591,
        "minutes_together": 189.7
      },
      {
        "player_p": 8037,
        "player_q": 12576,
        "name_p": "Dusan Tadi\u0107",
        "name_q": "Nikola Milenkovic",
        "value": -0.07160992529945694,
        "minutes_together": 270.91666666666663
      },
      {
        "player_p": 3880,
        "player_q": 12576,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Nikola Milenkovic",
        "value": -0.07238945944071348,
        "minutes_together": 252.83333333333331
      },
      {
        "player_p": 8037,
        "player_q": 12653,
        "name_p": "Dusan Tadi\u0107",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": -0.07391766637199548,
        "minutes_together": 270.91666666666663
      },
      {
        "player_p": 3880,
        "player_q": 12653,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": -0.07395141744935693,
        "minutes_together": 252.83333333333331
      },
      {
        "player_p": 1550,
        "player_q": 1991,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Aleksandar Mitrovic",
        "value": -0.07492045162166619,
        "minutes_together": 129.56666666666666
      },
      {
        "player_p": 12576,
        "player_q": 13906,
        "name_p": "Nikola Milenkovic",
        "name_q": "Andrija Zivkovic",
        "value": -0.07539798866078443,
        "minutes_together": 212.05
      },
      {
        "player_p": 4734,
        "player_q": 13906,
        "name_p": "Filip Kostic",
        "name_q": "Andrija Zivkovic",
        "value": -0.07697589390969106,
        "minutes_together": 155.33333333333331
      },
      {
        "player_p": 12653,
        "player_q": 13906,
        "name_p": "Vanja Milinkovi\u0107-Savi\u0107",
        "name_q": "Andrija Zivkovic",
        "value": -0.07757864249491796,
        "minutes_together": 212.05
      },
      {
        "player_p": 3880,
        "player_q": 12664,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": -0.07758115652836878,
        "minutes_together": 220.81666666666666
      },
      {
        "player_p": 1550,
        "player_q": 8037,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Dusan Tadi\u0107",
        "value": -0.0785467610954951,
        "minutes_together": 121.08333333333334
      },
      {
        "player_p": 4734,
        "player_q": 8037,
        "name_p": "Filip Kostic",
        "name_q": "Dusan Tadi\u0107",
        "value": -0.07913267338617046,
        "minutes_together": 168.75
      },
      {
        "player_p": 1550,
        "player_q": 4734,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Filip Kostic",
        "value": -0.08185279487026821,
        "minutes_together": 124.51666666666668
      },
      {
        "player_p": 4734,
        "player_q": 12561,
        "name_p": "Filip Kostic",
        "name_q": "Sergej Milinkovi\u0107-Savi\u0107",
        "value": -0.08369529851697659,
        "minutes_together": 145.11666666666667
      },
      {
        "player_p": 1550,
        "player_q": 3880,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Strahinja Pavlovic",
        "value": -0.08625575847433173,
        "minutes_together": 103.0
      },
      {
        "player_p": 12576,
        "player_q": 12664,
        "name_p": "Nikola Milenkovic",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": -0.08697786361005416,
        "minutes_together": 261.6166666666667
      },
      {
        "player_p": 1550,
        "player_q": 13906,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Andrija Zivkovic",
        "value": -0.08763842682108056,
        "minutes_together": 88.38333333333333
      },
      {
        "player_p": 12576,
        "player_q": 12653,
        "name_p": "Nikola Milenkovic",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": -0.0884898621450047,
        "minutes_together": 293.6333333333333
      },
      {
        "player_p": 12653,
        "player_q": 12664,
        "name_p": "Vanja Milinkovi\u0107-Savi\u0107",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": -0.08903513466915389,
        "minutes_together": 261.6166666666667
      },
      {
        "player_p": 3880,
        "player_q": 4734,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Filip Kostic",
        "value": -0.09324851432140599,
        "minutes_together": 155.71666666666667
      },
      {
        "player_p": 4734,
        "player_q": 12664,
        "name_p": "Filip Kostic",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": -0.09381890005454203,
        "minutes_together": 191.46666666666667
      },
      {
        "player_p": 1550,
        "player_q": 12664,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": -0.0945851318287287,
        "minutes_together": 129.56666666666666
      },
      {
        "player_p": 4734,
        "player_q": 12576,
        "name_p": "Filip Kostic",
        "name_q": "Nikola Milenkovic",
        "value": -0.09993039597259346,
        "minutes_together": 191.46666666666667
      },
      {
        "player_p": 4734,
        "player_q": 12653,
        "name_p": "Filip Kostic",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": -0.10152035257314188,
        "minutes_together": 191.46666666666667
      },
      {
        "player_p": 1550,
        "player_q": 12576,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Nikola Milenkovic",
        "value": -0.10256299186587252,
        "minutes_together": 143.8
      },
      {
        "player_p": 1550,
        "player_q": 12653,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": -0.10503856273461817,
        "minutes_together": 143.8
      },
      {
        "player_p": 3880,
        "player_q": 9947,
        "name_p": "Strahinja Pavlovic",
        "name_q": "Milos Veljkovic",
        "value": -0.14308070058962813,
        "minutes_together": 206.75
      },
      {
        "player_p": 9947,
        "player_q": 12561,
        "name_p": "Milos Veljkovic",
        "name_q": "Sergej Milinkovi\u0107-Savi\u0107",
        "value": -0.1440832785236526,
        "minutes_together": 229.0
      },
      {
        "player_p": 8037,
        "player_q": 9947,
        "name_p": "Dusan Tadi\u0107",
        "name_q": "Milos Veljkovic",
        "value": -0.14950762600908007,
        "minutes_together": 229.0
      },
      {
        "player_p": 1991,
        "player_q": 9947,
        "name_p": "Aleksandar Mitrovic",
        "name_q": "Milos Veljkovic",
        "value": -0.1506935414058058,
        "minutes_together": 214.76666666666668
      },
      {
        "player_p": 9947,
        "player_q": 12576,
        "name_p": "Milos Veljkovic",
        "name_q": "Nikola Milenkovic",
        "value": -0.1628853418901458,
        "minutes_together": 229.0
      },
      {
        "player_p": 9947,
        "player_q": 12653,
        "name_p": "Milos Veljkovic",
        "name_q": "Vanja Milinkovi\u0107-Savi\u0107",
        "value": -0.1653036551004066,
        "minutes_together": 229.0
      },
      {
        "player_p": 9947,
        "player_q": 13906,
        "name_p": "Milos Veljkovic",
        "name_q": "Andrija Zivkovic",
        "value": -0.17272791982265148,
        "minutes_together": 188.60000000000002
      },
      {
        "player_p": 9947,
        "player_q": 12664,
        "name_p": "Milos Veljkovic",
        "name_q": "Sa\u0161a Luki\u0107",
        "value": -0.17393986955427126,
        "minutes_together": 196.98333333333335
      },
      {
        "player_p": 1550,
        "player_q": 9947,
        "name_p": "Nemanja Maksimovic",
        "name_q": "Milos Veljkovic",
        "value": -0.22621177813392587,
        "minutes_together": 91.9
      },
      {
        "player_p": 4734,
        "player_q": 9947,
        "name_p": "Filip Kostic",
        "name_q": "Milos Veljkovic",
        "value": -0.22731505709583277,
        "minutes_together": 131.88333333333333
      }
    ],
    "path": "assets/figures/team_375_jdi90.png"
  },
  {
    "team_id": "376",
    "team_name": "Poland",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_376_joi90.png",
    "n_pairs": 53,
    "median": 0.00979989818746439,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 1896,
        "name": "Matty Cash",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 23372
      },
      {
        "player_id": 13848,
        "name": "Kamil Glik",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 23372
      },
      {
        "player_id": 4625,
        "name": "Robert Lewandowski",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 23372
      },
      {
        "player_id": 8042,
        "name": "Wojciech Szczesny",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 23372
      },
      {
        "player_id": 12820,
        "name": "Jakub Kiwior",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 22574
      },
      {
        "player_id": 12766,
        "name": "Bartosz Bereszynski",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 21926
      },
      {
        "player_id": 13850,
        "name": "Grzegorz Krychowiak",
        "position": "DM",
        "x": 34.0,
        "y": 40.0,
        "row": 3,
        "col": 2,
        "on_seconds": 20875
      },
      {
        "player_id": 12514,
        "name": "Piotr Zielinski",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 20661
      },
      {
        "player_id": 668,
        "name": "Przemyslaw Frankowski",
        "position": "LM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 15473
      },
      {
        "player_id": 9939,
        "name": "Jakub Kaminski",
        "position": "RM",
        "x": 47.6,
        "y": 57.5,
        "row": 2,
        "col": 3,
        "on_seconds": 14990
      },
      {
        "player_id": 7419,
        "name": "Krystian Bielik",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 14112
      }
    ],
    "pairs": [
      {
        "player_p": 4625,
        "player_q": 7419,
        "name_p": "Robert Lewandowski",
        "name_q": "Krystian Bielik",
        "value": 0.3475887645525034,
        "minutes_together": 235.2
      },
      {
        "player_p": 4625,
        "player_q": 13850,
        "name_p": "Robert Lewandowski",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.2906444671267924,
        "minutes_together": 347.9166666666667
      },
      {
        "player_p": 12514,
        "player_q": 12820,
        "name_p": "Piotr Zielinski",
        "name_q": "Jakub Kiwior",
        "value": 0.27200788839916223,
        "minutes_together": 331.05
      },
      {
        "player_p": 4625,
        "player_q": 12820,
        "name_p": "Robert Lewandowski",
        "name_q": "Jakub Kiwior",
        "value": 0.24002412070044923,
        "minutes_together": 376.23333333333335
      },
      {
        "player_p": 4625,
        "player_q": 12514,
        "name_p": "Robert Lewandowski",
        "name_q": "Piotr Zielinski",
        "value": 0.19783306506348042,
        "minutes_together": 344.35
      },
      {
        "player_p": 1896,
        "player_q": 9939,
        "name_p": "Matty Cash",
        "name_q": "Jakub Kaminski",
        "value": 0.09498393339362451,
        "minutes_together": 249.83333333333334
      },
      {
        "player_p": 9939,
        "player_q": 13850,
        "name_p": "Jakub Kaminski",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.06911018498479547,
        "minutes_together": 236.7
      },
      {
        "player_p": 8042,
        "player_q": 12820,
        "name_p": "Wojciech Szczesny",
        "name_q": "Jakub Kiwior",
        "value": 0.05144040278054924,
        "minutes_together": 376.23333333333335
      },
      {
        "player_p": 1896,
        "player_q": 12514,
        "name_p": "Matty Cash",
        "name_q": "Piotr Zielinski",
        "value": 0.04909620734313427,
        "minutes_together": 344.35
      },
      {
        "player_p": 4625,
        "player_q": 8042,
        "name_p": "Robert Lewandowski",
        "name_q": "Wojciech Szczesny",
        "value": 0.04442470882218753,
        "minutes_together": 389.5333333333333
      },
      {
        "player_p": 668,
        "player_q": 12766,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Bartosz Bereszynski",
        "value": 0.03872447283720551,
        "minutes_together": 257.8833333333333
      },
      {
        "player_p": 8042,
        "player_q": 13850,
        "name_p": "Wojciech Szczesny",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.035985390805621735,
        "minutes_together": 347.9166666666667
      },
      {
        "player_p": 7419,
        "player_q": 8042,
        "name_p": "Krystian Bielik",
        "name_q": "Wojciech Szczesny",
        "value": 0.03215239417342442,
        "minutes_together": 235.2
      },
      {
        "player_p": 668,
        "player_q": 1896,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Matty Cash",
        "value": 0.03161759415911088,
        "minutes_together": 257.8833333333333
      },
      {
        "player_p": 7419,
        "player_q": 12820,
        "name_p": "Krystian Bielik",
        "name_q": "Jakub Kiwior",
        "value": 0.02936558728034767,
        "minutes_together": 221.9
      },
      {
        "player_p": 7419,
        "player_q": 12766,
        "name_p": "Krystian Bielik",
        "name_q": "Bartosz Bereszynski",
        "value": 0.028306926710402833,
        "minutes_together": 235.2
      },
      {
        "player_p": 668,
        "player_q": 7419,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Krystian Bielik",
        "value": 0.027278453294106993,
        "minutes_together": 187.16666666666666
      },
      {
        "player_p": 4625,
        "player_q": 9939,
        "name_p": "Robert Lewandowski",
        "name_q": "Jakub Kaminski",
        "value": 0.026817427286368056,
        "minutes_together": 249.83333333333334
      },
      {
        "player_p": 12514,
        "player_q": 12766,
        "name_p": "Piotr Zielinski",
        "name_q": "Bartosz Bereszynski",
        "value": 0.024997118256673716,
        "minutes_together": 320.25
      },
      {
        "player_p": 12766,
        "player_q": 13850,
        "name_p": "Bartosz Bereszynski",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.02444682107332729,
        "minutes_together": 336.95
      },
      {
        "player_p": 7419,
        "player_q": 12514,
        "name_p": "Krystian Bielik",
        "name_q": "Piotr Zielinski",
        "value": 0.02230009911377526,
        "minutes_together": 190.01666666666668
      },
      {
        "player_p": 668,
        "player_q": 12820,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Jakub Kiwior",
        "value": 0.01957311378338911,
        "minutes_together": 257.85
      },
      {
        "player_p": 12514,
        "player_q": 13848,
        "name_p": "Piotr Zielinski",
        "name_q": "Kamil Glik",
        "value": 0.01932643849612805,
        "minutes_together": 344.35
      },
      {
        "player_p": 7419,
        "player_q": 13850,
        "name_p": "Krystian Bielik",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.018981782614983754,
        "minutes_together": 206.71666666666667
      },
      {
        "player_p": 4625,
        "player_q": 12766,
        "name_p": "Robert Lewandowski",
        "name_q": "Bartosz Bereszynski",
        "value": 0.015727523063653586,
        "minutes_together": 365.43333333333334
      },
      {
        "player_p": 7419,
        "player_q": 13848,
        "name_p": "Krystian Bielik",
        "name_q": "Kamil Glik",
        "value": 0.013199847051197686,
        "minutes_together": 235.2
      },
      {
        "player_p": 8042,
        "player_q": 12766,
        "name_p": "Wojciech Szczesny",
        "name_q": "Bartosz Bereszynski",
        "value": 0.00979989818746439,
        "minutes_together": 365.43333333333334
      },
      {
        "player_p": 1896,
        "player_q": 8042,
        "name_p": "Matty Cash",
        "name_q": "Wojciech Szczesny",
        "value": 0.009041526384969288,
        "minutes_together": 389.5333333333333
      },
      {
        "player_p": 1896,
        "player_q": 4625,
        "name_p": "Matty Cash",
        "name_q": "Robert Lewandowski",
        "value": 0.007872721843190203,
        "minutes_together": 389.5333333333333
      },
      {
        "player_p": 668,
        "player_q": 9939,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Jakub Kaminski",
        "value": 0.006806176021674667,
        "minutes_together": 131.45
      },
      {
        "player_p": 7419,
        "player_q": 9939,
        "name_p": "Krystian Bielik",
        "name_q": "Jakub Kaminski",
        "value": 0.006049444304479774,
        "minutes_together": 95.8
      },
      {
        "player_p": 9939,
        "player_q": 13848,
        "name_p": "Jakub Kaminski",
        "name_q": "Kamil Glik",
        "value": 0.005477413596339571,
        "minutes_together": 249.83333333333334
      },
      {
        "player_p": 12820,
        "player_q": 13848,
        "name_p": "Jakub Kiwior",
        "name_q": "Kamil Glik",
        "value": 0.005265138105585323,
        "minutes_together": 376.23333333333335
      },
      {
        "player_p": 12514,
        "player_q": 13850,
        "name_p": "Piotr Zielinski",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.005246128460801465,
        "minutes_together": 302.73333333333335
      },
      {
        "player_p": 668,
        "player_q": 12514,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Piotr Zielinski",
        "value": 0.004803360383472279,
        "minutes_together": 212.7
      },
      {
        "player_p": 8042,
        "player_q": 9939,
        "name_p": "Wojciech Szczesny",
        "name_q": "Jakub Kaminski",
        "value": 0.0034736356961315266,
        "minutes_together": 249.83333333333334
      },
      {
        "player_p": 9939,
        "player_q": 12514,
        "name_p": "Jakub Kaminski",
        "name_q": "Piotr Zielinski",
        "value": 0.0030288411312688933,
        "minutes_together": 204.65
      },
      {
        "player_p": 4625,
        "player_q": 13848,
        "name_p": "Robert Lewandowski",
        "name_q": "Kamil Glik",
        "value": 0.0026609680300568803,
        "minutes_together": 389.5333333333333
      },
      {
        "player_p": 9939,
        "player_q": 12766,
        "name_p": "Jakub Kaminski",
        "name_q": "Bartosz Bereszynski",
        "value": 0.002477529625372713,
        "minutes_together": 225.73333333333335
      },
      {
        "player_p": 668,
        "player_q": 8042,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Wojciech Szczesny",
        "value": 0.0019139252416939573,
        "minutes_together": 257.8833333333333
      },
      {
        "player_p": 12766,
        "player_q": 13848,
        "name_p": "Bartosz Bereszynski",
        "name_q": "Kamil Glik",
        "value": 0.0009497117436467849,
        "minutes_together": 365.43333333333334
      },
      {
        "player_p": 8042,
        "player_q": 13848,
        "name_p": "Wojciech Szczesny",
        "name_q": "Kamil Glik",
        "value": 2.395152021065203e-05,
        "minutes_together": 389.5333333333333
      },
      {
        "player_p": 13848,
        "player_q": 13850,
        "name_p": "Kamil Glik",
        "name_q": "Grzegorz Krychowiak",
        "value": -0.0008372163257020635,
        "minutes_together": 347.9166666666667
      },
      {
        "player_p": 1896,
        "player_q": 12820,
        "name_p": "Matty Cash",
        "name_q": "Jakub Kiwior",
        "value": -0.00124785246965841,
        "minutes_together": 376.23333333333335
      },
      {
        "player_p": 668,
        "player_q": 13850,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Grzegorz Krychowiak",
        "value": -0.0029025575443306843,
        "minutes_together": 242.66666666666666
      },
      {
        "player_p": 668,
        "player_q": 13848,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Kamil Glik",
        "value": -0.0038476351700443188,
        "minutes_together": 257.8833333333333
      },
      {
        "player_p": 9939,
        "player_q": 12820,
        "name_p": "Jakub Kaminski",
        "name_q": "Jakub Kiwior",
        "value": -0.004111018145252353,
        "minutes_together": 249.83333333333334
      },
      {
        "player_p": 1896,
        "player_q": 13850,
        "name_p": "Matty Cash",
        "name_q": "Grzegorz Krychowiak",
        "value": -0.0053726135829285674,
        "minutes_together": 347.9166666666667
      },
      {
        "player_p": 1896,
        "player_q": 13848,
        "name_p": "Matty Cash",
        "name_q": "Kamil Glik",
        "value": -0.006676098946356259,
        "minutes_together": 389.5333333333333
      },
      {
        "player_p": 12766,
        "player_q": 12820,
        "name_p": "Bartosz Bereszynski",
        "name_q": "Jakub Kiwior",
        "value": -0.0069736250708266456,
        "minutes_together": 352.1333333333333
      },
      {
        "player_p": 1896,
        "player_q": 7419,
        "name_p": "Matty Cash",
        "name_q": "Krystian Bielik",
        "value": -0.008683552948431053,
        "minutes_together": 235.2
      },
      {
        "player_p": 12820,
        "player_q": 13850,
        "name_p": "Jakub Kiwior",
        "name_q": "Grzegorz Krychowiak",
        "value": -0.01071258013554193,
        "minutes_together": 347.9166666666667
      },
      {
        "player_p": 668,
        "player_q": 4625,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Robert Lewandowski",
        "value": -0.036317953243149965,
        "minutes_together": 257.8833333333333
      }
    ],
    "path": "assets/figures/team_376_joi90.png"
  },
  {
    "team_id": "376",
    "team_name": "Poland",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_376_jdi90.png",
    "n_pairs": 55,
    "median": 0.0158723579822785,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 1896,
        "name": "Matty Cash",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 23372
      },
      {
        "player_id": 13848,
        "name": "Kamil Glik",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 23372
      },
      {
        "player_id": 4625,
        "name": "Robert Lewandowski",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 23372
      },
      {
        "player_id": 8042,
        "name": "Wojciech Szczesny",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 23372
      },
      {
        "player_id": 12820,
        "name": "Jakub Kiwior",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 22574
      },
      {
        "player_id": 12766,
        "name": "Bartosz Bereszynski",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 21926
      },
      {
        "player_id": 13850,
        "name": "Grzegorz Krychowiak",
        "position": "DM",
        "x": 34.0,
        "y": 40.0,
        "row": 3,
        "col": 2,
        "on_seconds": 20875
      },
      {
        "player_id": 12514,
        "name": "Piotr Zielinski",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 20661
      },
      {
        "player_id": 668,
        "name": "Przemyslaw Frankowski",
        "position": "LM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 15473
      },
      {
        "player_id": 9939,
        "name": "Jakub Kaminski",
        "position": "RM",
        "x": 47.6,
        "y": 57.5,
        "row": 2,
        "col": 3,
        "on_seconds": 14990
      },
      {
        "player_id": 7419,
        "name": "Krystian Bielik",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 14112
      }
    ],
    "pairs": [
      {
        "player_p": 7419,
        "player_q": 9939,
        "name_p": "Krystian Bielik",
        "name_q": "Jakub Kaminski",
        "value": 0.04029371139321266,
        "minutes_together": 95.8
      },
      {
        "player_p": 668,
        "player_q": 7419,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Krystian Bielik",
        "value": 0.03445313330081846,
        "minutes_together": 187.16666666666666
      },
      {
        "player_p": 7419,
        "player_q": 13850,
        "name_p": "Krystian Bielik",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.029432006941108174,
        "minutes_together": 206.71666666666667
      },
      {
        "player_p": 668,
        "player_q": 13850,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.0287257737975959,
        "minutes_together": 242.66666666666666
      },
      {
        "player_p": 8042,
        "player_q": 13850,
        "name_p": "Wojciech Szczesny",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.022766600622753496,
        "minutes_together": 347.9166666666667
      },
      {
        "player_p": 12820,
        "player_q": 13850,
        "name_p": "Jakub Kiwior",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.021825011411737878,
        "minutes_together": 347.9166666666667
      },
      {
        "player_p": 9939,
        "player_q": 13850,
        "name_p": "Jakub Kaminski",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.021590241262697683,
        "minutes_together": 236.7
      },
      {
        "player_p": 7419,
        "player_q": 8042,
        "name_p": "Krystian Bielik",
        "name_q": "Wojciech Szczesny",
        "value": 0.021017787200346864,
        "minutes_together": 235.2
      },
      {
        "player_p": 7419,
        "player_q": 12820,
        "name_p": "Krystian Bielik",
        "name_q": "Jakub Kiwior",
        "value": 0.020766729648729422,
        "minutes_together": 221.9
      },
      {
        "player_p": 13848,
        "player_q": 13850,
        "name_p": "Kamil Glik",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.02029111430354761,
        "minutes_together": 347.9166666666667
      },
      {
        "player_p": 12766,
        "player_q": 13850,
        "name_p": "Bartosz Bereszynski",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.02019790419962458,
        "minutes_together": 336.95
      },
      {
        "player_p": 4625,
        "player_q": 7419,
        "name_p": "Robert Lewandowski",
        "name_q": "Krystian Bielik",
        "value": 0.019760948196391317,
        "minutes_together": 235.2
      },
      {
        "player_p": 4625,
        "player_q": 13850,
        "name_p": "Robert Lewandowski",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.019313676023899922,
        "minutes_together": 347.9166666666667
      },
      {
        "player_p": 12514,
        "player_q": 13850,
        "name_p": "Piotr Zielinski",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.019036588691835877,
        "minutes_together": 302.73333333333335
      },
      {
        "player_p": 8042,
        "player_q": 12820,
        "name_p": "Wojciech Szczesny",
        "name_q": "Jakub Kiwior",
        "value": 0.018346113169050667,
        "minutes_together": 376.23333333333335
      },
      {
        "player_p": 7419,
        "player_q": 13848,
        "name_p": "Krystian Bielik",
        "name_q": "Kamil Glik",
        "value": 0.018161024287719423,
        "minutes_together": 235.2
      },
      {
        "player_p": 7419,
        "player_q": 12766,
        "name_p": "Krystian Bielik",
        "name_q": "Bartosz Bereszynski",
        "value": 0.01794337918781475,
        "minutes_together": 235.2
      },
      {
        "player_p": 8042,
        "player_q": 12514,
        "name_p": "Wojciech Szczesny",
        "name_q": "Piotr Zielinski",
        "value": 0.017847249801554155,
        "minutes_together": 344.35
      },
      {
        "player_p": 9939,
        "player_q": 12820,
        "name_p": "Jakub Kaminski",
        "name_q": "Jakub Kiwior",
        "value": 0.017574165655631205,
        "minutes_together": 249.83333333333334
      },
      {
        "player_p": 8042,
        "player_q": 9939,
        "name_p": "Wojciech Szczesny",
        "name_q": "Jakub Kaminski",
        "value": 0.017546370990216657,
        "minutes_together": 249.83333333333334
      },
      {
        "player_p": 668,
        "player_q": 4625,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Robert Lewandowski",
        "value": 0.01750761476312568,
        "minutes_together": 257.8833333333333
      },
      {
        "player_p": 12514,
        "player_q": 12820,
        "name_p": "Piotr Zielinski",
        "name_q": "Jakub Kiwior",
        "value": 0.01736634759753488,
        "minutes_together": 331.05
      },
      {
        "player_p": 668,
        "player_q": 8042,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Wojciech Szczesny",
        "value": 0.017219751863179478,
        "minutes_together": 257.8833333333333
      },
      {
        "player_p": 1896,
        "player_q": 13850,
        "name_p": "Matty Cash",
        "name_q": "Grzegorz Krychowiak",
        "value": 0.016654419230562368,
        "minutes_together": 347.9166666666667
      },
      {
        "player_p": 9939,
        "player_q": 13848,
        "name_p": "Jakub Kaminski",
        "name_q": "Kamil Glik",
        "value": 0.01606316274575865,
        "minutes_together": 249.83333333333334
      },
      {
        "player_p": 1896,
        "player_q": 7419,
        "name_p": "Matty Cash",
        "name_q": "Krystian Bielik",
        "value": 0.01598149539718442,
        "minutes_together": 235.2
      },
      {
        "player_p": 9939,
        "player_q": 12514,
        "name_p": "Jakub Kaminski",
        "name_q": "Piotr Zielinski",
        "value": 0.015880321832745636,
        "minutes_together": 204.65
      },
      {
        "player_p": 668,
        "player_q": 12820,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Jakub Kiwior",
        "value": 0.0158723579822785,
        "minutes_together": 257.85
      },
      {
        "player_p": 668,
        "player_q": 12766,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Bartosz Bereszynski",
        "value": 0.01585324750990602,
        "minutes_together": 257.8833333333333
      },
      {
        "player_p": 8042,
        "player_q": 13848,
        "name_p": "Wojciech Szczesny",
        "name_q": "Kamil Glik",
        "value": 0.0158035185154825,
        "minutes_together": 389.5333333333333
      },
      {
        "player_p": 12820,
        "player_q": 13848,
        "name_p": "Jakub Kiwior",
        "name_q": "Kamil Glik",
        "value": 0.015639393224718127,
        "minutes_together": 376.23333333333335
      },
      {
        "player_p": 12514,
        "player_q": 13848,
        "name_p": "Piotr Zielinski",
        "name_q": "Kamil Glik",
        "value": 0.014693855043538706,
        "minutes_together": 344.35
      },
      {
        "player_p": 4625,
        "player_q": 8042,
        "name_p": "Robert Lewandowski",
        "name_q": "Wojciech Szczesny",
        "value": 0.014371534165306534,
        "minutes_together": 389.5333333333333
      },
      {
        "player_p": 7419,
        "player_q": 12514,
        "name_p": "Krystian Bielik",
        "name_q": "Piotr Zielinski",
        "value": 0.014189116605151156,
        "minutes_together": 190.01666666666668
      },
      {
        "player_p": 4625,
        "player_q": 12820,
        "name_p": "Robert Lewandowski",
        "name_q": "Jakub Kiwior",
        "value": 0.01397515193057424,
        "minutes_together": 376.23333333333335
      },
      {
        "player_p": 8042,
        "player_q": 12766,
        "name_p": "Wojciech Szczesny",
        "name_q": "Bartosz Bereszynski",
        "value": 0.013071645891179488,
        "minutes_together": 365.43333333333334
      },
      {
        "player_p": 12514,
        "player_q": 12766,
        "name_p": "Piotr Zielinski",
        "name_q": "Bartosz Bereszynski",
        "value": 0.013071163421745078,
        "minutes_together": 320.25
      },
      {
        "player_p": 668,
        "player_q": 13848,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Kamil Glik",
        "value": 0.012971625347713183,
        "minutes_together": 257.8833333333333
      },
      {
        "player_p": 12766,
        "player_q": 12820,
        "name_p": "Bartosz Bereszynski",
        "name_q": "Jakub Kiwior",
        "value": 0.012859732285336774,
        "minutes_together": 352.1333333333333
      },
      {
        "player_p": 9939,
        "player_q": 12766,
        "name_p": "Jakub Kaminski",
        "name_q": "Bartosz Bereszynski",
        "value": 0.012859383316168293,
        "minutes_together": 225.73333333333335
      },
      {
        "player_p": 4625,
        "player_q": 12514,
        "name_p": "Robert Lewandowski",
        "name_q": "Piotr Zielinski",
        "value": 0.012163317815519102,
        "minutes_together": 344.35
      },
      {
        "player_p": 1896,
        "player_q": 8042,
        "name_p": "Matty Cash",
        "name_q": "Wojciech Szczesny",
        "value": 0.011807940853242107,
        "minutes_together": 389.5333333333333
      },
      {
        "player_p": 4625,
        "player_q": 9939,
        "name_p": "Robert Lewandowski",
        "name_q": "Jakub Kaminski",
        "value": 0.011707980732093741,
        "minutes_together": 249.83333333333334
      },
      {
        "player_p": 1896,
        "player_q": 12820,
        "name_p": "Matty Cash",
        "name_q": "Jakub Kiwior",
        "value": 0.011668682739356877,
        "minutes_together": 376.23333333333335
      },
      {
        "player_p": 4625,
        "player_q": 13848,
        "name_p": "Robert Lewandowski",
        "name_q": "Kamil Glik",
        "value": 0.011510943569700843,
        "minutes_together": 389.5333333333333
      },
      {
        "player_p": 668,
        "player_q": 1896,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Matty Cash",
        "value": 0.011431409680465783,
        "minutes_together": 257.8833333333333
      },
      {
        "player_p": 668,
        "player_q": 12514,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Piotr Zielinski",
        "value": 0.011339606503119814,
        "minutes_together": 212.7
      },
      {
        "player_p": 1896,
        "player_q": 9939,
        "name_p": "Matty Cash",
        "name_q": "Jakub Kaminski",
        "value": 0.010660862352229537,
        "minutes_together": 249.83333333333334
      },
      {
        "player_p": 4625,
        "player_q": 12766,
        "name_p": "Robert Lewandowski",
        "name_q": "Bartosz Bereszynski",
        "value": 0.010559046281691858,
        "minutes_together": 365.43333333333334
      },
      {
        "player_p": 12766,
        "player_q": 13848,
        "name_p": "Bartosz Bereszynski",
        "name_q": "Kamil Glik",
        "value": 0.01037423768552356,
        "minutes_together": 365.43333333333334
      },
      {
        "player_p": 1896,
        "player_q": 12514,
        "name_p": "Matty Cash",
        "name_q": "Piotr Zielinski",
        "value": 0.01005793694668985,
        "minutes_together": 344.35
      },
      {
        "player_p": 1896,
        "player_q": 13848,
        "name_p": "Matty Cash",
        "name_q": "Kamil Glik",
        "value": 0.008947350257636424,
        "minutes_together": 389.5333333333333
      },
      {
        "player_p": 668,
        "player_q": 9939,
        "name_p": "Przemyslaw Frankowski",
        "name_q": "Jakub Kaminski",
        "value": 0.008018576953942811,
        "minutes_together": 131.45
      },
      {
        "player_p": 1896,
        "player_q": 4625,
        "name_p": "Matty Cash",
        "name_q": "Robert Lewandowski",
        "value": 0.0075153659074604605,
        "minutes_together": 389.5333333333333
      },
      {
        "player_p": 1896,
        "player_q": 12766,
        "name_p": "Matty Cash",
        "name_q": "Bartosz Bereszynski",
        "value": 0.0068865965912853185,
        "minutes_together": 365.43333333333334
      }
    ],
    "path": "assets/figures/team_376_jdi90.png"
  },
  {
    "team_id": "377",
    "team_name": "South Korea",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_377_joi90.png",
    "n_pairs": 54,
    "median": 0.02200132871246313,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 83,
        "name": "Heung-min Son",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 23382
      },
      {
        "player_id": 2443,
        "name": "Moon-hwan Kim",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 23382
      },
      {
        "player_id": 13907,
        "name": "Seun-gyu Kim",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 23382
      },
      {
        "player_id": 13911,
        "name": "Young-gwon Kim",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 22392
      },
      {
        "player_id": 1257,
        "name": "In-beom Hwang",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 21605
      },
      {
        "player_id": 13912,
        "name": "Jin-su Kim",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 20801
      },
      {
        "player_id": 13922,
        "name": "Woo-young Jung",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 19428
      },
      {
        "player_id": 13923,
        "name": "Gue-sung Cho",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 17826
      },
      {
        "player_id": 12502,
        "name": "Min Jae Kim",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17010
      },
      {
        "player_id": 5038,
        "name": "Jae-sung Lee",
        "position": "AM",
        "x": 20.4,
        "y": 75.0,
        "row": 1,
        "col": 1,
        "on_seconds": 12751
      },
      {
        "player_id": 1830,
        "name": "Kang-in Lee",
        "position": "AM",
        "x": 47.6,
        "y": 75.0,
        "row": 1,
        "col": 3,
        "on_seconds": 10179
      }
    ],
    "pairs": [
      {
        "player_p": 1830,
        "player_q": 13922,
        "name_p": "Kang-in Lee",
        "name_q": "Woo-young Jung",
        "value": 0.6743813258627706,
        "minutes_together": 126.31666666666666
      },
      {
        "player_p": 13912,
        "player_q": 13923,
        "name_p": "Jin-su Kim",
        "name_q": "Gue-sung Cho",
        "value": 0.6696308553203466,
        "minutes_together": 268.56666666666666
      },
      {
        "player_p": 13922,
        "player_q": 13923,
        "name_p": "Woo-young Jung",
        "name_q": "Gue-sung Cho",
        "value": 0.6376288568794575,
        "minutes_together": 245.68333333333334
      },
      {
        "player_p": 83,
        "player_q": 13912,
        "name_p": "Heung-min Son",
        "name_q": "Jin-su Kim",
        "value": 0.5148625598295776,
        "minutes_together": 346.68333333333334
      },
      {
        "player_p": 1830,
        "player_q": 13923,
        "name_p": "Kang-in Lee",
        "name_q": "Gue-sung Cho",
        "value": 0.4972322641204491,
        "minutes_together": 155.16666666666669
      },
      {
        "player_p": 1830,
        "player_q": 13911,
        "name_p": "Kang-in Lee",
        "name_q": "Young-gwon Kim",
        "value": 0.25583728469393724,
        "minutes_together": 169.43333333333334
      },
      {
        "player_p": 83,
        "player_q": 1257,
        "name_p": "Heung-min Son",
        "name_q": "In-beom Hwang",
        "value": 0.19338243288774298,
        "minutes_together": 360.0833333333333
      },
      {
        "player_p": 1830,
        "player_q": 2443,
        "name_p": "Kang-in Lee",
        "name_q": "Moon-hwan Kim",
        "value": 0.13492198861404936,
        "minutes_together": 169.65
      },
      {
        "player_p": 13912,
        "player_q": 13922,
        "name_p": "Jin-su Kim",
        "name_q": "Woo-young Jung",
        "value": 0.09916558045285338,
        "minutes_together": 323.8
      },
      {
        "player_p": 1257,
        "player_q": 2443,
        "name_p": "In-beom Hwang",
        "name_q": "Moon-hwan Kim",
        "value": 0.0801719317274783,
        "minutes_together": 360.0833333333333
      },
      {
        "player_p": 1257,
        "player_q": 13923,
        "name_p": "In-beom Hwang",
        "name_q": "Gue-sung Cho",
        "value": 0.0703698362197639,
        "minutes_together": 281.9666666666667
      },
      {
        "player_p": 13911,
        "player_q": 13922,
        "name_p": "Young-gwon Kim",
        "name_q": "Woo-young Jung",
        "value": 0.05420667524555816,
        "minutes_together": 307.3
      },
      {
        "player_p": 83,
        "player_q": 13907,
        "name_p": "Heung-min Son",
        "name_q": "Seun-gyu Kim",
        "value": 0.04455793107339905,
        "minutes_together": 389.7
      },
      {
        "player_p": 5038,
        "player_q": 12502,
        "name_p": "Jae-sung Lee",
        "name_q": "Min Jae Kim",
        "value": 0.04242532228159628,
        "minutes_together": 147.33333333333331
      },
      {
        "player_p": 1830,
        "player_q": 5038,
        "name_p": "Kang-in Lee",
        "name_q": "Jae-sung Lee",
        "value": 0.04130766451414431,
        "minutes_together": 65.18333333333334
      },
      {
        "player_p": 13911,
        "player_q": 13912,
        "name_p": "Young-gwon Kim",
        "name_q": "Jin-su Kim",
        "value": 0.0406104669187691,
        "minutes_together": 330.18333333333334
      },
      {
        "player_p": 2443,
        "player_q": 13907,
        "name_p": "Moon-hwan Kim",
        "name_q": "Seun-gyu Kim",
        "value": 0.039408627524373296,
        "minutes_together": 389.7
      },
      {
        "player_p": 13911,
        "player_q": 13923,
        "name_p": "Young-gwon Kim",
        "name_q": "Gue-sung Cho",
        "value": 0.036761515748482,
        "minutes_together": 285.1666666666667
      },
      {
        "player_p": 13907,
        "player_q": 13911,
        "name_p": "Seun-gyu Kim",
        "name_q": "Young-gwon Kim",
        "value": 0.03636198295468805,
        "minutes_together": 373.2
      },
      {
        "player_p": 12502,
        "player_q": 13911,
        "name_p": "Min Jae Kim",
        "name_q": "Young-gwon Kim",
        "value": 0.035733433519252115,
        "minutes_together": 283.5
      },
      {
        "player_p": 1257,
        "player_q": 13922,
        "name_p": "In-beom Hwang",
        "name_q": "Woo-young Jung",
        "value": 0.03572389117669641,
        "minutes_together": 323.8
      },
      {
        "player_p": 12502,
        "player_q": 13922,
        "name_p": "Min Jae Kim",
        "name_q": "Woo-young Jung",
        "value": 0.03161233575796364,
        "minutes_together": 226.8
      },
      {
        "player_p": 1257,
        "player_q": 12502,
        "name_p": "In-beom Hwang",
        "name_q": "Min Jae Kim",
        "value": 0.02972705129866551,
        "minutes_together": 253.88333333333333
      },
      {
        "player_p": 5038,
        "player_q": 13922,
        "name_p": "Jae-sung Lee",
        "name_q": "Woo-young Jung",
        "value": 0.026688908543048482,
        "minutes_together": 189.95
      },
      {
        "player_p": 1257,
        "player_q": 13912,
        "name_p": "In-beom Hwang",
        "name_q": "Jin-su Kim",
        "value": 0.025510588356560934,
        "minutes_together": 346.68333333333334
      },
      {
        "player_p": 5038,
        "player_q": 13911,
        "name_p": "Jae-sung Lee",
        "name_q": "Young-gwon Kim",
        "value": 0.025265906928903174,
        "minutes_together": 212.51666666666665
      },
      {
        "player_p": 12502,
        "player_q": 13912,
        "name_p": "Min Jae Kim",
        "name_q": "Jin-su Kim",
        "value": 0.023274890756475042,
        "minutes_together": 240.48333333333335
      },
      {
        "player_p": 2443,
        "player_q": 12502,
        "name_p": "Moon-hwan Kim",
        "name_q": "Min Jae Kim",
        "value": 0.020727766668451216,
        "minutes_together": 283.5
      },
      {
        "player_p": 2443,
        "player_q": 5038,
        "name_p": "Moon-hwan Kim",
        "name_q": "Jae-sung Lee",
        "value": 0.01743497885673046,
        "minutes_together": 212.51666666666665
      },
      {
        "player_p": 1257,
        "player_q": 13911,
        "name_p": "In-beom Hwang",
        "name_q": "Young-gwon Kim",
        "value": 0.014458313954151094,
        "minutes_together": 343.5833333333333
      },
      {
        "player_p": 83,
        "player_q": 13911,
        "name_p": "Heung-min Son",
        "name_q": "Young-gwon Kim",
        "value": 0.012123308380708317,
        "minutes_together": 373.2
      },
      {
        "player_p": 1830,
        "player_q": 12502,
        "name_p": "Kang-in Lee",
        "name_q": "Min Jae Kim",
        "value": 0.01150577642121307,
        "minutes_together": 79.73333333333333
      },
      {
        "player_p": 5038,
        "player_q": 13923,
        "name_p": "Jae-sung Lee",
        "name_q": "Gue-sung Cho",
        "value": 0.010196547865315764,
        "minutes_together": 138.96666666666667
      },
      {
        "player_p": 2443,
        "player_q": 13911,
        "name_p": "Moon-hwan Kim",
        "name_q": "Young-gwon Kim",
        "value": 0.0093470833273337,
        "minutes_together": 373.2
      },
      {
        "player_p": 83,
        "player_q": 13922,
        "name_p": "Heung-min Son",
        "name_q": "Woo-young Jung",
        "value": 0.006692367583163187,
        "minutes_together": 323.8
      },
      {
        "player_p": 13907,
        "player_q": 13912,
        "name_p": "Seun-gyu Kim",
        "name_q": "Jin-su Kim",
        "value": 0.004513909242433786,
        "minutes_together": 346.68333333333334
      },
      {
        "player_p": 12502,
        "player_q": 13923,
        "name_p": "Min Jae Kim",
        "name_q": "Gue-sung Cho",
        "value": 0.004402059662780629,
        "minutes_together": 195.46666666666667
      },
      {
        "player_p": 5038,
        "player_q": 13912,
        "name_p": "Jae-sung Lee",
        "name_q": "Jin-su Kim",
        "value": 0.0028928251190457306,
        "minutes_together": 189.96666666666667
      },
      {
        "player_p": 1830,
        "player_q": 13912,
        "name_p": "Kang-in Lee",
        "name_q": "Jin-su Kim",
        "value": 0.00241178001769301,
        "minutes_together": 149.18333333333334
      },
      {
        "player_p": 83,
        "player_q": 12502,
        "name_p": "Heung-min Son",
        "name_q": "Min Jae Kim",
        "value": 0.00218522309722933,
        "minutes_together": 283.5
      },
      {
        "player_p": 1257,
        "player_q": 13907,
        "name_p": "In-beom Hwang",
        "name_q": "Seun-gyu Kim",
        "value": 0.001047898229434835,
        "minutes_together": 360.0833333333333
      },
      {
        "player_p": 2443,
        "player_q": 13912,
        "name_p": "Moon-hwan Kim",
        "name_q": "Jin-su Kim",
        "value": 0.0008833469226260129,
        "minutes_together": 346.68333333333334
      },
      {
        "player_p": 12502,
        "player_q": 13907,
        "name_p": "Min Jae Kim",
        "name_q": "Seun-gyu Kim",
        "value": 0.0005745567790172727,
        "minutes_together": 283.5
      },
      {
        "player_p": 13907,
        "player_q": 13923,
        "name_p": "Seun-gyu Kim",
        "name_q": "Gue-sung Cho",
        "value": -0.0014680468175335094,
        "minutes_together": 297.1
      },
      {
        "player_p": 1830,
        "player_q": 13907,
        "name_p": "Kang-in Lee",
        "name_q": "Seun-gyu Kim",
        "value": -0.004532048270085133,
        "minutes_together": 169.65
      },
      {
        "player_p": 83,
        "player_q": 1830,
        "name_p": "Heung-min Son",
        "name_q": "Kang-in Lee",
        "value": -0.006199832742593572,
        "minutes_together": 169.65
      },
      {
        "player_p": 83,
        "player_q": 2443,
        "name_p": "Heung-min Son",
        "name_q": "Moon-hwan Kim",
        "value": -0.0062190474264122225,
        "minutes_together": 389.7
      },
      {
        "player_p": 2443,
        "player_q": 13923,
        "name_p": "Moon-hwan Kim",
        "name_q": "Gue-sung Cho",
        "value": -0.009013869117044744,
        "minutes_together": 297.1
      },
      {
        "player_p": 1257,
        "player_q": 1830,
        "name_p": "In-beom Hwang",
        "name_q": "Kang-in Lee",
        "value": -0.009014292249966978,
        "minutes_together": 149.18333333333334
      },
      {
        "player_p": 1257,
        "player_q": 5038,
        "name_p": "In-beom Hwang",
        "name_q": "Jae-sung Lee",
        "value": -0.011456679829684013,
        "minutes_together": 203.36666666666667
      },
      {
        "player_p": 83,
        "player_q": 5038,
        "name_p": "Heung-min Son",
        "name_q": "Jae-sung Lee",
        "value": -0.016042841415114497,
        "minutes_together": 212.51666666666665
      },
      {
        "player_p": 2443,
        "player_q": 13922,
        "name_p": "Moon-hwan Kim",
        "name_q": "Woo-young Jung",
        "value": -0.02923831644973529,
        "minutes_together": 323.8
      },
      {
        "player_p": 83,
        "player_q": 13923,
        "name_p": "Heung-min Son",
        "name_q": "Gue-sung Cho",
        "value": -0.03624528292608743,
        "minutes_together": 297.1
      },
      {
        "player_p": 13907,
        "player_q": 13922,
        "name_p": "Seun-gyu Kim",
        "name_q": "Woo-young Jung",
        "value": -0.11177938492303838,
        "minutes_together": 323.8
      }
    ],
    "path": "assets/figures/team_377_joi90.png"
  },
  {
    "team_id": "377",
    "team_name": "South Korea",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_377_jdi90.png",
    "n_pairs": 55,
    "median": 0.007407578162157036,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 83,
        "name": "Heung-min Son",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 23382
      },
      {
        "player_id": 2443,
        "name": "Moon-hwan Kim",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 23382
      },
      {
        "player_id": 13907,
        "name": "Seun-gyu Kim",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 23382
      },
      {
        "player_id": 13911,
        "name": "Young-gwon Kim",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 22392
      },
      {
        "player_id": 1257,
        "name": "In-beom Hwang",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 21605
      },
      {
        "player_id": 13912,
        "name": "Jin-su Kim",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 20801
      },
      {
        "player_id": 13922,
        "name": "Woo-young Jung",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 19428
      },
      {
        "player_id": 13923,
        "name": "Gue-sung Cho",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 17826
      },
      {
        "player_id": 12502,
        "name": "Min Jae Kim",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17010
      },
      {
        "player_id": 5038,
        "name": "Jae-sung Lee",
        "position": "AM",
        "x": 20.4,
        "y": 75.0,
        "row": 1,
        "col": 1,
        "on_seconds": 12751
      },
      {
        "player_id": 1830,
        "name": "Kang-in Lee",
        "position": "AM",
        "x": 47.6,
        "y": 75.0,
        "row": 1,
        "col": 3,
        "on_seconds": 10179
      }
    ],
    "pairs": [
      {
        "player_p": 1830,
        "player_q": 13922,
        "name_p": "Kang-in Lee",
        "name_q": "Woo-young Jung",
        "value": 0.03647027410562555,
        "minutes_together": 126.31666666666666
      },
      {
        "player_p": 1257,
        "player_q": 13922,
        "name_p": "In-beom Hwang",
        "name_q": "Woo-young Jung",
        "value": 0.035892030863959506,
        "minutes_together": 323.8
      },
      {
        "player_p": 1257,
        "player_q": 1830,
        "name_p": "In-beom Hwang",
        "name_q": "Kang-in Lee",
        "value": 0.03569267555115171,
        "minutes_together": 149.18333333333334
      },
      {
        "player_p": 12502,
        "player_q": 13922,
        "name_p": "Min Jae Kim",
        "name_q": "Woo-young Jung",
        "value": 0.031275194318103924,
        "minutes_together": 226.8
      },
      {
        "player_p": 1257,
        "player_q": 12502,
        "name_p": "In-beom Hwang",
        "name_q": "Min Jae Kim",
        "value": 0.025379156676659777,
        "minutes_together": 253.88333333333333
      },
      {
        "player_p": 13907,
        "player_q": 13922,
        "name_p": "Seun-gyu Kim",
        "name_q": "Woo-young Jung",
        "value": 0.024115375235137577,
        "minutes_together": 323.8
      },
      {
        "player_p": 13911,
        "player_q": 13922,
        "name_p": "Young-gwon Kim",
        "name_q": "Woo-young Jung",
        "value": 0.023580116866891022,
        "minutes_together": 307.3
      },
      {
        "player_p": 1257,
        "player_q": 13907,
        "name_p": "In-beom Hwang",
        "name_q": "Seun-gyu Kim",
        "value": 0.021500107085698546,
        "minutes_together": 360.0833333333333
      },
      {
        "player_p": 1257,
        "player_q": 13911,
        "name_p": "In-beom Hwang",
        "name_q": "Young-gwon Kim",
        "value": 0.020302340757457772,
        "minutes_together": 343.5833333333333
      },
      {
        "player_p": 1830,
        "player_q": 5038,
        "name_p": "Kang-in Lee",
        "name_q": "Jae-sung Lee",
        "value": 0.02026415453236496,
        "minutes_together": 65.18333333333334
      },
      {
        "player_p": 2443,
        "player_q": 13922,
        "name_p": "Moon-hwan Kim",
        "name_q": "Woo-young Jung",
        "value": 0.020246308192786642,
        "minutes_together": 323.8
      },
      {
        "player_p": 1257,
        "player_q": 13912,
        "name_p": "In-beom Hwang",
        "name_q": "Jin-su Kim",
        "value": 0.0196708489684911,
        "minutes_together": 346.68333333333334
      },
      {
        "player_p": 13912,
        "player_q": 13922,
        "name_p": "Jin-su Kim",
        "name_q": "Woo-young Jung",
        "value": 0.018932421122454014,
        "minutes_together": 323.8
      },
      {
        "player_p": 1257,
        "player_q": 2443,
        "name_p": "In-beom Hwang",
        "name_q": "Moon-hwan Kim",
        "value": 0.017413505339160404,
        "minutes_together": 360.0833333333333
      },
      {
        "player_p": 5038,
        "player_q": 13922,
        "name_p": "Jae-sung Lee",
        "name_q": "Woo-young Jung",
        "value": 0.015912077274279863,
        "minutes_together": 189.95
      },
      {
        "player_p": 12502,
        "player_q": 13907,
        "name_p": "Min Jae Kim",
        "name_q": "Seun-gyu Kim",
        "value": 0.014479543732315673,
        "minutes_together": 283.5
      },
      {
        "player_p": 12502,
        "player_q": 13912,
        "name_p": "Min Jae Kim",
        "name_q": "Jin-su Kim",
        "value": 0.014041087879922807,
        "minutes_together": 240.48333333333335
      },
      {
        "player_p": 1830,
        "player_q": 12502,
        "name_p": "Kang-in Lee",
        "name_q": "Min Jae Kim",
        "value": 0.012061795078399488,
        "minutes_together": 79.73333333333333
      },
      {
        "player_p": 1830,
        "player_q": 13912,
        "name_p": "Kang-in Lee",
        "name_q": "Jin-su Kim",
        "value": 0.011417857150698856,
        "minutes_together": 149.18333333333334
      },
      {
        "player_p": 1830,
        "player_q": 2443,
        "name_p": "Kang-in Lee",
        "name_q": "Moon-hwan Kim",
        "value": 0.009713986095654407,
        "minutes_together": 169.65
      },
      {
        "player_p": 1830,
        "player_q": 13907,
        "name_p": "Kang-in Lee",
        "name_q": "Seun-gyu Kim",
        "value": 0.009460394424923437,
        "minutes_together": 169.65
      },
      {
        "player_p": 1830,
        "player_q": 13923,
        "name_p": "Kang-in Lee",
        "name_q": "Gue-sung Cho",
        "value": 0.009385690001512128,
        "minutes_together": 155.16666666666669
      },
      {
        "player_p": 12502,
        "player_q": 13911,
        "name_p": "Min Jae Kim",
        "name_q": "Young-gwon Kim",
        "value": 0.009268912071246735,
        "minutes_together": 283.5
      },
      {
        "player_p": 1257,
        "player_q": 5038,
        "name_p": "In-beom Hwang",
        "name_q": "Jae-sung Lee",
        "value": 0.00899188314231175,
        "minutes_together": 203.36666666666667
      },
      {
        "player_p": 83,
        "player_q": 13922,
        "name_p": "Heung-min Son",
        "name_q": "Woo-young Jung",
        "value": 0.008035325345771008,
        "minutes_together": 323.8
      },
      {
        "player_p": 1830,
        "player_q": 13911,
        "name_p": "Kang-in Lee",
        "name_q": "Young-gwon Kim",
        "value": 0.007785864528092446,
        "minutes_together": 169.43333333333334
      },
      {
        "player_p": 2443,
        "player_q": 12502,
        "name_p": "Moon-hwan Kim",
        "name_q": "Min Jae Kim",
        "value": 0.0075420596375030445,
        "minutes_together": 283.5
      },
      {
        "player_p": 13907,
        "player_q": 13912,
        "name_p": "Seun-gyu Kim",
        "name_q": "Jin-su Kim",
        "value": 0.007407578162157036,
        "minutes_together": 346.68333333333334
      },
      {
        "player_p": 13907,
        "player_q": 13911,
        "name_p": "Seun-gyu Kim",
        "name_q": "Young-gwon Kim",
        "value": 0.0067454586655274614,
        "minutes_together": 373.2
      },
      {
        "player_p": 83,
        "player_q": 1257,
        "name_p": "Heung-min Son",
        "name_q": "In-beom Hwang",
        "value": 0.005999373920458232,
        "minutes_together": 360.0833333333333
      },
      {
        "player_p": 13911,
        "player_q": 13912,
        "name_p": "Young-gwon Kim",
        "name_q": "Jin-su Kim",
        "value": 0.005820715029668328,
        "minutes_together": 330.18333333333334
      },
      {
        "player_p": 2443,
        "player_q": 13907,
        "name_p": "Moon-hwan Kim",
        "name_q": "Seun-gyu Kim",
        "value": 0.004593463117675885,
        "minutes_together": 389.7
      },
      {
        "player_p": 2443,
        "player_q": 13912,
        "name_p": "Moon-hwan Kim",
        "name_q": "Jin-su Kim",
        "value": 0.003494473548053501,
        "minutes_together": 346.68333333333334
      },
      {
        "player_p": 5038,
        "player_q": 13912,
        "name_p": "Jae-sung Lee",
        "name_q": "Jin-su Kim",
        "value": 0.003073560564608054,
        "minutes_together": 189.96666666666667
      },
      {
        "player_p": 2443,
        "player_q": 13911,
        "name_p": "Moon-hwan Kim",
        "name_q": "Young-gwon Kim",
        "value": 0.002343217998990492,
        "minutes_together": 373.2
      },
      {
        "player_p": 5038,
        "player_q": 13907,
        "name_p": "Jae-sung Lee",
        "name_q": "Seun-gyu Kim",
        "value": 0.001397701457116877,
        "minutes_together": 212.51666666666665
      },
      {
        "player_p": 13922,
        "player_q": 13923,
        "name_p": "Woo-young Jung",
        "name_q": "Gue-sung Cho",
        "value": -0.0015220826620869724,
        "minutes_together": 245.68333333333334
      },
      {
        "player_p": 83,
        "player_q": 12502,
        "name_p": "Heung-min Son",
        "name_q": "Min Jae Kim",
        "value": -0.0019615294412753167,
        "minutes_together": 283.5
      },
      {
        "player_p": 5038,
        "player_q": 12502,
        "name_p": "Jae-sung Lee",
        "name_q": "Min Jae Kim",
        "value": -0.0024735238035959286,
        "minutes_together": 147.33333333333331
      },
      {
        "player_p": 5038,
        "player_q": 13911,
        "name_p": "Jae-sung Lee",
        "name_q": "Young-gwon Kim",
        "value": -0.0024745669523810517,
        "minutes_together": 212.51666666666665
      },
      {
        "player_p": 83,
        "player_q": 5038,
        "name_p": "Heung-min Son",
        "name_q": "Jae-sung Lee",
        "value": -0.002656562252729788,
        "minutes_together": 212.51666666666665
      },
      {
        "player_p": 1257,
        "player_q": 13923,
        "name_p": "In-beom Hwang",
        "name_q": "Gue-sung Cho",
        "value": -0.002738649802279786,
        "minutes_together": 281.9666666666667
      },
      {
        "player_p": 83,
        "player_q": 1830,
        "name_p": "Heung-min Son",
        "name_q": "Kang-in Lee",
        "value": -0.0030861129220572906,
        "minutes_together": 169.65
      },
      {
        "player_p": 2443,
        "player_q": 5038,
        "name_p": "Moon-hwan Kim",
        "name_q": "Jae-sung Lee",
        "value": -0.0044983699435658196,
        "minutes_together": 212.51666666666665
      },
      {
        "player_p": 83,
        "player_q": 13907,
        "name_p": "Heung-min Son",
        "name_q": "Seun-gyu Kim",
        "value": -0.00569395855008351,
        "minutes_together": 389.7
      },
      {
        "player_p": 83,
        "player_q": 13911,
        "name_p": "Heung-min Son",
        "name_q": "Young-gwon Kim",
        "value": -0.007802805581435484,
        "minutes_together": 373.2
      },
      {
        "player_p": 83,
        "player_q": 13912,
        "name_p": "Heung-min Son",
        "name_q": "Jin-su Kim",
        "value": -0.008418353265800033,
        "minutes_together": 346.68333333333334
      },
      {
        "player_p": 83,
        "player_q": 2443,
        "name_p": "Heung-min Son",
        "name_q": "Moon-hwan Kim",
        "value": -0.009628846349866686,
        "minutes_together": 389.7
      },
      {
        "player_p": 13907,
        "player_q": 13923,
        "name_p": "Seun-gyu Kim",
        "name_q": "Gue-sung Cho",
        "value": -0.011822572991134131,
        "minutes_together": 297.1
      },
      {
        "player_p": 13912,
        "player_q": 13923,
        "name_p": "Jin-su Kim",
        "name_q": "Gue-sung Cho",
        "value": -0.01307349226526363,
        "minutes_together": 268.56666666666666
      },
      {
        "player_p": 2443,
        "player_q": 13923,
        "name_p": "Moon-hwan Kim",
        "name_q": "Gue-sung Cho",
        "value": -0.014238052929769669,
        "minutes_together": 297.1
      },
      {
        "player_p": 13911,
        "player_q": 13923,
        "name_p": "Young-gwon Kim",
        "name_q": "Gue-sung Cho",
        "value": -0.015396268610207502,
        "minutes_together": 285.1666666666667
      },
      {
        "player_p": 12502,
        "player_q": 13923,
        "name_p": "Min Jae Kim",
        "name_q": "Gue-sung Cho",
        "value": -0.016070588585768476,
        "minutes_together": 195.46666666666667
      },
      {
        "player_p": 83,
        "player_q": 13923,
        "name_p": "Heung-min Son",
        "name_q": "Gue-sung Cho",
        "value": -0.03160727963273506,
        "minutes_together": 297.1
      },
      {
        "player_p": 5038,
        "player_q": 13923,
        "name_p": "Jae-sung Lee",
        "name_q": "Gue-sung Cho",
        "value": -0.03485577565103437,
        "minutes_together": 138.96666666666667
      }
    ],
    "path": "assets/figures/team_377_jdi90.png"
  },
  {
    "team_id": "378",
    "team_name": "Tunisia",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_378_joi90.png",
    "n_pairs": 54,
    "median": 0.006402782174264163,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 14019,
        "name": "Yassine Meriah",
        "position": "MCB",
        "x": 34.0,
        "y": 22.5,
        "row": 4,
        "col": 2,
        "on_seconds": 17793
      },
      {
        "player_id": 4758,
        "name": "Ellyes Skhiri",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17793
      },
      {
        "player_id": 9824,
        "name": "Montassar Talbi",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17793
      },
      {
        "player_id": 14013,
        "name": "Aymen Dahmen",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17793
      },
      {
        "player_id": 14022,
        "name": "Aissa Laidouni",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 15428
      },
      {
        "player_id": 9598,
        "name": "Ali Abdi",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 12819
      },
      {
        "player_id": 14028,
        "name": "Issam Jebali",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 11759
      },
      {
        "player_id": 14025,
        "name": "Youssef Msakni",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 10524
      },
      {
        "player_id": 4142,
        "name": "Dylan Bronn",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 10232
      },
      {
        "player_id": 14030,
        "name": "Anis Slimane",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 8980
      },
      {
        "player_id": 7649,
        "name": "Mohamed Drager",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 8261
      }
    ],
    "pairs": [
      {
        "player_p": 9824,
        "player_q": 14028,
        "name_p": "Montassar Talbi",
        "name_q": "Issam Jebali",
        "value": 0.43340292786838785,
        "minutes_together": 195.98333333333335
      },
      {
        "player_p": 14022,
        "player_q": 14025,
        "name_p": "Aissa Laidouni",
        "name_q": "Youssef Msakni",
        "value": 0.15767272172967395,
        "minutes_together": 145.86666666666667
      },
      {
        "player_p": 14013,
        "player_q": 14019,
        "name_p": "Aymen Dahmen",
        "name_q": "Yassine Meriah",
        "value": 0.07807186187510122,
        "minutes_together": 296.55
      },
      {
        "player_p": 7649,
        "player_q": 14028,
        "name_p": "Mohamed Drager",
        "name_q": "Issam Jebali",
        "value": 0.0630905782564699,
        "minutes_together": 130.01666666666668
      },
      {
        "player_p": 4758,
        "player_q": 14028,
        "name_p": "Ellyes Skhiri",
        "name_q": "Issam Jebali",
        "value": 0.0504480220463571,
        "minutes_together": 195.98333333333335
      },
      {
        "player_p": 4758,
        "player_q": 9598,
        "name_p": "Ellyes Skhiri",
        "name_q": "Ali Abdi",
        "value": 0.043802614531335736,
        "minutes_together": 213.65
      },
      {
        "player_p": 9598,
        "player_q": 9824,
        "name_p": "Ali Abdi",
        "name_q": "Montassar Talbi",
        "value": 0.03939717619192864,
        "minutes_together": 213.65
      },
      {
        "player_p": 9598,
        "player_q": 14030,
        "name_p": "Ali Abdi",
        "name_q": "Anis Slimane",
        "value": 0.037800763274631936,
        "minutes_together": 66.76666666666667
      },
      {
        "player_p": 4758,
        "player_q": 9824,
        "name_p": "Ellyes Skhiri",
        "name_q": "Montassar Talbi",
        "value": 0.03309592219460369,
        "minutes_together": 296.55
      },
      {
        "player_p": 4142,
        "player_q": 9598,
        "name_p": "Dylan Bronn",
        "name_q": "Ali Abdi",
        "value": 0.0313818788121141,
        "minutes_together": 170.53333333333333
      },
      {
        "player_p": 14019,
        "player_q": 14022,
        "name_p": "Yassine Meriah",
        "name_q": "Aissa Laidouni",
        "value": 0.020858827483978343,
        "minutes_together": 257.1333333333333
      },
      {
        "player_p": 7649,
        "player_q": 14022,
        "name_p": "Mohamed Drager",
        "name_q": "Aissa Laidouni",
        "value": 0.020014866319736906,
        "minutes_together": 137.68333333333334
      },
      {
        "player_p": 9824,
        "player_q": 14030,
        "name_p": "Montassar Talbi",
        "name_q": "Anis Slimane",
        "value": 0.020010570072639886,
        "minutes_together": 149.66666666666669
      },
      {
        "player_p": 9824,
        "player_q": 14022,
        "name_p": "Montassar Talbi",
        "name_q": "Aissa Laidouni",
        "value": 0.019469193398640686,
        "minutes_together": 257.1333333333333
      },
      {
        "player_p": 4142,
        "player_q": 14028,
        "name_p": "Dylan Bronn",
        "name_q": "Issam Jebali",
        "value": 0.019262921493517896,
        "minutes_together": 152.28333333333336
      },
      {
        "player_p": 9598,
        "player_q": 14022,
        "name_p": "Ali Abdi",
        "name_q": "Aissa Laidouni",
        "value": 0.018419558418533755,
        "minutes_together": 174.23333333333335
      },
      {
        "player_p": 4758,
        "player_q": 14030,
        "name_p": "Ellyes Skhiri",
        "name_q": "Anis Slimane",
        "value": 0.01789763326070653,
        "minutes_together": 149.66666666666669
      },
      {
        "player_p": 9824,
        "player_q": 14025,
        "name_p": "Montassar Talbi",
        "name_q": "Youssef Msakni",
        "value": 0.016238483077537974,
        "minutes_together": 175.39999999999998
      },
      {
        "player_p": 9824,
        "player_q": 14013,
        "name_p": "Montassar Talbi",
        "name_q": "Aymen Dahmen",
        "value": 0.016227728330091794,
        "minutes_together": 296.55
      },
      {
        "player_p": 4758,
        "player_q": 14019,
        "name_p": "Ellyes Skhiri",
        "name_q": "Yassine Meriah",
        "value": 0.014802405744865264,
        "minutes_together": 296.55
      },
      {
        "player_p": 14019,
        "player_q": 14025,
        "name_p": "Yassine Meriah",
        "name_q": "Youssef Msakni",
        "value": 0.014799965883731963,
        "minutes_together": 175.39999999999998
      },
      {
        "player_p": 7649,
        "player_q": 9824,
        "name_p": "Mohamed Drager",
        "name_q": "Montassar Talbi",
        "value": 0.010971937166098934,
        "minutes_together": 137.68333333333334
      },
      {
        "player_p": 4142,
        "player_q": 7649,
        "name_p": "Dylan Bronn",
        "name_q": "Mohamed Drager",
        "value": 0.010254292444141274,
        "minutes_together": 137.68333333333334
      },
      {
        "player_p": 14022,
        "player_q": 14028,
        "name_p": "Aissa Laidouni",
        "name_q": "Issam Jebali",
        "value": 0.009652798886516557,
        "minutes_together": 189.83333333333334
      },
      {
        "player_p": 4142,
        "player_q": 14013,
        "name_p": "Dylan Bronn",
        "name_q": "Aymen Dahmen",
        "value": 0.00964077385604037,
        "minutes_together": 170.53333333333333
      },
      {
        "player_p": 7649,
        "player_q": 9598,
        "name_p": "Mohamed Drager",
        "name_q": "Ali Abdi",
        "value": 0.00826930446341512,
        "minutes_together": 137.68333333333334
      },
      {
        "player_p": 14013,
        "player_q": 14025,
        "name_p": "Aymen Dahmen",
        "name_q": "Youssef Msakni",
        "value": 0.007152320254328406,
        "minutes_together": 175.39999999999998
      },
      {
        "player_p": 7649,
        "player_q": 14019,
        "name_p": "Mohamed Drager",
        "name_q": "Yassine Meriah",
        "value": 0.0056532440941999195,
        "minutes_together": 137.68333333333334
      },
      {
        "player_p": 14025,
        "player_q": 14028,
        "name_p": "Youssef Msakni",
        "name_q": "Issam Jebali",
        "value": 0.004581678011868832,
        "minutes_together": 152.01666666666665
      },
      {
        "player_p": 14019,
        "player_q": 14030,
        "name_p": "Yassine Meriah",
        "name_q": "Anis Slimane",
        "value": 0.004158452431434184,
        "minutes_together": 149.66666666666669
      },
      {
        "player_p": 7649,
        "player_q": 14013,
        "name_p": "Mohamed Drager",
        "name_q": "Aymen Dahmen",
        "value": 0.0038295502519698,
        "minutes_together": 137.68333333333334
      },
      {
        "player_p": 9598,
        "player_q": 14019,
        "name_p": "Ali Abdi",
        "name_q": "Yassine Meriah",
        "value": 0.002696448194788525,
        "minutes_together": 213.65
      },
      {
        "player_p": 9824,
        "player_q": 14019,
        "name_p": "Montassar Talbi",
        "name_q": "Yassine Meriah",
        "value": 0.0024409007458364813,
        "minutes_together": 296.55
      },
      {
        "player_p": 4142,
        "player_q": 14025,
        "name_p": "Dylan Bronn",
        "name_q": "Youssef Msakni",
        "value": 0.002283350493539014,
        "minutes_together": 152.08333333333331
      },
      {
        "player_p": 9598,
        "player_q": 14028,
        "name_p": "Ali Abdi",
        "name_q": "Issam Jebali",
        "value": 0.001999386742040493,
        "minutes_together": 172.08333333333334
      },
      {
        "player_p": 4758,
        "player_q": 14022,
        "name_p": "Ellyes Skhiri",
        "name_q": "Aissa Laidouni",
        "value": 0.0014984907177318292,
        "minutes_together": 257.1333333333333
      },
      {
        "player_p": 14013,
        "player_q": 14030,
        "name_p": "Aymen Dahmen",
        "name_q": "Anis Slimane",
        "value": 0.0012130404943890443,
        "minutes_together": 149.66666666666669
      },
      {
        "player_p": 4758,
        "player_q": 14013,
        "name_p": "Ellyes Skhiri",
        "name_q": "Aymen Dahmen",
        "value": -0.0013677192646207015,
        "minutes_together": 296.55
      },
      {
        "player_p": 4758,
        "player_q": 14025,
        "name_p": "Ellyes Skhiri",
        "name_q": "Youssef Msakni",
        "value": -0.0017229710589952959,
        "minutes_together": 175.39999999999998
      },
      {
        "player_p": 4142,
        "player_q": 9824,
        "name_p": "Dylan Bronn",
        "name_q": "Montassar Talbi",
        "value": -0.0029610207627343453,
        "minutes_together": 170.53333333333333
      },
      {
        "player_p": 9598,
        "player_q": 14013,
        "name_p": "Ali Abdi",
        "name_q": "Aymen Dahmen",
        "value": -0.003937052079614715,
        "minutes_together": 213.65
      },
      {
        "player_p": 14022,
        "player_q": 14030,
        "name_p": "Aissa Laidouni",
        "name_q": "Anis Slimane",
        "value": -0.005050638896403724,
        "minutes_together": 149.66666666666669
      },
      {
        "player_p": 14013,
        "player_q": 14022,
        "name_p": "Aymen Dahmen",
        "name_q": "Aissa Laidouni",
        "value": -0.00574329655020549,
        "minutes_together": 257.1333333333333
      },
      {
        "player_p": 7649,
        "player_q": 14030,
        "name_p": "Mohamed Drager",
        "name_q": "Anis Slimane",
        "value": -0.006092728599786466,
        "minutes_together": 66.76666666666667
      },
      {
        "player_p": 4142,
        "player_q": 4758,
        "name_p": "Dylan Bronn",
        "name_q": "Ellyes Skhiri",
        "value": -0.00933698591901042,
        "minutes_together": 170.53333333333333
      },
      {
        "player_p": 14019,
        "player_q": 14028,
        "name_p": "Yassine Meriah",
        "name_q": "Issam Jebali",
        "value": -0.01116206974679974,
        "minutes_together": 195.98333333333335
      },
      {
        "player_p": 9598,
        "player_q": 14025,
        "name_p": "Ali Abdi",
        "name_q": "Youssef Msakni",
        "value": -0.01317184118887274,
        "minutes_together": 175.39999999999998
      },
      {
        "player_p": 4142,
        "player_q": 14019,
        "name_p": "Dylan Bronn",
        "name_q": "Yassine Meriah",
        "value": -0.018689418445785384,
        "minutes_together": 170.53333333333333
      },
      {
        "player_p": 4142,
        "player_q": 14022,
        "name_p": "Dylan Bronn",
        "name_q": "Aissa Laidouni",
        "value": -0.020805368129713016,
        "minutes_together": 154.43333333333334
      },
      {
        "player_p": 14028,
        "player_q": 14030,
        "name_p": "Issam Jebali",
        "name_q": "Anis Slimane",
        "value": -0.04306537277388914,
        "minutes_together": 90.66666666666666
      },
      {
        "player_p": 4758,
        "player_q": 7649,
        "name_p": "Ellyes Skhiri",
        "name_q": "Mohamed Drager",
        "value": -0.0478963220540216,
        "minutes_together": 137.68333333333334
      },
      {
        "player_p": 4142,
        "player_q": 14030,
        "name_p": "Dylan Bronn",
        "name_q": "Anis Slimane",
        "value": -0.0494878374784282,
        "minutes_together": 66.76666666666667
      },
      {
        "player_p": 7649,
        "player_q": 14025,
        "name_p": "Mohamed Drager",
        "name_q": "Youssef Msakni",
        "value": -0.06487262624472132,
        "minutes_together": 129.75
      },
      {
        "player_p": 14025,
        "player_q": 14030,
        "name_p": "Youssef Msakni",
        "name_q": "Anis Slimane",
        "value": -0.06549864628826058,
        "minutes_together": 66.76666666666667
      }
    ],
    "path": "assets/figures/team_378_joi90.png"
  },
  {
    "team_id": "378",
    "team_name": "Tunisia",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_378_jdi90.png",
    "n_pairs": 55,
    "median": 0.04327933567225198,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 14019,
        "name": "Yassine Meriah",
        "position": "MCB",
        "x": 34.0,
        "y": 22.5,
        "row": 4,
        "col": 2,
        "on_seconds": 17793
      },
      {
        "player_id": 4758,
        "name": "Ellyes Skhiri",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17793
      },
      {
        "player_id": 9824,
        "name": "Montassar Talbi",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17793
      },
      {
        "player_id": 14013,
        "name": "Aymen Dahmen",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17793
      },
      {
        "player_id": 14022,
        "name": "Aissa Laidouni",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 15428
      },
      {
        "player_id": 9598,
        "name": "Ali Abdi",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 12819
      },
      {
        "player_id": 14028,
        "name": "Issam Jebali",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 11759
      },
      {
        "player_id": 14025,
        "name": "Youssef Msakni",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 10524
      },
      {
        "player_id": 4142,
        "name": "Dylan Bronn",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 10232
      },
      {
        "player_id": 14030,
        "name": "Anis Slimane",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 8980
      },
      {
        "player_id": 7649,
        "name": "Mohamed Drager",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 8261
      }
    ],
    "pairs": [
      {
        "player_p": 4142,
        "player_q": 14019,
        "name_p": "Dylan Bronn",
        "name_q": "Yassine Meriah",
        "value": 0.0888869601965086,
        "minutes_together": 170.53333333333333
      },
      {
        "player_p": 7649,
        "player_q": 14019,
        "name_p": "Mohamed Drager",
        "name_q": "Yassine Meriah",
        "value": 0.08692406148694179,
        "minutes_together": 137.68333333333334
      },
      {
        "player_p": 14019,
        "player_q": 14025,
        "name_p": "Yassine Meriah",
        "name_q": "Youssef Msakni",
        "value": 0.08138540908286018,
        "minutes_together": 175.39999999999998
      },
      {
        "player_p": 9598,
        "player_q": 14019,
        "name_p": "Ali Abdi",
        "name_q": "Yassine Meriah",
        "value": 0.07210657205415522,
        "minutes_together": 213.65
      },
      {
        "player_p": 14019,
        "player_q": 14028,
        "name_p": "Yassine Meriah",
        "name_q": "Issam Jebali",
        "value": 0.06909296437844559,
        "minutes_together": 195.98333333333335
      },
      {
        "player_p": 14019,
        "player_q": 14022,
        "name_p": "Yassine Meriah",
        "name_q": "Aissa Laidouni",
        "value": 0.0674376607001123,
        "minutes_together": 257.1333333333333
      },
      {
        "player_p": 4758,
        "player_q": 14019,
        "name_p": "Ellyes Skhiri",
        "name_q": "Yassine Meriah",
        "value": 0.06633341722878096,
        "minutes_together": 296.55
      },
      {
        "player_p": 14019,
        "player_q": 14030,
        "name_p": "Yassine Meriah",
        "name_q": "Anis Slimane",
        "value": 0.06434777825783494,
        "minutes_together": 149.66666666666669
      },
      {
        "player_p": 9824,
        "player_q": 14019,
        "name_p": "Montassar Talbi",
        "name_q": "Yassine Meriah",
        "value": 0.06031851608988004,
        "minutes_together": 296.55
      },
      {
        "player_p": 14013,
        "player_q": 14019,
        "name_p": "Aymen Dahmen",
        "name_q": "Yassine Meriah",
        "value": 0.05954321648521409,
        "minutes_together": 296.55
      },
      {
        "player_p": 4142,
        "player_q": 14022,
        "name_p": "Dylan Bronn",
        "name_q": "Aissa Laidouni",
        "value": 0.054297878337533585,
        "minutes_together": 154.43333333333334
      },
      {
        "player_p": 4142,
        "player_q": 4758,
        "name_p": "Dylan Bronn",
        "name_q": "Ellyes Skhiri",
        "value": 0.05306264339232301,
        "minutes_together": 170.53333333333333
      },
      {
        "player_p": 4142,
        "player_q": 9824,
        "name_p": "Dylan Bronn",
        "name_q": "Montassar Talbi",
        "value": 0.05098695582612623,
        "minutes_together": 170.53333333333333
      },
      {
        "player_p": 4142,
        "player_q": 14013,
        "name_p": "Dylan Bronn",
        "name_q": "Aymen Dahmen",
        "value": 0.05035433768400832,
        "minutes_together": 170.53333333333333
      },
      {
        "player_p": 4142,
        "player_q": 14030,
        "name_p": "Dylan Bronn",
        "name_q": "Anis Slimane",
        "value": 0.050200732350413176,
        "minutes_together": 66.76666666666667
      },
      {
        "player_p": 4758,
        "player_q": 14022,
        "name_p": "Ellyes Skhiri",
        "name_q": "Aissa Laidouni",
        "value": 0.049142565705544095,
        "minutes_together": 257.1333333333333
      },
      {
        "player_p": 14022,
        "player_q": 14025,
        "name_p": "Aissa Laidouni",
        "name_q": "Youssef Msakni",
        "value": 0.04649850637778756,
        "minutes_together": 145.86666666666667
      },
      {
        "player_p": 4758,
        "player_q": 7649,
        "name_p": "Ellyes Skhiri",
        "name_q": "Mohamed Drager",
        "value": 0.0457397038452069,
        "minutes_together": 137.68333333333334
      },
      {
        "player_p": 7649,
        "player_q": 14022,
        "name_p": "Mohamed Drager",
        "name_q": "Aissa Laidouni",
        "value": 0.0457397038452069,
        "minutes_together": 137.68333333333334
      },
      {
        "player_p": 4758,
        "player_q": 14025,
        "name_p": "Ellyes Skhiri",
        "name_q": "Youssef Msakni",
        "value": 0.0452745598389546,
        "minutes_together": 175.39999999999998
      },
      {
        "player_p": 4142,
        "player_q": 14025,
        "name_p": "Dylan Bronn",
        "name_q": "Youssef Msakni",
        "value": 0.04505281954804164,
        "minutes_together": 152.08333333333331
      },
      {
        "player_p": 7649,
        "player_q": 9824,
        "name_p": "Mohamed Drager",
        "name_q": "Montassar Talbi",
        "value": 0.04479020726658057,
        "minutes_together": 137.68333333333334
      },
      {
        "player_p": 4142,
        "player_q": 7649,
        "name_p": "Dylan Bronn",
        "name_q": "Mohamed Drager",
        "value": 0.0445217325680602,
        "minutes_together": 137.68333333333334
      },
      {
        "player_p": 7649,
        "player_q": 14013,
        "name_p": "Mohamed Drager",
        "name_q": "Aymen Dahmen",
        "value": 0.044178560312746445,
        "minutes_together": 137.68333333333334
      },
      {
        "player_p": 9598,
        "player_q": 14022,
        "name_p": "Ali Abdi",
        "name_q": "Aissa Laidouni",
        "value": 0.04389413807438757,
        "minutes_together": 174.23333333333335
      },
      {
        "player_p": 4142,
        "player_q": 14028,
        "name_p": "Dylan Bronn",
        "name_q": "Issam Jebali",
        "value": 0.04358892416448711,
        "minutes_together": 152.28333333333336
      },
      {
        "player_p": 9824,
        "player_q": 14025,
        "name_p": "Montassar Talbi",
        "name_q": "Youssef Msakni",
        "value": 0.043568389610050044,
        "minutes_together": 175.39999999999998
      },
      {
        "player_p": 9824,
        "player_q": 14022,
        "name_p": "Montassar Talbi",
        "name_q": "Aissa Laidouni",
        "value": 0.04327933567225198,
        "minutes_together": 257.1333333333333
      },
      {
        "player_p": 14013,
        "player_q": 14025,
        "name_p": "Aymen Dahmen",
        "name_q": "Youssef Msakni",
        "value": 0.043123039669598476,
        "minutes_together": 175.39999999999998
      },
      {
        "player_p": 4142,
        "player_q": 9598,
        "name_p": "Dylan Bronn",
        "name_q": "Ali Abdi",
        "value": 0.04311896664278821,
        "minutes_together": 170.53333333333333
      },
      {
        "player_p": 4758,
        "player_q": 9824,
        "name_p": "Ellyes Skhiri",
        "name_q": "Montassar Talbi",
        "value": 0.04304137930657959,
        "minutes_together": 296.55
      },
      {
        "player_p": 4758,
        "player_q": 9598,
        "name_p": "Ellyes Skhiri",
        "name_q": "Ali Abdi",
        "value": 0.04282785554455626,
        "minutes_together": 213.65
      },
      {
        "player_p": 14013,
        "player_q": 14022,
        "name_p": "Aymen Dahmen",
        "name_q": "Aissa Laidouni",
        "value": 0.042467269645530756,
        "minutes_together": 257.1333333333333
      },
      {
        "player_p": 4758,
        "player_q": 14013,
        "name_p": "Ellyes Skhiri",
        "name_q": "Aymen Dahmen",
        "value": 0.042266079701913636,
        "minutes_together": 296.55
      },
      {
        "player_p": 14022,
        "player_q": 14030,
        "name_p": "Aissa Laidouni",
        "name_q": "Anis Slimane",
        "value": 0.04186728631223647,
        "minutes_together": 149.66666666666669
      },
      {
        "player_p": 4758,
        "player_q": 14030,
        "name_p": "Ellyes Skhiri",
        "name_q": "Anis Slimane",
        "value": 0.04186728631223647,
        "minutes_together": 149.66666666666669
      },
      {
        "player_p": 4758,
        "player_q": 14028,
        "name_p": "Ellyes Skhiri",
        "name_q": "Issam Jebali",
        "value": 0.04079220461681063,
        "minutes_together": 195.98333333333335
      },
      {
        "player_p": 14022,
        "player_q": 14028,
        "name_p": "Aissa Laidouni",
        "name_q": "Issam Jebali",
        "value": 0.04057727125709882,
        "minutes_together": 189.83333333333334
      },
      {
        "player_p": 9598,
        "player_q": 9824,
        "name_p": "Ali Abdi",
        "name_q": "Montassar Talbi",
        "value": 0.03979204184722446,
        "minutes_together": 213.65
      },
      {
        "player_p": 9598,
        "player_q": 14013,
        "name_p": "Ali Abdi",
        "name_q": "Aymen Dahmen",
        "value": 0.03925739459802714,
        "minutes_together": 213.65
      },
      {
        "player_p": 9598,
        "player_q": 14030,
        "name_p": "Ali Abdi",
        "name_q": "Anis Slimane",
        "value": 0.03745440340445176,
        "minutes_together": 66.76666666666667
      },
      {
        "player_p": 9824,
        "player_q": 14028,
        "name_p": "Montassar Talbi",
        "name_q": "Issam Jebali",
        "value": 0.037382376033953404,
        "minutes_together": 195.98333333333335
      },
      {
        "player_p": 14013,
        "player_q": 14028,
        "name_p": "Aymen Dahmen",
        "name_q": "Issam Jebali",
        "value": 0.036852124500969995,
        "minutes_together": 195.98333333333335
      },
      {
        "player_p": 7649,
        "player_q": 14025,
        "name_p": "Mohamed Drager",
        "name_q": "Youssef Msakni",
        "value": 0.03667486068065224,
        "minutes_together": 129.75
      },
      {
        "player_p": 14025,
        "player_q": 14030,
        "name_p": "Youssef Msakni",
        "name_q": "Anis Slimane",
        "value": 0.03648138730029246,
        "minutes_together": 66.76666666666667
      },
      {
        "player_p": 9824,
        "player_q": 14013,
        "name_p": "Montassar Talbi",
        "name_q": "Aymen Dahmen",
        "value": 0.036251178563012756,
        "minutes_together": 296.55
      },
      {
        "player_p": 9824,
        "player_q": 14030,
        "name_p": "Montassar Talbi",
        "name_q": "Anis Slimane",
        "value": 0.036173209258989855,
        "minutes_together": 149.66666666666669
      },
      {
        "player_p": 7649,
        "player_q": 9598,
        "name_p": "Mohamed Drager",
        "name_q": "Ali Abdi",
        "value": 0.03599646568569424,
        "minutes_together": 137.68333333333334
      },
      {
        "player_p": 9598,
        "player_q": 14025,
        "name_p": "Ali Abdi",
        "name_q": "Youssef Msakni",
        "value": 0.03576514374278719,
        "minutes_together": 175.39999999999998
      },
      {
        "player_p": 7649,
        "player_q": 14030,
        "name_p": "Mohamed Drager",
        "name_q": "Anis Slimane",
        "value": 0.035409180958432096,
        "minutes_together": 66.76666666666667
      },
      {
        "player_p": 14025,
        "player_q": 14028,
        "name_p": "Youssef Msakni",
        "name_q": "Issam Jebali",
        "value": 0.03515971930751577,
        "minutes_together": 152.01666666666665
      },
      {
        "player_p": 14013,
        "player_q": 14030,
        "name_p": "Aymen Dahmen",
        "name_q": "Anis Slimane",
        "value": 0.0351455574582856,
        "minutes_together": 149.66666666666669
      },
      {
        "player_p": 7649,
        "player_q": 14028,
        "name_p": "Mohamed Drager",
        "name_q": "Issam Jebali",
        "value": 0.033902761608229255,
        "minutes_together": 130.01666666666668
      },
      {
        "player_p": 9598,
        "player_q": 14028,
        "name_p": "Ali Abdi",
        "name_q": "Issam Jebali",
        "value": 0.03227359081545493,
        "minutes_together": 172.08333333333334
      },
      {
        "player_p": 14028,
        "player_q": 14030,
        "name_p": "Issam Jebali",
        "name_q": "Anis Slimane",
        "value": 0.026454557181059383,
        "minutes_together": 90.66666666666666
      }
    ],
    "path": "assets/figures/team_378_jdi90.png"
  },
  {
    "team_id": "379",
    "team_name": "Cameroon",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_379_joi90.png",
    "n_pairs": 51,
    "median": 0.008512476972608795,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 13872,
        "name": "Collins Fai",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 17555
      },
      {
        "player_id": 1168,
        "name": "Nouhou Tolo",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 17555
      },
      {
        "player_id": 1977,
        "name": "Andr\u00e9 Zambo Anguissa",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 16601
      },
      {
        "player_id": 4626,
        "name": "Eric Maxim Choupo-Moting",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 16194
      },
      {
        "player_id": 5074,
        "name": "Bryan Mbeumo",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 13475
      },
      {
        "player_id": 13871,
        "name": "Devis Epassy",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 11776
      },
      {
        "player_id": 4174,
        "name": "Jean-Charles Castelletto",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 11552
      },
      {
        "player_id": 6655,
        "name": "Nicolas N'Koulou",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 11552
      },
      {
        "player_id": 3934,
        "name": "Karl Toko Ekambi",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 10651
      },
      {
        "player_id": 13875,
        "name": "Vincent Aboubakar",
        "position": "CF",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 9846
      },
      {
        "player_id": 13873,
        "name": "Pierre Kunde",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 8067
      }
    ],
    "pairs": [
      {
        "player_p": 4626,
        "player_q": 13875,
        "name_p": "Eric Maxim Choupo-Moting",
        "name_q": "Vincent Aboubakar",
        "value": 0.632395071949045,
        "minutes_together": 141.41666666666666
      },
      {
        "player_p": 4174,
        "player_q": 4626,
        "name_p": "Jean-Charles Castelletto",
        "name_q": "Eric Maxim Choupo-Moting",
        "value": 0.5013122698448969,
        "minutes_together": 169.85000000000002
      },
      {
        "player_p": 1168,
        "player_q": 4626,
        "name_p": "Nouhou Tolo",
        "name_q": "Eric Maxim Choupo-Moting",
        "value": 0.34387316311053595,
        "minutes_together": 269.9
      },
      {
        "player_p": 4174,
        "player_q": 6655,
        "name_p": "Jean-Charles Castelletto",
        "name_q": "Nicolas N'Koulou",
        "value": 0.3389449929726186,
        "minutes_together": 192.53333333333333
      },
      {
        "player_p": 6655,
        "player_q": 13873,
        "name_p": "Nicolas N'Koulou",
        "name_q": "Pierre Kunde",
        "value": 0.3376062791515843,
        "minutes_together": 67.0
      },
      {
        "player_p": 3934,
        "player_q": 4626,
        "name_p": "Karl Toko Ekambi",
        "name_q": "Eric Maxim Choupo-Moting",
        "value": 0.12205131065324061,
        "minutes_together": 177.4
      },
      {
        "player_p": 13872,
        "player_q": 13875,
        "name_p": "Collins Fai",
        "name_q": "Vincent Aboubakar",
        "value": 0.10170043707529186,
        "minutes_together": 164.10000000000002
      },
      {
        "player_p": 1168,
        "player_q": 3934,
        "name_p": "Nouhou Tolo",
        "name_q": "Karl Toko Ekambi",
        "value": 0.05175950155337331,
        "minutes_together": 177.51666666666665
      },
      {
        "player_p": 4174,
        "player_q": 13871,
        "name_p": "Jean-Charles Castelletto",
        "name_q": "Devis Epassy",
        "value": 0.04891103994518111,
        "minutes_together": 96.21666666666667
      },
      {
        "player_p": 4626,
        "player_q": 13873,
        "name_p": "Eric Maxim Choupo-Moting",
        "name_q": "Pierre Kunde",
        "value": 0.0430302303471878,
        "minutes_together": 134.45
      },
      {
        "player_p": 4174,
        "player_q": 13873,
        "name_p": "Jean-Charles Castelletto",
        "name_q": "Pierre Kunde",
        "value": 0.039151866158926824,
        "minutes_together": 67.0
      },
      {
        "player_p": 1977,
        "player_q": 4626,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Eric Maxim Choupo-Moting",
        "value": 0.03691142095794374,
        "minutes_together": 254.0
      },
      {
        "player_p": 4626,
        "player_q": 13871,
        "name_p": "Eric Maxim Choupo-Moting",
        "name_q": "Devis Epassy",
        "value": 0.03506667240971996,
        "minutes_together": 196.26666666666665
      },
      {
        "player_p": 6655,
        "player_q": 13871,
        "name_p": "Nicolas N'Koulou",
        "name_q": "Devis Epassy",
        "value": 0.03350243368123615,
        "minutes_together": 96.21666666666667
      },
      {
        "player_p": 13871,
        "player_q": 13872,
        "name_p": "Devis Epassy",
        "name_q": "Collins Fai",
        "value": 0.02854657451735594,
        "minutes_together": 196.26666666666665
      },
      {
        "player_p": 1977,
        "player_q": 13873,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Pierre Kunde",
        "value": 0.02447059803965846,
        "minutes_together": 134.45
      },
      {
        "player_p": 1168,
        "player_q": 4174,
        "name_p": "Nouhou Tolo",
        "name_q": "Jean-Charles Castelletto",
        "value": 0.02285801736844469,
        "minutes_together": 192.53333333333333
      },
      {
        "player_p": 4174,
        "player_q": 13875,
        "name_p": "Jean-Charles Castelletto",
        "name_q": "Vincent Aboubakar",
        "value": 0.022188841651638074,
        "minutes_together": 64.05
      },
      {
        "player_p": 1168,
        "player_q": 6655,
        "name_p": "Nouhou Tolo",
        "name_q": "Nicolas N'Koulou",
        "value": 0.021880875671035728,
        "minutes_together": 192.53333333333333
      },
      {
        "player_p": 3934,
        "player_q": 6655,
        "name_p": "Karl Toko Ekambi",
        "name_q": "Nicolas N'Koulou",
        "value": 0.020883017016561683,
        "minutes_together": 140.78333333333333
      },
      {
        "player_p": 1977,
        "player_q": 13872,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Collins Fai",
        "value": 0.01948035270732896,
        "minutes_together": 276.68333333333334
      },
      {
        "player_p": 1977,
        "player_q": 4174,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Jean-Charles Castelletto",
        "value": 0.016702121140369945,
        "minutes_together": 176.63333333333333
      },
      {
        "player_p": 1168,
        "player_q": 1977,
        "name_p": "Nouhou Tolo",
        "name_q": "Andr\u00e9 Zambo Anguissa",
        "value": 0.015893766090105316,
        "minutes_together": 276.68333333333334
      },
      {
        "player_p": 3934,
        "player_q": 13873,
        "name_p": "Karl Toko Ekambi",
        "name_q": "Pierre Kunde",
        "value": 0.014323936491528286,
        "minutes_together": 71.13333333333334
      },
      {
        "player_p": 1977,
        "player_q": 3934,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Karl Toko Ekambi",
        "value": 0.00887201300216967,
        "minutes_together": 177.51666666666665
      },
      {
        "player_p": 3934,
        "player_q": 13871,
        "name_p": "Karl Toko Ekambi",
        "name_q": "Devis Epassy",
        "value": 0.008512476972608795,
        "minutes_together": 103.76666666666667
      },
      {
        "player_p": 13872,
        "player_q": 13873,
        "name_p": "Collins Fai",
        "name_q": "Pierre Kunde",
        "value": 0.00831985714405249,
        "minutes_together": 134.45
      },
      {
        "player_p": 1168,
        "player_q": 13875,
        "name_p": "Nouhou Tolo",
        "name_q": "Vincent Aboubakar",
        "value": 0.006726877195716127,
        "minutes_together": 164.10000000000002
      },
      {
        "player_p": 5074,
        "player_q": 13871,
        "name_p": "Bryan Mbeumo",
        "name_q": "Devis Epassy",
        "value": 0.0059800485360168975,
        "minutes_together": 143.8
      },
      {
        "player_p": 3934,
        "player_q": 13872,
        "name_p": "Karl Toko Ekambi",
        "name_q": "Collins Fai",
        "value": 0.004231512576295743,
        "minutes_together": 177.51666666666665
      },
      {
        "player_p": 5074,
        "player_q": 13873,
        "name_p": "Bryan Mbeumo",
        "name_q": "Pierre Kunde",
        "value": 0.0034583662914802736,
        "minutes_together": 130.31666666666666
      },
      {
        "player_p": 3934,
        "player_q": 5074,
        "name_p": "Karl Toko Ekambi",
        "name_q": "Bryan Mbeumo",
        "value": 0.0018618830852927665,
        "minutes_together": 140.78333333333333
      },
      {
        "player_p": 1977,
        "player_q": 6655,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Nicolas N'Koulou",
        "value": 0.0016083021711241932,
        "minutes_together": 176.63333333333333
      },
      {
        "player_p": 1168,
        "player_q": 13871,
        "name_p": "Nouhou Tolo",
        "name_q": "Devis Epassy",
        "value": 0.0010326338798484457,
        "minutes_together": 196.26666666666665
      },
      {
        "player_p": 13871,
        "player_q": 13873,
        "name_p": "Devis Epassy",
        "name_q": "Pierre Kunde",
        "value": 0.0005175611482606927,
        "minutes_together": 134.45
      },
      {
        "player_p": 6655,
        "player_q": 13872,
        "name_p": "Nicolas N'Koulou",
        "name_q": "Collins Fai",
        "value": -0.0013610805707419732,
        "minutes_together": 192.53333333333333
      },
      {
        "player_p": 1168,
        "player_q": 5074,
        "name_p": "Nouhou Tolo",
        "name_q": "Bryan Mbeumo",
        "value": -0.001569437040911274,
        "minutes_together": 224.58333333333334
      },
      {
        "player_p": 1977,
        "player_q": 13871,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Devis Epassy",
        "value": -0.0029530782313611343,
        "minutes_together": 180.36666666666667
      },
      {
        "player_p": 13871,
        "player_q": 13875,
        "name_p": "Devis Epassy",
        "name_q": "Vincent Aboubakar",
        "value": -0.004191105078716145,
        "minutes_together": 141.41666666666666
      },
      {
        "player_p": 5074,
        "player_q": 6655,
        "name_p": "Bryan Mbeumo",
        "name_q": "Nicolas N'Koulou",
        "value": -0.005539546614582439,
        "minutes_together": 161.26666666666665
      },
      {
        "player_p": 4626,
        "player_q": 5074,
        "name_p": "Eric Maxim Choupo-Moting",
        "name_q": "Bryan Mbeumo",
        "value": -0.005584312736922243,
        "minutes_together": 217.43333333333334
      },
      {
        "player_p": 4626,
        "player_q": 13872,
        "name_p": "Eric Maxim Choupo-Moting",
        "name_q": "Collins Fai",
        "value": -0.005651795874885473,
        "minutes_together": 269.9
      },
      {
        "player_p": 13873,
        "player_q": 13875,
        "name_p": "Pierre Kunde",
        "name_q": "Vincent Aboubakar",
        "value": -0.009194987456153473,
        "minutes_together": 79.60000000000001
      },
      {
        "player_p": 4174,
        "player_q": 13872,
        "name_p": "Jean-Charles Castelletto",
        "name_q": "Collins Fai",
        "value": -0.01029723793540861,
        "minutes_together": 192.53333333333333
      },
      {
        "player_p": 1977,
        "player_q": 13875,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Vincent Aboubakar",
        "value": -0.016046010915125707,
        "minutes_together": 148.2
      },
      {
        "player_p": 4174,
        "player_q": 5074,
        "name_p": "Jean-Charles Castelletto",
        "name_q": "Bryan Mbeumo",
        "value": -0.019109407921250068,
        "minutes_together": 161.26666666666665
      },
      {
        "player_p": 1168,
        "player_q": 13873,
        "name_p": "Nouhou Tolo",
        "name_q": "Pierre Kunde",
        "value": -0.023038814791297397,
        "minutes_together": 134.45
      },
      {
        "player_p": 1977,
        "player_q": 5074,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Bryan Mbeumo",
        "value": -0.026349296928002995,
        "minutes_together": 224.41666666666666
      },
      {
        "player_p": 4626,
        "player_q": 6655,
        "name_p": "Eric Maxim Choupo-Moting",
        "name_q": "Nicolas N'Koulou",
        "value": -0.027885691502917566,
        "minutes_together": 169.85000000000002
      },
      {
        "player_p": 5074,
        "player_q": 13875,
        "name_p": "Bryan Mbeumo",
        "name_q": "Vincent Aboubakar",
        "value": -0.04771493221080513,
        "minutes_together": 96.1
      },
      {
        "player_p": 5074,
        "player_q": 13872,
        "name_p": "Bryan Mbeumo",
        "name_q": "Collins Fai",
        "value": -0.05811384874626138,
        "minutes_together": 224.58333333333334
      }
    ],
    "path": "assets/figures/team_379_joi90.png"
  },
  {
    "team_id": "379",
    "team_name": "Cameroon",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_379_jdi90.png",
    "n_pairs": 54,
    "median": -0.043184674021007244,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 13872,
        "name": "Collins Fai",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 17555
      },
      {
        "player_id": 1168,
        "name": "Nouhou Tolo",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 17555
      },
      {
        "player_id": 1977,
        "name": "Andr\u00e9 Zambo Anguissa",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 16601
      },
      {
        "player_id": 4626,
        "name": "Eric Maxim Choupo-Moting",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 16194
      },
      {
        "player_id": 5074,
        "name": "Bryan Mbeumo",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 13475
      },
      {
        "player_id": 13871,
        "name": "Devis Epassy",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 11776
      },
      {
        "player_id": 4174,
        "name": "Jean-Charles Castelletto",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 11552
      },
      {
        "player_id": 6655,
        "name": "Nicolas N'Koulou",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 11552
      },
      {
        "player_id": 3934,
        "name": "Karl Toko Ekambi",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 10651
      },
      {
        "player_id": 13875,
        "name": "Vincent Aboubakar",
        "position": "CF",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 9846
      },
      {
        "player_id": 13873,
        "name": "Pierre Kunde",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 8067
      }
    ],
    "pairs": [
      {
        "player_p": 13873,
        "player_q": 13875,
        "name_p": "Pierre Kunde",
        "name_q": "Vincent Aboubakar",
        "value": 0.041744085379400254,
        "minutes_together": 79.60000000000001
      },
      {
        "player_p": 4626,
        "player_q": 13875,
        "name_p": "Eric Maxim Choupo-Moting",
        "name_q": "Vincent Aboubakar",
        "value": 0.030209783012561286,
        "minutes_together": 141.41666666666666
      },
      {
        "player_p": 1977,
        "player_q": 13875,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Vincent Aboubakar",
        "value": 0.02732656714512774,
        "minutes_together": 148.2
      },
      {
        "player_p": 5074,
        "player_q": 13875,
        "name_p": "Bryan Mbeumo",
        "name_q": "Vincent Aboubakar",
        "value": 0.015176624106857427,
        "minutes_together": 96.1
      },
      {
        "player_p": 1168,
        "player_q": 13875,
        "name_p": "Nouhou Tolo",
        "name_q": "Vincent Aboubakar",
        "value": 0.006899962632491601,
        "minutes_together": 164.10000000000002
      },
      {
        "player_p": 13872,
        "player_q": 13875,
        "name_p": "Collins Fai",
        "name_q": "Vincent Aboubakar",
        "value": 0.005730755838970174,
        "minutes_together": 164.10000000000002
      },
      {
        "player_p": 1977,
        "player_q": 4626,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Eric Maxim Choupo-Moting",
        "value": 0.0029253830712880438,
        "minutes_together": 254.0
      },
      {
        "player_p": 1168,
        "player_q": 1977,
        "name_p": "Nouhou Tolo",
        "name_q": "Andr\u00e9 Zambo Anguissa",
        "value": -0.0040823359781029704,
        "minutes_together": 276.68333333333334
      },
      {
        "player_p": 1977,
        "player_q": 13872,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Collins Fai",
        "value": -0.004405505587126599,
        "minutes_together": 276.68333333333334
      },
      {
        "player_p": 13871,
        "player_q": 13875,
        "name_p": "Devis Epassy",
        "name_q": "Vincent Aboubakar",
        "value": -0.006671242261260923,
        "minutes_together": 141.41666666666666
      },
      {
        "player_p": 1168,
        "player_q": 4626,
        "name_p": "Nouhou Tolo",
        "name_q": "Eric Maxim Choupo-Moting",
        "value": -0.012025971491295329,
        "minutes_together": 269.9
      },
      {
        "player_p": 4626,
        "player_q": 13872,
        "name_p": "Eric Maxim Choupo-Moting",
        "name_q": "Collins Fai",
        "value": -0.012404071620077891,
        "minutes_together": 269.9
      },
      {
        "player_p": 1977,
        "player_q": 5074,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Bryan Mbeumo",
        "value": -0.012740852062206603,
        "minutes_together": 224.41666666666666
      },
      {
        "player_p": 1168,
        "player_q": 13872,
        "name_p": "Nouhou Tolo",
        "name_q": "Collins Fai",
        "value": -0.020275018769520894,
        "minutes_together": 292.5833333333333
      },
      {
        "player_p": 4626,
        "player_q": 13873,
        "name_p": "Eric Maxim Choupo-Moting",
        "name_q": "Pierre Kunde",
        "value": -0.02112843470602563,
        "minutes_together": 134.45
      },
      {
        "player_p": 4626,
        "player_q": 5074,
        "name_p": "Eric Maxim Choupo-Moting",
        "name_q": "Bryan Mbeumo",
        "value": -0.021895121533889537,
        "minutes_together": 217.43333333333334
      },
      {
        "player_p": 1977,
        "player_q": 13873,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Pierre Kunde",
        "value": -0.02197486903203624,
        "minutes_together": 134.45
      },
      {
        "player_p": 1168,
        "player_q": 5074,
        "name_p": "Nouhou Tolo",
        "name_q": "Bryan Mbeumo",
        "value": -0.023524702668879516,
        "minutes_together": 224.58333333333334
      },
      {
        "player_p": 5074,
        "player_q": 13872,
        "name_p": "Bryan Mbeumo",
        "name_q": "Collins Fai",
        "value": -0.02403005659778088,
        "minutes_together": 224.58333333333334
      },
      {
        "player_p": 1168,
        "player_q": 13873,
        "name_p": "Nouhou Tolo",
        "name_q": "Pierre Kunde",
        "value": -0.027074435055373713,
        "minutes_together": 134.45
      },
      {
        "player_p": 13872,
        "player_q": 13873,
        "name_p": "Collins Fai",
        "name_q": "Pierre Kunde",
        "value": -0.029599177646481217,
        "minutes_together": 134.45
      },
      {
        "player_p": 1977,
        "player_q": 3934,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Karl Toko Ekambi",
        "value": -0.030756252295873848,
        "minutes_together": 177.51666666666665
      },
      {
        "player_p": 3934,
        "player_q": 4626,
        "name_p": "Karl Toko Ekambi",
        "name_q": "Eric Maxim Choupo-Moting",
        "value": -0.0337429464845827,
        "minutes_together": 177.4
      },
      {
        "player_p": 5074,
        "player_q": 13873,
        "name_p": "Bryan Mbeumo",
        "name_q": "Pierre Kunde",
        "value": -0.03653345812139621,
        "minutes_together": 130.31666666666666
      },
      {
        "player_p": 4626,
        "player_q": 13871,
        "name_p": "Eric Maxim Choupo-Moting",
        "name_q": "Devis Epassy",
        "value": -0.039696962343298635,
        "minutes_together": 196.26666666666665
      },
      {
        "player_p": 1977,
        "player_q": 13871,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Devis Epassy",
        "value": -0.041789620447865695,
        "minutes_together": 180.36666666666667
      },
      {
        "player_p": 3934,
        "player_q": 13872,
        "name_p": "Karl Toko Ekambi",
        "name_q": "Collins Fai",
        "value": -0.04286593978807217,
        "minutes_together": 177.51666666666665
      },
      {
        "player_p": 1168,
        "player_q": 3934,
        "name_p": "Nouhou Tolo",
        "name_q": "Karl Toko Ekambi",
        "value": -0.04350340825394231,
        "minutes_together": 177.51666666666665
      },
      {
        "player_p": 1977,
        "player_q": 4174,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Jean-Charles Castelletto",
        "value": -0.04459792157132374,
        "minutes_together": 176.63333333333333
      },
      {
        "player_p": 1977,
        "player_q": 6655,
        "name_p": "Andr\u00e9 Zambo Anguissa",
        "name_q": "Nicolas N'Koulou",
        "value": -0.04486923753886926,
        "minutes_together": 176.63333333333333
      },
      {
        "player_p": 13871,
        "player_q": 13873,
        "name_p": "Devis Epassy",
        "name_q": "Pierre Kunde",
        "value": -0.046599739759635425,
        "minutes_together": 134.45
      },
      {
        "player_p": 1168,
        "player_q": 13871,
        "name_p": "Nouhou Tolo",
        "name_q": "Devis Epassy",
        "value": -0.05597288098500946,
        "minutes_together": 196.26666666666665
      },
      {
        "player_p": 6655,
        "player_q": 13875,
        "name_p": "Nicolas N'Koulou",
        "name_q": "Vincent Aboubakar",
        "value": -0.05712672857142957,
        "minutes_together": 64.05
      },
      {
        "player_p": 4174,
        "player_q": 13875,
        "name_p": "Jean-Charles Castelletto",
        "name_q": "Vincent Aboubakar",
        "value": -0.05731235080953978,
        "minutes_together": 64.05
      },
      {
        "player_p": 13871,
        "player_q": 13872,
        "name_p": "Devis Epassy",
        "name_q": "Collins Fai",
        "value": -0.05759216382944676,
        "minutes_together": 196.26666666666665
      },
      {
        "player_p": 3934,
        "player_q": 5074,
        "name_p": "Karl Toko Ekambi",
        "name_q": "Bryan Mbeumo",
        "value": -0.05900329952484868,
        "minutes_together": 140.78333333333333
      },
      {
        "player_p": 4174,
        "player_q": 13872,
        "name_p": "Jean-Charles Castelletto",
        "name_q": "Collins Fai",
        "value": -0.05993449535105208,
        "minutes_together": 192.53333333333333
      },
      {
        "player_p": 6655,
        "player_q": 13872,
        "name_p": "Nicolas N'Koulou",
        "name_q": "Collins Fai",
        "value": -0.06015003180427079,
        "minutes_together": 192.53333333333333
      },
      {
        "player_p": 1168,
        "player_q": 4174,
        "name_p": "Nouhou Tolo",
        "name_q": "Jean-Charles Castelletto",
        "value": -0.06032831946711693,
        "minutes_together": 192.53333333333333
      },
      {
        "player_p": 1168,
        "player_q": 6655,
        "name_p": "Nouhou Tolo",
        "name_q": "Nicolas N'Koulou",
        "value": -0.06054385592033565,
        "minutes_together": 192.53333333333333
      },
      {
        "player_p": 4174,
        "player_q": 5074,
        "name_p": "Jean-Charles Castelletto",
        "name_q": "Bryan Mbeumo",
        "value": -0.0665924145040383,
        "minutes_together": 161.26666666666665
      },
      {
        "player_p": 5074,
        "player_q": 6655,
        "name_p": "Bryan Mbeumo",
        "name_q": "Nicolas N'Koulou",
        "value": -0.0668947632487815,
        "minutes_together": 161.26666666666665
      },
      {
        "player_p": 3934,
        "player_q": 4174,
        "name_p": "Karl Toko Ekambi",
        "name_q": "Jean-Charles Castelletto",
        "value": -0.06709986393494838,
        "minutes_together": 140.78333333333333
      },
      {
        "player_p": 3934,
        "player_q": 6655,
        "name_p": "Karl Toko Ekambi",
        "name_q": "Nicolas N'Koulou",
        "value": -0.06745532520465715,
        "minutes_together": 140.78333333333333
      },
      {
        "player_p": 5074,
        "player_q": 13871,
        "name_p": "Bryan Mbeumo",
        "name_q": "Devis Epassy",
        "value": -0.0685991298264624,
        "minutes_together": 143.8
      },
      {
        "player_p": 4174,
        "player_q": 4626,
        "name_p": "Jean-Charles Castelletto",
        "name_q": "Eric Maxim Choupo-Moting",
        "value": -0.06889108476358102,
        "minutes_together": 169.85000000000002
      },
      {
        "player_p": 4626,
        "player_q": 6655,
        "name_p": "Eric Maxim Choupo-Moting",
        "name_q": "Nicolas N'Koulou",
        "value": -0.06912747831957282,
        "minutes_together": 169.85000000000002
      },
      {
        "player_p": 4174,
        "player_q": 6655,
        "name_p": "Jean-Charles Castelletto",
        "name_q": "Nicolas N'Koulou",
        "value": -0.07290707698912462,
        "minutes_together": 192.53333333333333
      },
      {
        "player_p": 3934,
        "player_q": 13871,
        "name_p": "Karl Toko Ekambi",
        "name_q": "Devis Epassy",
        "value": -0.09606204956019981,
        "minutes_together": 103.76666666666667
      },
      {
        "player_p": 3934,
        "player_q": 13873,
        "name_p": "Karl Toko Ekambi",
        "name_q": "Pierre Kunde",
        "value": -0.09643808300658753,
        "minutes_together": 71.13333333333334
      },
      {
        "player_p": 6655,
        "player_q": 13873,
        "name_p": "Nicolas N'Koulou",
        "name_q": "Pierre Kunde",
        "value": -0.14803674672035266,
        "minutes_together": 67.0
      },
      {
        "player_p": 4174,
        "player_q": 13873,
        "name_p": "Jean-Charles Castelletto",
        "name_q": "Pierre Kunde",
        "value": -0.14926041378587532,
        "minutes_together": 67.0
      },
      {
        "player_p": 6655,
        "player_q": 13871,
        "name_p": "Nicolas N'Koulou",
        "name_q": "Devis Epassy",
        "value": -0.18011737847894707,
        "minutes_together": 96.21666666666667
      },
      {
        "player_p": 4174,
        "player_q": 13871,
        "name_p": "Jean-Charles Castelletto",
        "name_q": "Devis Epassy",
        "value": -0.18107196457033226,
        "minutes_together": 96.21666666666667
      }
    ],
    "path": "assets/figures/team_379_jdi90.png"
  },
  {
    "team_id": "380",
    "team_name": "Canada",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_380_joi90.png",
    "n_pairs": 52,
    "median": 0.01342856815895837,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 11790,
        "name": "Steven Vitoria",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17098
      },
      {
        "player_id": 926,
        "name": "Alistair Johnston",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 17098
      },
      {
        "player_id": 1025,
        "name": "Kamal Miller",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17098
      },
      {
        "player_id": 4611,
        "name": "Alphonso Davies",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 17098
      },
      {
        "player_id": 14031,
        "name": "Milan Borjan",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17098
      },
      {
        "player_id": 963,
        "name": "Tajon Buchanan",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 16205
      },
      {
        "player_id": 3965,
        "name": "Jonathan David",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 12051
      },
      {
        "player_id": 6916,
        "name": "Junior Hoilett",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 10042
      },
      {
        "player_id": 8627,
        "name": "Atiba Hutchinson",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 9854
      },
      {
        "player_id": 1225,
        "name": "Richie Laryea",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 9818
      },
      {
        "player_id": 9094,
        "name": "Cyle Larin",
        "position": "CF",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 8897
      }
    ],
    "pairs": [
      {
        "player_p": 963,
        "player_q": 4611,
        "name_p": "Tajon Buchanan",
        "name_q": "Alphonso Davies",
        "value": 0.28107026621626074,
        "minutes_together": 270.08333333333337
      },
      {
        "player_p": 1225,
        "player_q": 9094,
        "name_p": "Richie Laryea",
        "name_q": "Cyle Larin",
        "value": 0.11942413783359737,
        "minutes_together": 66.63333333333333
      },
      {
        "player_p": 963,
        "player_q": 9094,
        "name_p": "Tajon Buchanan",
        "name_q": "Cyle Larin",
        "value": 0.1192654181919061,
        "minutes_together": 133.4
      },
      {
        "player_p": 926,
        "player_q": 1225,
        "name_p": "Alistair Johnston",
        "name_q": "Richie Laryea",
        "value": 0.1139317400217883,
        "minutes_together": 163.63333333333333
      },
      {
        "player_p": 6916,
        "player_q": 8627,
        "name_p": "Junior Hoilett",
        "name_q": "Atiba Hutchinson",
        "value": 0.11057953432056647,
        "minutes_together": 84.03333333333333
      },
      {
        "player_p": 963,
        "player_q": 11790,
        "name_p": "Tajon Buchanan",
        "name_q": "Steven Vitoria",
        "value": 0.09523343149790288,
        "minutes_together": 270.08333333333337
      },
      {
        "player_p": 4611,
        "player_q": 9094,
        "name_p": "Alphonso Davies",
        "name_q": "Cyle Larin",
        "value": 0.0657611619231078,
        "minutes_together": 148.28333333333333
      },
      {
        "player_p": 926,
        "player_q": 1025,
        "name_p": "Alistair Johnston",
        "name_q": "Kamal Miller",
        "value": 0.062459284499448625,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 4611,
        "player_q": 6916,
        "name_p": "Alphonso Davies",
        "name_q": "Junior Hoilett",
        "value": 0.055681730358008594,
        "minutes_together": 167.36666666666667
      },
      {
        "player_p": 926,
        "player_q": 3965,
        "name_p": "Alistair Johnston",
        "name_q": "Jonathan David",
        "value": 0.048716252678215825,
        "minutes_together": 200.85
      },
      {
        "player_p": 3965,
        "player_q": 4611,
        "name_p": "Jonathan David",
        "name_q": "Alphonso Davies",
        "value": 0.04854349358340402,
        "minutes_together": 200.85
      },
      {
        "player_p": 963,
        "player_q": 1225,
        "name_p": "Tajon Buchanan",
        "name_q": "Richie Laryea",
        "value": 0.0429335298968818,
        "minutes_together": 163.63333333333333
      },
      {
        "player_p": 8627,
        "player_q": 11790,
        "name_p": "Atiba Hutchinson",
        "name_q": "Steven Vitoria",
        "value": 0.04273142371359129,
        "minutes_together": 164.23333333333332
      },
      {
        "player_p": 3965,
        "player_q": 8627,
        "name_p": "Jonathan David",
        "name_q": "Atiba Hutchinson",
        "value": 0.03870062508983163,
        "minutes_together": 163.45
      },
      {
        "player_p": 926,
        "player_q": 9094,
        "name_p": "Alistair Johnston",
        "name_q": "Cyle Larin",
        "value": 0.03868317468171301,
        "minutes_together": 148.28333333333333
      },
      {
        "player_p": 1025,
        "player_q": 14031,
        "name_p": "Kamal Miller",
        "name_q": "Milan Borjan",
        "value": 0.031567854323322854,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 6916,
        "player_q": 14031,
        "name_p": "Junior Hoilett",
        "name_q": "Milan Borjan",
        "value": 0.0280590800458111,
        "minutes_together": 167.36666666666667
      },
      {
        "player_p": 926,
        "player_q": 8627,
        "name_p": "Alistair Johnston",
        "name_q": "Atiba Hutchinson",
        "value": 0.02355552363409343,
        "minutes_together": 164.23333333333332
      },
      {
        "player_p": 963,
        "player_q": 8627,
        "name_p": "Tajon Buchanan",
        "name_q": "Atiba Hutchinson",
        "value": 0.023087195325554536,
        "minutes_together": 164.23333333333332
      },
      {
        "player_p": 1025,
        "player_q": 6916,
        "name_p": "Kamal Miller",
        "name_q": "Junior Hoilett",
        "value": 0.022070260872519412,
        "minutes_together": 167.36666666666667
      },
      {
        "player_p": 926,
        "player_q": 6916,
        "name_p": "Alistair Johnston",
        "name_q": "Junior Hoilett",
        "value": 0.019634418559043514,
        "minutes_together": 167.36666666666667
      },
      {
        "player_p": 1225,
        "player_q": 11790,
        "name_p": "Richie Laryea",
        "name_q": "Steven Vitoria",
        "value": 0.01919729156484517,
        "minutes_together": 163.63333333333333
      },
      {
        "player_p": 1025,
        "player_q": 8627,
        "name_p": "Kamal Miller",
        "name_q": "Atiba Hutchinson",
        "value": 0.01827680559158297,
        "minutes_together": 164.23333333333332
      },
      {
        "player_p": 963,
        "player_q": 14031,
        "name_p": "Tajon Buchanan",
        "name_q": "Milan Borjan",
        "value": 0.015649455227157546,
        "minutes_together": 270.08333333333337
      },
      {
        "player_p": 963,
        "player_q": 6916,
        "name_p": "Tajon Buchanan",
        "name_q": "Junior Hoilett",
        "value": 0.014913498554216056,
        "minutes_together": 167.36666666666667
      },
      {
        "player_p": 4611,
        "player_q": 11790,
        "name_p": "Alphonso Davies",
        "name_q": "Steven Vitoria",
        "value": 0.013636684185552701,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 1025,
        "player_q": 4611,
        "name_p": "Kamal Miller",
        "name_q": "Alphonso Davies",
        "value": 0.013220452132364035,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 1225,
        "player_q": 8627,
        "name_p": "Richie Laryea",
        "name_q": "Atiba Hutchinson",
        "value": 0.012681100848265136,
        "minutes_together": 148.05
      },
      {
        "player_p": 963,
        "player_q": 1025,
        "name_p": "Tajon Buchanan",
        "name_q": "Kamal Miller",
        "value": 0.012579473162834871,
        "minutes_together": 270.08333333333337
      },
      {
        "player_p": 1225,
        "player_q": 14031,
        "name_p": "Richie Laryea",
        "name_q": "Milan Borjan",
        "value": 0.012410379030471354,
        "minutes_together": 163.63333333333333
      },
      {
        "player_p": 8627,
        "player_q": 14031,
        "name_p": "Atiba Hutchinson",
        "name_q": "Milan Borjan",
        "value": 0.011732070521426382,
        "minutes_together": 164.23333333333332
      },
      {
        "player_p": 3965,
        "player_q": 14031,
        "name_p": "Jonathan David",
        "name_q": "Milan Borjan",
        "value": 0.008962453932143373,
        "minutes_together": 200.85
      },
      {
        "player_p": 1025,
        "player_q": 3965,
        "name_p": "Kamal Miller",
        "name_q": "Jonathan David",
        "value": 0.007480508329592675,
        "minutes_together": 200.85
      },
      {
        "player_p": 3965,
        "player_q": 11790,
        "name_p": "Jonathan David",
        "name_q": "Steven Vitoria",
        "value": 0.004382859456669122,
        "minutes_together": 200.85
      },
      {
        "player_p": 6916,
        "player_q": 11790,
        "name_p": "Junior Hoilett",
        "name_q": "Steven Vitoria",
        "value": 0.00379010039161367,
        "minutes_together": 167.36666666666667
      },
      {
        "player_p": 926,
        "player_q": 14031,
        "name_p": "Alistair Johnston",
        "name_q": "Milan Borjan",
        "value": 0.0028466821559125464,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 1025,
        "player_q": 1225,
        "name_p": "Kamal Miller",
        "name_q": "Richie Laryea",
        "value": 0.0019409772065277242,
        "minutes_together": 163.63333333333333
      },
      {
        "player_p": 1025,
        "player_q": 9094,
        "name_p": "Kamal Miller",
        "name_q": "Cyle Larin",
        "value": 0.0008083486401026081,
        "minutes_together": 148.28333333333333
      },
      {
        "player_p": 926,
        "player_q": 963,
        "name_p": "Alistair Johnston",
        "name_q": "Tajon Buchanan",
        "value": 0.00039613171075275334,
        "minutes_together": 270.08333333333337
      },
      {
        "player_p": 9094,
        "player_q": 11790,
        "name_p": "Cyle Larin",
        "name_q": "Steven Vitoria",
        "value": -0.0012467704961951274,
        "minutes_together": 148.28333333333333
      },
      {
        "player_p": 1225,
        "player_q": 3965,
        "name_p": "Richie Laryea",
        "name_q": "Jonathan David",
        "value": -0.004025061085303563,
        "minutes_together": 163.63333333333333
      },
      {
        "player_p": 1225,
        "player_q": 4611,
        "name_p": "Richie Laryea",
        "name_q": "Alphonso Davies",
        "value": -0.010435618492556122,
        "minutes_together": 163.63333333333333
      },
      {
        "player_p": 1225,
        "player_q": 6916,
        "name_p": "Richie Laryea",
        "name_q": "Junior Hoilett",
        "value": -0.011243239317513615,
        "minutes_together": 67.85
      },
      {
        "player_p": 4611,
        "player_q": 8627,
        "name_p": "Alphonso Davies",
        "name_q": "Atiba Hutchinson",
        "value": -0.011321167298616926,
        "minutes_together": 164.23333333333332
      },
      {
        "player_p": 3965,
        "player_q": 9094,
        "name_p": "Jonathan David",
        "name_q": "Cyle Larin",
        "value": -0.015296820575023604,
        "minutes_together": 88.44999999999999
      },
      {
        "player_p": 926,
        "player_q": 4611,
        "name_p": "Alistair Johnston",
        "name_q": "Alphonso Davies",
        "value": -0.018014597765008293,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 11790,
        "player_q": 14031,
        "name_p": "Steven Vitoria",
        "name_q": "Milan Borjan",
        "value": -0.018878215569269174,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 963,
        "player_q": 3965,
        "name_p": "Tajon Buchanan",
        "name_q": "Jonathan David",
        "value": -0.022209082422814212,
        "minutes_together": 185.96666666666667
      },
      {
        "player_p": 1025,
        "player_q": 11790,
        "name_p": "Kamal Miller",
        "name_q": "Steven Vitoria",
        "value": -0.030246019059275448,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 3965,
        "player_q": 6916,
        "name_p": "Jonathan David",
        "name_q": "Junior Hoilett",
        "value": -0.05296753989478391,
        "minutes_together": 83.25
      },
      {
        "player_p": 926,
        "player_q": 11790,
        "name_p": "Alistair Johnston",
        "name_q": "Steven Vitoria",
        "value": -0.0755893100074486,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 9094,
        "player_q": 14031,
        "name_p": "Cyle Larin",
        "name_q": "Milan Borjan",
        "value": -0.08694510913357924,
        "minutes_together": 148.28333333333333
      }
    ],
    "path": "assets/figures/team_380_joi90.png"
  },
  {
    "team_id": "380",
    "team_name": "Canada",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_380_jdi90.png",
    "n_pairs": 53,
    "median": -0.015748263094821267,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 11790,
        "name": "Steven Vitoria",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17098
      },
      {
        "player_id": 926,
        "name": "Alistair Johnston",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 17098
      },
      {
        "player_id": 1025,
        "name": "Kamal Miller",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17098
      },
      {
        "player_id": 4611,
        "name": "Alphonso Davies",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 17098
      },
      {
        "player_id": 14031,
        "name": "Milan Borjan",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17098
      },
      {
        "player_id": 963,
        "name": "Tajon Buchanan",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 16205
      },
      {
        "player_id": 3965,
        "name": "Jonathan David",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 12051
      },
      {
        "player_id": 6916,
        "name": "Junior Hoilett",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 10042
      },
      {
        "player_id": 8627,
        "name": "Atiba Hutchinson",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 9854
      },
      {
        "player_id": 1225,
        "name": "Richie Laryea",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 9818
      },
      {
        "player_id": 9094,
        "name": "Cyle Larin",
        "position": "CF",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 8897
      }
    ],
    "pairs": [
      {
        "player_p": 4611,
        "player_q": 6916,
        "name_p": "Alphonso Davies",
        "name_q": "Junior Hoilett",
        "value": 0.002981608603989203,
        "minutes_together": 167.36666666666667
      },
      {
        "player_p": 6916,
        "player_q": 14031,
        "name_p": "Junior Hoilett",
        "name_q": "Milan Borjan",
        "value": 0.0016824853481597875,
        "minutes_together": 167.36666666666667
      },
      {
        "player_p": 926,
        "player_q": 6916,
        "name_p": "Alistair Johnston",
        "name_q": "Junior Hoilett",
        "value": 0.0005280153218637419,
        "minutes_together": 167.36666666666667
      },
      {
        "player_p": 1025,
        "player_q": 6916,
        "name_p": "Kamal Miller",
        "name_q": "Junior Hoilett",
        "value": -0.0009838034486961491,
        "minutes_together": 167.36666666666667
      },
      {
        "player_p": 6916,
        "player_q": 11790,
        "name_p": "Junior Hoilett",
        "name_q": "Steven Vitoria",
        "value": -0.0011694255915321208,
        "minutes_together": 167.36666666666667
      },
      {
        "player_p": 1225,
        "player_q": 6916,
        "name_p": "Richie Laryea",
        "name_q": "Junior Hoilett",
        "value": -0.001384914402887249,
        "minutes_together": 67.85
      },
      {
        "player_p": 963,
        "player_q": 6916,
        "name_p": "Tajon Buchanan",
        "name_q": "Junior Hoilett",
        "value": -0.0020711604162809835,
        "minutes_together": 167.36666666666667
      },
      {
        "player_p": 926,
        "player_q": 14031,
        "name_p": "Alistair Johnston",
        "name_q": "Milan Borjan",
        "value": -0.007216543605775425,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 6916,
        "player_q": 8627,
        "name_p": "Junior Hoilett",
        "name_q": "Atiba Hutchinson",
        "value": -0.007678808871202145,
        "minutes_together": 84.03333333333333
      },
      {
        "player_p": 926,
        "player_q": 4611,
        "name_p": "Alistair Johnston",
        "name_q": "Alphonso Davies",
        "value": -0.007953233423438793,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 4611,
        "player_q": 14031,
        "name_p": "Alphonso Davies",
        "name_q": "Milan Borjan",
        "value": -0.00858591833275249,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 926,
        "player_q": 1025,
        "name_p": "Alistair Johnston",
        "name_q": "Kamal Miller",
        "value": -0.010150980062883577,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 926,
        "player_q": 11790,
        "name_p": "Alistair Johnston",
        "name_q": "Steven Vitoria",
        "value": -0.010206358704382822,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 926,
        "player_q": 963,
        "name_p": "Alistair Johnston",
        "name_q": "Tajon Buchanan",
        "value": -0.01036891376059227,
        "minutes_together": 270.08333333333337
      },
      {
        "player_p": 3965,
        "player_q": 6916,
        "name_p": "Jonathan David",
        "name_q": "Junior Hoilett",
        "value": -0.010509602648810961,
        "minutes_together": 83.25
      },
      {
        "player_p": 963,
        "player_q": 14031,
        "name_p": "Tajon Buchanan",
        "name_q": "Milan Borjan",
        "value": -0.010624625777087488,
        "minutes_together": 270.08333333333337
      },
      {
        "player_p": 1025,
        "player_q": 14031,
        "name_p": "Kamal Miller",
        "name_q": "Milan Borjan",
        "value": -0.01078366497219727,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 11790,
        "player_q": 14031,
        "name_p": "Steven Vitoria",
        "name_q": "Milan Borjan",
        "value": -0.010839043613696525,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 1025,
        "player_q": 4611,
        "name_p": "Kamal Miller",
        "name_q": "Alphonso Davies",
        "value": -0.011520354789860642,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 4611,
        "player_q": 11790,
        "name_p": "Alphonso Davies",
        "name_q": "Steven Vitoria",
        "value": -0.011575733431359892,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 963,
        "player_q": 4611,
        "name_p": "Tajon Buchanan",
        "name_q": "Alphonso Davies",
        "value": -0.011697152546316682,
        "minutes_together": 270.08333333333337
      },
      {
        "player_p": 1025,
        "player_q": 11790,
        "name_p": "Kamal Miller",
        "name_q": "Steven Vitoria",
        "value": -0.013773480070804674,
        "minutes_together": 284.9666666666667
      },
      {
        "player_p": 963,
        "player_q": 1025,
        "name_p": "Tajon Buchanan",
        "name_q": "Kamal Miller",
        "value": -0.014099771711190586,
        "minutes_together": 270.08333333333337
      },
      {
        "player_p": 926,
        "player_q": 3965,
        "name_p": "Alistair Johnston",
        "name_q": "Jonathan David",
        "value": -0.014506944788109502,
        "minutes_together": 200.85
      },
      {
        "player_p": 963,
        "player_q": 11790,
        "name_p": "Tajon Buchanan",
        "name_q": "Steven Vitoria",
        "value": -0.0145863385074667,
        "minutes_together": 270.08333333333337
      },
      {
        "player_p": 926,
        "player_q": 9094,
        "name_p": "Alistair Johnston",
        "name_q": "Cyle Larin",
        "value": -0.0151730952082332,
        "minutes_together": 148.28333333333333
      },
      {
        "player_p": 963,
        "player_q": 3965,
        "name_p": "Tajon Buchanan",
        "name_q": "Jonathan David",
        "value": -0.015748263094821267,
        "minutes_together": 185.96666666666667
      },
      {
        "player_p": 4611,
        "player_q": 9094,
        "name_p": "Alphonso Davies",
        "name_q": "Cyle Larin",
        "value": -0.016288078575258616,
        "minutes_together": 148.28333333333333
      },
      {
        "player_p": 3965,
        "player_q": 8627,
        "name_p": "Jonathan David",
        "name_q": "Atiba Hutchinson",
        "value": -0.01737919911335812,
        "minutes_together": 163.45
      },
      {
        "player_p": 3965,
        "player_q": 14031,
        "name_p": "Jonathan David",
        "name_q": "Milan Borjan",
        "value": -0.01748866022356507,
        "minutes_together": 200.85
      },
      {
        "player_p": 1225,
        "player_q": 3965,
        "name_p": "Richie Laryea",
        "name_q": "Jonathan David",
        "value": -0.01768237769062197,
        "minutes_together": 163.63333333333333
      },
      {
        "player_p": 9094,
        "player_q": 14031,
        "name_p": "Cyle Larin",
        "name_q": "Milan Borjan",
        "value": -0.01779540431773559,
        "minutes_together": 148.28333333333333
      },
      {
        "player_p": 1025,
        "player_q": 3965,
        "name_p": "Kamal Miller",
        "name_q": "Jonathan David",
        "value": -0.01858490455074125,
        "minutes_together": 200.85
      },
      {
        "player_p": 3965,
        "player_q": 4611,
        "name_p": "Jonathan David",
        "name_q": "Alphonso Davies",
        "value": -0.01900604281062918,
        "minutes_together": 200.85
      },
      {
        "player_p": 9094,
        "player_q": 11790,
        "name_p": "Cyle Larin",
        "name_q": "Steven Vitoria",
        "value": -0.019401698099155474,
        "minutes_together": 148.28333333333333
      },
      {
        "player_p": 963,
        "player_q": 1225,
        "name_p": "Tajon Buchanan",
        "name_q": "Richie Laryea",
        "value": -0.02059732311489097,
        "minutes_together": 163.63333333333333
      },
      {
        "player_p": 963,
        "player_q": 8627,
        "name_p": "Tajon Buchanan",
        "name_q": "Atiba Hutchinson",
        "value": -0.020597994149561347,
        "minutes_together": 164.23333333333332
      },
      {
        "player_p": 3965,
        "player_q": 11790,
        "name_p": "Jonathan David",
        "name_q": "Steven Vitoria",
        "value": -0.02077659185675433,
        "minutes_together": 200.85
      },
      {
        "player_p": 926,
        "player_q": 8627,
        "name_p": "Alistair Johnston",
        "name_q": "Atiba Hutchinson",
        "value": -0.021156098317503178,
        "minutes_together": 164.23333333333332
      },
      {
        "player_p": 1225,
        "player_q": 8627,
        "name_p": "Richie Laryea",
        "name_q": "Atiba Hutchinson",
        "value": -0.021507945423069677,
        "minutes_together": 148.05
      },
      {
        "player_p": 1025,
        "player_q": 9094,
        "name_p": "Kamal Miller",
        "name_q": "Cyle Larin",
        "value": -0.022578605867498873,
        "minutes_together": 148.28333333333333
      },
      {
        "player_p": 8627,
        "player_q": 14031,
        "name_p": "Atiba Hutchinson",
        "name_q": "Milan Borjan",
        "value": -0.023040550855099998,
        "minutes_together": 164.23333333333332
      },
      {
        "player_p": 926,
        "player_q": 1225,
        "name_p": "Alistair Johnston",
        "name_q": "Richie Laryea",
        "value": -0.023438843193414084,
        "minutes_together": 163.63333333333333
      },
      {
        "player_p": 963,
        "player_q": 9094,
        "name_p": "Tajon Buchanan",
        "name_q": "Cyle Larin",
        "value": -0.02592944476581527,
        "minutes_together": 133.4
      },
      {
        "player_p": 1025,
        "player_q": 8627,
        "name_p": "Kamal Miller",
        "name_q": "Atiba Hutchinson",
        "value": -0.025982032220038403,
        "minutes_together": 164.23333333333332
      },
      {
        "player_p": 4611,
        "player_q": 8627,
        "name_p": "Alphonso Davies",
        "name_q": "Atiba Hutchinson",
        "value": -0.026673594849216824,
        "minutes_together": 164.23333333333332
      },
      {
        "player_p": 1225,
        "player_q": 14031,
        "name_p": "Richie Laryea",
        "name_q": "Milan Borjan",
        "value": -0.026897054440091422,
        "minutes_together": 163.63333333333333
      },
      {
        "player_p": 1225,
        "player_q": 4611,
        "name_p": "Richie Laryea",
        "name_q": "Alphonso Davies",
        "value": -0.028064694325684245,
        "minutes_together": 163.63333333333333
      },
      {
        "player_p": 8627,
        "player_q": 11790,
        "name_p": "Atiba Hutchinson",
        "name_q": "Steven Vitoria",
        "value": -0.028305813945613028,
        "minutes_together": 164.23333333333332
      },
      {
        "player_p": 1025,
        "player_q": 1225,
        "name_p": "Kamal Miller",
        "name_q": "Richie Laryea",
        "value": -0.028312503692769744,
        "minutes_together": 163.63333333333333
      },
      {
        "player_p": 1225,
        "player_q": 11790,
        "name_p": "Richie Laryea",
        "name_q": "Steven Vitoria",
        "value": -0.0318789308483139,
        "minutes_together": 163.63333333333333
      },
      {
        "player_p": 3965,
        "player_q": 9094,
        "name_p": "Jonathan David",
        "name_q": "Cyle Larin",
        "value": -0.03464308300661083,
        "minutes_together": 88.44999999999999
      },
      {
        "player_p": 1225,
        "player_q": 9094,
        "name_p": "Richie Laryea",
        "name_q": "Cyle Larin",
        "value": -0.057327544856232995,
        "minutes_together": 66.63333333333333
      }
    ],
    "path": "assets/figures/team_380_jdi90.png"
  },
  {
    "team_id": "381",
    "team_name": "Ecuador",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_381_joi90.png",
    "n_pairs": 51,
    "median": 0.00520316128701062,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 5195,
        "name": "Piero Hincapie",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17306
      },
      {
        "player_id": 13935,
        "name": "Hernan Galindez",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17306
      },
      {
        "player_id": 1406,
        "name": "Pervis Estupinan",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 17306
      },
      {
        "player_id": 3734,
        "name": "F\u00e9lix Torres",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17306
      },
      {
        "player_id": 2134,
        "name": "Moises Caicedo",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 16979
      },
      {
        "player_id": 13049,
        "name": "Gonzalo Plata",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 16920
      },
      {
        "player_id": 13937,
        "name": "Angelo Preciado",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 16573
      },
      {
        "player_id": 11960,
        "name": "Enner Valencia",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 15754
      },
      {
        "player_id": 3519,
        "name": "Michael Estrada",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 13599
      },
      {
        "player_id": 1034,
        "name": "Jhegson M\u00e9ndez",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 11489
      },
      {
        "player_id": 9837,
        "name": "Jackson Porozo",
        "position": "RCB",
        "x": 47.6,
        "y": 40.0,
        "row": 3,
        "col": 3,
        "on_seconds": 6502
      }
    ],
    "pairs": [
      {
        "player_p": 1406,
        "player_q": 11960,
        "name_p": "Pervis Estupinan",
        "name_q": "Enner Valencia",
        "value": 0.41829714637441945,
        "minutes_together": 262.56666666666666
      },
      {
        "player_p": 11960,
        "player_q": 13937,
        "name_p": "Enner Valencia",
        "name_q": "Angelo Preciado",
        "value": 0.28747866576364856,
        "minutes_together": 250.35000000000002
      },
      {
        "player_p": 1406,
        "player_q": 13937,
        "name_p": "Pervis Estupinan",
        "name_q": "Angelo Preciado",
        "value": 0.2780297486262468,
        "minutes_together": 276.2166666666667
      },
      {
        "player_p": 2134,
        "player_q": 3734,
        "name_p": "Moises Caicedo",
        "name_q": "F\u00e9lix Torres",
        "value": 0.19602727946676868,
        "minutes_together": 282.98333333333335
      },
      {
        "player_p": 2134,
        "player_q": 13937,
        "name_p": "Moises Caicedo",
        "name_q": "Angelo Preciado",
        "value": 0.08899005004232373,
        "minutes_together": 270.76666666666665
      },
      {
        "player_p": 3519,
        "player_q": 11960,
        "name_p": "Michael Estrada",
        "name_q": "Enner Valencia",
        "value": 0.06676916089576977,
        "minutes_together": 212.81666666666666
      },
      {
        "player_p": 1406,
        "player_q": 5195,
        "name_p": "Pervis Estupinan",
        "name_q": "Piero Hincapie",
        "value": 0.0628167576934367,
        "minutes_together": 288.43333333333334
      },
      {
        "player_p": 1034,
        "player_q": 9837,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Jackson Porozo",
        "value": 0.057726979324412835,
        "minutes_together": 96.15
      },
      {
        "player_p": 1034,
        "player_q": 3734,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "F\u00e9lix Torres",
        "value": 0.05469934286062833,
        "minutes_together": 191.48333333333335
      },
      {
        "player_p": 1406,
        "player_q": 2134,
        "name_p": "Pervis Estupinan",
        "name_q": "Moises Caicedo",
        "value": 0.036506371036972456,
        "minutes_together": 282.98333333333335
      },
      {
        "player_p": 5195,
        "player_q": 9837,
        "name_p": "Piero Hincapie",
        "name_q": "Jackson Porozo",
        "value": 0.02601454334299927,
        "minutes_together": 108.36666666666667
      },
      {
        "player_p": 1034,
        "player_q": 1406,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Pervis Estupinan",
        "value": 0.023551029749103596,
        "minutes_together": 191.48333333333335
      },
      {
        "player_p": 1034,
        "player_q": 13937,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Angelo Preciado",
        "value": 0.022420249246377144,
        "minutes_together": 191.48333333333335
      },
      {
        "player_p": 2134,
        "player_q": 5195,
        "name_p": "Moises Caicedo",
        "name_q": "Piero Hincapie",
        "value": 0.022147525951770376,
        "minutes_together": 282.98333333333335
      },
      {
        "player_p": 1034,
        "player_q": 2134,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Moises Caicedo",
        "value": 0.021567489518896334,
        "minutes_together": 186.03333333333336
      },
      {
        "player_p": 3734,
        "player_q": 13935,
        "name_p": "F\u00e9lix Torres",
        "name_q": "Hernan Galindez",
        "value": 0.019308629475941672,
        "minutes_together": 288.43333333333334
      },
      {
        "player_p": 5195,
        "player_q": 13049,
        "name_p": "Piero Hincapie",
        "name_q": "Gonzalo Plata",
        "value": 0.01544253870446351,
        "minutes_together": 282.0
      },
      {
        "player_p": 5195,
        "player_q": 13937,
        "name_p": "Piero Hincapie",
        "name_q": "Angelo Preciado",
        "value": 0.013897231239736785,
        "minutes_together": 276.2166666666667
      },
      {
        "player_p": 2134,
        "player_q": 13049,
        "name_p": "Moises Caicedo",
        "name_q": "Gonzalo Plata",
        "value": 0.013797281561513892,
        "minutes_together": 276.55
      },
      {
        "player_p": 3734,
        "player_q": 11960,
        "name_p": "F\u00e9lix Torres",
        "name_q": "Enner Valencia",
        "value": 0.011821065815088872,
        "minutes_together": 262.56666666666666
      },
      {
        "player_p": 5195,
        "player_q": 13935,
        "name_p": "Piero Hincapie",
        "name_q": "Hernan Galindez",
        "value": 0.010090482231115234,
        "minutes_together": 288.43333333333334
      },
      {
        "player_p": 2134,
        "player_q": 9837,
        "name_p": "Moises Caicedo",
        "name_q": "Jackson Porozo",
        "value": 0.00923429311008991,
        "minutes_together": 108.36666666666667
      },
      {
        "player_p": 1406,
        "player_q": 13935,
        "name_p": "Pervis Estupinan",
        "name_q": "Hernan Galindez",
        "value": 0.008554730378870846,
        "minutes_together": 288.43333333333334
      },
      {
        "player_p": 9837,
        "player_q": 13049,
        "name_p": "Jackson Porozo",
        "name_q": "Gonzalo Plata",
        "value": 0.00801028086125512,
        "minutes_together": 101.93333333333334
      },
      {
        "player_p": 3734,
        "player_q": 13937,
        "name_p": "F\u00e9lix Torres",
        "name_q": "Angelo Preciado",
        "value": 0.006562057938726854,
        "minutes_together": 276.2166666666667
      },
      {
        "player_p": 2134,
        "player_q": 3519,
        "name_p": "Moises Caicedo",
        "name_q": "Michael Estrada",
        "value": 0.00520316128701062,
        "minutes_together": 226.64999999999998
      },
      {
        "player_p": 1406,
        "player_q": 3734,
        "name_p": "Pervis Estupinan",
        "name_q": "F\u00e9lix Torres",
        "value": 0.004942495609354964,
        "minutes_together": 288.43333333333334
      },
      {
        "player_p": 13049,
        "player_q": 13935,
        "name_p": "Gonzalo Plata",
        "name_q": "Hernan Galindez",
        "value": 0.0033631598861383113,
        "minutes_together": 282.0
      },
      {
        "player_p": 1406,
        "player_q": 13049,
        "name_p": "Pervis Estupinan",
        "name_q": "Gonzalo Plata",
        "value": 0.003318649898198171,
        "minutes_together": 282.0
      },
      {
        "player_p": 2134,
        "player_q": 13935,
        "name_p": "Moises Caicedo",
        "name_q": "Hernan Galindez",
        "value": 0.0032166777003074503,
        "minutes_together": 282.98333333333335
      },
      {
        "player_p": 11960,
        "player_q": 13049,
        "name_p": "Enner Valencia",
        "name_q": "Gonzalo Plata",
        "value": 0.0030597462697799192,
        "minutes_together": 262.56666666666666
      },
      {
        "player_p": 13049,
        "player_q": 13937,
        "name_p": "Gonzalo Plata",
        "name_q": "Angelo Preciado",
        "value": 0.0030306758328152183,
        "minutes_together": 269.7833333333333
      },
      {
        "player_p": 1034,
        "player_q": 3519,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Michael Estrada",
        "value": 0.0012434509372790778,
        "minutes_together": 163.41666666666666
      },
      {
        "player_p": 5195,
        "player_q": 11960,
        "name_p": "Piero Hincapie",
        "name_q": "Enner Valencia",
        "value": 0.0008717278085890888,
        "minutes_together": 262.56666666666666
      },
      {
        "player_p": 3519,
        "player_q": 5195,
        "name_p": "Michael Estrada",
        "name_q": "Piero Hincapie",
        "value": 0.00024174458371124154,
        "minutes_together": 226.64999999999998
      },
      {
        "player_p": 1034,
        "player_q": 11960,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Enner Valencia",
        "value": -0.0007908900617132923,
        "minutes_together": 165.61666666666667
      },
      {
        "player_p": 3519,
        "player_q": 9837,
        "name_p": "Michael Estrada",
        "name_q": "Jackson Porozo",
        "value": -0.0017962812986420816,
        "minutes_together": 73.61666666666666
      },
      {
        "player_p": 9837,
        "player_q": 13937,
        "name_p": "Jackson Porozo",
        "name_q": "Angelo Preciado",
        "value": -0.0019278838611987187,
        "minutes_together": 96.15
      },
      {
        "player_p": 3519,
        "player_q": 13049,
        "name_p": "Michael Estrada",
        "name_q": "Gonzalo Plata",
        "value": -0.002514028509728458,
        "minutes_together": 226.64999999999998
      },
      {
        "player_p": 1406,
        "player_q": 3519,
        "name_p": "Pervis Estupinan",
        "name_q": "Michael Estrada",
        "value": -0.0036010975901270437,
        "minutes_together": 226.64999999999998
      },
      {
        "player_p": 9837,
        "player_q": 13935,
        "name_p": "Jackson Porozo",
        "name_q": "Hernan Galindez",
        "value": -0.003917955106811283,
        "minutes_together": 108.36666666666667
      },
      {
        "player_p": 3734,
        "player_q": 9837,
        "name_p": "F\u00e9lix Torres",
        "name_q": "Jackson Porozo",
        "value": -0.0054234329320636656,
        "minutes_together": 108.36666666666667
      },
      {
        "player_p": 3519,
        "player_q": 3734,
        "name_p": "Michael Estrada",
        "name_q": "F\u00e9lix Torres",
        "value": -0.005545719240354374,
        "minutes_together": 226.64999999999998
      },
      {
        "player_p": 13935,
        "player_q": 13937,
        "name_p": "Hernan Galindez",
        "name_q": "Angelo Preciado",
        "value": -0.006758302277187684,
        "minutes_together": 276.2166666666667
      },
      {
        "player_p": 1034,
        "player_q": 5195,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Piero Hincapie",
        "value": -0.009113540387784032,
        "minutes_together": 191.48333333333335
      },
      {
        "player_p": 3734,
        "player_q": 5195,
        "name_p": "F\u00e9lix Torres",
        "name_q": "Piero Hincapie",
        "value": -0.01659881140405757,
        "minutes_together": 288.43333333333334
      },
      {
        "player_p": 9837,
        "player_q": 11960,
        "name_p": "Jackson Porozo",
        "name_q": "Enner Valencia",
        "value": -0.017469413625613096,
        "minutes_together": 101.86666666666667
      },
      {
        "player_p": 2134,
        "player_q": 11960,
        "name_p": "Moises Caicedo",
        "name_q": "Enner Valencia",
        "value": -0.022230841661341816,
        "minutes_together": 262.56666666666666
      },
      {
        "player_p": 1034,
        "player_q": 13049,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Gonzalo Plata",
        "value": -0.04663029606203969,
        "minutes_together": 185.05
      },
      {
        "player_p": 3519,
        "player_q": 13937,
        "name_p": "Michael Estrada",
        "name_q": "Angelo Preciado",
        "value": -0.10616252129834856,
        "minutes_together": 226.64999999999998
      },
      {
        "player_p": 3734,
        "player_q": 13049,
        "name_p": "F\u00e9lix Torres",
        "name_q": "Gonzalo Plata",
        "value": -0.10973652129662986,
        "minutes_together": 282.0
      }
    ],
    "path": "assets/figures/team_381_joi90.png"
  },
  {
    "team_id": "381",
    "team_name": "Ecuador",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_381_jdi90.png",
    "n_pairs": 55,
    "median": 0.018832222240481363,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 5195,
        "name": "Piero Hincapie",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17306
      },
      {
        "player_id": 13935,
        "name": "Hernan Galindez",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17306
      },
      {
        "player_id": 1406,
        "name": "Pervis Estupinan",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 17306
      },
      {
        "player_id": 3734,
        "name": "F\u00e9lix Torres",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17306
      },
      {
        "player_id": 2134,
        "name": "Moises Caicedo",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 16979
      },
      {
        "player_id": 13049,
        "name": "Gonzalo Plata",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 16920
      },
      {
        "player_id": 13937,
        "name": "Angelo Preciado",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 16573
      },
      {
        "player_id": 11960,
        "name": "Enner Valencia",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 15754
      },
      {
        "player_id": 3519,
        "name": "Michael Estrada",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 13599
      },
      {
        "player_id": 1034,
        "name": "Jhegson M\u00e9ndez",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 11489
      },
      {
        "player_id": 9837,
        "name": "Jackson Porozo",
        "position": "RCB",
        "x": 47.6,
        "y": 40.0,
        "row": 3,
        "col": 3,
        "on_seconds": 6502
      }
    ],
    "pairs": [
      {
        "player_p": 1034,
        "player_q": 2134,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Moises Caicedo",
        "value": 0.046543610566162186,
        "minutes_together": 186.03333333333336
      },
      {
        "player_p": 2134,
        "player_q": 13049,
        "name_p": "Moises Caicedo",
        "name_q": "Gonzalo Plata",
        "value": 0.03485201529527614,
        "minutes_together": 276.55
      },
      {
        "player_p": 2134,
        "player_q": 11960,
        "name_p": "Moises Caicedo",
        "name_q": "Enner Valencia",
        "value": 0.033842998822255485,
        "minutes_together": 262.56666666666666
      },
      {
        "player_p": 1034,
        "player_q": 11960,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Enner Valencia",
        "value": 0.03323793900883538,
        "minutes_together": 165.61666666666667
      },
      {
        "player_p": 1034,
        "player_q": 13049,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Gonzalo Plata",
        "value": 0.032963590708745306,
        "minutes_together": 185.05
      },
      {
        "player_p": 1034,
        "player_q": 1406,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Pervis Estupinan",
        "value": 0.032632452332230145,
        "minutes_together": 191.48333333333335
      },
      {
        "player_p": 1034,
        "player_q": 3734,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "F\u00e9lix Torres",
        "value": 0.031512752154613084,
        "minutes_together": 191.48333333333335
      },
      {
        "player_p": 1034,
        "player_q": 5195,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Piero Hincapie",
        "value": 0.03116110091078165,
        "minutes_together": 191.48333333333335
      },
      {
        "player_p": 1406,
        "player_q": 2134,
        "name_p": "Pervis Estupinan",
        "name_q": "Moises Caicedo",
        "value": 0.030514530050444886,
        "minutes_together": 282.98333333333335
      },
      {
        "player_p": 1034,
        "player_q": 13935,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Hernan Galindez",
        "value": 0.030345517858585115,
        "minutes_together": 191.48333333333335
      },
      {
        "player_p": 2134,
        "player_q": 3734,
        "name_p": "Moises Caicedo",
        "name_q": "F\u00e9lix Torres",
        "value": 0.03029984157151948,
        "minutes_together": 282.98333333333335
      },
      {
        "player_p": 2134,
        "player_q": 5195,
        "name_p": "Moises Caicedo",
        "name_q": "Piero Hincapie",
        "value": 0.0297309667309043,
        "minutes_together": 282.98333333333335
      },
      {
        "player_p": 1034,
        "player_q": 13937,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Angelo Preciado",
        "value": 0.029001546084672997,
        "minutes_together": 191.48333333333335
      },
      {
        "player_p": 2134,
        "player_q": 13937,
        "name_p": "Moises Caicedo",
        "name_q": "Angelo Preciado",
        "value": 0.028554979513560983,
        "minutes_together": 270.76666666666665
      },
      {
        "player_p": 9837,
        "player_q": 11960,
        "name_p": "Jackson Porozo",
        "name_q": "Enner Valencia",
        "value": 0.027475096934448502,
        "minutes_together": 101.86666666666667
      },
      {
        "player_p": 2134,
        "player_q": 3519,
        "name_p": "Moises Caicedo",
        "name_q": "Michael Estrada",
        "value": 0.02734455529926151,
        "minutes_together": 226.64999999999998
      },
      {
        "player_p": 1034,
        "player_q": 3519,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Michael Estrada",
        "value": 0.02699644385839066,
        "minutes_together": 163.41666666666666
      },
      {
        "player_p": 2134,
        "player_q": 13935,
        "name_p": "Moises Caicedo",
        "name_q": "Hernan Galindez",
        "value": 0.02680743155945449,
        "minutes_together": 282.98333333333335
      },
      {
        "player_p": 2134,
        "player_q": 9837,
        "name_p": "Moises Caicedo",
        "name_q": "Jackson Porozo",
        "value": 0.026537248186216184,
        "minutes_together": 108.36666666666667
      },
      {
        "player_p": 1034,
        "player_q": 9837,
        "name_p": "Jhegson M\u00e9ndez",
        "name_q": "Jackson Porozo",
        "value": 0.025762537093367347,
        "minutes_together": 96.15
      },
      {
        "player_p": 3734,
        "player_q": 9837,
        "name_p": "F\u00e9lix Torres",
        "name_q": "Jackson Porozo",
        "value": 0.022938607281349964,
        "minutes_together": 108.36666666666667
      },
      {
        "player_p": 11960,
        "player_q": 13049,
        "name_p": "Enner Valencia",
        "name_q": "Gonzalo Plata",
        "value": 0.021833662030330186,
        "minutes_together": 262.56666666666666
      },
      {
        "player_p": 1406,
        "player_q": 9837,
        "name_p": "Pervis Estupinan",
        "name_q": "Jackson Porozo",
        "value": 0.021647698989252073,
        "minutes_together": 108.36666666666667
      },
      {
        "player_p": 5195,
        "player_q": 9837,
        "name_p": "Piero Hincapie",
        "name_q": "Jackson Porozo",
        "value": 0.02111484332959075,
        "minutes_together": 108.36666666666667
      },
      {
        "player_p": 3734,
        "player_q": 13049,
        "name_p": "F\u00e9lix Torres",
        "name_q": "Gonzalo Plata",
        "value": 0.019765846542840915,
        "minutes_together": 282.0
      },
      {
        "player_p": 1406,
        "player_q": 13049,
        "name_p": "Pervis Estupinan",
        "name_q": "Gonzalo Plata",
        "value": 0.01928817972912435,
        "minutes_together": 282.0
      },
      {
        "player_p": 9837,
        "player_q": 13049,
        "name_p": "Jackson Porozo",
        "name_q": "Gonzalo Plata",
        "value": 0.019060423563481897,
        "minutes_together": 101.93333333333334
      },
      {
        "player_p": 5195,
        "player_q": 13049,
        "name_p": "Piero Hincapie",
        "name_q": "Gonzalo Plata",
        "value": 0.018832222240481363,
        "minutes_together": 282.0
      },
      {
        "player_p": 9837,
        "player_q": 13935,
        "name_p": "Jackson Porozo",
        "name_q": "Hernan Galindez",
        "value": 0.018569836417908294,
        "minutes_together": 108.36666666666667
      },
      {
        "player_p": 1406,
        "player_q": 11960,
        "name_p": "Pervis Estupinan",
        "name_q": "Enner Valencia",
        "value": 0.017846672616603262,
        "minutes_together": 262.56666666666666
      },
      {
        "player_p": 3734,
        "player_q": 11960,
        "name_p": "F\u00e9lix Torres",
        "name_q": "Enner Valencia",
        "value": 0.017695174106702738,
        "minutes_together": 262.56666666666666
      },
      {
        "player_p": 13049,
        "player_q": 13937,
        "name_p": "Gonzalo Plata",
        "name_q": "Angelo Preciado",
        "value": 0.016993806504436795,
        "minutes_together": 269.7833333333333
      },
      {
        "player_p": 9837,
        "player_q": 13937,
        "name_p": "Jackson Porozo",
        "name_q": "Angelo Preciado",
        "value": 0.016681364302842647,
        "minutes_together": 96.15
      },
      {
        "player_p": 5195,
        "player_q": 11960,
        "name_p": "Piero Hincapie",
        "name_q": "Enner Valencia",
        "value": 0.01660112539106856,
        "minutes_together": 262.56666666666666
      },
      {
        "player_p": 11960,
        "player_q": 13937,
        "name_p": "Enner Valencia",
        "name_q": "Angelo Preciado",
        "value": 0.016113554543312078,
        "minutes_together": 250.35000000000002
      },
      {
        "player_p": 13049,
        "player_q": 13935,
        "name_p": "Gonzalo Plata",
        "name_q": "Hernan Galindez",
        "value": 0.015947022621505248,
        "minutes_together": 282.0
      },
      {
        "player_p": 1406,
        "player_q": 3734,
        "name_p": "Pervis Estupinan",
        "name_q": "F\u00e9lix Torres",
        "value": 0.015319425599942699,
        "minutes_together": 288.43333333333334
      },
      {
        "player_p": 1406,
        "player_q": 5195,
        "name_p": "Pervis Estupinan",
        "name_q": "Piero Hincapie",
        "value": 0.014783595344751193,
        "minutes_together": 288.43333333333334
      },
      {
        "player_p": 3734,
        "player_q": 5195,
        "name_p": "F\u00e9lix Torres",
        "name_q": "Piero Hincapie",
        "value": 0.014744671578990075,
        "minutes_together": 288.43333333333334
      },
      {
        "player_p": 11960,
        "player_q": 13935,
        "name_p": "Enner Valencia",
        "name_q": "Hernan Galindez",
        "value": 0.013444548245059368,
        "minutes_together": 262.56666666666666
      },
      {
        "player_p": 1406,
        "player_q": 13937,
        "name_p": "Pervis Estupinan",
        "name_q": "Angelo Preciado",
        "value": 0.013323323860318181,
        "minutes_together": 276.2166666666667
      },
      {
        "player_p": 3519,
        "player_q": 13049,
        "name_p": "Michael Estrada",
        "name_q": "Gonzalo Plata",
        "value": 0.013285389151183661,
        "minutes_together": 226.64999999999998
      },
      {
        "player_p": 3519,
        "player_q": 11960,
        "name_p": "Michael Estrada",
        "name_q": "Enner Valencia",
        "value": 0.013174771843968223,
        "minutes_together": 212.81666666666666
      },
      {
        "player_p": 3734,
        "player_q": 13937,
        "name_p": "F\u00e9lix Torres",
        "name_q": "Angelo Preciado",
        "value": 0.013040477886036357,
        "minutes_together": 276.2166666666667
      },
      {
        "player_p": 5195,
        "player_q": 13937,
        "name_p": "Piero Hincapie",
        "name_q": "Angelo Preciado",
        "value": 0.012545427619889879,
        "minutes_together": 276.2166666666667
      },
      {
        "player_p": 3519,
        "player_q": 9837,
        "name_p": "Michael Estrada",
        "name_q": "Jackson Porozo",
        "value": 0.011949132432899542,
        "minutes_together": 73.61666666666666
      },
      {
        "player_p": 1406,
        "player_q": 13935,
        "name_p": "Pervis Estupinan",
        "name_q": "Hernan Galindez",
        "value": 0.01193021173065565,
        "minutes_together": 288.43333333333334
      },
      {
        "player_p": 3734,
        "player_q": 13935,
        "name_p": "F\u00e9lix Torres",
        "name_q": "Hernan Galindez",
        "value": 0.011891287964894533,
        "minutes_together": 288.43333333333334
      },
      {
        "player_p": 3519,
        "player_q": 3734,
        "name_p": "Michael Estrada",
        "name_q": "F\u00e9lix Torres",
        "value": 0.011592046481145828,
        "minutes_together": 226.64999999999998
      },
      {
        "player_p": 5195,
        "player_q": 13935,
        "name_p": "Piero Hincapie",
        "name_q": "Hernan Galindez",
        "value": 0.011355457709703027,
        "minutes_together": 288.43333333333334
      },
      {
        "player_p": 1406,
        "player_q": 3519,
        "name_p": "Pervis Estupinan",
        "name_q": "Michael Estrada",
        "value": 0.009978013181745514,
        "minutes_together": 226.64999999999998
      },
      {
        "player_p": 13935,
        "player_q": 13937,
        "name_p": "Hernan Galindez",
        "name_q": "Angelo Preciado",
        "value": 0.009835218594288311,
        "minutes_together": 276.2166666666667
      },
      {
        "player_p": 3519,
        "player_q": 5195,
        "name_p": "Michael Estrada",
        "name_q": "Piero Hincapie",
        "value": 0.009202726553593592,
        "minutes_together": 226.64999999999998
      },
      {
        "player_p": 3519,
        "player_q": 13937,
        "name_p": "Michael Estrada",
        "name_q": "Angelo Preciado",
        "value": 0.007813234591117893,
        "minutes_together": 226.64999999999998
      },
      {
        "player_p": 3519,
        "player_q": 13935,
        "name_p": "Michael Estrada",
        "name_q": "Hernan Galindez",
        "value": 0.006654516590236715,
        "minutes_together": 226.64999999999998
      }
    ],
    "path": "assets/figures/team_381_jdi90.png"
  },
  {
    "team_id": "382",
    "team_name": "Saudi Arabia",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_382_joi90.png",
    "n_pairs": 49,
    "median": 0.00885499166695852,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 13987,
        "name": "Mohammed Al-Owais",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17910
      },
      {
        "player_id": 14003,
        "name": "Mohamed Kanno",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17910
      },
      {
        "player_id": 13994,
        "name": "Saud Abdulhamid",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 17910
      },
      {
        "player_id": 13998,
        "name": "Salem Al-Dawsari",
        "position": "LM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 17910
      },
      {
        "player_id": 14010,
        "name": "Firas Al-Buraikan",
        "position": "RM",
        "x": 47.6,
        "y": 57.5,
        "row": 2,
        "col": 3,
        "on_seconds": 16980
      },
      {
        "player_id": 13992,
        "name": "Ali Al-Bulayhi",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 14213
      },
      {
        "player_id": 14011,
        "name": "Saleh Al-Shehri",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 13445
      },
      {
        "player_id": 13995,
        "name": "Abdulelah Al-Amri",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 12631
      },
      {
        "player_id": 13996,
        "name": "Hassan Tambakti",
        "position": "RCB",
        "x": 47.6,
        "y": 40.0,
        "row": 3,
        "col": 3,
        "on_seconds": 12086
      },
      {
        "player_id": 14004,
        "name": "Abdulelah Al-Malki",
        "position": "DM",
        "x": 34.0,
        "y": 40.0,
        "row": 3,
        "col": 2,
        "on_seconds": 11326
      },
      {
        "player_id": 13993,
        "name": "Sultan Al-Ghannam",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 8748
      }
    ],
    "pairs": [
      {
        "player_p": 14010,
        "player_q": 14011,
        "name_p": "Firas Al-Buraikan",
        "name_q": "Saleh Al-Shehri",
        "value": 0.7389095169970422,
        "minutes_together": 224.08333333333334
      },
      {
        "player_p": 13993,
        "player_q": 14003,
        "name_p": "Sultan Al-Ghannam",
        "name_q": "Mohamed Kanno",
        "value": 0.6233837640815385,
        "minutes_together": 145.8
      },
      {
        "player_p": 14004,
        "player_q": 14011,
        "name_p": "Abdulelah Al-Malki",
        "name_q": "Saleh Al-Shehri",
        "value": 0.5279325776160952,
        "minutes_together": 162.60000000000002
      },
      {
        "player_p": 13998,
        "player_q": 14003,
        "name_p": "Salem Al-Dawsari",
        "name_q": "Mohamed Kanno",
        "value": 0.05386719816348999,
        "minutes_together": 298.5
      },
      {
        "player_p": 14004,
        "player_q": 14010,
        "name_p": "Abdulelah Al-Malki",
        "name_q": "Firas Al-Buraikan",
        "value": 0.053340474942941404,
        "minutes_together": 173.26666666666665
      },
      {
        "player_p": 13994,
        "player_q": 13998,
        "name_p": "Saud Abdulhamid",
        "name_q": "Salem Al-Dawsari",
        "value": 0.052946264730067215,
        "minutes_together": 298.5
      },
      {
        "player_p": 13993,
        "player_q": 13998,
        "name_p": "Sultan Al-Ghannam",
        "name_q": "Salem Al-Dawsari",
        "value": 0.05280828176937676,
        "minutes_together": 145.8
      },
      {
        "player_p": 13987,
        "player_q": 13995,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Abdulelah Al-Amri",
        "value": 0.04365339654563111,
        "minutes_together": 210.51666666666665
      },
      {
        "player_p": 13992,
        "player_q": 13995,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Abdulelah Al-Amri",
        "value": 0.042347661260378526,
        "minutes_together": 148.89999999999998
      },
      {
        "player_p": 13993,
        "player_q": 13994,
        "name_p": "Sultan Al-Ghannam",
        "name_q": "Saud Abdulhamid",
        "value": 0.03975784057680226,
        "minutes_together": 145.8
      },
      {
        "player_p": 14003,
        "player_q": 14004,
        "name_p": "Mohamed Kanno",
        "name_q": "Abdulelah Al-Malki",
        "value": 0.036623711499432256,
        "minutes_together": 188.76666666666665
      },
      {
        "player_p": 13987,
        "player_q": 13994,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Saud Abdulhamid",
        "value": 0.03319399665073877,
        "minutes_together": 298.5
      },
      {
        "player_p": 13995,
        "player_q": 14003,
        "name_p": "Abdulelah Al-Amri",
        "name_q": "Mohamed Kanno",
        "value": 0.031597808341797456,
        "minutes_together": 210.51666666666665
      },
      {
        "player_p": 13994,
        "player_q": 13996,
        "name_p": "Saud Abdulhamid",
        "name_q": "Hassan Tambakti",
        "value": 0.026254766449906448,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 13995,
        "player_q": 14011,
        "name_p": "Abdulelah Al-Amri",
        "name_q": "Saleh Al-Shehri",
        "value": 0.025852022115422337,
        "minutes_together": 146.43333333333334
      },
      {
        "player_p": 13987,
        "player_q": 13992,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Ali Al-Bulayhi",
        "value": 0.02449712420649435,
        "minutes_together": 236.88333333333333
      },
      {
        "player_p": 13995,
        "player_q": 14004,
        "name_p": "Abdulelah Al-Amri",
        "name_q": "Abdulelah Al-Malki",
        "value": 0.024217904221866288,
        "minutes_together": 100.78333333333333
      },
      {
        "player_p": 13987,
        "player_q": 14004,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Abdulelah Al-Malki",
        "value": 0.02240035753462477,
        "minutes_together": 188.76666666666665
      },
      {
        "player_p": 13998,
        "player_q": 14010,
        "name_p": "Salem Al-Dawsari",
        "name_q": "Firas Al-Buraikan",
        "value": 0.019284923061547367,
        "minutes_together": 283.0
      },
      {
        "player_p": 13994,
        "player_q": 14004,
        "name_p": "Saud Abdulhamid",
        "name_q": "Abdulelah Al-Malki",
        "value": 0.01744327252265358,
        "minutes_together": 188.76666666666665
      },
      {
        "player_p": 13995,
        "player_q": 13998,
        "name_p": "Abdulelah Al-Amri",
        "name_q": "Salem Al-Dawsari",
        "value": 0.01692698942559427,
        "minutes_together": 210.51666666666665
      },
      {
        "player_p": 13994,
        "player_q": 14003,
        "name_p": "Saud Abdulhamid",
        "name_q": "Mohamed Kanno",
        "value": 0.013801188077799766,
        "minutes_together": 298.5
      },
      {
        "player_p": 13996,
        "player_q": 14010,
        "name_p": "Hassan Tambakti",
        "name_q": "Firas Al-Buraikan",
        "value": 0.012175539408711532,
        "minutes_together": 185.93333333333334
      },
      {
        "player_p": 13987,
        "player_q": 13998,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Salem Al-Dawsari",
        "value": 0.010538367346173657,
        "minutes_together": 298.5
      },
      {
        "player_p": 13992,
        "player_q": 13996,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Hassan Tambakti",
        "value": 0.00885499166695852,
        "minutes_together": 139.81666666666666
      },
      {
        "player_p": 14003,
        "player_q": 14011,
        "name_p": "Mohamed Kanno",
        "name_q": "Saleh Al-Shehri",
        "value": 0.007084215406985261,
        "minutes_together": 224.08333333333334
      },
      {
        "player_p": 13994,
        "player_q": 13995,
        "name_p": "Saud Abdulhamid",
        "name_q": "Abdulelah Al-Amri",
        "value": 0.006897336115694958,
        "minutes_together": 210.51666666666665
      },
      {
        "player_p": 13996,
        "player_q": 14004,
        "name_p": "Hassan Tambakti",
        "name_q": "Abdulelah Al-Malki",
        "value": 0.006144401549582462,
        "minutes_together": 103.81666666666666
      },
      {
        "player_p": 13998,
        "player_q": 14004,
        "name_p": "Salem Al-Dawsari",
        "name_q": "Abdulelah Al-Malki",
        "value": 0.005371651409956827,
        "minutes_together": 188.76666666666665
      },
      {
        "player_p": 13987,
        "player_q": 13996,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Hassan Tambakti",
        "value": 0.005151100423524053,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 13992,
        "player_q": 13993,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Sultan Al-Ghannam",
        "value": 0.004785187019337034,
        "minutes_together": 94.43333333333334
      },
      {
        "player_p": 13993,
        "player_q": 14010,
        "name_p": "Sultan Al-Ghannam",
        "name_q": "Firas Al-Buraikan",
        "value": 0.004426732725310636,
        "minutes_together": 130.29999999999998
      },
      {
        "player_p": 13993,
        "player_q": 13995,
        "name_p": "Sultan Al-Ghannam",
        "name_q": "Abdulelah Al-Amri",
        "value": 0.0031718354047184294,
        "minutes_together": 135.46666666666667
      },
      {
        "player_p": 13992,
        "player_q": 14010,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Firas Al-Buraikan",
        "value": 0.002094782134467007,
        "minutes_together": 221.38333333333333
      },
      {
        "player_p": 13996,
        "player_q": 13998,
        "name_p": "Hassan Tambakti",
        "name_q": "Salem Al-Dawsari",
        "value": 0.0010491521554182772,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 13987,
        "player_q": 13993,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Sultan Al-Ghannam",
        "value": 0.0009008151642112434,
        "minutes_together": 145.8
      },
      {
        "player_p": 13993,
        "player_q": 14011,
        "name_p": "Sultan Al-Ghannam",
        "name_q": "Saleh Al-Shehri",
        "value": -0.0034038168027518624,
        "minutes_together": 81.63333333333333
      },
      {
        "player_p": 13998,
        "player_q": 14011,
        "name_p": "Salem Al-Dawsari",
        "name_q": "Saleh Al-Shehri",
        "value": -0.0045859342040017485,
        "minutes_together": 224.08333333333334
      },
      {
        "player_p": 14003,
        "player_q": 14010,
        "name_p": "Mohamed Kanno",
        "name_q": "Firas Al-Buraikan",
        "value": -0.005264071477112434,
        "minutes_together": 283.0
      },
      {
        "player_p": 13996,
        "player_q": 14003,
        "name_p": "Hassan Tambakti",
        "name_q": "Mohamed Kanno",
        "value": -0.005600765308956413,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 13994,
        "player_q": 14011,
        "name_p": "Saud Abdulhamid",
        "name_q": "Saleh Al-Shehri",
        "value": -0.009380810613031362,
        "minutes_together": 224.08333333333334
      },
      {
        "player_p": 13994,
        "player_q": 14010,
        "name_p": "Saud Abdulhamid",
        "name_q": "Firas Al-Buraikan",
        "value": -0.011413955658190757,
        "minutes_together": 283.0
      },
      {
        "player_p": 13987,
        "player_q": 14003,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Mohamed Kanno",
        "value": -0.018475304474464015,
        "minutes_together": 298.5
      },
      {
        "player_p": 13995,
        "player_q": 13996,
        "name_p": "Abdulelah Al-Amri",
        "name_q": "Hassan Tambakti",
        "value": -0.019224441134943475,
        "minutes_together": 113.44999999999999
      },
      {
        "player_p": 13992,
        "player_q": 13998,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Salem Al-Dawsari",
        "value": -0.020559041045150397,
        "minutes_together": 236.88333333333333
      },
      {
        "player_p": 13992,
        "player_q": 14003,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Mohamed Kanno",
        "value": -0.05366504971580941,
        "minutes_together": 236.88333333333333
      },
      {
        "player_p": 13995,
        "player_q": 14010,
        "name_p": "Abdulelah Al-Amri",
        "name_q": "Firas Al-Buraikan",
        "value": -0.07029487817972736,
        "minutes_together": 195.01666666666665
      },
      {
        "player_p": 13992,
        "player_q": 13994,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Saud Abdulhamid",
        "value": -0.10247938015786627,
        "minutes_together": 236.88333333333333
      },
      {
        "player_p": 13992,
        "player_q": 14004,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Abdulelah Al-Malki",
        "value": -0.14944569075502404,
        "minutes_together": 188.76666666666665
      }
    ],
    "path": "assets/figures/team_382_joi90.png"
  },
  {
    "team_id": "382",
    "team_name": "Saudi Arabia",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_382_jdi90.png",
    "n_pairs": 54,
    "median": 0.027424073756082724,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 13987,
        "name": "Mohammed Al-Owais",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17910
      },
      {
        "player_id": 14003,
        "name": "Mohamed Kanno",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17910
      },
      {
        "player_id": 13994,
        "name": "Saud Abdulhamid",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 17910
      },
      {
        "player_id": 13998,
        "name": "Salem Al-Dawsari",
        "position": "LM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 17910
      },
      {
        "player_id": 14010,
        "name": "Firas Al-Buraikan",
        "position": "RM",
        "x": 47.6,
        "y": 57.5,
        "row": 2,
        "col": 3,
        "on_seconds": 16980
      },
      {
        "player_id": 13992,
        "name": "Ali Al-Bulayhi",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 14213
      },
      {
        "player_id": 14011,
        "name": "Saleh Al-Shehri",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 13445
      },
      {
        "player_id": 13995,
        "name": "Abdulelah Al-Amri",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 12631
      },
      {
        "player_id": 13996,
        "name": "Hassan Tambakti",
        "position": "RCB",
        "x": 47.6,
        "y": 40.0,
        "row": 3,
        "col": 3,
        "on_seconds": 12086
      },
      {
        "player_id": 14004,
        "name": "Abdulelah Al-Malki",
        "position": "DM",
        "x": 34.0,
        "y": 40.0,
        "row": 3,
        "col": 2,
        "on_seconds": 11326
      },
      {
        "player_id": 13993,
        "name": "Sultan Al-Ghannam",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 8748
      }
    ],
    "pairs": [
      {
        "player_p": 13996,
        "player_q": 14004,
        "name_p": "Hassan Tambakti",
        "name_q": "Abdulelah Al-Malki",
        "value": 0.04363426462520209,
        "minutes_together": 103.81666666666666
      },
      {
        "player_p": 13992,
        "player_q": 13996,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Hassan Tambakti",
        "value": 0.04027949963008565,
        "minutes_together": 139.81666666666666
      },
      {
        "player_p": 13995,
        "player_q": 14004,
        "name_p": "Abdulelah Al-Amri",
        "name_q": "Abdulelah Al-Malki",
        "value": 0.039667144127974445,
        "minutes_together": 100.78333333333333
      },
      {
        "player_p": 14004,
        "player_q": 14010,
        "name_p": "Abdulelah Al-Malki",
        "name_q": "Firas Al-Buraikan",
        "value": 0.039478425166837375,
        "minutes_together": 173.26666666666665
      },
      {
        "player_p": 13987,
        "player_q": 14004,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Abdulelah Al-Malki",
        "value": 0.03923806445666746,
        "minutes_together": 188.76666666666665
      },
      {
        "player_p": 13992,
        "player_q": 14004,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Abdulelah Al-Malki",
        "value": 0.03821057118658849,
        "minutes_together": 188.76666666666665
      },
      {
        "player_p": 13987,
        "player_q": 13992,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Ali Al-Bulayhi",
        "value": 0.037955637725756226,
        "minutes_together": 236.88333333333333
      },
      {
        "player_p": 13992,
        "player_q": 14010,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Firas Al-Buraikan",
        "value": 0.03734777850270703,
        "minutes_together": 221.38333333333333
      },
      {
        "player_p": 13992,
        "player_q": 13995,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Abdulelah Al-Amri",
        "value": 0.03726563907230943,
        "minutes_together": 148.89999999999998
      },
      {
        "player_p": 13987,
        "player_q": 13995,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Abdulelah Al-Amri",
        "value": 0.036601565820079965,
        "minutes_together": 210.51666666666665
      },
      {
        "player_p": 13987,
        "player_q": 14010,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Firas Al-Buraikan",
        "value": 0.035681870957523204,
        "minutes_together": 283.0
      },
      {
        "player_p": 13995,
        "player_q": 14010,
        "name_p": "Abdulelah Al-Amri",
        "name_q": "Firas Al-Buraikan",
        "value": 0.034497616504155136,
        "minutes_together": 195.01666666666665
      },
      {
        "player_p": 13987,
        "player_q": 13996,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Hassan Tambakti",
        "value": 0.0343963815950964,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 13994,
        "player_q": 13996,
        "name_p": "Saud Abdulhamid",
        "name_q": "Hassan Tambakti",
        "value": 0.03340313157330606,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 13994,
        "player_q": 13995,
        "name_p": "Saud Abdulhamid",
        "name_q": "Abdulelah Al-Amri",
        "value": 0.03286540441771029,
        "minutes_together": 210.51666666666665
      },
      {
        "player_p": 13987,
        "player_q": 13994,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Saud Abdulhamid",
        "value": 0.032678558880427276,
        "minutes_together": 298.5
      },
      {
        "player_p": 13993,
        "player_q": 13996,
        "name_p": "Sultan Al-Ghannam",
        "name_q": "Hassan Tambakti",
        "value": 0.03235943458443233,
        "minutes_together": 113.53333333333333
      },
      {
        "player_p": 13987,
        "player_q": 13993,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Sultan Al-Ghannam",
        "value": 0.03231883351828911,
        "minutes_together": 145.8
      },
      {
        "player_p": 13994,
        "player_q": 14010,
        "name_p": "Saud Abdulhamid",
        "name_q": "Firas Al-Buraikan",
        "value": 0.03197766415677945,
        "minutes_together": 283.0
      },
      {
        "player_p": 13994,
        "player_q": 14004,
        "name_p": "Saud Abdulhamid",
        "name_q": "Abdulelah Al-Malki",
        "value": 0.03195923602583333,
        "minutes_together": 188.76666666666665
      },
      {
        "player_p": 13995,
        "player_q": 13996,
        "name_p": "Abdulelah Al-Amri",
        "name_q": "Hassan Tambakti",
        "value": 0.031951178486412754,
        "minutes_together": 113.44999999999999
      },
      {
        "player_p": 13992,
        "player_q": 13994,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Saud Abdulhamid",
        "value": 0.03177943155780186,
        "minutes_together": 236.88333333333333
      },
      {
        "player_p": 13993,
        "player_q": 13995,
        "name_p": "Sultan Al-Ghannam",
        "name_q": "Abdulelah Al-Amri",
        "value": 0.03169647877546641,
        "minutes_together": 135.46666666666667
      },
      {
        "player_p": 13996,
        "player_q": 14010,
        "name_p": "Hassan Tambakti",
        "name_q": "Firas Al-Buraikan",
        "value": 0.031033068841520076,
        "minutes_together": 185.93333333333334
      },
      {
        "player_p": 13992,
        "player_q": 13993,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Sultan Al-Ghannam",
        "value": 0.03102449633186001,
        "minutes_together": 94.43333333333334
      },
      {
        "player_p": 13993,
        "player_q": 13994,
        "name_p": "Sultan Al-Ghannam",
        "name_q": "Saud Abdulhamid",
        "value": 0.030625851145548024,
        "minutes_together": 145.8
      },
      {
        "player_p": 13993,
        "player_q": 14010,
        "name_p": "Sultan Al-Ghannam",
        "name_q": "Firas Al-Buraikan",
        "value": 0.02843987557337,
        "minutes_together": 130.29999999999998
      },
      {
        "player_p": 14003,
        "player_q": 14004,
        "name_p": "Mohamed Kanno",
        "name_q": "Abdulelah Al-Malki",
        "value": 0.02640827193879545,
        "minutes_together": 188.76666666666665
      },
      {
        "player_p": 14004,
        "player_q": 14011,
        "name_p": "Abdulelah Al-Malki",
        "name_q": "Saleh Al-Shehri",
        "value": 0.024891588419868438,
        "minutes_together": 162.60000000000002
      },
      {
        "player_p": 13987,
        "player_q": 14011,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Saleh Al-Shehri",
        "value": 0.023571889789645105,
        "minutes_together": 224.08333333333334
      },
      {
        "player_p": 14010,
        "player_q": 14011,
        "name_p": "Firas Al-Buraikan",
        "name_q": "Saleh Al-Shehri",
        "value": 0.023363818476423236,
        "minutes_together": 224.08333333333334
      },
      {
        "player_p": 13992,
        "player_q": 14003,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Mohamed Kanno",
        "value": 0.022336389717526488,
        "minutes_together": 236.88333333333333
      },
      {
        "player_p": 13995,
        "player_q": 14011,
        "name_p": "Abdulelah Al-Amri",
        "name_q": "Saleh Al-Shehri",
        "value": 0.021996836677598094,
        "minutes_together": 146.43333333333334
      },
      {
        "player_p": 13996,
        "player_q": 14011,
        "name_p": "Hassan Tambakti",
        "name_q": "Saleh Al-Shehri",
        "value": 0.021604290402376738,
        "minutes_together": 139.05
      },
      {
        "player_p": 13992,
        "player_q": 14011,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Saleh Al-Shehri",
        "value": 0.02068679429321743,
        "minutes_together": 198.68333333333334
      },
      {
        "player_p": 13987,
        "player_q": 14003,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Mohamed Kanno",
        "value": 0.019596264616299625,
        "minutes_together": 298.5
      },
      {
        "player_p": 13994,
        "player_q": 14011,
        "name_p": "Saud Abdulhamid",
        "name_q": "Saleh Al-Shehri",
        "value": 0.018546939889527714,
        "minutes_together": 224.08333333333334
      },
      {
        "player_p": 14003,
        "player_q": 14010,
        "name_p": "Mohamed Kanno",
        "name_q": "Firas Al-Buraikan",
        "value": 0.01774979839930507,
        "minutes_together": 283.0
      },
      {
        "player_p": 13993,
        "player_q": 13998,
        "name_p": "Sultan Al-Ghannam",
        "name_q": "Salem Al-Dawsari",
        "value": 0.017413690029688234,
        "minutes_together": 145.8
      },
      {
        "player_p": 13996,
        "player_q": 14003,
        "name_p": "Hassan Tambakti",
        "name_q": "Mohamed Kanno",
        "value": 0.017319171466444287,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 13995,
        "player_q": 14003,
        "name_p": "Abdulelah Al-Amri",
        "name_q": "Mohamed Kanno",
        "value": 0.016876920027326284,
        "minutes_together": 210.51666666666665
      },
      {
        "player_p": 13994,
        "player_q": 14003,
        "name_p": "Saud Abdulhamid",
        "name_q": "Mohamed Kanno",
        "value": 0.015678960527171385,
        "minutes_together": 298.5
      },
      {
        "player_p": 13996,
        "player_q": 13998,
        "name_p": "Hassan Tambakti",
        "name_q": "Salem Al-Dawsari",
        "value": 0.01554716514319575,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 13995,
        "player_q": 13998,
        "name_p": "Abdulelah Al-Amri",
        "name_q": "Salem Al-Dawsari",
        "value": 0.01525888816982878,
        "minutes_together": 210.51666666666665
      },
      {
        "player_p": 13987,
        "player_q": 13998,
        "name_p": "Mohammed Al-Owais",
        "name_q": "Salem Al-Dawsari",
        "value": 0.013915465206153296,
        "minutes_together": 298.5
      },
      {
        "player_p": 13998,
        "player_q": 14010,
        "name_p": "Salem Al-Dawsari",
        "name_q": "Firas Al-Buraikan",
        "value": 0.013216686826682927,
        "minutes_together": 283.0
      },
      {
        "player_p": 13993,
        "player_q": 14003,
        "name_p": "Sultan Al-Ghannam",
        "name_q": "Mohamed Kanno",
        "value": 0.013032925263861381,
        "minutes_together": 145.8
      },
      {
        "player_p": 13992,
        "player_q": 13998,
        "name_p": "Ali Al-Bulayhi",
        "name_q": "Salem Al-Dawsari",
        "value": 0.011405414685136697,
        "minutes_together": 236.88333333333333
      },
      {
        "player_p": 13994,
        "player_q": 13998,
        "name_p": "Saud Abdulhamid",
        "name_q": "Salem Al-Dawsari",
        "value": 0.009998161117025065,
        "minutes_together": 298.5
      },
      {
        "player_p": 13998,
        "player_q": 14004,
        "name_p": "Salem Al-Dawsari",
        "name_q": "Abdulelah Al-Malki",
        "value": 0.009916453751654494,
        "minutes_together": 188.76666666666665
      },
      {
        "player_p": 13993,
        "player_q": 14011,
        "name_p": "Sultan Al-Ghannam",
        "name_q": "Saleh Al-Shehri",
        "value": 0.009860374242915292,
        "minutes_together": 81.63333333333333
      },
      {
        "player_p": 14003,
        "player_q": 14011,
        "name_p": "Mohamed Kanno",
        "name_q": "Saleh Al-Shehri",
        "value": 0.004087825649789771,
        "minutes_together": 224.08333333333334
      },
      {
        "player_p": 13998,
        "player_q": 14011,
        "name_p": "Salem Al-Dawsari",
        "name_q": "Saleh Al-Shehri",
        "value": -0.0024317031870988355,
        "minutes_together": 224.08333333333334
      },
      {
        "player_p": 13998,
        "player_q": 14003,
        "name_p": "Salem Al-Dawsari",
        "name_q": "Mohamed Kanno",
        "value": -0.003084133147102593,
        "minutes_together": 298.5
      }
    ],
    "path": "assets/figures/team_382_jdi90.png"
  },
  {
    "team_id": "383",
    "team_name": "Ghana",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_383_joi90.png",
    "n_pairs": 48,
    "median": 0.014953091661502325,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 213,
        "name": "Daniel Amartey",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 18044
      },
      {
        "player_id": 14034,
        "name": "Lawrence Ati Zigi",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 18044
      },
      {
        "player_id": 1380,
        "name": "Thomas Partey",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 18044
      },
      {
        "player_id": 1910,
        "name": "Mohammed Salisu",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 18044
      },
      {
        "player_id": 1363,
        "name": "Inaki Williams",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 16362
      },
      {
        "player_id": 4408,
        "name": "Salis Abdul Samed",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 15873
      },
      {
        "player_id": 8031,
        "name": "Mohammed Kudus",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 15325
      },
      {
        "player_id": 5085,
        "name": "Abdul Rahman Baba",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 12788
      },
      {
        "player_id": 14040,
        "name": "Andre Ayew",
        "position": "AM",
        "x": 20.4,
        "y": 75.0,
        "row": 1,
        "col": 1,
        "on_seconds": 12468
      },
      {
        "player_id": 4404,
        "name": "Alidu Seidu",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 9905
      },
      {
        "player_id": 483,
        "name": "Jordan Ayew",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 9325
      }
    ],
    "pairs": [
      {
        "player_p": 1363,
        "player_q": 5085,
        "name_p": "Inaki Williams",
        "name_q": "Abdul Rahman Baba",
        "value": 0.47160435577208004,
        "minutes_together": 185.1
      },
      {
        "player_p": 8031,
        "player_q": 14040,
        "name_p": "Mohammed Kudus",
        "name_q": "Andre Ayew",
        "value": 0.39708338347629857,
        "minutes_together": 207.58333333333334
      },
      {
        "player_p": 213,
        "player_q": 8031,
        "name_p": "Daniel Amartey",
        "name_q": "Mohammed Kudus",
        "value": 0.36379066893281103,
        "minutes_together": 255.41666666666669
      },
      {
        "player_p": 1363,
        "player_q": 4408,
        "name_p": "Inaki Williams",
        "name_q": "Salis Abdul Samed",
        "value": 0.33289478215231033,
        "minutes_together": 264.3
      },
      {
        "player_p": 1363,
        "player_q": 1380,
        "name_p": "Inaki Williams",
        "name_q": "Thomas Partey",
        "value": 0.32411570681093266,
        "minutes_together": 272.7
      },
      {
        "player_p": 1363,
        "player_q": 14034,
        "name_p": "Inaki Williams",
        "name_q": "Lawrence Ati Zigi",
        "value": 0.30720197576803276,
        "minutes_together": 272.7
      },
      {
        "player_p": 1363,
        "player_q": 8031,
        "name_p": "Inaki Williams",
        "name_q": "Mohammed Kudus",
        "value": 0.2856138168802457,
        "minutes_together": 229.98333333333335
      },
      {
        "player_p": 5085,
        "player_q": 8031,
        "name_p": "Abdul Rahman Baba",
        "name_q": "Mohammed Kudus",
        "value": 0.18028521139628062,
        "minutes_together": 173.23333333333335
      },
      {
        "player_p": 1910,
        "player_q": 5085,
        "name_p": "Mohammed Salisu",
        "name_q": "Abdul Rahman Baba",
        "value": 0.17640972868083976,
        "minutes_together": 213.13333333333333
      },
      {
        "player_p": 483,
        "player_q": 8031,
        "name_p": "Jordan Ayew",
        "name_q": "Mohammed Kudus",
        "value": 0.12611526812269447,
        "minutes_together": 131.65
      },
      {
        "player_p": 213,
        "player_q": 4404,
        "name_p": "Daniel Amartey",
        "name_q": "Alidu Seidu",
        "value": 0.06438626564673722,
        "minutes_together": 165.08333333333334
      },
      {
        "player_p": 4408,
        "player_q": 8031,
        "name_p": "Salis Abdul Samed",
        "name_q": "Mohammed Kudus",
        "value": 0.045862264297438136,
        "minutes_together": 230.23333333333335
      },
      {
        "player_p": 213,
        "player_q": 1380,
        "name_p": "Daniel Amartey",
        "name_q": "Thomas Partey",
        "value": 0.04581051048061119,
        "minutes_together": 300.73333333333335
      },
      {
        "player_p": 1380,
        "player_q": 4408,
        "name_p": "Thomas Partey",
        "name_q": "Salis Abdul Samed",
        "value": 0.037468212536255444,
        "minutes_together": 264.55
      },
      {
        "player_p": 483,
        "player_q": 1910,
        "name_p": "Jordan Ayew",
        "name_q": "Mohammed Salisu",
        "value": 0.03667695725177012,
        "minutes_together": 155.41666666666666
      },
      {
        "player_p": 4408,
        "player_q": 5085,
        "name_p": "Salis Abdul Samed",
        "name_q": "Abdul Rahman Baba",
        "value": 0.03593149303541373,
        "minutes_together": 176.95
      },
      {
        "player_p": 213,
        "player_q": 4408,
        "name_p": "Daniel Amartey",
        "name_q": "Salis Abdul Samed",
        "value": 0.03574710156361497,
        "minutes_together": 264.55
      },
      {
        "player_p": 1380,
        "player_q": 4404,
        "name_p": "Thomas Partey",
        "name_q": "Alidu Seidu",
        "value": 0.03399761840314127,
        "minutes_together": 165.08333333333334
      },
      {
        "player_p": 1380,
        "player_q": 14040,
        "name_p": "Thomas Partey",
        "name_q": "Andre Ayew",
        "value": 0.03014176701029685,
        "minutes_together": 207.79999999999998
      },
      {
        "player_p": 1363,
        "player_q": 4404,
        "name_p": "Inaki Williams",
        "name_q": "Alidu Seidu",
        "value": 0.023067893605466447,
        "minutes_together": 137.05
      },
      {
        "player_p": 4408,
        "player_q": 14040,
        "name_p": "Salis Abdul Samed",
        "name_q": "Andre Ayew",
        "value": 0.02057548318687467,
        "minutes_together": 207.79999999999998
      },
      {
        "player_p": 1380,
        "player_q": 8031,
        "name_p": "Thomas Partey",
        "name_q": "Mohammed Kudus",
        "value": 0.019425773438013556,
        "minutes_together": 255.41666666666669
      },
      {
        "player_p": 4404,
        "player_q": 14040,
        "name_p": "Alidu Seidu",
        "name_q": "Andre Ayew",
        "value": 0.016040147838832067,
        "minutes_together": 119.03333333333333
      },
      {
        "player_p": 483,
        "player_q": 1380,
        "name_p": "Jordan Ayew",
        "name_q": "Thomas Partey",
        "value": 0.015174317618971568,
        "minutes_together": 155.41666666666666
      },
      {
        "player_p": 213,
        "player_q": 5085,
        "name_p": "Daniel Amartey",
        "name_q": "Abdul Rahman Baba",
        "value": 0.014731865704033082,
        "minutes_together": 213.13333333333333
      },
      {
        "player_p": 1363,
        "player_q": 14040,
        "name_p": "Inaki Williams",
        "name_q": "Andre Ayew",
        "value": 0.012796206347562443,
        "minutes_together": 207.79999999999998
      },
      {
        "player_p": 213,
        "player_q": 14040,
        "name_p": "Daniel Amartey",
        "name_q": "Andre Ayew",
        "value": 0.01210420126652342,
        "minutes_together": 207.79999999999998
      },
      {
        "player_p": 213,
        "player_q": 1363,
        "name_p": "Daniel Amartey",
        "name_q": "Inaki Williams",
        "value": 0.011067289197836483,
        "minutes_together": 272.7
      },
      {
        "player_p": 1910,
        "player_q": 8031,
        "name_p": "Mohammed Salisu",
        "name_q": "Mohammed Kudus",
        "value": 0.010549567010632104,
        "minutes_together": 255.41666666666669
      },
      {
        "player_p": 483,
        "player_q": 5085,
        "name_p": "Jordan Ayew",
        "name_q": "Abdul Rahman Baba",
        "value": 0.008738396398382328,
        "minutes_together": 77.35
      },
      {
        "player_p": 4404,
        "player_q": 8031,
        "name_p": "Alidu Seidu",
        "name_q": "Mohammed Kudus",
        "value": 0.007084636944871746,
        "minutes_together": 162.48333333333335
      },
      {
        "player_p": 1380,
        "player_q": 14034,
        "name_p": "Thomas Partey",
        "name_q": "Lawrence Ati Zigi",
        "value": 0.006769133242839308,
        "minutes_together": 300.73333333333335
      },
      {
        "player_p": 4408,
        "player_q": 14034,
        "name_p": "Salis Abdul Samed",
        "name_q": "Lawrence Ati Zigi",
        "value": 0.0055825876598640505,
        "minutes_together": 264.55
      },
      {
        "player_p": 4404,
        "player_q": 14034,
        "name_p": "Alidu Seidu",
        "name_q": "Lawrence Ati Zigi",
        "value": 0.003578267264252343,
        "minutes_together": 165.08333333333334
      },
      {
        "player_p": 1380,
        "player_q": 5085,
        "name_p": "Thomas Partey",
        "name_q": "Abdul Rahman Baba",
        "value": 0.0032519463368632867,
        "minutes_together": 213.13333333333333
      },
      {
        "player_p": 1363,
        "player_q": 1910,
        "name_p": "Inaki Williams",
        "name_q": "Mohammed Salisu",
        "value": 0.002995299441765879,
        "minutes_together": 272.7
      },
      {
        "player_p": 1910,
        "player_q": 14040,
        "name_p": "Mohammed Salisu",
        "name_q": "Andre Ayew",
        "value": 0.0018800013193208563,
        "minutes_together": 207.79999999999998
      },
      {
        "player_p": 1910,
        "player_q": 14034,
        "name_p": "Mohammed Salisu",
        "name_q": "Lawrence Ati Zigi",
        "value": 0.0004046027720082825,
        "minutes_together": 300.73333333333335
      },
      {
        "player_p": 213,
        "player_q": 14034,
        "name_p": "Daniel Amartey",
        "name_q": "Lawrence Ati Zigi",
        "value": -0.0008977457633595387,
        "minutes_together": 300.73333333333335
      },
      {
        "player_p": 5085,
        "player_q": 14040,
        "name_p": "Abdul Rahman Baba",
        "name_q": "Andre Ayew",
        "value": -0.0026295379791182196,
        "minutes_together": 130.0
      },
      {
        "player_p": 483,
        "player_q": 4408,
        "name_p": "Jordan Ayew",
        "name_q": "Salis Abdul Samed",
        "value": -0.0030291767995477992,
        "minutes_together": 147.01666666666668
      },
      {
        "player_p": 1380,
        "player_q": 1910,
        "name_p": "Thomas Partey",
        "name_q": "Mohammed Salisu",
        "value": -0.005748349632245732,
        "minutes_together": 300.73333333333335
      },
      {
        "player_p": 5085,
        "player_q": 14034,
        "name_p": "Abdul Rahman Baba",
        "name_q": "Lawrence Ati Zigi",
        "value": -0.008302197559987828,
        "minutes_together": 213.13333333333333
      },
      {
        "player_p": 213,
        "player_q": 1910,
        "name_p": "Daniel Amartey",
        "name_q": "Mohammed Salisu",
        "value": -0.010018392516479119,
        "minutes_together": 300.73333333333335
      },
      {
        "player_p": 1910,
        "player_q": 4408,
        "name_p": "Mohammed Salisu",
        "name_q": "Salis Abdul Samed",
        "value": -0.018875036484467308,
        "minutes_together": 264.55
      },
      {
        "player_p": 4404,
        "player_q": 5085,
        "name_p": "Alidu Seidu",
        "name_q": "Abdul Rahman Baba",
        "value": -0.0257015054611682,
        "minutes_together": 165.08333333333334
      },
      {
        "player_p": 4404,
        "player_q": 4408,
        "name_p": "Alidu Seidu",
        "name_q": "Salis Abdul Samed",
        "value": -0.03770374992173421,
        "minutes_together": 137.3
      },
      {
        "player_p": 483,
        "player_q": 1363,
        "name_p": "Jordan Ayew",
        "name_q": "Inaki Williams",
        "value": -0.24438870108451888,
        "minutes_together": 155.41666666666666
      }
    ],
    "path": "assets/figures/team_383_joi90.png"
  },
  {
    "team_id": "383",
    "team_name": "Ghana",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_383_jdi90.png",
    "n_pairs": 54,
    "median": -0.034775180898635565,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 213,
        "name": "Daniel Amartey",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 18044
      },
      {
        "player_id": 14034,
        "name": "Lawrence Ati Zigi",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 18044
      },
      {
        "player_id": 1380,
        "name": "Thomas Partey",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 18044
      },
      {
        "player_id": 1910,
        "name": "Mohammed Salisu",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 18044
      },
      {
        "player_id": 1363,
        "name": "Inaki Williams",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 16362
      },
      {
        "player_id": 4408,
        "name": "Salis Abdul Samed",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 15873
      },
      {
        "player_id": 8031,
        "name": "Mohammed Kudus",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 15325
      },
      {
        "player_id": 5085,
        "name": "Abdul Rahman Baba",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 12788
      },
      {
        "player_id": 14040,
        "name": "Andre Ayew",
        "position": "AM",
        "x": 20.4,
        "y": 75.0,
        "row": 1,
        "col": 1,
        "on_seconds": 12468
      },
      {
        "player_id": 4404,
        "name": "Alidu Seidu",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 9905
      },
      {
        "player_id": 483,
        "name": "Jordan Ayew",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 9325
      }
    ],
    "pairs": [
      {
        "player_p": 483,
        "player_q": 8031,
        "name_p": "Jordan Ayew",
        "name_q": "Mohammed Kudus",
        "value": -0.014406196315432895,
        "minutes_together": 131.65
      },
      {
        "player_p": 483,
        "player_q": 5085,
        "name_p": "Jordan Ayew",
        "name_q": "Abdul Rahman Baba",
        "value": -0.014788631997614703,
        "minutes_together": 77.35
      },
      {
        "player_p": 1380,
        "player_q": 8031,
        "name_p": "Thomas Partey",
        "name_q": "Mohammed Kudus",
        "value": -0.01695197159981588,
        "minutes_together": 255.41666666666669
      },
      {
        "player_p": 5085,
        "player_q": 8031,
        "name_p": "Abdul Rahman Baba",
        "name_q": "Mohammed Kudus",
        "value": -0.018556460441168477,
        "minutes_together": 173.23333333333335
      },
      {
        "player_p": 4408,
        "player_q": 8031,
        "name_p": "Salis Abdul Samed",
        "name_q": "Mohammed Kudus",
        "value": -0.018729939496559045,
        "minutes_together": 230.23333333333335
      },
      {
        "player_p": 1380,
        "player_q": 4404,
        "name_p": "Thomas Partey",
        "name_q": "Alidu Seidu",
        "value": -0.019492405115542285,
        "minutes_together": 165.08333333333334
      },
      {
        "player_p": 4404,
        "player_q": 8031,
        "name_p": "Alidu Seidu",
        "name_q": "Mohammed Kudus",
        "value": -0.021635979030356498,
        "minutes_together": 162.48333333333335
      },
      {
        "player_p": 8031,
        "player_q": 14034,
        "name_p": "Mohammed Kudus",
        "name_q": "Lawrence Ati Zigi",
        "value": -0.023384321884155682,
        "minutes_together": 255.41666666666669
      },
      {
        "player_p": 4404,
        "player_q": 4408,
        "name_p": "Alidu Seidu",
        "name_q": "Salis Abdul Samed",
        "value": -0.02352943988763319,
        "minutes_together": 137.3
      },
      {
        "player_p": 8031,
        "player_q": 14040,
        "name_p": "Mohammed Kudus",
        "name_q": "Andre Ayew",
        "value": -0.025004540987852004,
        "minutes_together": 207.58333333333334
      },
      {
        "player_p": 1910,
        "player_q": 8031,
        "name_p": "Mohammed Salisu",
        "name_q": "Mohammed Kudus",
        "value": -0.025321099427492007,
        "minutes_together": 255.41666666666669
      },
      {
        "player_p": 483,
        "player_q": 14040,
        "name_p": "Jordan Ayew",
        "name_q": "Andre Ayew",
        "value": -0.02553013752776116,
        "minutes_together": 131.38333333333333
      },
      {
        "player_p": 1910,
        "player_q": 4404,
        "name_p": "Mohammed Salisu",
        "name_q": "Alidu Seidu",
        "value": -0.02567959156909573,
        "minutes_together": 165.08333333333334
      },
      {
        "player_p": 4404,
        "player_q": 14034,
        "name_p": "Alidu Seidu",
        "name_q": "Lawrence Ati Zigi",
        "value": -0.02720623223888063,
        "minutes_together": 165.08333333333334
      },
      {
        "player_p": 1380,
        "player_q": 5085,
        "name_p": "Thomas Partey",
        "name_q": "Abdul Rahman Baba",
        "value": -0.02724868964484654,
        "minutes_together": 213.13333333333333
      },
      {
        "player_p": 213,
        "player_q": 8031,
        "name_p": "Daniel Amartey",
        "name_q": "Mohammed Kudus",
        "value": -0.027509184633848327,
        "minutes_together": 255.41666666666669
      },
      {
        "player_p": 1363,
        "player_q": 8031,
        "name_p": "Inaki Williams",
        "name_q": "Mohammed Kudus",
        "value": -0.028377134478153505,
        "minutes_together": 229.98333333333335
      },
      {
        "player_p": 4404,
        "player_q": 5085,
        "name_p": "Alidu Seidu",
        "name_q": "Abdul Rahman Baba",
        "value": -0.029121147580167747,
        "minutes_together": 165.08333333333334
      },
      {
        "player_p": 213,
        "player_q": 4404,
        "name_p": "Daniel Amartey",
        "name_q": "Alidu Seidu",
        "value": -0.02973340389975228,
        "minutes_together": 165.08333333333334
      },
      {
        "player_p": 4408,
        "player_q": 5085,
        "name_p": "Salis Abdul Samed",
        "name_q": "Abdul Rahman Baba",
        "value": -0.030345298067826477,
        "minutes_together": 176.95
      },
      {
        "player_p": 483,
        "player_q": 14034,
        "name_p": "Jordan Ayew",
        "name_q": "Lawrence Ati Zigi",
        "value": -0.031055014405572862,
        "minutes_together": 155.41666666666666
      },
      {
        "player_p": 1910,
        "player_q": 5085,
        "name_p": "Mohammed Salisu",
        "name_q": "Abdul Rahman Baba",
        "value": -0.033020159552287744,
        "minutes_together": 213.13333333333333
      },
      {
        "player_p": 5085,
        "player_q": 14034,
        "name_p": "Abdul Rahman Baba",
        "name_q": "Lawrence Ati Zigi",
        "value": -0.03320890013505901,
        "minutes_together": 213.13333333333333
      },
      {
        "player_p": 483,
        "player_q": 4408,
        "name_p": "Jordan Ayew",
        "name_q": "Salis Abdul Samed",
        "value": -0.033875137227051696,
        "minutes_together": 147.01666666666668
      },
      {
        "player_p": 4408,
        "player_q": 14040,
        "name_p": "Salis Abdul Samed",
        "name_q": "Andre Ayew",
        "value": -0.03396854466642812,
        "minutes_together": 207.79999999999998
      },
      {
        "player_p": 1380,
        "player_q": 14040,
        "name_p": "Thomas Partey",
        "name_q": "Andre Ayew",
        "value": -0.03396854466642812,
        "minutes_together": 207.79999999999998
      },
      {
        "player_p": 483,
        "player_q": 1910,
        "name_p": "Jordan Ayew",
        "name_q": "Mohammed Salisu",
        "value": -0.03470228693830984,
        "minutes_together": 155.41666666666666
      },
      {
        "player_p": 1380,
        "player_q": 4408,
        "name_p": "Thomas Partey",
        "name_q": "Salis Abdul Samed",
        "value": -0.03484807485896129,
        "minutes_together": 264.55
      },
      {
        "player_p": 483,
        "player_q": 1380,
        "name_p": "Jordan Ayew",
        "name_q": "Thomas Partey",
        "value": -0.03518850836208296,
        "minutes_together": 155.41666666666666
      },
      {
        "player_p": 483,
        "player_q": 1363,
        "name_p": "Jordan Ayew",
        "name_q": "Inaki Williams",
        "value": -0.03561254204475165,
        "minutes_together": 155.41666666666666
      },
      {
        "player_p": 213,
        "player_q": 5085,
        "name_p": "Daniel Amartey",
        "name_q": "Abdul Rahman Baba",
        "value": -0.03637391681392261,
        "minutes_together": 213.13333333333333
      },
      {
        "player_p": 1380,
        "player_q": 14034,
        "name_p": "Thomas Partey",
        "name_q": "Lawrence Ati Zigi",
        "value": -0.03684817851031745,
        "minutes_together": 300.73333333333335
      },
      {
        "player_p": 213,
        "player_q": 483,
        "name_p": "Daniel Amartey",
        "name_q": "Jordan Ayew",
        "value": -0.03707378255150188,
        "minutes_together": 155.41666666666666
      },
      {
        "player_p": 5085,
        "player_q": 14040,
        "name_p": "Abdul Rahman Baba",
        "name_q": "Andre Ayew",
        "value": -0.038889102411403746,
        "minutes_together": 130.0
      },
      {
        "player_p": 1380,
        "player_q": 1910,
        "name_p": "Thomas Partey",
        "name_q": "Mohammed Salisu",
        "value": -0.03936284434911453,
        "minutes_together": 300.73333333333335
      },
      {
        "player_p": 4408,
        "player_q": 14034,
        "name_p": "Salis Abdul Samed",
        "name_q": "Lawrence Ati Zigi",
        "value": -0.040502622993817065,
        "minutes_together": 264.55
      },
      {
        "player_p": 213,
        "player_q": 1380,
        "name_p": "Daniel Amartey",
        "name_q": "Thomas Partey",
        "value": -0.041306562648210206,
        "minutes_together": 300.73333333333335
      },
      {
        "player_p": 4404,
        "player_q": 14040,
        "name_p": "Alidu Seidu",
        "name_q": "Andre Ayew",
        "value": -0.041728357936835346,
        "minutes_together": 119.03333333333333
      },
      {
        "player_p": 1363,
        "player_q": 4408,
        "name_p": "Inaki Williams",
        "name_q": "Salis Abdul Samed",
        "value": -0.04194424227667901,
        "minutes_together": 264.3
      },
      {
        "player_p": 1363,
        "player_q": 1380,
        "name_p": "Inaki Williams",
        "name_q": "Thomas Partey",
        "value": -0.04244420297153015,
        "minutes_together": 272.7
      },
      {
        "player_p": 14034,
        "player_q": 14040,
        "name_p": "Lawrence Ati Zigi",
        "name_q": "Andre Ayew",
        "value": -0.04260346751250618,
        "minutes_together": 207.79999999999998
      },
      {
        "player_p": 1363,
        "player_q": 14040,
        "name_p": "Inaki Williams",
        "name_q": "Andre Ayew",
        "value": -0.04326994739983291,
        "minutes_together": 207.79999999999998
      },
      {
        "player_p": 1910,
        "player_q": 4408,
        "name_p": "Mohammed Salisu",
        "name_q": "Salis Abdul Samed",
        "value": -0.04355178744992715,
        "minutes_together": 264.55
      },
      {
        "player_p": 1910,
        "player_q": 14034,
        "name_p": "Mohammed Salisu",
        "name_q": "Lawrence Ati Zigi",
        "value": -0.04421840264787128,
        "minutes_together": 300.73333333333335
      },
      {
        "player_p": 1910,
        "player_q": 14040,
        "name_p": "Mohammed Salisu",
        "name_q": "Andre Ayew",
        "value": -0.045197919376511464,
        "minutes_together": 207.79999999999998
      },
      {
        "player_p": 213,
        "player_q": 4408,
        "name_p": "Daniel Amartey",
        "name_q": "Salis Abdul Samed",
        "value": -0.04552564675562636,
        "minutes_together": 264.55
      },
      {
        "player_p": 213,
        "player_q": 14034,
        "name_p": "Daniel Amartey",
        "name_q": "Lawrence Ati Zigi",
        "value": -0.04616212094696697,
        "minutes_together": 300.73333333333335
      },
      {
        "player_p": 213,
        "player_q": 14040,
        "name_p": "Daniel Amartey",
        "name_q": "Andre Ayew",
        "value": -0.04701662488338749,
        "minutes_together": 207.79999999999998
      },
      {
        "player_p": 1363,
        "player_q": 4404,
        "name_p": "Inaki Williams",
        "name_q": "Alidu Seidu",
        "value": -0.04714282388393048,
        "minutes_together": 137.05
      },
      {
        "player_p": 1363,
        "player_q": 14034,
        "name_p": "Inaki Williams",
        "name_q": "Lawrence Ati Zigi",
        "value": -0.04755527598064115,
        "minutes_together": 272.7
      },
      {
        "player_p": 1363,
        "player_q": 5085,
        "name_p": "Inaki Williams",
        "name_q": "Abdul Rahman Baba",
        "value": -0.04856975925668804,
        "minutes_together": 185.1
      },
      {
        "player_p": 213,
        "player_q": 1910,
        "name_p": "Daniel Amartey",
        "name_q": "Mohammed Salisu",
        "value": -0.048676786785764016,
        "minutes_together": 300.73333333333335
      },
      {
        "player_p": 1363,
        "player_q": 1910,
        "name_p": "Inaki Williams",
        "name_q": "Mohammed Salisu",
        "value": -0.05056547635479052,
        "minutes_together": 272.7
      },
      {
        "player_p": 213,
        "player_q": 1363,
        "name_p": "Daniel Amartey",
        "name_q": "Inaki Williams",
        "value": -0.05249311727594312,
        "minutes_together": 272.7
      }
    ],
    "path": "assets/figures/team_383_jdi90.png"
  },
  {
    "team_id": "384",
    "team_name": "Wales",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_384_joi90.png",
    "n_pairs": 54,
    "median": 0.015153900873427729,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 286,
        "name": "Chris Mepham",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17799
      },
      {
        "player_id": 2083,
        "name": "Joe Rodon",
        "position": "MCB",
        "x": 34.0,
        "y": 22.5,
        "row": 4,
        "col": 2,
        "on_seconds": 17799
      },
      {
        "player_id": 8062,
        "name": "Aaron Ramsey",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 16883
      },
      {
        "player_id": 1931,
        "name": "Ethan Ampadu",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 15930
      },
      {
        "player_id": 71,
        "name": "Ben Davies",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 15675
      },
      {
        "player_id": 1698,
        "name": "Gareth Bale",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 15188
      },
      {
        "player_id": 7966,
        "name": "Kieffer Moore",
        "position": "CF",
        "x": 6.8,
        "y": 92.5,
        "row": 0,
        "col": 0,
        "on_seconds": 14846
      },
      {
        "player_id": 589,
        "name": "Neco Williams",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 12979
      },
      {
        "player_id": 6018,
        "name": "Connor Roberts",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 12931
      },
      {
        "player_id": 462,
        "name": "Wayne Hennessey",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 12159
      },
      {
        "player_id": 137,
        "name": "Daniel James",
        "position": "CF",
        "x": 61.199999999999996,
        "y": 92.5,
        "row": 0,
        "col": 4,
        "on_seconds": 10241
      }
    ],
    "pairs": [
      {
        "player_p": 137,
        "player_q": 286,
        "name_p": "Daniel James",
        "name_q": "Chris Mepham",
        "value": 0.5109051285058965,
        "minutes_together": 170.68333333333334
      },
      {
        "player_p": 71,
        "player_q": 8062,
        "name_p": "Ben Davies",
        "name_q": "Aaron Ramsey",
        "value": 0.31841819979432856,
        "minutes_together": 245.98333333333332
      },
      {
        "player_p": 2083,
        "player_q": 8062,
        "name_p": "Joe Rodon",
        "name_q": "Aaron Ramsey",
        "value": 0.29851529671852595,
        "minutes_together": 281.3833333333333
      },
      {
        "player_p": 589,
        "player_q": 7966,
        "name_p": "Neco Williams",
        "name_q": "Kieffer Moore",
        "value": 0.09638154024472681,
        "minutes_together": 167.1
      },
      {
        "player_p": 286,
        "player_q": 2083,
        "name_p": "Chris Mepham",
        "name_q": "Joe Rodon",
        "value": 0.06107195879311736,
        "minutes_together": 296.65
      },
      {
        "player_p": 1931,
        "player_q": 8062,
        "name_p": "Ethan Ampadu",
        "name_q": "Aaron Ramsey",
        "value": 0.057276148759653804,
        "minutes_together": 265.5
      },
      {
        "player_p": 589,
        "player_q": 6018,
        "name_p": "Neco Williams",
        "name_q": "Connor Roberts",
        "value": 0.05153221864795876,
        "minutes_together": 135.18333333333334
      },
      {
        "player_p": 286,
        "player_q": 6018,
        "name_p": "Chris Mepham",
        "name_q": "Connor Roberts",
        "value": 0.04628845597733144,
        "minutes_together": 215.51666666666665
      },
      {
        "player_p": 589,
        "player_q": 1931,
        "name_p": "Neco Williams",
        "name_q": "Ethan Ampadu",
        "value": 0.045310288938364085,
        "minutes_together": 191.03333333333333
      },
      {
        "player_p": 462,
        "player_q": 8062,
        "name_p": "Wayne Hennessey",
        "name_q": "Aaron Ramsey",
        "value": 0.043085979188209306,
        "minutes_together": 187.38333333333333
      },
      {
        "player_p": 462,
        "player_q": 589,
        "name_p": "Wayne Hennessey",
        "name_q": "Neco Williams",
        "value": 0.04098859801731671,
        "minutes_together": 180.43333333333334
      },
      {
        "player_p": 71,
        "player_q": 1931,
        "name_p": "Ben Davies",
        "name_q": "Ethan Ampadu",
        "value": 0.03916341757106079,
        "minutes_together": 230.1
      },
      {
        "player_p": 589,
        "player_q": 1698,
        "name_p": "Neco Williams",
        "name_q": "Gareth Bale",
        "value": 0.03532053236256105,
        "minutes_together": 216.31666666666666
      },
      {
        "player_p": 71,
        "player_q": 6018,
        "name_p": "Ben Davies",
        "name_q": "Connor Roberts",
        "value": 0.033858372256535846,
        "minutes_together": 180.11666666666667
      },
      {
        "player_p": 286,
        "player_q": 1698,
        "name_p": "Chris Mepham",
        "name_q": "Gareth Bale",
        "value": 0.03345733507526992,
        "minutes_together": 253.13333333333333
      },
      {
        "player_p": 462,
        "player_q": 1931,
        "name_p": "Wayne Hennessey",
        "name_q": "Ethan Ampadu",
        "value": 0.03286053169228665,
        "minutes_together": 171.5
      },
      {
        "player_p": 71,
        "player_q": 2083,
        "name_p": "Ben Davies",
        "name_q": "Joe Rodon",
        "value": 0.03127459273544788,
        "minutes_together": 261.25
      },
      {
        "player_p": 286,
        "player_q": 7966,
        "name_p": "Chris Mepham",
        "name_q": "Kieffer Moore",
        "value": 0.02936460056269557,
        "minutes_together": 247.43333333333334
      },
      {
        "player_p": 137,
        "player_q": 7966,
        "name_p": "Daniel James",
        "name_q": "Kieffer Moore",
        "value": 0.025654592385295855,
        "minutes_together": 121.46666666666667
      },
      {
        "player_p": 71,
        "player_q": 7966,
        "name_p": "Ben Davies",
        "name_q": "Kieffer Moore",
        "value": 0.025491456892345186,
        "minutes_together": 212.03333333333333
      },
      {
        "player_p": 1698,
        "player_q": 1931,
        "name_p": "Gareth Bale",
        "name_q": "Ethan Ampadu",
        "value": 0.02347839616066992,
        "minutes_together": 221.98333333333335
      },
      {
        "player_p": 137,
        "player_q": 1698,
        "name_p": "Daniel James",
        "name_q": "Gareth Bale",
        "value": 0.023248025901645868,
        "minutes_together": 144.93333333333334
      },
      {
        "player_p": 71,
        "player_q": 137,
        "name_p": "Ben Davies",
        "name_q": "Daniel James",
        "value": 0.023197668776858353,
        "minutes_together": 153.05
      },
      {
        "player_p": 71,
        "player_q": 462,
        "name_p": "Ben Davies",
        "name_q": "Wayne Hennessey",
        "value": 0.023149232598582172,
        "minutes_together": 202.64999999999998
      },
      {
        "player_p": 286,
        "player_q": 1931,
        "name_p": "Chris Mepham",
        "name_q": "Ethan Ampadu",
        "value": 0.022321094237388647,
        "minutes_together": 265.5
      },
      {
        "player_p": 71,
        "player_q": 589,
        "name_p": "Ben Davies",
        "name_q": "Neco Williams",
        "value": 0.01958940671182452,
        "minutes_together": 216.31666666666666
      },
      {
        "player_p": 462,
        "player_q": 6018,
        "name_p": "Wayne Hennessey",
        "name_q": "Connor Roberts",
        "value": 0.015417145876328002,
        "minutes_together": 157.4
      },
      {
        "player_p": 286,
        "player_q": 462,
        "name_p": "Chris Mepham",
        "name_q": "Wayne Hennessey",
        "value": 0.014890655870527457,
        "minutes_together": 202.64999999999998
      },
      {
        "player_p": 71,
        "player_q": 286,
        "name_p": "Ben Davies",
        "name_q": "Chris Mepham",
        "value": 0.013977924398992899,
        "minutes_together": 261.25
      },
      {
        "player_p": 589,
        "player_q": 8062,
        "name_p": "Neco Williams",
        "name_q": "Aaron Ramsey",
        "value": 0.013371748292030713,
        "minutes_together": 201.04999999999998
      },
      {
        "player_p": 137,
        "player_q": 6018,
        "name_p": "Daniel James",
        "name_q": "Connor Roberts",
        "value": 0.009216418700709947,
        "minutes_together": 89.56666666666666
      },
      {
        "player_p": 1931,
        "player_q": 6018,
        "name_p": "Ethan Ampadu",
        "name_q": "Connor Roberts",
        "value": 0.009038085855213752,
        "minutes_together": 209.65
      },
      {
        "player_p": 1931,
        "player_q": 7966,
        "name_p": "Ethan Ampadu",
        "name_q": "Kieffer Moore",
        "value": 0.008927110632792671,
        "minutes_together": 216.28333333333333
      },
      {
        "player_p": 137,
        "player_q": 1931,
        "name_p": "Daniel James",
        "name_q": "Ethan Ampadu",
        "value": 0.008637066025154095,
        "minutes_together": 145.4
      },
      {
        "player_p": 1698,
        "player_q": 2083,
        "name_p": "Gareth Bale",
        "name_q": "Joe Rodon",
        "value": 0.0054607641265429765,
        "minutes_together": 253.13333333333333
      },
      {
        "player_p": 7966,
        "player_q": 8062,
        "name_p": "Kieffer Moore",
        "name_q": "Aaron Ramsey",
        "value": 0.00527605861321165,
        "minutes_together": 232.16666666666666
      },
      {
        "player_p": 137,
        "player_q": 2083,
        "name_p": "Daniel James",
        "name_q": "Joe Rodon",
        "value": 0.0029738911494748108,
        "minutes_together": 170.68333333333334
      },
      {
        "player_p": 462,
        "player_q": 7966,
        "name_p": "Wayne Hennessey",
        "name_q": "Kieffer Moore",
        "value": 0.0022580513050626566,
        "minutes_together": 153.43333333333334
      },
      {
        "player_p": 2083,
        "player_q": 7966,
        "name_p": "Joe Rodon",
        "name_q": "Kieffer Moore",
        "value": 0.0013072383939288744,
        "minutes_together": 247.43333333333334
      },
      {
        "player_p": 71,
        "player_q": 1698,
        "name_p": "Ben Davies",
        "name_q": "Gareth Bale",
        "value": 0.0011605467365080723,
        "minutes_together": 253.13333333333333
      },
      {
        "player_p": 137,
        "player_q": 589,
        "name_p": "Daniel James",
        "name_q": "Neco Williams",
        "value": 0.0002860485343296875,
        "minutes_together": 130.33333333333334
      },
      {
        "player_p": 6018,
        "player_q": 8062,
        "name_p": "Connor Roberts",
        "name_q": "Aaron Ramsey",
        "value": -0.0011722676572341563,
        "minutes_together": 215.51666666666665
      },
      {
        "player_p": 6018,
        "player_q": 7966,
        "name_p": "Connor Roberts",
        "name_q": "Kieffer Moore",
        "value": -0.001995773238214106,
        "minutes_together": 166.3
      },
      {
        "player_p": 137,
        "player_q": 8062,
        "name_p": "Daniel James",
        "name_q": "Aaron Ramsey",
        "value": -0.0025484663555451663,
        "minutes_together": 155.41666666666669
      },
      {
        "player_p": 589,
        "player_q": 2083,
        "name_p": "Neco Williams",
        "name_q": "Joe Rodon",
        "value": -0.0035419416596971665,
        "minutes_together": 216.31666666666666
      },
      {
        "player_p": 1931,
        "player_q": 2083,
        "name_p": "Ethan Ampadu",
        "name_q": "Joe Rodon",
        "value": -0.004292597705536345,
        "minutes_together": 265.5
      },
      {
        "player_p": 1698,
        "player_q": 8062,
        "name_p": "Gareth Bale",
        "name_q": "Aaron Ramsey",
        "value": -0.006661340175383673,
        "minutes_together": 237.86666666666667
      },
      {
        "player_p": 137,
        "player_q": 462,
        "name_p": "Daniel James",
        "name_q": "Wayne Hennessey",
        "value": -0.006730960247667434,
        "minutes_together": 94.45
      },
      {
        "player_p": 286,
        "player_q": 589,
        "name_p": "Chris Mepham",
        "name_q": "Neco Williams",
        "value": -0.00842495797895109,
        "minutes_together": 216.31666666666666
      },
      {
        "player_p": 1698,
        "player_q": 7966,
        "name_p": "Gareth Bale",
        "name_q": "Kieffer Moore",
        "value": -0.008622980099454471,
        "minutes_together": 203.91666666666666
      },
      {
        "player_p": 1698,
        "player_q": 6018,
        "name_p": "Gareth Bale",
        "name_q": "Connor Roberts",
        "value": -0.015261847228396217,
        "minutes_together": 172.0
      },
      {
        "player_p": 462,
        "player_q": 2083,
        "name_p": "Wayne Hennessey",
        "name_q": "Joe Rodon",
        "value": -0.015274729415003338,
        "minutes_together": 202.64999999999998
      },
      {
        "player_p": 2083,
        "player_q": 6018,
        "name_p": "Joe Rodon",
        "name_q": "Connor Roberts",
        "value": -0.021560537214814858,
        "minutes_together": 215.51666666666665
      },
      {
        "player_p": 286,
        "player_q": 8062,
        "name_p": "Chris Mepham",
        "name_q": "Aaron Ramsey",
        "value": -0.03540105230051265,
        "minutes_together": 281.3833333333333
      }
    ],
    "path": "assets/figures/team_384_joi90.png"
  },
  {
    "team_id": "384",
    "team_name": "Wales",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_384_jdi90.png",
    "n_pairs": 55,
    "median": 0.01563309386390262,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 286,
        "name": "Chris Mepham",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17799
      },
      {
        "player_id": 2083,
        "name": "Joe Rodon",
        "position": "MCB",
        "x": 34.0,
        "y": 22.5,
        "row": 4,
        "col": 2,
        "on_seconds": 17799
      },
      {
        "player_id": 8062,
        "name": "Aaron Ramsey",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 16883
      },
      {
        "player_id": 1931,
        "name": "Ethan Ampadu",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 15930
      },
      {
        "player_id": 71,
        "name": "Ben Davies",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 15675
      },
      {
        "player_id": 1698,
        "name": "Gareth Bale",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 15188
      },
      {
        "player_id": 7966,
        "name": "Kieffer Moore",
        "position": "CF",
        "x": 6.8,
        "y": 92.5,
        "row": 0,
        "col": 0,
        "on_seconds": 14846
      },
      {
        "player_id": 589,
        "name": "Neco Williams",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 12979
      },
      {
        "player_id": 6018,
        "name": "Connor Roberts",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 12931
      },
      {
        "player_id": 462,
        "name": "Wayne Hennessey",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 12159
      },
      {
        "player_id": 137,
        "name": "Daniel James",
        "position": "CF",
        "x": 61.199999999999996,
        "y": 92.5,
        "row": 0,
        "col": 4,
        "on_seconds": 10241
      }
    ],
    "pairs": [
      {
        "player_p": 462,
        "player_q": 2083,
        "name_p": "Wayne Hennessey",
        "name_q": "Joe Rodon",
        "value": 0.04614699196243781,
        "minutes_together": 202.64999999999998
      },
      {
        "player_p": 1931,
        "player_q": 2083,
        "name_p": "Ethan Ampadu",
        "name_q": "Joe Rodon",
        "value": 0.03707593813426459,
        "minutes_together": 265.5
      },
      {
        "player_p": 286,
        "player_q": 2083,
        "name_p": "Chris Mepham",
        "name_q": "Joe Rodon",
        "value": 0.03590463356262205,
        "minutes_together": 296.65
      },
      {
        "player_p": 71,
        "player_q": 2083,
        "name_p": "Ben Davies",
        "name_q": "Joe Rodon",
        "value": 0.0351315477828499,
        "minutes_together": 261.25
      },
      {
        "player_p": 2083,
        "player_q": 8062,
        "name_p": "Joe Rodon",
        "name_q": "Aaron Ramsey",
        "value": 0.03478610452989286,
        "minutes_together": 281.3833333333333
      },
      {
        "player_p": 589,
        "player_q": 2083,
        "name_p": "Neco Williams",
        "name_q": "Joe Rodon",
        "value": 0.03408129384861361,
        "minutes_together": 216.31666666666666
      },
      {
        "player_p": 2083,
        "player_q": 6018,
        "name_p": "Joe Rodon",
        "name_q": "Connor Roberts",
        "value": 0.03070980649388572,
        "minutes_together": 215.51666666666665
      },
      {
        "player_p": 462,
        "player_q": 1931,
        "name_p": "Wayne Hennessey",
        "name_q": "Ethan Ampadu",
        "value": 0.03036602704271853,
        "minutes_together": 171.5
      },
      {
        "player_p": 286,
        "player_q": 462,
        "name_p": "Chris Mepham",
        "name_q": "Wayne Hennessey",
        "value": 0.029290814408180717,
        "minutes_together": 202.64999999999998
      },
      {
        "player_p": 462,
        "player_q": 8062,
        "name_p": "Wayne Hennessey",
        "name_q": "Aaron Ramsey",
        "value": 0.028959451632268953,
        "minutes_together": 187.38333333333333
      },
      {
        "player_p": 286,
        "player_q": 1931,
        "name_p": "Chris Mepham",
        "name_q": "Ethan Ampadu",
        "value": 0.025427419495329905,
        "minutes_together": 265.5
      },
      {
        "player_p": 1931,
        "player_q": 8062,
        "name_p": "Ethan Ampadu",
        "name_q": "Aaron Ramsey",
        "value": 0.02525137862792058,
        "minutes_together": 265.5
      },
      {
        "player_p": 71,
        "player_q": 462,
        "name_p": "Ben Davies",
        "name_q": "Wayne Hennessey",
        "value": 0.024966248097789304,
        "minutes_together": 202.64999999999998
      },
      {
        "player_p": 286,
        "player_q": 8062,
        "name_p": "Chris Mepham",
        "name_q": "Aaron Ramsey",
        "value": 0.023956275441837732,
        "minutes_together": 281.3833333333333
      },
      {
        "player_p": 71,
        "player_q": 286,
        "name_p": "Ben Davies",
        "name_q": "Chris Mepham",
        "value": 0.02245007297961099,
        "minutes_together": 261.25
      },
      {
        "player_p": 71,
        "player_q": 1931,
        "name_p": "Ben Davies",
        "name_q": "Ethan Ampadu",
        "value": 0.022115747902589144,
        "minutes_together": 230.1
      },
      {
        "player_p": 2083,
        "player_q": 7966,
        "name_p": "Joe Rodon",
        "name_q": "Kieffer Moore",
        "value": 0.021575923938592492,
        "minutes_together": 247.43333333333334
      },
      {
        "player_p": 137,
        "player_q": 462,
        "name_p": "Daniel James",
        "name_q": "Wayne Hennessey",
        "value": 0.021470727144081065,
        "minutes_together": 94.45
      },
      {
        "player_p": 1698,
        "player_q": 2083,
        "name_p": "Gareth Bale",
        "name_q": "Joe Rodon",
        "value": 0.0212645091643631,
        "minutes_together": 253.13333333333333
      },
      {
        "player_p": 71,
        "player_q": 8062,
        "name_p": "Ben Davies",
        "name_q": "Aaron Ramsey",
        "value": 0.021102074116397983,
        "minutes_together": 245.98333333333332
      },
      {
        "player_p": 462,
        "player_q": 6018,
        "name_p": "Wayne Hennessey",
        "name_q": "Connor Roberts",
        "value": 0.021021280162233244,
        "minutes_together": 157.4
      },
      {
        "player_p": 1931,
        "player_q": 6018,
        "name_p": "Ethan Ampadu",
        "name_q": "Connor Roberts",
        "value": 0.019698335661242565,
        "minutes_together": 209.65
      },
      {
        "player_p": 1931,
        "player_q": 7966,
        "name_p": "Ethan Ampadu",
        "name_q": "Kieffer Moore",
        "value": 0.018660415615027792,
        "minutes_together": 216.28333333333333
      },
      {
        "player_p": 286,
        "player_q": 6018,
        "name_p": "Chris Mepham",
        "name_q": "Connor Roberts",
        "value": 0.018515941789153213,
        "minutes_together": 215.51666666666665
      },
      {
        "player_p": 6018,
        "player_q": 8062,
        "name_p": "Connor Roberts",
        "name_q": "Aaron Ramsey",
        "value": 0.018187609903854596,
        "minutes_together": 215.51666666666665
      },
      {
        "player_p": 71,
        "player_q": 6018,
        "name_p": "Ben Davies",
        "name_q": "Connor Roberts",
        "value": 0.016631692455096832,
        "minutes_together": 180.11666666666667
      },
      {
        "player_p": 7966,
        "player_q": 8062,
        "name_p": "Kieffer Moore",
        "name_q": "Aaron Ramsey",
        "value": 0.016146771566168176,
        "minutes_together": 232.16666666666666
      },
      {
        "player_p": 286,
        "player_q": 589,
        "name_p": "Chris Mepham",
        "name_q": "Neco Williams",
        "value": 0.01563309386390262,
        "minutes_together": 216.31666666666666
      },
      {
        "player_p": 589,
        "player_q": 1931,
        "name_p": "Neco Williams",
        "name_q": "Ethan Ampadu",
        "value": 0.014855683672369216,
        "minutes_together": 191.03333333333333
      },
      {
        "player_p": 286,
        "player_q": 7966,
        "name_p": "Chris Mepham",
        "name_q": "Kieffer Moore",
        "value": 0.014451512664667576,
        "minutes_together": 247.43333333333334
      },
      {
        "player_p": 589,
        "player_q": 8062,
        "name_p": "Neco Williams",
        "name_q": "Aaron Ramsey",
        "value": 0.014299481261902055,
        "minutes_together": 201.04999999999998
      },
      {
        "player_p": 462,
        "player_q": 589,
        "name_p": "Wayne Hennessey",
        "name_q": "Neco Williams",
        "value": 0.013762656577819627,
        "minutes_together": 180.43333333333334
      },
      {
        "player_p": 462,
        "player_q": 7966,
        "name_p": "Wayne Hennessey",
        "name_q": "Kieffer Moore",
        "value": 0.012798361615539306,
        "minutes_together": 153.43333333333334
      },
      {
        "player_p": 462,
        "player_q": 1698,
        "name_p": "Wayne Hennessey",
        "name_q": "Gareth Bale",
        "value": 0.011345212824955007,
        "minutes_together": 202.64999999999998
      },
      {
        "player_p": 71,
        "player_q": 589,
        "name_p": "Ben Davies",
        "name_q": "Neco Williams",
        "value": 0.010691651870527306,
        "minutes_together": 216.31666666666666
      },
      {
        "player_p": 71,
        "player_q": 7966,
        "name_p": "Ben Davies",
        "name_q": "Kieffer Moore",
        "value": 0.010653621706850781,
        "minutes_together": 212.03333333333333
      },
      {
        "player_p": 6018,
        "player_q": 7966,
        "name_p": "Connor Roberts",
        "name_q": "Kieffer Moore",
        "value": 0.010575779589024512,
        "minutes_together": 166.3
      },
      {
        "player_p": 1698,
        "player_q": 1931,
        "name_p": "Gareth Bale",
        "name_q": "Ethan Ampadu",
        "value": 0.008767106205966031,
        "minutes_together": 221.98333333333335
      },
      {
        "player_p": 286,
        "player_q": 1698,
        "name_p": "Chris Mepham",
        "name_q": "Gareth Bale",
        "value": 0.008119448371084125,
        "minutes_together": 253.13333333333333
      },
      {
        "player_p": 1698,
        "player_q": 8062,
        "name_p": "Gareth Bale",
        "name_q": "Aaron Ramsey",
        "value": 0.007728190725059479,
        "minutes_together": 237.86666666666667
      },
      {
        "player_p": 589,
        "player_q": 6018,
        "name_p": "Neco Williams",
        "name_q": "Connor Roberts",
        "value": 0.0077151531489720255,
        "minutes_together": 135.18333333333334
      },
      {
        "player_p": 1698,
        "player_q": 6018,
        "name_p": "Gareth Bale",
        "name_q": "Connor Roberts",
        "value": 0.006699751394182305,
        "minutes_together": 172.0
      },
      {
        "player_p": 137,
        "player_q": 2083,
        "name_p": "Daniel James",
        "name_q": "Joe Rodon",
        "value": 0.00335931530283489,
        "minutes_together": 170.68333333333334
      },
      {
        "player_p": 71,
        "player_q": 1698,
        "name_p": "Ben Davies",
        "name_q": "Gareth Bale",
        "value": 0.003305789374832327,
        "minutes_together": 253.13333333333333
      },
      {
        "player_p": 589,
        "player_q": 7966,
        "name_p": "Neco Williams",
        "name_q": "Kieffer Moore",
        "value": 0.003212605085599937,
        "minutes_together": 167.1
      },
      {
        "player_p": 1698,
        "player_q": 7966,
        "name_p": "Gareth Bale",
        "name_q": "Kieffer Moore",
        "value": -0.006126209579546489,
        "minutes_together": 203.91666666666666
      },
      {
        "player_p": 589,
        "player_q": 1698,
        "name_p": "Neco Williams",
        "name_q": "Gareth Bale",
        "value": -0.006658444124079721,
        "minutes_together": 216.31666666666666
      },
      {
        "player_p": 137,
        "player_q": 286,
        "name_p": "Daniel James",
        "name_q": "Chris Mepham",
        "value": -0.008268637325410031,
        "minutes_together": 170.68333333333334
      },
      {
        "player_p": 71,
        "player_q": 137,
        "name_p": "Ben Davies",
        "name_q": "Daniel James",
        "value": -0.008942067131808432,
        "minutes_together": 153.05
      },
      {
        "player_p": 137,
        "player_q": 589,
        "name_p": "Daniel James",
        "name_q": "Neco Williams",
        "value": -0.012830893815321428,
        "minutes_together": 130.33333333333334
      },
      {
        "player_p": 137,
        "player_q": 8062,
        "name_p": "Daniel James",
        "name_q": "Aaron Ramsey",
        "value": -0.015126351575417708,
        "minutes_together": 155.41666666666669
      },
      {
        "player_p": 137,
        "player_q": 1931,
        "name_p": "Daniel James",
        "name_q": "Ethan Ampadu",
        "value": -0.016752144660027446,
        "minutes_together": 145.4
      },
      {
        "player_p": 137,
        "player_q": 6018,
        "name_p": "Daniel James",
        "name_q": "Connor Roberts",
        "value": -0.023864722866945364,
        "minutes_together": 89.56666666666666
      },
      {
        "player_p": 137,
        "player_q": 1698,
        "name_p": "Daniel James",
        "name_q": "Gareth Bale",
        "value": -0.023927100780527157,
        "minutes_together": 144.93333333333334
      },
      {
        "player_p": 137,
        "player_q": 7966,
        "name_p": "Daniel James",
        "name_q": "Kieffer Moore",
        "value": -0.02470989521679222,
        "minutes_together": 121.46666666666667
      }
    ],
    "path": "assets/figures/team_384_jdi90.png"
  },
  {
    "team_id": "385",
    "team_name": "Costa Rica",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_385_joi90.png",
    "n_pairs": 50,
    "median": 0.010987128261509606,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 1593,
        "name": "\u00d3scar Duarte",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17666
      },
      {
        "player_id": 3841,
        "name": "Keylor Navas",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17666
      },
      {
        "player_id": 3316,
        "name": "Joel Campbell",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 17546
      },
      {
        "player_id": 13788,
        "name": "Yeltsin Tejeda",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17212
      },
      {
        "player_id": 13371,
        "name": "Bryan Oviedo",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 16194
      },
      {
        "player_id": 13780,
        "name": "Keysher Fuller",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 16074
      },
      {
        "player_id": 13781,
        "name": "Celso Borges",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 15613
      },
      {
        "player_id": 754,
        "name": "Kendall Waston",
        "position": "MCB",
        "x": 34.0,
        "y": 22.5,
        "row": 4,
        "col": 2,
        "on_seconds": 14623
      },
      {
        "player_id": 649,
        "name": "Francisco Calvo",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 11664
      },
      {
        "player_id": 13782,
        "name": "Anthony Contreras",
        "position": "CF",
        "x": 6.8,
        "y": 92.5,
        "row": 0,
        "col": 0,
        "on_seconds": 7971
      },
      {
        "player_id": 13563,
        "name": "Jewison Bennette",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 7162
      }
    ],
    "pairs": [
      {
        "player_p": 3316,
        "player_q": 13781,
        "name_p": "Joel Campbell",
        "name_q": "Celso Borges",
        "value": 0.9072364133028421,
        "minutes_together": 260.2166666666667
      },
      {
        "player_p": 1593,
        "player_q": 13781,
        "name_p": "\u00d3scar Duarte",
        "name_q": "Celso Borges",
        "value": 0.32695827994497867,
        "minutes_together": 260.2166666666667
      },
      {
        "player_p": 13780,
        "player_q": 13788,
        "name_p": "Keysher Fuller",
        "name_q": "Yeltsin Tejeda",
        "value": 0.3036930514073394,
        "minutes_together": 267.9
      },
      {
        "player_p": 754,
        "player_q": 13780,
        "name_p": "Kendall Waston",
        "name_q": "Keysher Fuller",
        "value": 0.07905789846909934,
        "minutes_together": 217.18333333333334
      },
      {
        "player_p": 754,
        "player_q": 1593,
        "name_p": "Kendall Waston",
        "name_q": "\u00d3scar Duarte",
        "value": 0.07043399487450598,
        "minutes_together": 243.71666666666667
      },
      {
        "player_p": 13780,
        "player_q": 13781,
        "name_p": "Keysher Fuller",
        "name_q": "Celso Borges",
        "value": 0.060299530147600366,
        "minutes_together": 233.68333333333334
      },
      {
        "player_p": 3841,
        "player_q": 13781,
        "name_p": "Keylor Navas",
        "name_q": "Celso Borges",
        "value": 0.05985027071599679,
        "minutes_together": 260.2166666666667
      },
      {
        "player_p": 13563,
        "player_q": 13781,
        "name_p": "Jewison Bennette",
        "name_q": "Celso Borges",
        "value": 0.05670678812102619,
        "minutes_together": 111.83333333333334
      },
      {
        "player_p": 3316,
        "player_q": 13371,
        "name_p": "Joel Campbell",
        "name_q": "Bryan Oviedo",
        "value": 0.03713319293235688,
        "minutes_together": 267.9
      },
      {
        "player_p": 649,
        "player_q": 3316,
        "name_p": "Francisco Calvo",
        "name_q": "Joel Campbell",
        "value": 0.03398777252342214,
        "minutes_together": 192.39999999999998
      },
      {
        "player_p": 649,
        "player_q": 754,
        "name_p": "Francisco Calvo",
        "name_q": "Kendall Waston",
        "value": 0.02315541944375783,
        "minutes_together": 143.68333333333334
      },
      {
        "player_p": 649,
        "player_q": 13371,
        "name_p": "Francisco Calvo",
        "name_q": "Bryan Oviedo",
        "value": 0.02314536473828237,
        "minutes_together": 177.45
      },
      {
        "player_p": 3316,
        "player_q": 13788,
        "name_p": "Joel Campbell",
        "name_q": "Yeltsin Tejeda",
        "value": 0.022991333032467576,
        "minutes_together": 284.8666666666667
      },
      {
        "player_p": 649,
        "player_q": 13781,
        "name_p": "Francisco Calvo",
        "name_q": "Celso Borges",
        "value": 0.022777429870088062,
        "minutes_together": 160.18333333333334
      },
      {
        "player_p": 649,
        "player_q": 3841,
        "name_p": "Francisco Calvo",
        "name_q": "Keylor Navas",
        "value": 0.01967959766163971,
        "minutes_together": 194.39999999999998
      },
      {
        "player_p": 3316,
        "player_q": 3841,
        "name_p": "Joel Campbell",
        "name_q": "Keylor Navas",
        "value": 0.018000034240540957,
        "minutes_together": 292.43333333333334
      },
      {
        "player_p": 3316,
        "player_q": 13563,
        "name_p": "Joel Campbell",
        "name_q": "Jewison Bennette",
        "value": 0.017658958863111772,
        "minutes_together": 117.36666666666667
      },
      {
        "player_p": 13563,
        "player_q": 13782,
        "name_p": "Jewison Bennette",
        "name_q": "Anthony Contreras",
        "value": 0.0175557997731163,
        "minutes_together": 68.4
      },
      {
        "player_p": 3316,
        "player_q": 13782,
        "name_p": "Joel Campbell",
        "name_q": "Anthony Contreras",
        "value": 0.017408359943416572,
        "minutes_together": 132.85
      },
      {
        "player_p": 3316,
        "player_q": 13780,
        "name_p": "Joel Campbell",
        "name_q": "Keysher Fuller",
        "value": 0.01616638669098751,
        "minutes_together": 265.9
      },
      {
        "player_p": 13563,
        "player_q": 13780,
        "name_p": "Jewison Bennette",
        "name_q": "Keysher Fuller",
        "value": 0.015606021016775155,
        "minutes_together": 92.83333333333334
      },
      {
        "player_p": 3841,
        "player_q": 13371,
        "name_p": "Keylor Navas",
        "name_q": "Bryan Oviedo",
        "value": 0.014409686003460149,
        "minutes_together": 269.9
      },
      {
        "player_p": 3841,
        "player_q": 13780,
        "name_p": "Keylor Navas",
        "name_q": "Keysher Fuller",
        "value": 0.014148331885617252,
        "minutes_together": 267.9
      },
      {
        "player_p": 754,
        "player_q": 13781,
        "name_p": "Kendall Waston",
        "name_q": "Celso Borges",
        "value": 0.014003536936423975,
        "minutes_together": 209.5
      },
      {
        "player_p": 13371,
        "player_q": 13788,
        "name_p": "Bryan Oviedo",
        "name_q": "Yeltsin Tejeda",
        "value": 0.012862558002907698,
        "minutes_together": 269.9
      },
      {
        "player_p": 649,
        "player_q": 1593,
        "name_p": "Francisco Calvo",
        "name_q": "\u00d3scar Duarte",
        "value": 0.009111698520111514,
        "minutes_together": 194.39999999999998
      },
      {
        "player_p": 13371,
        "player_q": 13563,
        "name_p": "Bryan Oviedo",
        "name_q": "Jewison Bennette",
        "value": 0.007566197279528948,
        "minutes_together": 111.78333333333333
      },
      {
        "player_p": 13781,
        "player_q": 13782,
        "name_p": "Celso Borges",
        "name_q": "Anthony Contreras",
        "value": 0.00753007201079681,
        "minutes_together": 132.85
      },
      {
        "player_p": 754,
        "player_q": 13782,
        "name_p": "Kendall Waston",
        "name_q": "Anthony Contreras",
        "value": 0.006118954405966922,
        "minutes_together": 82.13333333333333
      },
      {
        "player_p": 13780,
        "player_q": 13782,
        "name_p": "Keysher Fuller",
        "name_q": "Anthony Contreras",
        "value": 0.004978083508195549,
        "minutes_together": 125.26666666666668
      },
      {
        "player_p": 754,
        "player_q": 3841,
        "name_p": "Kendall Waston",
        "name_q": "Keylor Navas",
        "value": 0.004476081963651601,
        "minutes_together": 243.71666666666667
      },
      {
        "player_p": 649,
        "player_q": 13563,
        "name_p": "Francisco Calvo",
        "name_q": "Jewison Bennette",
        "value": 0.0044360820201502765,
        "minutes_together": 92.83333333333334
      },
      {
        "player_p": 1593,
        "player_q": 13371,
        "name_p": "\u00d3scar Duarte",
        "name_q": "Bryan Oviedo",
        "value": 0.003077675736791916,
        "minutes_together": 269.9
      },
      {
        "player_p": 13563,
        "player_q": 13788,
        "name_p": "Jewison Bennette",
        "name_q": "Yeltsin Tejeda",
        "value": 0.0027901113113083117,
        "minutes_together": 111.8
      },
      {
        "player_p": 13371,
        "player_q": 13781,
        "name_p": "Bryan Oviedo",
        "name_q": "Celso Borges",
        "value": 0.0027490944239508975,
        "minutes_together": 252.63333333333333
      },
      {
        "player_p": 754,
        "player_q": 3316,
        "name_p": "Kendall Waston",
        "name_q": "Joel Campbell",
        "value": 0.0026133976659649507,
        "minutes_together": 241.71666666666667
      },
      {
        "player_p": 13782,
        "player_q": 13788,
        "name_p": "Anthony Contreras",
        "name_q": "Yeltsin Tejeda",
        "value": 0.001442517259282619,
        "minutes_together": 125.28333333333333
      },
      {
        "player_p": 13371,
        "player_q": 13780,
        "name_p": "Bryan Oviedo",
        "name_q": "Keysher Fuller",
        "value": 0.0013643372317435622,
        "minutes_together": 250.95
      },
      {
        "player_p": 3841,
        "player_q": 13788,
        "name_p": "Keylor Navas",
        "name_q": "Yeltsin Tejeda",
        "value": 0.0007500927946874906,
        "minutes_together": 286.8666666666667
      },
      {
        "player_p": 1593,
        "player_q": 3316,
        "name_p": "\u00d3scar Duarte",
        "name_q": "Joel Campbell",
        "value": 0.00021692180703566485,
        "minutes_together": 292.43333333333334
      },
      {
        "player_p": 649,
        "player_q": 13782,
        "name_p": "Francisco Calvo",
        "name_q": "Anthony Contreras",
        "value": -0.00041874060347408995,
        "minutes_together": 125.26666666666668
      },
      {
        "player_p": 1593,
        "player_q": 13788,
        "name_p": "\u00d3scar Duarte",
        "name_q": "Yeltsin Tejeda",
        "value": -0.0008128715945170858,
        "minutes_together": 286.8666666666667
      },
      {
        "player_p": 754,
        "player_q": 13371,
        "name_p": "Kendall Waston",
        "name_q": "Bryan Oviedo",
        "value": -0.0014694432625218371,
        "minutes_together": 219.18333333333334
      },
      {
        "player_p": 13781,
        "player_q": 13788,
        "name_p": "Celso Borges",
        "name_q": "Yeltsin Tejeda",
        "value": -0.0025767276345424195,
        "minutes_together": 252.65
      },
      {
        "player_p": 13371,
        "player_q": 13782,
        "name_p": "Bryan Oviedo",
        "name_q": "Anthony Contreras",
        "value": -0.0026116944756276257,
        "minutes_together": 125.26666666666668
      },
      {
        "player_p": 1593,
        "player_q": 13780,
        "name_p": "\u00d3scar Duarte",
        "name_q": "Keysher Fuller",
        "value": -0.0036361013213305703,
        "minutes_together": 267.9
      },
      {
        "player_p": 3841,
        "player_q": 13563,
        "name_p": "Keylor Navas",
        "name_q": "Jewison Bennette",
        "value": -0.004128554515402904,
        "minutes_together": 119.36666666666667
      },
      {
        "player_p": 649,
        "player_q": 13788,
        "name_p": "Francisco Calvo",
        "name_q": "Yeltsin Tejeda",
        "value": -0.004780211476212779,
        "minutes_together": 194.39999999999998
      },
      {
        "player_p": 754,
        "player_q": 13788,
        "name_p": "Kendall Waston",
        "name_q": "Yeltsin Tejeda",
        "value": -0.005323372145847697,
        "minutes_together": 236.15
      },
      {
        "player_p": 1593,
        "player_q": 3841,
        "name_p": "\u00d3scar Duarte",
        "name_q": "Keylor Navas",
        "value": -0.024414986268466502,
        "minutes_together": 294.43333333333334
      }
    ],
    "path": "assets/figures/team_385_joi90.png"
  },
  {
    "team_id": "385",
    "team_name": "Costa Rica",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_385_jdi90.png",
    "n_pairs": 55,
    "median": -0.04952852077477316,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 1593,
        "name": "\u00d3scar Duarte",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17666
      },
      {
        "player_id": 3841,
        "name": "Keylor Navas",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17666
      },
      {
        "player_id": 3316,
        "name": "Joel Campbell",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 17546
      },
      {
        "player_id": 13788,
        "name": "Yeltsin Tejeda",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17212
      },
      {
        "player_id": 13371,
        "name": "Bryan Oviedo",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 16194
      },
      {
        "player_id": 13780,
        "name": "Keysher Fuller",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 16074
      },
      {
        "player_id": 13781,
        "name": "Celso Borges",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 15613
      },
      {
        "player_id": 754,
        "name": "Kendall Waston",
        "position": "MCB",
        "x": 34.0,
        "y": 22.5,
        "row": 4,
        "col": 2,
        "on_seconds": 14623
      },
      {
        "player_id": 649,
        "name": "Francisco Calvo",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 11664
      },
      {
        "player_id": 13782,
        "name": "Anthony Contreras",
        "position": "CF",
        "x": 6.8,
        "y": 92.5,
        "row": 0,
        "col": 0,
        "on_seconds": 7971
      },
      {
        "player_id": 13563,
        "name": "Jewison Bennette",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 7162
      }
    ],
    "pairs": [
      {
        "player_p": 754,
        "player_q": 13782,
        "name_p": "Kendall Waston",
        "name_q": "Anthony Contreras",
        "value": -0.00466325898782656,
        "minutes_together": 82.13333333333333
      },
      {
        "player_p": 649,
        "player_q": 754,
        "name_p": "Francisco Calvo",
        "name_q": "Kendall Waston",
        "value": -0.009349823585314084,
        "minutes_together": 143.68333333333334
      },
      {
        "player_p": 754,
        "player_q": 13371,
        "name_p": "Kendall Waston",
        "name_q": "Bryan Oviedo",
        "value": -0.015361803392395944,
        "minutes_together": 219.18333333333334
      },
      {
        "player_p": 754,
        "player_q": 3841,
        "name_p": "Kendall Waston",
        "name_q": "Keylor Navas",
        "value": -0.016183138469839285,
        "minutes_together": 243.71666666666667
      },
      {
        "player_p": 649,
        "player_q": 3841,
        "name_p": "Francisco Calvo",
        "name_q": "Keylor Navas",
        "value": -0.016741146251840706,
        "minutes_together": 194.39999999999998
      },
      {
        "player_p": 649,
        "player_q": 13371,
        "name_p": "Francisco Calvo",
        "name_q": "Bryan Oviedo",
        "value": -0.017049811769473615,
        "minutes_together": 177.45
      },
      {
        "player_p": 754,
        "player_q": 13780,
        "name_p": "Kendall Waston",
        "name_q": "Keysher Fuller",
        "value": -0.020729485947092088,
        "minutes_together": 217.18333333333334
      },
      {
        "player_p": 649,
        "player_q": 3316,
        "name_p": "Francisco Calvo",
        "name_q": "Joel Campbell",
        "value": -0.02178323769649384,
        "minutes_together": 192.39999999999998
      },
      {
        "player_p": 754,
        "player_q": 1593,
        "name_p": "Kendall Waston",
        "name_q": "\u00d3scar Duarte",
        "value": -0.022097853161650412,
        "minutes_together": 243.71666666666667
      },
      {
        "player_p": 649,
        "player_q": 1593,
        "name_p": "Francisco Calvo",
        "name_q": "\u00d3scar Duarte",
        "value": -0.023571088208063477,
        "minutes_together": 194.39999999999998
      },
      {
        "player_p": 3841,
        "player_q": 13371,
        "name_p": "Keylor Navas",
        "name_q": "Bryan Oviedo",
        "value": -0.025366500607049276,
        "minutes_together": 269.9
      },
      {
        "player_p": 3841,
        "player_q": 13782,
        "name_p": "Keylor Navas",
        "name_q": "Anthony Contreras",
        "value": -0.026394854314527753,
        "minutes_together": 132.85
      },
      {
        "player_p": 754,
        "player_q": 13781,
        "name_p": "Kendall Waston",
        "name_q": "Celso Borges",
        "value": -0.026623937188672817,
        "minutes_together": 209.5
      },
      {
        "player_p": 1593,
        "player_q": 3841,
        "name_p": "\u00d3scar Duarte",
        "name_q": "Keylor Navas",
        "value": -0.027332051510596124,
        "minutes_together": 294.43333333333334
      },
      {
        "player_p": 649,
        "player_q": 13782,
        "name_p": "Francisco Calvo",
        "name_q": "Anthony Contreras",
        "value": -0.028723229481600845,
        "minutes_together": 125.26666666666668
      },
      {
        "player_p": 13371,
        "player_q": 13782,
        "name_p": "Bryan Oviedo",
        "name_q": "Anthony Contreras",
        "value": -0.029420844431379784,
        "minutes_together": 125.26666666666668
      },
      {
        "player_p": 1593,
        "player_q": 13371,
        "name_p": "\u00d3scar Duarte",
        "name_q": "Bryan Oviedo",
        "value": -0.03214319415282403,
        "minutes_together": 269.9
      },
      {
        "player_p": 1593,
        "player_q": 13782,
        "name_p": "\u00d3scar Duarte",
        "name_q": "Anthony Contreras",
        "value": -0.03316944714030783,
        "minutes_together": 132.85
      },
      {
        "player_p": 754,
        "player_q": 13788,
        "name_p": "Kendall Waston",
        "name_q": "Yeltsin Tejeda",
        "value": -0.035597756667123545,
        "minutes_together": 236.15
      },
      {
        "player_p": 3841,
        "player_q": 13780,
        "name_p": "Keylor Navas",
        "name_q": "Keysher Fuller",
        "value": -0.03635444876323369,
        "minutes_together": 267.9
      },
      {
        "player_p": 3316,
        "player_q": 13782,
        "name_p": "Joel Campbell",
        "name_q": "Anthony Contreras",
        "value": -0.0369273954319781,
        "minutes_together": 132.85
      },
      {
        "player_p": 649,
        "player_q": 13780,
        "name_p": "Francisco Calvo",
        "name_q": "Keysher Fuller",
        "value": -0.03698396156936277,
        "minutes_together": 194.39999999999998
      },
      {
        "player_p": 13371,
        "player_q": 13780,
        "name_p": "Bryan Oviedo",
        "name_q": "Keysher Fuller",
        "value": -0.042456400706640834,
        "minutes_together": 250.95
      },
      {
        "player_p": 1593,
        "player_q": 13780,
        "name_p": "\u00d3scar Duarte",
        "name_q": "Keysher Fuller",
        "value": -0.0433642344265261,
        "minutes_together": 267.9
      },
      {
        "player_p": 13780,
        "player_q": 13782,
        "name_p": "Keysher Fuller",
        "name_q": "Anthony Contreras",
        "value": -0.04402623495240893,
        "minutes_together": 125.26666666666668
      },
      {
        "player_p": 649,
        "player_q": 13563,
        "name_p": "Francisco Calvo",
        "name_q": "Jewison Bennette",
        "value": -0.048335045349550486,
        "minutes_together": 92.83333333333334
      },
      {
        "player_p": 3841,
        "player_q": 13781,
        "name_p": "Keylor Navas",
        "name_q": "Celso Borges",
        "value": -0.048734894926818394,
        "minutes_together": 260.2166666666667
      },
      {
        "player_p": 649,
        "player_q": 13781,
        "name_p": "Francisco Calvo",
        "name_q": "Celso Borges",
        "value": -0.04952852077477316,
        "minutes_together": 160.18333333333334
      },
      {
        "player_p": 3841,
        "player_q": 13788,
        "name_p": "Keylor Navas",
        "name_q": "Yeltsin Tejeda",
        "value": -0.05367958585945717,
        "minutes_together": 286.8666666666667
      },
      {
        "player_p": 1593,
        "player_q": 13781,
        "name_p": "\u00d3scar Duarte",
        "name_q": "Celso Borges",
        "value": -0.055564238907116134,
        "minutes_together": 260.2166666666667
      },
      {
        "player_p": 13371,
        "player_q": 13781,
        "name_p": "Bryan Oviedo",
        "name_q": "Celso Borges",
        "value": -0.057151606927336944,
        "minutes_together": 252.63333333333333
      },
      {
        "player_p": 13371,
        "player_q": 13788,
        "name_p": "Bryan Oviedo",
        "name_q": "Yeltsin Tejeda",
        "value": -0.058094081340228206,
        "minutes_together": 269.9
      },
      {
        "player_p": 754,
        "player_q": 3316,
        "name_p": "Kendall Waston",
        "name_q": "Joel Campbell",
        "value": -0.05876926984798539,
        "minutes_together": 241.71666666666667
      },
      {
        "player_p": 649,
        "player_q": 13788,
        "name_p": "Francisco Calvo",
        "name_q": "Yeltsin Tejeda",
        "value": -0.060606152701307064,
        "minutes_together": 194.39999999999998
      },
      {
        "player_p": 1593,
        "player_q": 13788,
        "name_p": "\u00d3scar Duarte",
        "name_q": "Yeltsin Tejeda",
        "value": -0.060947177720431685,
        "minutes_together": 286.8666666666667
      },
      {
        "player_p": 3316,
        "player_q": 3841,
        "name_p": "Joel Campbell",
        "name_q": "Keylor Navas",
        "value": -0.06130763394756281,
        "minutes_together": 292.43333333333334
      },
      {
        "player_p": 3841,
        "player_q": 13563,
        "name_p": "Keylor Navas",
        "name_q": "Jewison Bennette",
        "value": -0.061779169744632614,
        "minutes_together": 119.36666666666667
      },
      {
        "player_p": 13780,
        "player_q": 13781,
        "name_p": "Keysher Fuller",
        "name_q": "Celso Borges",
        "value": -0.0647003307675976,
        "minutes_together": 233.68333333333334
      },
      {
        "player_p": 13563,
        "player_q": 13780,
        "name_p": "Jewison Bennette",
        "name_q": "Keysher Fuller",
        "value": -0.06608770647471848,
        "minutes_together": 92.83333333333334
      },
      {
        "player_p": 13782,
        "player_q": 13788,
        "name_p": "Anthony Contreras",
        "name_q": "Yeltsin Tejeda",
        "value": -0.06663032080547221,
        "minutes_together": 125.28333333333333
      },
      {
        "player_p": 3316,
        "player_q": 13371,
        "name_p": "Joel Campbell",
        "name_q": "Bryan Oviedo",
        "value": -0.06667858313000918,
        "minutes_together": 267.9
      },
      {
        "player_p": 13371,
        "player_q": 13563,
        "name_p": "Bryan Oviedo",
        "name_q": "Jewison Bennette",
        "value": -0.06705555062564666,
        "minutes_together": 111.78333333333333
      },
      {
        "player_p": 1593,
        "player_q": 3316,
        "name_p": "\u00d3scar Duarte",
        "name_q": "Joel Campbell",
        "value": -0.0687264263865039,
        "minutes_together": 292.43333333333334
      },
      {
        "player_p": 13781,
        "player_q": 13782,
        "name_p": "Celso Borges",
        "name_q": "Anthony Contreras",
        "value": -0.0696539413838316,
        "minutes_together": 132.85
      },
      {
        "player_p": 1593,
        "player_q": 13563,
        "name_p": "\u00d3scar Duarte",
        "name_q": "Jewison Bennette",
        "value": -0.07106689010213875,
        "minutes_together": 119.36666666666667
      },
      {
        "player_p": 3316,
        "player_q": 13780,
        "name_p": "Joel Campbell",
        "name_q": "Keysher Fuller",
        "value": -0.07219163021371999,
        "minutes_together": 265.9
      },
      {
        "player_p": 13780,
        "player_q": 13788,
        "name_p": "Keysher Fuller",
        "name_q": "Yeltsin Tejeda",
        "value": -0.07303043223775704,
        "minutes_together": 267.9
      },
      {
        "player_p": 754,
        "player_q": 13563,
        "name_p": "Kendall Waston",
        "name_q": "Jewison Bennette",
        "value": -0.07330111651454817,
        "minutes_together": 68.65
      },
      {
        "player_p": 13781,
        "player_q": 13788,
        "name_p": "Celso Borges",
        "name_q": "Yeltsin Tejeda",
        "value": -0.07880463927995691,
        "minutes_together": 252.65
      },
      {
        "player_p": 3316,
        "player_q": 13781,
        "name_p": "Joel Campbell",
        "name_q": "Celso Borges",
        "value": -0.09348862235359173,
        "minutes_together": 260.2166666666667
      },
      {
        "player_p": 3316,
        "player_q": 13788,
        "name_p": "Joel Campbell",
        "name_q": "Yeltsin Tejeda",
        "value": -0.09379424105684132,
        "minutes_together": 284.8666666666667
      },
      {
        "player_p": 3316,
        "player_q": 13563,
        "name_p": "Joel Campbell",
        "name_q": "Jewison Bennette",
        "value": -0.09934327426627566,
        "minutes_together": 117.36666666666667
      },
      {
        "player_p": 13563,
        "player_q": 13782,
        "name_p": "Jewison Bennette",
        "name_q": "Anthony Contreras",
        "value": -0.10722483092262583,
        "minutes_together": 68.4
      },
      {
        "player_p": 13563,
        "player_q": 13788,
        "name_p": "Jewison Bennette",
        "name_q": "Yeltsin Tejeda",
        "value": -0.10958462408922608,
        "minutes_together": 111.8
      },
      {
        "player_p": 13563,
        "player_q": 13781,
        "name_p": "Jewison Bennette",
        "name_q": "Celso Borges",
        "value": -0.1218688627065247,
        "minutes_together": 111.83333333333334
      }
    ],
    "path": "assets/figures/team_385_jdi90.png"
  },
  {
    "team_id": "386",
    "team_name": "Australia",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_386_joi90.png",
    "n_pairs": 53,
    "median": 0.00930467734334407,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 435,
        "name": "Mathew Ryan",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 23214
      },
      {
        "player_id": 8257,
        "name": "Harry Souttar",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 23214
      },
      {
        "player_id": 13820,
        "name": "Aziz Behich",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 23214
      },
      {
        "player_id": 449,
        "name": "Aaron Mooy",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 23214
      },
      {
        "player_id": 13824,
        "name": "Kye Rowles",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 23214
      },
      {
        "player_id": 8854,
        "name": "Jackson Irvine",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 22425
      },
      {
        "player_id": 13815,
        "name": "Mathew Leckie",
        "position": "RM",
        "x": 47.6,
        "y": 57.5,
        "row": 2,
        "col": 3,
        "on_seconds": 20507
      },
      {
        "player_id": 13819,
        "name": "Mitchell Duke",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 16338
      },
      {
        "player_id": 6967,
        "name": "Riley McGree",
        "position": "CF",
        "x": 6.8,
        "y": 92.5,
        "row": 0,
        "col": 0,
        "on_seconds": 16049
      },
      {
        "player_id": 13823,
        "name": "Craig Goodwin",
        "position": "LM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 14705
      },
      {
        "player_id": 7478,
        "name": "Milos Degenek",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 12117
      }
    ],
    "pairs": [
      {
        "player_p": 13819,
        "player_q": 13823,
        "name_p": "Mitchell Duke",
        "name_q": "Craig Goodwin",
        "value": 0.47733083633498413,
        "minutes_together": 180.3
      },
      {
        "player_p": 13815,
        "player_q": 13823,
        "name_p": "Mathew Leckie",
        "name_q": "Craig Goodwin",
        "value": 0.4189314282927871,
        "minutes_together": 219.25
      },
      {
        "player_p": 449,
        "player_q": 13819,
        "name_p": "Aaron Mooy",
        "name_q": "Mitchell Duke",
        "value": 0.3244131364313585,
        "minutes_together": 272.29999999999995
      },
      {
        "player_p": 8854,
        "player_q": 13820,
        "name_p": "Jackson Irvine",
        "name_q": "Aziz Behich",
        "value": 0.24825518900764243,
        "minutes_together": 373.75
      },
      {
        "player_p": 449,
        "player_q": 8854,
        "name_p": "Aaron Mooy",
        "name_q": "Jackson Irvine",
        "value": 0.23368113404191487,
        "minutes_together": 373.75
      },
      {
        "player_p": 6967,
        "player_q": 13823,
        "name_p": "Riley McGree",
        "name_q": "Craig Goodwin",
        "value": 0.07177274578963594,
        "minutes_together": 184.08333333333334
      },
      {
        "player_p": 6967,
        "player_q": 13820,
        "name_p": "Riley McGree",
        "name_q": "Aziz Behich",
        "value": 0.05294649782567764,
        "minutes_together": 267.48333333333335
      },
      {
        "player_p": 6967,
        "player_q": 8854,
        "name_p": "Riley McGree",
        "name_q": "Jackson Irvine",
        "value": 0.04944328585235955,
        "minutes_together": 267.48333333333335
      },
      {
        "player_p": 435,
        "player_q": 13820,
        "name_p": "Mathew Ryan",
        "name_q": "Aziz Behich",
        "value": 0.04402619979922646,
        "minutes_together": 386.9
      },
      {
        "player_p": 13823,
        "player_q": 13824,
        "name_p": "Craig Goodwin",
        "name_q": "Kye Rowles",
        "value": 0.03950209133081376,
        "minutes_together": 245.08333333333331
      },
      {
        "player_p": 435,
        "player_q": 449,
        "name_p": "Mathew Ryan",
        "name_q": "Aaron Mooy",
        "value": 0.03832686658705528,
        "minutes_together": 386.9
      },
      {
        "player_p": 13820,
        "player_q": 13823,
        "name_p": "Aziz Behich",
        "name_q": "Craig Goodwin",
        "value": 0.036552078079332556,
        "minutes_together": 245.08333333333331
      },
      {
        "player_p": 449,
        "player_q": 6967,
        "name_p": "Aaron Mooy",
        "name_q": "Riley McGree",
        "value": 0.026221353798494405,
        "minutes_together": 267.48333333333335
      },
      {
        "player_p": 8257,
        "player_q": 13819,
        "name_p": "Harry Souttar",
        "name_q": "Mitchell Duke",
        "value": 0.02567454882496773,
        "minutes_together": 272.29999999999995
      },
      {
        "player_p": 8854,
        "player_q": 13823,
        "name_p": "Jackson Irvine",
        "name_q": "Craig Goodwin",
        "value": 0.02503542163067002,
        "minutes_together": 245.08333333333331
      },
      {
        "player_p": 7478,
        "player_q": 13823,
        "name_p": "Milos Degenek",
        "name_q": "Craig Goodwin",
        "value": 0.021845750652304246,
        "minutes_together": 71.2
      },
      {
        "player_p": 435,
        "player_q": 8854,
        "name_p": "Mathew Ryan",
        "name_q": "Jackson Irvine",
        "value": 0.0209768640096825,
        "minutes_together": 373.75
      },
      {
        "player_p": 435,
        "player_q": 7478,
        "name_p": "Mathew Ryan",
        "name_q": "Milos Degenek",
        "value": 0.019426877760679986,
        "minutes_together": 201.95
      },
      {
        "player_p": 8854,
        "player_q": 13824,
        "name_p": "Jackson Irvine",
        "name_q": "Kye Rowles",
        "value": 0.017925792898840723,
        "minutes_together": 373.75
      },
      {
        "player_p": 13815,
        "player_q": 13819,
        "name_p": "Mathew Leckie",
        "name_q": "Mitchell Duke",
        "value": 0.0164816197348023,
        "minutes_together": 272.29999999999995
      },
      {
        "player_p": 435,
        "player_q": 13824,
        "name_p": "Mathew Ryan",
        "name_q": "Kye Rowles",
        "value": 0.01589083249930914,
        "minutes_together": 386.9
      },
      {
        "player_p": 8257,
        "player_q": 8854,
        "name_p": "Harry Souttar",
        "name_q": "Jackson Irvine",
        "value": 0.015782740992013062,
        "minutes_together": 373.75
      },
      {
        "player_p": 8854,
        "player_q": 13815,
        "name_p": "Jackson Irvine",
        "name_q": "Mathew Leckie",
        "value": 0.015136359676803136,
        "minutes_together": 328.6333333333333
      },
      {
        "player_p": 8257,
        "player_q": 13815,
        "name_p": "Harry Souttar",
        "name_q": "Mathew Leckie",
        "value": 0.014737826962448053,
        "minutes_together": 341.7833333333333
      },
      {
        "player_p": 435,
        "player_q": 13823,
        "name_p": "Mathew Ryan",
        "name_q": "Craig Goodwin",
        "value": 0.01210833367844581,
        "minutes_together": 245.08333333333331
      },
      {
        "player_p": 449,
        "player_q": 13823,
        "name_p": "Aaron Mooy",
        "name_q": "Craig Goodwin",
        "value": 0.010868278002174995,
        "minutes_together": 245.08333333333331
      },
      {
        "player_p": 6967,
        "player_q": 13815,
        "name_p": "Riley McGree",
        "name_q": "Mathew Leckie",
        "value": 0.00930467734334407,
        "minutes_together": 267.48333333333335
      },
      {
        "player_p": 449,
        "player_q": 8257,
        "name_p": "Aaron Mooy",
        "name_q": "Harry Souttar",
        "value": 0.009118232013727592,
        "minutes_together": 386.9
      },
      {
        "player_p": 449,
        "player_q": 13824,
        "name_p": "Aaron Mooy",
        "name_q": "Kye Rowles",
        "value": 0.007764062782077946,
        "minutes_together": 386.9
      },
      {
        "player_p": 13819,
        "player_q": 13820,
        "name_p": "Mitchell Duke",
        "name_q": "Aziz Behich",
        "value": 0.007217775554536992,
        "minutes_together": 272.29999999999995
      },
      {
        "player_p": 8257,
        "player_q": 13824,
        "name_p": "Harry Souttar",
        "name_q": "Kye Rowles",
        "value": 0.006923361541360328,
        "minutes_together": 386.9
      },
      {
        "player_p": 7478,
        "player_q": 13815,
        "name_p": "Milos Degenek",
        "name_q": "Mathew Leckie",
        "value": 0.006340626278812722,
        "minutes_together": 182.53333333333333
      },
      {
        "player_p": 435,
        "player_q": 13815,
        "name_p": "Mathew Ryan",
        "name_q": "Mathew Leckie",
        "value": 0.006180481183105899,
        "minutes_together": 341.7833333333333
      },
      {
        "player_p": 435,
        "player_q": 6967,
        "name_p": "Mathew Ryan",
        "name_q": "Riley McGree",
        "value": 0.006080905687347615,
        "minutes_together": 267.48333333333335
      },
      {
        "player_p": 7478,
        "player_q": 13824,
        "name_p": "Milos Degenek",
        "name_q": "Kye Rowles",
        "value": 0.005613763636565781,
        "minutes_together": 201.95
      },
      {
        "player_p": 6967,
        "player_q": 13824,
        "name_p": "Riley McGree",
        "name_q": "Kye Rowles",
        "value": 0.004505327060518906,
        "minutes_together": 267.48333333333335
      },
      {
        "player_p": 8257,
        "player_q": 13820,
        "name_p": "Harry Souttar",
        "name_q": "Aziz Behich",
        "value": 0.004474525799269629,
        "minutes_together": 386.9
      },
      {
        "player_p": 6967,
        "player_q": 8257,
        "name_p": "Riley McGree",
        "name_q": "Harry Souttar",
        "value": 0.002262979903075895,
        "minutes_together": 267.48333333333335
      },
      {
        "player_p": 435,
        "player_q": 8257,
        "name_p": "Mathew Ryan",
        "name_q": "Harry Souttar",
        "value": 0.0022084429208464986,
        "minutes_together": 386.9
      },
      {
        "player_p": 6967,
        "player_q": 7478,
        "name_p": "Riley McGree",
        "name_q": "Milos Degenek",
        "value": 0.001800120366542432,
        "minutes_together": 131.13333333333333
      },
      {
        "player_p": 7478,
        "player_q": 8854,
        "name_p": "Milos Degenek",
        "name_q": "Jackson Irvine",
        "value": 0.0017055661663388797,
        "minutes_together": 189.16666666666669
      },
      {
        "player_p": 13815,
        "player_q": 13824,
        "name_p": "Mathew Leckie",
        "name_q": "Kye Rowles",
        "value": 0.0005517169175918253,
        "minutes_together": 341.7833333333333
      },
      {
        "player_p": 7478,
        "player_q": 13819,
        "name_p": "Milos Degenek",
        "name_q": "Mitchell Duke",
        "value": 9.386031279008878e-06,
        "minutes_together": 153.38333333333333
      },
      {
        "player_p": 435,
        "player_q": 13819,
        "name_p": "Mathew Ryan",
        "name_q": "Mitchell Duke",
        "value": -0.0011919997095430584,
        "minutes_together": 272.29999999999995
      },
      {
        "player_p": 13819,
        "player_q": 13824,
        "name_p": "Mitchell Duke",
        "name_q": "Kye Rowles",
        "value": -0.0026599397635085993,
        "minutes_together": 272.29999999999995
      },
      {
        "player_p": 449,
        "player_q": 13820,
        "name_p": "Aaron Mooy",
        "name_q": "Aziz Behich",
        "value": -0.007035333657054771,
        "minutes_together": 386.9
      },
      {
        "player_p": 449,
        "player_q": 7478,
        "name_p": "Aaron Mooy",
        "name_q": "Milos Degenek",
        "value": -0.00877693957203393,
        "minutes_together": 201.95
      },
      {
        "player_p": 13820,
        "player_q": 13824,
        "name_p": "Aziz Behich",
        "name_q": "Kye Rowles",
        "value": -0.009512220123406691,
        "minutes_together": 386.9
      },
      {
        "player_p": 13815,
        "player_q": 13820,
        "name_p": "Mathew Leckie",
        "name_q": "Aziz Behich",
        "value": -0.011387513531613267,
        "minutes_together": 341.7833333333333
      },
      {
        "player_p": 8854,
        "player_q": 13819,
        "name_p": "Jackson Irvine",
        "name_q": "Mitchell Duke",
        "value": -0.020495316170476213,
        "minutes_together": 272.29999999999995
      },
      {
        "player_p": 7478,
        "player_q": 8257,
        "name_p": "Milos Degenek",
        "name_q": "Harry Souttar",
        "value": -0.024344844701244935,
        "minutes_together": 201.95
      },
      {
        "player_p": 449,
        "player_q": 13815,
        "name_p": "Aaron Mooy",
        "name_q": "Mathew Leckie",
        "value": -0.02436696889191156,
        "minutes_together": 341.7833333333333
      },
      {
        "player_p": 6967,
        "player_q": 13819,
        "name_p": "Riley McGree",
        "name_q": "Mitchell Duke",
        "value": -0.03675940464896189,
        "minutes_together": 250.05
      }
    ],
    "path": "assets/figures/team_386_joi90.png"
  },
  {
    "team_id": "386",
    "team_name": "Australia",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_386_jdi90.png",
    "n_pairs": 55,
    "median": -0.006464040329885883,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 435,
        "name": "Mathew Ryan",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 23214
      },
      {
        "player_id": 8257,
        "name": "Harry Souttar",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 23214
      },
      {
        "player_id": 13820,
        "name": "Aziz Behich",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 23214
      },
      {
        "player_id": 449,
        "name": "Aaron Mooy",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 23214
      },
      {
        "player_id": 13824,
        "name": "Kye Rowles",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 23214
      },
      {
        "player_id": 8854,
        "name": "Jackson Irvine",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 22425
      },
      {
        "player_id": 13815,
        "name": "Mathew Leckie",
        "position": "RM",
        "x": 47.6,
        "y": 57.5,
        "row": 2,
        "col": 3,
        "on_seconds": 20507
      },
      {
        "player_id": 13819,
        "name": "Mitchell Duke",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 16338
      },
      {
        "player_id": 6967,
        "name": "Riley McGree",
        "position": "CF",
        "x": 6.8,
        "y": 92.5,
        "row": 0,
        "col": 0,
        "on_seconds": 16049
      },
      {
        "player_id": 13823,
        "name": "Craig Goodwin",
        "position": "LM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 14705
      },
      {
        "player_id": 7478,
        "name": "Milos Degenek",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 12117
      }
    ],
    "pairs": [
      {
        "player_p": 449,
        "player_q": 7478,
        "name_p": "Aaron Mooy",
        "name_q": "Milos Degenek",
        "value": 0.028900654721887867,
        "minutes_together": 201.95
      },
      {
        "player_p": 7478,
        "player_q": 8854,
        "name_p": "Milos Degenek",
        "name_q": "Jackson Irvine",
        "value": 0.023890532929405954,
        "minutes_together": 189.16666666666669
      },
      {
        "player_p": 7478,
        "player_q": 13823,
        "name_p": "Milos Degenek",
        "name_q": "Craig Goodwin",
        "value": 0.022198168742980563,
        "minutes_together": 71.2
      },
      {
        "player_p": 7478,
        "player_q": 13815,
        "name_p": "Milos Degenek",
        "name_q": "Mathew Leckie",
        "value": 0.017403422571426925,
        "minutes_together": 182.53333333333333
      },
      {
        "player_p": 7478,
        "player_q": 13819,
        "name_p": "Milos Degenek",
        "name_q": "Mitchell Duke",
        "value": 0.014635809573037024,
        "minutes_together": 153.38333333333333
      },
      {
        "player_p": 6967,
        "player_q": 7478,
        "name_p": "Riley McGree",
        "name_q": "Milos Degenek",
        "value": 0.013259531774263415,
        "minutes_together": 131.13333333333333
      },
      {
        "player_p": 7478,
        "player_q": 8257,
        "name_p": "Milos Degenek",
        "name_q": "Harry Souttar",
        "value": 0.012485899214816324,
        "minutes_together": 201.95
      },
      {
        "player_p": 449,
        "player_q": 13819,
        "name_p": "Aaron Mooy",
        "name_q": "Mitchell Duke",
        "value": 0.012034916300754052,
        "minutes_together": 272.29999999999995
      },
      {
        "player_p": 435,
        "player_q": 7478,
        "name_p": "Mathew Ryan",
        "name_q": "Milos Degenek",
        "value": 0.01044688056974167,
        "minutes_together": 201.95
      },
      {
        "player_p": 7478,
        "player_q": 13824,
        "name_p": "Milos Degenek",
        "name_q": "Kye Rowles",
        "value": 0.009994220963992646,
        "minutes_together": 201.95
      },
      {
        "player_p": 7478,
        "player_q": 13820,
        "name_p": "Milos Degenek",
        "name_q": "Aziz Behich",
        "value": 0.008544322318161181,
        "minutes_together": 201.95
      },
      {
        "player_p": 449,
        "player_q": 8854,
        "name_p": "Aaron Mooy",
        "name_q": "Jackson Irvine",
        "value": 0.008022697359213685,
        "minutes_together": 373.75
      },
      {
        "player_p": 449,
        "player_q": 13815,
        "name_p": "Aaron Mooy",
        "name_q": "Mathew Leckie",
        "value": 0.006657817979216921,
        "minutes_together": 341.7833333333333
      },
      {
        "player_p": 449,
        "player_q": 13820,
        "name_p": "Aaron Mooy",
        "name_q": "Aziz Behich",
        "value": 0.004269691537954004,
        "minutes_together": 386.9
      },
      {
        "player_p": 13815,
        "player_q": 13819,
        "name_p": "Mathew Leckie",
        "name_q": "Mitchell Duke",
        "value": 0.004173057993365627,
        "minutes_together": 272.29999999999995
      },
      {
        "player_p": 435,
        "player_q": 449,
        "name_p": "Mathew Ryan",
        "name_q": "Aaron Mooy",
        "value": 0.004100633570078699,
        "minutes_together": 386.9
      },
      {
        "player_p": 449,
        "player_q": 8257,
        "name_p": "Aaron Mooy",
        "name_q": "Harry Souttar",
        "value": 0.0030997996484452583,
        "minutes_together": 386.9
      },
      {
        "player_p": 449,
        "player_q": 13824,
        "name_p": "Aaron Mooy",
        "name_q": "Kye Rowles",
        "value": 0.001510452769872247,
        "minutes_together": 386.9
      },
      {
        "player_p": 8854,
        "player_q": 13819,
        "name_p": "Jackson Irvine",
        "name_q": "Mitchell Duke",
        "value": 0.0011850481927504172,
        "minutes_together": 272.29999999999995
      },
      {
        "player_p": 449,
        "player_q": 13823,
        "name_p": "Aaron Mooy",
        "name_q": "Craig Goodwin",
        "value": -3.094874747667328e-05,
        "minutes_together": 245.08333333333331
      },
      {
        "player_p": 449,
        "player_q": 6967,
        "name_p": "Aaron Mooy",
        "name_q": "Riley McGree",
        "value": -0.0019309570003077233,
        "minutes_together": 267.48333333333335
      },
      {
        "player_p": 8854,
        "player_q": 13815,
        "name_p": "Jackson Irvine",
        "name_q": "Mathew Leckie",
        "value": -0.003224019814413532,
        "minutes_together": 328.6333333333333
      },
      {
        "player_p": 13819,
        "player_q": 13820,
        "name_p": "Mitchell Duke",
        "name_q": "Aziz Behich",
        "value": -0.0036553331093305925,
        "minutes_together": 272.29999999999995
      },
      {
        "player_p": 435,
        "player_q": 13819,
        "name_p": "Mathew Ryan",
        "name_q": "Mitchell Duke",
        "value": -0.004238372591938987,
        "minutes_together": 272.29999999999995
      },
      {
        "player_p": 8257,
        "player_q": 13819,
        "name_p": "Harry Souttar",
        "name_q": "Mitchell Duke",
        "value": -0.004489018932678174,
        "minutes_together": 272.29999999999995
      },
      {
        "player_p": 6967,
        "player_q": 13819,
        "name_p": "Riley McGree",
        "name_q": "Mitchell Duke",
        "value": -0.005496181508138187,
        "minutes_together": 250.05
      },
      {
        "player_p": 8854,
        "player_q": 13820,
        "name_p": "Jackson Irvine",
        "name_q": "Aziz Behich",
        "value": -0.006279418971992045,
        "minutes_together": 373.75
      },
      {
        "player_p": 13819,
        "player_q": 13824,
        "name_p": "Mitchell Duke",
        "name_q": "Kye Rowles",
        "value": -0.006464040329885883,
        "minutes_together": 272.29999999999995
      },
      {
        "player_p": 435,
        "player_q": 8854,
        "name_p": "Mathew Ryan",
        "name_q": "Jackson Irvine",
        "value": -0.006553142997671733,
        "minutes_together": 373.75
      },
      {
        "player_p": 13819,
        "player_q": 13823,
        "name_p": "Mitchell Duke",
        "name_q": "Craig Goodwin",
        "value": -0.007054499595446918,
        "minutes_together": 180.3
      },
      {
        "player_p": 13815,
        "player_q": 13820,
        "name_p": "Mathew Leckie",
        "name_q": "Aziz Behich",
        "value": -0.0072150397255779765,
        "minutes_together": 341.7833333333333
      },
      {
        "player_p": 8257,
        "player_q": 8854,
        "name_p": "Harry Souttar",
        "name_q": "Jackson Irvine",
        "value": -0.007286185355314278,
        "minutes_together": 373.75
      },
      {
        "player_p": 435,
        "player_q": 13815,
        "name_p": "Mathew Ryan",
        "name_q": "Mathew Leckie",
        "value": -0.007566716728546677,
        "minutes_together": 341.7833333333333
      },
      {
        "player_p": 8257,
        "player_q": 13815,
        "name_p": "Harry Souttar",
        "name_q": "Mathew Leckie",
        "value": -0.008959246021988746,
        "minutes_together": 341.7833333333333
      },
      {
        "player_p": 8854,
        "player_q": 13824,
        "name_p": "Jackson Irvine",
        "name_q": "Kye Rowles",
        "value": -0.008987338054670195,
        "minutes_together": 373.75
      },
      {
        "player_p": 6967,
        "player_q": 13815,
        "name_p": "Riley McGree",
        "name_q": "Mathew Leckie",
        "value": -0.00967601921281011,
        "minutes_together": 267.48333333333335
      },
      {
        "player_p": 435,
        "player_q": 13820,
        "name_p": "Mathew Ryan",
        "name_q": "Aziz Behich",
        "value": -0.01012257800056853,
        "minutes_together": 386.9
      },
      {
        "player_p": 13815,
        "player_q": 13823,
        "name_p": "Mathew Leckie",
        "name_q": "Craig Goodwin",
        "value": -0.010147585293225458,
        "minutes_together": 219.25
      },
      {
        "player_p": 8854,
        "player_q": 13823,
        "name_p": "Jackson Irvine",
        "name_q": "Craig Goodwin",
        "value": -0.010567659755606232,
        "minutes_together": 245.08333333333331
      },
      {
        "player_p": 13815,
        "player_q": 13824,
        "name_p": "Mathew Leckie",
        "name_q": "Kye Rowles",
        "value": -0.010615460104109232,
        "minutes_together": 341.7833333333333
      },
      {
        "player_p": 8257,
        "player_q": 13820,
        "name_p": "Harry Souttar",
        "name_q": "Aziz Behich",
        "value": -0.011123411922201959,
        "minutes_together": 386.9
      },
      {
        "player_p": 13820,
        "player_q": 13823,
        "name_p": "Aziz Behich",
        "name_q": "Craig Goodwin",
        "value": -0.011127711210495984,
        "minutes_together": 245.08333333333331
      },
      {
        "player_p": 435,
        "player_q": 8257,
        "name_p": "Mathew Ryan",
        "name_q": "Harry Souttar",
        "value": -0.011292469890077273,
        "minutes_together": 386.9
      },
      {
        "player_p": 435,
        "player_q": 13823,
        "name_p": "Mathew Ryan",
        "name_q": "Craig Goodwin",
        "value": -0.011380833026500541,
        "minutes_together": 245.08333333333331
      },
      {
        "player_p": 13820,
        "player_q": 13824,
        "name_p": "Aziz Behich",
        "name_q": "Kye Rowles",
        "value": -0.012712758800774973,
        "minutes_together": 386.9
      },
      {
        "player_p": 435,
        "player_q": 13824,
        "name_p": "Mathew Ryan",
        "name_q": "Kye Rowles",
        "value": -0.012881816768650288,
        "minutes_together": 386.9
      },
      {
        "player_p": 6967,
        "player_q": 8854,
        "name_p": "Riley McGree",
        "name_q": "Jackson Irvine",
        "value": -0.013521675704079746,
        "minutes_together": 267.48333333333335
      },
      {
        "player_p": 8257,
        "player_q": 13823,
        "name_p": "Harry Souttar",
        "name_q": "Craig Goodwin",
        "value": -0.013786346169648694,
        "minutes_together": 245.08333333333331
      },
      {
        "player_p": 8257,
        "player_q": 13824,
        "name_p": "Harry Souttar",
        "name_q": "Kye Rowles",
        "value": -0.01388265069028371,
        "minutes_together": 386.9
      },
      {
        "player_p": 13823,
        "player_q": 13824,
        "name_p": "Craig Goodwin",
        "name_q": "Kye Rowles",
        "value": -0.014668334018420487,
        "minutes_together": 245.08333333333331
      },
      {
        "player_p": 6967,
        "player_q": 13820,
        "name_p": "Riley McGree",
        "name_q": "Aziz Behich",
        "value": -0.016271631010818452,
        "minutes_together": 267.48333333333335
      },
      {
        "player_p": 435,
        "player_q": 6967,
        "name_p": "Mathew Ryan",
        "name_q": "Riley McGree",
        "value": -0.017112916852233914,
        "minutes_together": 267.48333333333335
      },
      {
        "player_p": 6967,
        "player_q": 8257,
        "name_p": "Riley McGree",
        "name_q": "Harry Souttar",
        "value": -0.01817723804710308,
        "minutes_together": 267.48333333333335
      },
      {
        "player_p": 6967,
        "player_q": 13823,
        "name_p": "Riley McGree",
        "name_q": "Craig Goodwin",
        "value": -0.019886910312882797,
        "minutes_together": 184.08333333333334
      },
      {
        "player_p": 6967,
        "player_q": 13824,
        "name_p": "Riley McGree",
        "name_q": "Kye Rowles",
        "value": -0.01992999724130028,
        "minutes_together": 267.48333333333335
      }
    ],
    "path": "assets/figures/team_386_jdi90.png"
  },
  {
    "team_id": "50",
    "team_name": "England",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_50_joi90.png",
    "n_pairs": 54,
    "median": 0.009141675696268786,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 169,
        "name": "Jordan Pickford",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 29178
      },
      {
        "player_id": 10,
        "name": "John Stones",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 27888
      },
      {
        "player_id": 123,
        "name": "Luke Shaw",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 27428
      },
      {
        "player_id": 118,
        "name": "Harry Maguire",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 27169
      },
      {
        "player_id": 265,
        "name": "Declan Rice",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 26971
      },
      {
        "player_id": 4677,
        "name": "Jude Bellingham",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 26503
      },
      {
        "player_id": 1,
        "name": "Harry Kane",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 25281
      },
      {
        "player_id": 163,
        "name": "Bukayo Saka",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 17388
      },
      {
        "player_id": 47,
        "name": "Jordan Henderson",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 16793
      },
      {
        "player_id": 21,
        "name": "Phil Foden",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 16562
      },
      {
        "player_id": 16,
        "name": "Kyle Walker",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 15088
      }
    ],
    "pairs": [
      {
        "player_p": 1,
        "player_q": 21,
        "name_p": "Harry Kane",
        "name_q": "Phil Foden",
        "value": 0.7508458609265505,
        "minutes_together": 211.08333333333331
      },
      {
        "player_p": 21,
        "player_q": 163,
        "name_p": "Phil Foden",
        "name_q": "Bukayo Saka",
        "value": 0.5985093871043963,
        "minutes_together": 142.63333333333333
      },
      {
        "player_p": 47,
        "player_q": 4677,
        "name_p": "Jordan Henderson",
        "name_q": "Jude Bellingham",
        "value": 0.3649784089978154,
        "minutes_together": 248.31666666666666
      },
      {
        "player_p": 118,
        "player_q": 163,
        "name_p": "Harry Maguire",
        "name_q": "Bukayo Saka",
        "value": 0.30090402316678655,
        "minutes_together": 289.7833333333333
      },
      {
        "player_p": 1,
        "player_q": 4677,
        "name_p": "Harry Kane",
        "name_q": "Jude Bellingham",
        "value": 0.23160892447549486,
        "minutes_together": 376.76666666666665
      },
      {
        "player_p": 1,
        "player_q": 10,
        "name_p": "Harry Kane",
        "name_q": "John Stones",
        "value": 0.2218261913323267,
        "minutes_together": 399.84999999999997
      },
      {
        "player_p": 123,
        "player_q": 4677,
        "name_p": "Luke Shaw",
        "name_q": "Jude Bellingham",
        "value": 0.20758281002796142,
        "minutes_together": 412.55
      },
      {
        "player_p": 16,
        "player_q": 21,
        "name_p": "Kyle Walker",
        "name_q": "Phil Foden",
        "value": 0.13849847853691247,
        "minutes_together": 205.4
      },
      {
        "player_p": 163,
        "player_q": 4677,
        "name_p": "Bukayo Saka",
        "name_q": "Jude Bellingham",
        "value": 0.12054429319629961,
        "minutes_together": 280.55
      },
      {
        "player_p": 21,
        "player_q": 265,
        "name_p": "Phil Foden",
        "name_q": "Declan Rice",
        "value": 0.1125378683545951,
        "minutes_together": 239.25
      },
      {
        "player_p": 118,
        "player_q": 123,
        "name_p": "Harry Maguire",
        "name_q": "Luke Shaw",
        "value": 0.09687703251198977,
        "minutes_together": 423.65
      },
      {
        "player_p": 47,
        "player_q": 163,
        "name_p": "Jordan Henderson",
        "name_q": "Bukayo Saka",
        "value": 0.07590678722384342,
        "minutes_together": 151.91666666666669
      },
      {
        "player_p": 1,
        "player_q": 123,
        "name_p": "Harry Kane",
        "name_q": "Luke Shaw",
        "value": 0.04443030497600908,
        "minutes_together": 421.35
      },
      {
        "player_p": 118,
        "player_q": 265,
        "name_p": "Harry Maguire",
        "name_q": "Declan Rice",
        "value": 0.042162144960533596,
        "minutes_together": 416.0333333333333
      },
      {
        "player_p": 123,
        "player_q": 265,
        "name_p": "Luke Shaw",
        "name_q": "Declan Rice",
        "value": 0.03546054354637333,
        "minutes_together": 449.51666666666665
      },
      {
        "player_p": 16,
        "player_q": 265,
        "name_p": "Kyle Walker",
        "name_q": "Declan Rice",
        "value": 0.03331986744126974,
        "minutes_together": 251.46666666666667
      },
      {
        "player_p": 10,
        "player_q": 169,
        "name_p": "John Stones",
        "name_q": "Jordan Pickford",
        "value": 0.03251545003403462,
        "minutes_together": 464.79999999999995
      },
      {
        "player_p": 10,
        "player_q": 4677,
        "name_p": "John Stones",
        "name_q": "Jude Bellingham",
        "value": 0.03212847716461796,
        "minutes_together": 438.3333333333333
      },
      {
        "player_p": 47,
        "player_q": 118,
        "name_p": "Jordan Henderson",
        "name_q": "Harry Maguire",
        "value": 0.030650045052899682,
        "minutes_together": 279.8833333333333
      },
      {
        "player_p": 10,
        "player_q": 123,
        "name_p": "John Stones",
        "name_q": "Luke Shaw",
        "value": 0.02825082973750853,
        "minutes_together": 435.6333333333333
      },
      {
        "player_p": 10,
        "player_q": 265,
        "name_p": "John Stones",
        "name_q": "Declan Rice",
        "value": 0.027987848914029924,
        "minutes_together": 428.01666666666665
      },
      {
        "player_p": 10,
        "player_q": 118,
        "name_p": "John Stones",
        "name_q": "Harry Maguire",
        "value": 0.027384271317996214,
        "minutes_together": 431.31666666666666
      },
      {
        "player_p": 16,
        "player_q": 4677,
        "name_p": "Kyle Walker",
        "name_q": "Jude Bellingham",
        "value": 0.020564278676289294,
        "minutes_together": 233.20000000000002
      },
      {
        "player_p": 265,
        "player_q": 4677,
        "name_p": "Declan Rice",
        "name_q": "Jude Bellingham",
        "value": 0.019985184105111183,
        "minutes_together": 404.93333333333334
      },
      {
        "player_p": 10,
        "player_q": 47,
        "name_p": "John Stones",
        "name_q": "Jordan Henderson",
        "value": 0.018081758919266427,
        "minutes_together": 274.7833333333333
      },
      {
        "player_p": 123,
        "player_q": 163,
        "name_p": "Luke Shaw",
        "name_q": "Bukayo Saka",
        "value": 0.011616254513039492,
        "minutes_together": 289.8
      },
      {
        "player_p": 1,
        "player_q": 47,
        "name_p": "Harry Kane",
        "name_q": "Jordan Henderson",
        "value": 0.01040955088251517,
        "minutes_together": 242.98333333333335
      },
      {
        "player_p": 123,
        "player_q": 169,
        "name_p": "Luke Shaw",
        "name_q": "Jordan Pickford",
        "value": 0.007873800510022401,
        "minutes_together": 457.1333333333333
      },
      {
        "player_p": 118,
        "player_q": 169,
        "name_p": "Harry Maguire",
        "name_q": "Jordan Pickford",
        "value": 0.007215852456152813,
        "minutes_together": 452.81666666666666
      },
      {
        "player_p": 1,
        "player_q": 169,
        "name_p": "Harry Kane",
        "name_q": "Jordan Pickford",
        "value": 0.0064033811031471745,
        "minutes_together": 421.35
      },
      {
        "player_p": 1,
        "player_q": 118,
        "name_p": "Harry Kane",
        "name_q": "Harry Maguire",
        "value": 0.0038439953324340076,
        "minutes_together": 415.9166666666667
      },
      {
        "player_p": 47,
        "player_q": 169,
        "name_p": "Jordan Henderson",
        "name_q": "Jordan Pickford",
        "value": 0.003814167767735884,
        "minutes_together": 279.8833333333333
      },
      {
        "player_p": 16,
        "player_q": 118,
        "name_p": "Kyle Walker",
        "name_q": "Harry Maguire",
        "value": 0.003561252220821147,
        "minutes_together": 251.46666666666667
      },
      {
        "player_p": 169,
        "player_q": 265,
        "name_p": "Jordan Pickford",
        "name_q": "Declan Rice",
        "value": 0.0034418376723916824,
        "minutes_together": 449.51666666666665
      },
      {
        "player_p": 21,
        "player_q": 169,
        "name_p": "Phil Foden",
        "name_q": "Jordan Pickford",
        "value": 0.0005691198446385995,
        "minutes_together": 276.0333333333333
      },
      {
        "player_p": 16,
        "player_q": 123,
        "name_p": "Kyle Walker",
        "name_q": "Luke Shaw",
        "value": -9.18587377884914e-05,
        "minutes_together": 251.46666666666667
      },
      {
        "player_p": 169,
        "player_q": 4677,
        "name_p": "Jordan Pickford",
        "name_q": "Jude Bellingham",
        "value": -0.0015422785450217769,
        "minutes_together": 441.7166666666667
      },
      {
        "player_p": 10,
        "player_q": 163,
        "name_p": "John Stones",
        "name_q": "Bukayo Saka",
        "value": -0.0024719051856013892,
        "minutes_together": 289.8
      },
      {
        "player_p": 16,
        "player_q": 169,
        "name_p": "Kyle Walker",
        "name_q": "Jordan Pickford",
        "value": -0.0029622452759061036,
        "minutes_together": 251.46666666666667
      },
      {
        "player_p": 1,
        "player_q": 265,
        "name_p": "Harry Kane",
        "name_q": "Declan Rice",
        "value": -0.003408836643572486,
        "minutes_together": 421.35
      },
      {
        "player_p": 47,
        "player_q": 123,
        "name_p": "Jordan Henderson",
        "name_q": "Luke Shaw",
        "value": -0.0037928089814976223,
        "minutes_together": 250.71666666666667
      },
      {
        "player_p": 163,
        "player_q": 265,
        "name_p": "Bukayo Saka",
        "name_q": "Declan Rice",
        "value": -0.0051188575126140615,
        "minutes_together": 289.8
      },
      {
        "player_p": 21,
        "player_q": 118,
        "name_p": "Phil Foden",
        "name_q": "Harry Maguire",
        "value": -0.00708643733869179,
        "minutes_together": 242.56666666666666
      },
      {
        "player_p": 47,
        "player_q": 265,
        "name_p": "Jordan Henderson",
        "name_q": "Declan Rice",
        "value": -0.007289481246526757,
        "minutes_together": 243.10000000000002
      },
      {
        "player_p": 1,
        "player_q": 16,
        "name_p": "Harry Kane",
        "name_q": "Kyle Walker",
        "value": -0.007678261874916028,
        "minutes_together": 251.46666666666667
      },
      {
        "player_p": 21,
        "player_q": 47,
        "name_p": "Phil Foden",
        "name_q": "Jordan Henderson",
        "value": -0.01453851138139677,
        "minutes_together": 236.63333333333333
      },
      {
        "player_p": 10,
        "player_q": 16,
        "name_p": "John Stones",
        "name_q": "Kyle Walker",
        "value": -0.017269120977760094,
        "minutes_together": 229.96666666666667
      },
      {
        "player_p": 10,
        "player_q": 21,
        "name_p": "John Stones",
        "name_q": "Phil Foden",
        "value": -0.021924283441947925,
        "minutes_together": 276.0333333333333
      },
      {
        "player_p": 1,
        "player_q": 163,
        "name_p": "Harry Kane",
        "name_q": "Bukayo Saka",
        "value": -0.024544179553757317,
        "minutes_together": 289.8
      },
      {
        "player_p": 21,
        "player_q": 123,
        "name_p": "Phil Foden",
        "name_q": "Luke Shaw",
        "value": -0.02578199193010873,
        "minutes_together": 246.86666666666667
      },
      {
        "player_p": 21,
        "player_q": 4677,
        "name_p": "Phil Foden",
        "name_q": "Jude Bellingham",
        "value": -0.033125264818124264,
        "minutes_together": 276.0333333333333
      },
      {
        "player_p": 16,
        "player_q": 163,
        "name_p": "Kyle Walker",
        "name_q": "Bukayo Saka",
        "value": -0.03821875411029111,
        "minutes_together": 142.66666666666669
      },
      {
        "player_p": 16,
        "player_q": 47,
        "name_p": "Kyle Walker",
        "name_q": "Jordan Henderson",
        "value": -0.043652891071476296,
        "minutes_together": 216.4
      },
      {
        "player_p": 118,
        "player_q": 4677,
        "name_p": "Harry Maguire",
        "name_q": "Jude Bellingham",
        "value": -0.18309479749800134,
        "minutes_together": 408.23333333333335
      }
    ],
    "path": "assets/figures/team_50_joi90.png"
  },
  {
    "team_id": "50",
    "team_name": "England",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_50_jdi90.png",
    "n_pairs": 55,
    "median": -0.005771325901082317,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 169,
        "name": "Jordan Pickford",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 29178
      },
      {
        "player_id": 10,
        "name": "John Stones",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 27888
      },
      {
        "player_id": 123,
        "name": "Luke Shaw",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 27428
      },
      {
        "player_id": 118,
        "name": "Harry Maguire",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 27169
      },
      {
        "player_id": 265,
        "name": "Declan Rice",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 26971
      },
      {
        "player_id": 4677,
        "name": "Jude Bellingham",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 26503
      },
      {
        "player_id": 1,
        "name": "Harry Kane",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 25281
      },
      {
        "player_id": 163,
        "name": "Bukayo Saka",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 17388
      },
      {
        "player_id": 47,
        "name": "Jordan Henderson",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 16793
      },
      {
        "player_id": 21,
        "name": "Phil Foden",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 16562
      },
      {
        "player_id": 16,
        "name": "Kyle Walker",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 15088
      }
    ],
    "pairs": [
      {
        "player_p": 21,
        "player_q": 163,
        "name_p": "Phil Foden",
        "name_q": "Bukayo Saka",
        "value": 0.04910841658674298,
        "minutes_together": 142.63333333333333
      },
      {
        "player_p": 16,
        "player_q": 163,
        "name_p": "Kyle Walker",
        "name_q": "Bukayo Saka",
        "value": 0.047375527339885495,
        "minutes_together": 142.66666666666669
      },
      {
        "player_p": 47,
        "player_q": 163,
        "name_p": "Jordan Henderson",
        "name_q": "Bukayo Saka",
        "value": 0.03293127399742703,
        "minutes_together": 151.91666666666669
      },
      {
        "player_p": 1,
        "player_q": 163,
        "name_p": "Harry Kane",
        "name_q": "Bukayo Saka",
        "value": 0.025260761070133666,
        "minutes_together": 289.8
      },
      {
        "player_p": 123,
        "player_q": 163,
        "name_p": "Luke Shaw",
        "name_q": "Bukayo Saka",
        "value": 0.02062978696868896,
        "minutes_together": 289.8
      },
      {
        "player_p": 10,
        "player_q": 163,
        "name_p": "John Stones",
        "name_q": "Bukayo Saka",
        "value": 0.01638196978301642,
        "minutes_together": 289.8
      },
      {
        "player_p": 118,
        "player_q": 163,
        "name_p": "Harry Maguire",
        "name_q": "Bukayo Saka",
        "value": 0.01429202317624252,
        "minutes_together": 289.7833333333333
      },
      {
        "player_p": 163,
        "player_q": 169,
        "name_p": "Bukayo Saka",
        "name_q": "Jordan Pickford",
        "value": 0.013710101941000816,
        "minutes_together": 289.8
      },
      {
        "player_p": 1,
        "player_q": 21,
        "name_p": "Harry Kane",
        "name_q": "Phil Foden",
        "value": 0.012644959919428078,
        "minutes_together": 211.08333333333331
      },
      {
        "player_p": 163,
        "player_q": 265,
        "name_p": "Bukayo Saka",
        "name_q": "Declan Rice",
        "value": 0.010194058313328981,
        "minutes_together": 289.8
      },
      {
        "player_p": 16,
        "player_q": 21,
        "name_p": "Kyle Walker",
        "name_q": "Phil Foden",
        "value": 0.009825341345632248,
        "minutes_together": 205.4
      },
      {
        "player_p": 1,
        "player_q": 16,
        "name_p": "Harry Kane",
        "name_q": "Kyle Walker",
        "value": 0.009314466558988096,
        "minutes_together": 251.46666666666667
      },
      {
        "player_p": 163,
        "player_q": 4677,
        "name_p": "Bukayo Saka",
        "name_q": "Jude Bellingham",
        "value": 0.00827936187786057,
        "minutes_together": 280.55
      },
      {
        "player_p": 1,
        "player_q": 47,
        "name_p": "Harry Kane",
        "name_q": "Jordan Henderson",
        "value": 0.005646482780915578,
        "minutes_together": 242.98333333333335
      },
      {
        "player_p": 16,
        "player_q": 123,
        "name_p": "Kyle Walker",
        "name_q": "Luke Shaw",
        "value": 0.0011400874748375444,
        "minutes_together": 251.46666666666667
      },
      {
        "player_p": 21,
        "player_q": 47,
        "name_p": "Phil Foden",
        "name_q": "Jordan Henderson",
        "value": 0.0003206970595615818,
        "minutes_together": 236.63333333333333
      },
      {
        "player_p": 21,
        "player_q": 118,
        "name_p": "Phil Foden",
        "name_q": "Harry Maguire",
        "value": -0.00018719624919130145,
        "minutes_together": 242.56666666666666
      },
      {
        "player_p": 10,
        "player_q": 16,
        "name_p": "John Stones",
        "name_q": "Kyle Walker",
        "value": -0.001345478424989819,
        "minutes_together": 229.96666666666667
      },
      {
        "player_p": 47,
        "player_q": 123,
        "name_p": "Jordan Henderson",
        "name_q": "Luke Shaw",
        "value": -0.001541359578975819,
        "minutes_together": 250.71666666666667
      },
      {
        "player_p": 16,
        "player_q": 118,
        "name_p": "Kyle Walker",
        "name_q": "Harry Maguire",
        "value": -0.0023040895154178287,
        "minutes_together": 251.46666666666667
      },
      {
        "player_p": 16,
        "player_q": 169,
        "name_p": "Kyle Walker",
        "name_q": "Jordan Pickford",
        "value": -0.002646804791632722,
        "minutes_together": 251.46666666666667
      },
      {
        "player_p": 47,
        "player_q": 265,
        "name_p": "Jordan Henderson",
        "name_q": "Declan Rice",
        "value": -0.004480907149193496,
        "minutes_together": 243.10000000000002
      },
      {
        "player_p": 10,
        "player_q": 47,
        "name_p": "John Stones",
        "name_q": "Jordan Henderson",
        "value": -0.004492594993167102,
        "minutes_together": 274.7833333333333
      },
      {
        "player_p": 1,
        "player_q": 123,
        "name_p": "Harry Kane",
        "name_q": "Luke Shaw",
        "value": -0.005123426863590665,
        "minutes_together": 421.35
      },
      {
        "player_p": 16,
        "player_q": 47,
        "name_p": "Kyle Walker",
        "name_q": "Jordan Henderson",
        "value": -0.005405927047999238,
        "minutes_together": 216.4
      },
      {
        "player_p": 47,
        "player_q": 169,
        "name_p": "Jordan Henderson",
        "name_q": "Jordan Pickford",
        "value": -0.0054171466729635255,
        "minutes_together": 279.8833333333333
      },
      {
        "player_p": 16,
        "player_q": 265,
        "name_p": "Kyle Walker",
        "name_q": "Declan Rice",
        "value": -0.005767578853975106,
        "minutes_together": 251.46666666666667
      },
      {
        "player_p": 47,
        "player_q": 118,
        "name_p": "Jordan Henderson",
        "name_q": "Harry Maguire",
        "value": -0.005771325901082317,
        "minutes_together": 279.8833333333333
      },
      {
        "player_p": 16,
        "player_q": 4677,
        "name_p": "Kyle Walker",
        "name_q": "Jude Bellingham",
        "value": -0.007150207252151694,
        "minutes_together": 233.20000000000002
      },
      {
        "player_p": 1,
        "player_q": 118,
        "name_p": "Harry Kane",
        "name_q": "Harry Maguire",
        "value": -0.00993030071412272,
        "minutes_together": 415.9166666666667
      },
      {
        "player_p": 1,
        "player_q": 10,
        "name_p": "Harry Kane",
        "name_q": "John Stones",
        "value": -0.010368067879360862,
        "minutes_together": 399.84999999999997
      },
      {
        "player_p": 1,
        "player_q": 169,
        "name_p": "Harry Kane",
        "name_q": "Jordan Pickford",
        "value": -0.011527697406733633,
        "minutes_together": 421.35
      },
      {
        "player_p": 21,
        "player_q": 123,
        "name_p": "Phil Foden",
        "name_q": "Luke Shaw",
        "value": -0.011565391756081617,
        "minutes_together": 246.86666666666667
      },
      {
        "player_p": 1,
        "player_q": 265,
        "name_p": "Harry Kane",
        "name_q": "Declan Rice",
        "value": -0.011612894365084664,
        "minutes_together": 421.35
      },
      {
        "player_p": 47,
        "player_q": 4677,
        "name_p": "Jordan Henderson",
        "name_q": "Jude Bellingham",
        "value": -0.012724325194261619,
        "minutes_together": 248.31666666666666
      },
      {
        "player_p": 21,
        "player_q": 4677,
        "name_p": "Phil Foden",
        "name_q": "Jude Bellingham",
        "value": -0.015529877109323562,
        "minutes_together": 276.0333333333333
      },
      {
        "player_p": 118,
        "player_q": 123,
        "name_p": "Harry Maguire",
        "name_q": "Luke Shaw",
        "value": -0.01601027411889005,
        "minutes_together": 423.65
      },
      {
        "player_p": 1,
        "player_q": 4677,
        "name_p": "Harry Kane",
        "name_q": "Jude Bellingham",
        "value": -0.017127982704995694,
        "minutes_together": 376.76666666666665
      },
      {
        "player_p": 21,
        "player_q": 265,
        "name_p": "Phil Foden",
        "name_q": "Declan Rice",
        "value": -0.01778932262432438,
        "minutes_together": 239.25
      },
      {
        "player_p": 10,
        "player_q": 21,
        "name_p": "John Stones",
        "name_q": "Phil Foden",
        "value": -0.019692122855311543,
        "minutes_together": 276.0333333333333
      },
      {
        "player_p": 21,
        "player_q": 169,
        "name_p": "Phil Foden",
        "name_q": "Jordan Pickford",
        "value": -0.0203843705738074,
        "minutes_together": 276.0333333333333
      },
      {
        "player_p": 118,
        "player_q": 265,
        "name_p": "Harry Maguire",
        "name_q": "Declan Rice",
        "value": -0.021927155843202536,
        "minutes_together": 416.0333333333333
      },
      {
        "player_p": 10,
        "player_q": 118,
        "name_p": "John Stones",
        "name_q": "Harry Maguire",
        "value": -0.02249110524285713,
        "minutes_together": 431.31666666666666
      },
      {
        "player_p": 118,
        "player_q": 169,
        "name_p": "Harry Maguire",
        "name_q": "Jordan Pickford",
        "value": -0.022772767097443983,
        "minutes_together": 452.81666666666666
      },
      {
        "player_p": 123,
        "player_q": 265,
        "name_p": "Luke Shaw",
        "name_q": "Declan Rice",
        "value": -0.024527191598837053,
        "minutes_together": 449.51666666666665
      },
      {
        "player_p": 10,
        "player_q": 123,
        "name_p": "John Stones",
        "name_q": "Luke Shaw",
        "value": -0.027326747354929726,
        "minutes_together": 435.6333333333333
      },
      {
        "player_p": 123,
        "player_q": 169,
        "name_p": "Luke Shaw",
        "name_q": "Jordan Pickford",
        "value": -0.027626062776244364,
        "minutes_together": 457.1333333333333
      },
      {
        "player_p": 118,
        "player_q": 4677,
        "name_p": "Harry Maguire",
        "name_q": "Jude Bellingham",
        "value": -0.028920021769098872,
        "minutes_together": 408.23333333333335
      },
      {
        "player_p": 123,
        "player_q": 4677,
        "name_p": "Luke Shaw",
        "name_q": "Jude Bellingham",
        "value": -0.030727310318597736,
        "minutes_together": 412.55
      },
      {
        "player_p": 10,
        "player_q": 265,
        "name_p": "John Stones",
        "name_q": "Declan Rice",
        "value": -0.0332103429939054,
        "minutes_together": 428.01666666666665
      },
      {
        "player_p": 169,
        "player_q": 265,
        "name_p": "Jordan Pickford",
        "name_q": "Declan Rice",
        "value": -0.033256960614558476,
        "minutes_together": 449.51666666666665
      },
      {
        "player_p": 10,
        "player_q": 169,
        "name_p": "John Stones",
        "name_q": "Jordan Pickford",
        "value": -0.0362258168892227,
        "minutes_together": 464.79999999999995
      },
      {
        "player_p": 10,
        "player_q": 4677,
        "name_p": "John Stones",
        "name_q": "Jude Bellingham",
        "value": -0.038227027009736146,
        "minutes_together": 438.3333333333333
      },
      {
        "player_p": 265,
        "player_q": 4677,
        "name_p": "Declan Rice",
        "name_q": "Jude Bellingham",
        "value": -0.03863486987959222,
        "minutes_together": 404.93333333333334
      },
      {
        "player_p": 169,
        "player_q": 4677,
        "name_p": "Jordan Pickford",
        "name_q": "Jude Bellingham",
        "value": -0.03930969993772269,
        "minutes_together": 441.7166666666667
      }
    ],
    "path": "assets/figures/team_50_jdi90.png"
  },
  {
    "team_id": "51",
    "team_name": "United States",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_51_joi90.png",
    "n_pairs": 53,
    "median": 0.013455745762837581,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 1971,
        "name": "Tim Ream",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 23470
      },
      {
        "player_id": 940,
        "name": "Matt Turner",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 23470
      },
      {
        "player_id": 1339,
        "name": "Tyler Adams",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 23470
      },
      {
        "player_id": 1973,
        "name": "Antonee Robinson",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 23166
      },
      {
        "player_id": 13121,
        "name": "Yunus Musah",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 21879
      },
      {
        "player_id": 107,
        "name": "Christian Pulisic",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 20615
      },
      {
        "player_id": 1336,
        "name": "Timothy Weah",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 19058
      },
      {
        "player_id": 916,
        "name": "Walker Zimmerman",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 18605
      },
      {
        "player_id": 8343,
        "name": "Sergi\u00f1o Dest",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 18399
      },
      {
        "player_id": 1334,
        "name": "Weston McKennie",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 16376
      },
      {
        "player_id": 5135,
        "name": "Josh Sargent",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 9752
      }
    ],
    "pairs": [
      {
        "player_p": 107,
        "player_q": 1336,
        "name_p": "Christian Pulisic",
        "name_q": "Timothy Weah",
        "value": 0.30428115574179504,
        "minutes_together": 288.85
      },
      {
        "player_p": 107,
        "player_q": 8343,
        "name_p": "Christian Pulisic",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.3003293207024503,
        "minutes_together": 277.8666666666667
      },
      {
        "player_p": 107,
        "player_q": 916,
        "name_p": "Christian Pulisic",
        "name_q": "Walker Zimmerman",
        "value": 0.29777246671378654,
        "minutes_together": 291.2833333333333
      },
      {
        "player_p": 1334,
        "player_q": 8343,
        "name_p": "Weston McKennie",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.11688010891644904,
        "minutes_together": 272.93333333333334
      },
      {
        "player_p": 1334,
        "player_q": 13121,
        "name_p": "Weston McKennie",
        "name_q": "Yunus Musah",
        "value": 0.07602391979138726,
        "minutes_together": 272.93333333333334
      },
      {
        "player_p": 1339,
        "player_q": 5135,
        "name_p": "Tyler Adams",
        "name_q": "Josh Sargent",
        "value": 0.07268303952993121,
        "minutes_together": 162.53333333333336
      },
      {
        "player_p": 107,
        "player_q": 1334,
        "name_p": "Christian Pulisic",
        "name_q": "Weston McKennie",
        "value": 0.07066055250810727,
        "minutes_together": 260.43333333333334
      },
      {
        "player_p": 107,
        "player_q": 13121,
        "name_p": "Christian Pulisic",
        "name_q": "Yunus Musah",
        "value": 0.0652688160475354,
        "minutes_together": 317.06666666666666
      },
      {
        "player_p": 1336,
        "player_q": 8343,
        "name_p": "Timothy Weah",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.06491009055537496,
        "minutes_together": 298.2833333333333
      },
      {
        "player_p": 1339,
        "player_q": 13121,
        "name_p": "Tyler Adams",
        "name_q": "Yunus Musah",
        "value": 0.06170423710616373,
        "minutes_together": 364.65
      },
      {
        "player_p": 1334,
        "player_q": 1339,
        "name_p": "Weston McKennie",
        "name_q": "Tyler Adams",
        "value": 0.05925258089288249,
        "minutes_together": 272.93333333333334
      },
      {
        "player_p": 107,
        "player_q": 5135,
        "name_p": "Christian Pulisic",
        "name_q": "Josh Sargent",
        "value": 0.05362753289765156,
        "minutes_together": 137.91666666666666
      },
      {
        "player_p": 916,
        "player_q": 1971,
        "name_p": "Walker Zimmerman",
        "name_q": "Tim Ream",
        "value": 0.052937054672265005,
        "minutes_together": 310.0833333333333
      },
      {
        "player_p": 107,
        "player_q": 1339,
        "name_p": "Christian Pulisic",
        "name_q": "Tyler Adams",
        "value": 0.050352009367938044,
        "minutes_together": 343.5833333333333
      },
      {
        "player_p": 1334,
        "player_q": 5135,
        "name_p": "Weston McKennie",
        "name_q": "Josh Sargent",
        "value": 0.04812295279885835,
        "minutes_together": 129.98333333333335
      },
      {
        "player_p": 1334,
        "player_q": 1971,
        "name_p": "Weston McKennie",
        "name_q": "Tim Ream",
        "value": 0.042941348275452526,
        "minutes_together": 272.93333333333334
      },
      {
        "player_p": 940,
        "player_q": 1971,
        "name_p": "Matt Turner",
        "name_q": "Tim Ream",
        "value": 0.04209333315148668,
        "minutes_together": 391.1666666666667
      },
      {
        "player_p": 1339,
        "player_q": 8343,
        "name_p": "Tyler Adams",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.035730813951022546,
        "minutes_together": 306.65
      },
      {
        "player_p": 1971,
        "player_q": 13121,
        "name_p": "Tim Ream",
        "name_q": "Yunus Musah",
        "value": 0.03165403943973015,
        "minutes_together": 364.65
      },
      {
        "player_p": 1973,
        "player_q": 13121,
        "name_p": "Antonee Robinson",
        "name_q": "Yunus Musah",
        "value": 0.02917659773061581,
        "minutes_together": 359.5833333333333
      },
      {
        "player_p": 1339,
        "player_q": 1973,
        "name_p": "Tyler Adams",
        "name_q": "Antonee Robinson",
        "value": 0.021059843642821516,
        "minutes_together": 386.1
      },
      {
        "player_p": 916,
        "player_q": 940,
        "name_p": "Walker Zimmerman",
        "name_q": "Matt Turner",
        "value": 0.02036896766786816,
        "minutes_together": 310.0833333333333
      },
      {
        "player_p": 107,
        "player_q": 1973,
        "name_p": "Christian Pulisic",
        "name_q": "Antonee Robinson",
        "value": 0.017499598249970542,
        "minutes_together": 338.51666666666665
      },
      {
        "player_p": 916,
        "player_q": 13121,
        "name_p": "Walker Zimmerman",
        "name_q": "Yunus Musah",
        "value": 0.016181164768909077,
        "minutes_together": 283.56666666666666
      },
      {
        "player_p": 940,
        "player_q": 8343,
        "name_p": "Matt Turner",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.014881469579055503,
        "minutes_together": 306.65
      },
      {
        "player_p": 940,
        "player_q": 1339,
        "name_p": "Matt Turner",
        "name_q": "Tyler Adams",
        "value": 0.01402817827508509,
        "minutes_together": 391.1666666666667
      },
      {
        "player_p": 1339,
        "player_q": 1971,
        "name_p": "Tyler Adams",
        "name_q": "Tim Ream",
        "value": 0.013455745762837581,
        "minutes_together": 391.1666666666667
      },
      {
        "player_p": 5135,
        "player_q": 8343,
        "name_p": "Josh Sargent",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.013069407435399675,
        "minutes_together": 150.38333333333333
      },
      {
        "player_p": 940,
        "player_q": 1336,
        "name_p": "Matt Turner",
        "name_q": "Timothy Weah",
        "value": 0.012166047900755012,
        "minutes_together": 317.6333333333333
      },
      {
        "player_p": 940,
        "player_q": 1334,
        "name_p": "Matt Turner",
        "name_q": "Weston McKennie",
        "value": 0.011201232759413458,
        "minutes_together": 272.93333333333334
      },
      {
        "player_p": 1336,
        "player_q": 1339,
        "name_p": "Timothy Weah",
        "name_q": "Tyler Adams",
        "value": 0.011048470237650128,
        "minutes_together": 317.6333333333333
      },
      {
        "player_p": 916,
        "player_q": 5135,
        "name_p": "Walker Zimmerman",
        "name_q": "Josh Sargent",
        "value": 0.010146396117267628,
        "minutes_together": 85.61666666666667
      },
      {
        "player_p": 1971,
        "player_q": 5135,
        "name_p": "Tim Ream",
        "name_q": "Josh Sargent",
        "value": 0.00979337016012966,
        "minutes_together": 162.53333333333336
      },
      {
        "player_p": 916,
        "player_q": 1336,
        "name_p": "Walker Zimmerman",
        "name_q": "Timothy Weah",
        "value": 0.006729592799986041,
        "minutes_together": 236.55
      },
      {
        "player_p": 1334,
        "player_q": 1973,
        "name_p": "Weston McKennie",
        "name_q": "Antonee Robinson",
        "value": 0.006168982448928595,
        "minutes_together": 272.93333333333334
      },
      {
        "player_p": 1334,
        "player_q": 1336,
        "name_p": "Weston McKennie",
        "name_q": "Timothy Weah",
        "value": 0.00577824980264528,
        "minutes_together": 272.93333333333334
      },
      {
        "player_p": 1336,
        "player_q": 5135,
        "name_p": "Timothy Weah",
        "name_q": "Josh Sargent",
        "value": 0.005653936650681604,
        "minutes_together": 150.46666666666667
      },
      {
        "player_p": 1971,
        "player_q": 1973,
        "name_p": "Tim Ream",
        "name_q": "Antonee Robinson",
        "value": 0.005300568349701289,
        "minutes_together": 386.1
      },
      {
        "player_p": 940,
        "player_q": 1973,
        "name_p": "Matt Turner",
        "name_q": "Antonee Robinson",
        "value": 0.004011085664104017,
        "minutes_together": 386.1
      },
      {
        "player_p": 916,
        "player_q": 8343,
        "name_p": "Walker Zimmerman",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.0036418216554129747,
        "minutes_together": 225.56666666666666
      },
      {
        "player_p": 916,
        "player_q": 1334,
        "name_p": "Walker Zimmerman",
        "name_q": "Weston McKennie",
        "value": 0.0023073581852376835,
        "minutes_together": 208.13333333333333
      },
      {
        "player_p": 916,
        "player_q": 1339,
        "name_p": "Walker Zimmerman",
        "name_q": "Tyler Adams",
        "value": 0.0010698051890977917,
        "minutes_together": 310.0833333333333
      },
      {
        "player_p": 940,
        "player_q": 13121,
        "name_p": "Matt Turner",
        "name_q": "Yunus Musah",
        "value": 0.0010041347312066031,
        "minutes_together": 364.65
      },
      {
        "player_p": 107,
        "player_q": 1971,
        "name_p": "Christian Pulisic",
        "name_q": "Tim Ream",
        "value": 0.0001617823809304989,
        "minutes_together": 343.5833333333333
      },
      {
        "player_p": 1336,
        "player_q": 1971,
        "name_p": "Timothy Weah",
        "name_q": "Tim Ream",
        "value": -6.829265198395917e-07,
        "minutes_together": 317.6333333333333
      },
      {
        "player_p": 1336,
        "player_q": 1973,
        "name_p": "Timothy Weah",
        "name_q": "Antonee Robinson",
        "value": -0.0015386504221608455,
        "minutes_together": 317.6333333333333
      },
      {
        "player_p": 1336,
        "player_q": 13121,
        "name_p": "Timothy Weah",
        "name_q": "Yunus Musah",
        "value": -0.008932407503036671,
        "minutes_together": 304.1166666666667
      },
      {
        "player_p": 916,
        "player_q": 1973,
        "name_p": "Walker Zimmerman",
        "name_q": "Antonee Robinson",
        "value": -0.011295297648006616,
        "minutes_together": 305.01666666666665
      },
      {
        "player_p": 5135,
        "player_q": 13121,
        "name_p": "Josh Sargent",
        "name_q": "Yunus Musah",
        "value": -0.012794100588681056,
        "minutes_together": 162.53333333333336
      },
      {
        "player_p": 1973,
        "player_q": 8343,
        "name_p": "Antonee Robinson",
        "name_q": "Sergi\u00f1o Dest",
        "value": -0.013297885172493182,
        "minutes_together": 306.65
      },
      {
        "player_p": 8343,
        "player_q": 13121,
        "name_p": "Sergi\u00f1o Dest",
        "name_q": "Yunus Musah",
        "value": -0.02704253028284074,
        "minutes_together": 306.65
      },
      {
        "player_p": 1971,
        "player_q": 8343,
        "name_p": "Tim Ream",
        "name_q": "Sergi\u00f1o Dest",
        "value": -0.029339847976017012,
        "minutes_together": 306.65
      },
      {
        "player_p": 1973,
        "player_q": 5135,
        "name_p": "Antonee Robinson",
        "name_q": "Josh Sargent",
        "value": -0.037103523588059344,
        "minutes_together": 162.53333333333336
      }
    ],
    "path": "assets/figures/team_51_joi90.png"
  },
  {
    "team_id": "51",
    "team_name": "United States",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_51_jdi90.png",
    "n_pairs": 55,
    "median": 0.03977169889093389,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 1971,
        "name": "Tim Ream",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 23470
      },
      {
        "player_id": 940,
        "name": "Matt Turner",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 23470
      },
      {
        "player_id": 1339,
        "name": "Tyler Adams",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 23470
      },
      {
        "player_id": 1973,
        "name": "Antonee Robinson",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 23166
      },
      {
        "player_id": 13121,
        "name": "Yunus Musah",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 21879
      },
      {
        "player_id": 107,
        "name": "Christian Pulisic",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 20615
      },
      {
        "player_id": 1336,
        "name": "Timothy Weah",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 19058
      },
      {
        "player_id": 916,
        "name": "Walker Zimmerman",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 18605
      },
      {
        "player_id": 8343,
        "name": "Sergi\u00f1o Dest",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 18399
      },
      {
        "player_id": 1334,
        "name": "Weston McKennie",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 16376
      },
      {
        "player_id": 5135,
        "name": "Josh Sargent",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 9752
      }
    ],
    "pairs": [
      {
        "player_p": 916,
        "player_q": 5135,
        "name_p": "Walker Zimmerman",
        "name_q": "Josh Sargent",
        "value": 0.06256209225347084,
        "minutes_together": 85.61666666666667
      },
      {
        "player_p": 916,
        "player_q": 940,
        "name_p": "Walker Zimmerman",
        "name_q": "Matt Turner",
        "value": 0.05722039531336689,
        "minutes_together": 310.0833333333333
      },
      {
        "player_p": 916,
        "player_q": 1971,
        "name_p": "Walker Zimmerman",
        "name_q": "Tim Ream",
        "value": 0.05702743712725002,
        "minutes_together": 310.0833333333333
      },
      {
        "player_p": 1339,
        "player_q": 1971,
        "name_p": "Tyler Adams",
        "name_q": "Tim Ream",
        "value": 0.052797278102437534,
        "minutes_together": 391.1666666666667
      },
      {
        "player_p": 916,
        "player_q": 1339,
        "name_p": "Walker Zimmerman",
        "name_q": "Tyler Adams",
        "value": 0.05238309395817364,
        "minutes_together": 310.0833333333333
      },
      {
        "player_p": 940,
        "player_q": 1339,
        "name_p": "Matt Turner",
        "name_q": "Tyler Adams",
        "value": 0.05148710787322157,
        "minutes_together": 391.1666666666667
      },
      {
        "player_p": 940,
        "player_q": 1971,
        "name_p": "Matt Turner",
        "name_q": "Tim Ream",
        "value": 0.051037255090778985,
        "minutes_together": 391.1666666666667
      },
      {
        "player_p": 1339,
        "player_q": 13121,
        "name_p": "Tyler Adams",
        "name_q": "Yunus Musah",
        "value": 0.05052570012773939,
        "minutes_together": 364.65
      },
      {
        "player_p": 1971,
        "player_q": 13121,
        "name_p": "Tim Ream",
        "name_q": "Yunus Musah",
        "value": 0.048504052206466655,
        "minutes_together": 364.65
      },
      {
        "player_p": 916,
        "player_q": 13121,
        "name_p": "Walker Zimmerman",
        "name_q": "Yunus Musah",
        "value": 0.04690993138604039,
        "minutes_together": 283.56666666666666
      },
      {
        "player_p": 940,
        "player_q": 13121,
        "name_p": "Matt Turner",
        "name_q": "Yunus Musah",
        "value": 0.04680918275552832,
        "minutes_together": 364.65
      },
      {
        "player_p": 916,
        "player_q": 1973,
        "name_p": "Walker Zimmerman",
        "name_q": "Antonee Robinson",
        "value": 0.04676655109130253,
        "minutes_together": 305.01666666666665
      },
      {
        "player_p": 1334,
        "player_q": 13121,
        "name_p": "Weston McKennie",
        "name_q": "Yunus Musah",
        "value": 0.04631646126191666,
        "minutes_together": 272.93333333333334
      },
      {
        "player_p": 1334,
        "player_q": 1339,
        "name_p": "Weston McKennie",
        "name_q": "Tyler Adams",
        "value": 0.04631646126191666,
        "minutes_together": 272.93333333333334
      },
      {
        "player_p": 5135,
        "player_q": 13121,
        "name_p": "Josh Sargent",
        "name_q": "Yunus Musah",
        "value": 0.04623643321775175,
        "minutes_together": 162.53333333333336
      },
      {
        "player_p": 1339,
        "player_q": 5135,
        "name_p": "Tyler Adams",
        "name_q": "Josh Sargent",
        "value": 0.04623643321775175,
        "minutes_together": 162.53333333333336
      },
      {
        "player_p": 1334,
        "player_q": 1971,
        "name_p": "Weston McKennie",
        "name_q": "Tim Ream",
        "value": 0.04448515575523126,
        "minutes_together": 272.93333333333334
      },
      {
        "player_p": 916,
        "player_q": 1334,
        "name_p": "Walker Zimmerman",
        "name_q": "Weston McKennie",
        "value": 0.043823879610201795,
        "minutes_together": 208.13333333333333
      },
      {
        "player_p": 1339,
        "player_q": 1973,
        "name_p": "Tyler Adams",
        "name_q": "Antonee Robinson",
        "value": 0.043777973152615716,
        "minutes_together": 386.1
      },
      {
        "player_p": 1334,
        "player_q": 5135,
        "name_p": "Weston McKennie",
        "name_q": "Josh Sargent",
        "value": 0.04344368536918129,
        "minutes_together": 129.98333333333335
      },
      {
        "player_p": 1971,
        "player_q": 1973,
        "name_p": "Tim Ream",
        "name_q": "Antonee Robinson",
        "value": 0.04331780600847657,
        "minutes_together": 386.1
      },
      {
        "player_p": 940,
        "player_q": 1334,
        "name_p": "Matt Turner",
        "name_q": "Weston McKennie",
        "value": 0.04297717298515284,
        "minutes_together": 272.93333333333334
      },
      {
        "player_p": 940,
        "player_q": 1973,
        "name_p": "Matt Turner",
        "name_q": "Antonee Robinson",
        "value": 0.0419661291653548,
        "minutes_together": 386.1
      },
      {
        "player_p": 1971,
        "player_q": 5135,
        "name_p": "Tim Ream",
        "name_q": "Josh Sargent",
        "value": 0.041688306044752765,
        "minutes_together": 162.53333333333336
      },
      {
        "player_p": 1973,
        "player_q": 13121,
        "name_p": "Antonee Robinson",
        "name_q": "Yunus Musah",
        "value": 0.04045580850434278,
        "minutes_together": 359.5833333333333
      },
      {
        "player_p": 916,
        "player_q": 8343,
        "name_p": "Walker Zimmerman",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.040353257439098365,
        "minutes_together": 225.56666666666666
      },
      {
        "player_p": 940,
        "player_q": 5135,
        "name_p": "Matt Turner",
        "name_q": "Josh Sargent",
        "value": 0.04023702341176783,
        "minutes_together": 162.53333333333336
      },
      {
        "player_p": 107,
        "player_q": 916,
        "name_p": "Christian Pulisic",
        "name_q": "Walker Zimmerman",
        "value": 0.03977169889093389,
        "minutes_together": 291.2833333333333
      },
      {
        "player_p": 1339,
        "player_q": 8343,
        "name_p": "Tyler Adams",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.03956300970115173,
        "minutes_together": 306.65
      },
      {
        "player_p": 8343,
        "player_q": 13121,
        "name_p": "Sergi\u00f1o Dest",
        "name_q": "Yunus Musah",
        "value": 0.03956300970115173,
        "minutes_together": 306.65
      },
      {
        "player_p": 1971,
        "player_q": 8343,
        "name_p": "Tim Ream",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.03765412680219117,
        "minutes_together": 306.65
      },
      {
        "player_p": 107,
        "player_q": 1971,
        "name_p": "Christian Pulisic",
        "name_q": "Tim Ream",
        "value": 0.036481365813521204,
        "minutes_together": 343.5833333333333
      },
      {
        "player_p": 107,
        "player_q": 940,
        "name_p": "Christian Pulisic",
        "name_q": "Matt Turner",
        "value": 0.03613655353285244,
        "minutes_together": 343.5833333333333
      },
      {
        "player_p": 107,
        "player_q": 5135,
        "name_p": "Christian Pulisic",
        "name_q": "Josh Sargent",
        "value": 0.03609060456443654,
        "minutes_together": 137.91666666666666
      },
      {
        "player_p": 1334,
        "player_q": 1973,
        "name_p": "Weston McKennie",
        "name_q": "Antonee Robinson",
        "value": 0.036073772355743834,
        "minutes_together": 272.93333333333334
      },
      {
        "player_p": 940,
        "player_q": 8343,
        "name_p": "Matt Turner",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.036047781066469754,
        "minutes_together": 306.65
      },
      {
        "player_p": 916,
        "player_q": 1336,
        "name_p": "Walker Zimmerman",
        "name_q": "Timothy Weah",
        "value": 0.03558299924446081,
        "minutes_together": 236.55
      },
      {
        "player_p": 1336,
        "player_q": 1339,
        "name_p": "Timothy Weah",
        "name_q": "Tyler Adams",
        "value": 0.03548824702514413,
        "minutes_together": 317.6333333333333
      },
      {
        "player_p": 1334,
        "player_q": 8343,
        "name_p": "Weston McKennie",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.034737943117661554,
        "minutes_together": 272.93333333333334
      },
      {
        "player_p": 1336,
        "player_q": 5135,
        "name_p": "Timothy Weah",
        "name_q": "Josh Sargent",
        "value": 0.034566414841533784,
        "minutes_together": 150.46666666666667
      },
      {
        "player_p": 1336,
        "player_q": 1971,
        "name_p": "Timothy Weah",
        "name_q": "Tim Ream",
        "value": 0.03454534194654421,
        "minutes_together": 317.6333333333333
      },
      {
        "player_p": 107,
        "player_q": 1339,
        "name_p": "Christian Pulisic",
        "name_q": "Tyler Adams",
        "value": 0.03443943191871954,
        "minutes_together": 343.5833333333333
      },
      {
        "player_p": 5135,
        "player_q": 8343,
        "name_p": "Josh Sargent",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.03428153239758491,
        "minutes_together": 150.38333333333333
      },
      {
        "player_p": 1973,
        "player_q": 5135,
        "name_p": "Antonee Robinson",
        "name_q": "Josh Sargent",
        "value": 0.034046979524773584,
        "minutes_together": 162.53333333333336
      },
      {
        "player_p": 1336,
        "player_q": 13121,
        "name_p": "Timothy Weah",
        "name_q": "Yunus Musah",
        "value": 0.03365232247405206,
        "minutes_together": 304.1166666666667
      },
      {
        "player_p": 940,
        "player_q": 1336,
        "name_p": "Matt Turner",
        "name_q": "Timothy Weah",
        "value": 0.03310355512900878,
        "minutes_together": 317.6333333333333
      },
      {
        "player_p": 107,
        "player_q": 1334,
        "name_p": "Christian Pulisic",
        "name_q": "Weston McKennie",
        "value": 0.03169686003326303,
        "minutes_together": 260.43333333333334
      },
      {
        "player_p": 107,
        "player_q": 13121,
        "name_p": "Christian Pulisic",
        "name_q": "Yunus Musah",
        "value": 0.029856346392165275,
        "minutes_together": 317.06666666666666
      },
      {
        "player_p": 1973,
        "player_q": 8343,
        "name_p": "Antonee Robinson",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.028844240137492188,
        "minutes_together": 306.65
      },
      {
        "player_p": 107,
        "player_q": 1973,
        "name_p": "Christian Pulisic",
        "name_q": "Antonee Robinson",
        "value": 0.02784870746267465,
        "minutes_together": 338.51666666666665
      },
      {
        "player_p": 1334,
        "player_q": 1336,
        "name_p": "Weston McKennie",
        "name_q": "Timothy Weah",
        "value": 0.02629231770215918,
        "minutes_together": 272.93333333333334
      },
      {
        "player_p": 1336,
        "player_q": 1973,
        "name_p": "Timothy Weah",
        "name_q": "Antonee Robinson",
        "value": 0.025007699959732718,
        "minutes_together": 317.6333333333333
      },
      {
        "player_p": 107,
        "player_q": 8343,
        "name_p": "Christian Pulisic",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.02425499008505067,
        "minutes_together": 277.8666666666667
      },
      {
        "player_p": 1336,
        "player_q": 8343,
        "name_p": "Timothy Weah",
        "name_q": "Sergi\u00f1o Dest",
        "value": 0.02130010753009199,
        "minutes_together": 298.2833333333333
      },
      {
        "player_p": 107,
        "player_q": 1336,
        "name_p": "Christian Pulisic",
        "name_q": "Timothy Weah",
        "value": 0.020725610243075173,
        "minutes_together": 288.85
      }
    ],
    "path": "assets/figures/team_51_jdi90.png"
  },
  {
    "team_id": "52",
    "team_name": "Spain",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_52_joi90.png",
    "n_pairs": 51,
    "median": 0.013719802559301057,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 18,
        "name": "Rodri",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 22853
      },
      {
        "player_id": 1341,
        "name": "Unai Simon",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 22853
      },
      {
        "player_id": 4908,
        "name": "Dani Olmo",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 22853
      },
      {
        "player_id": 1519,
        "name": "Sergio Busquets",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 20775
      },
      {
        "player_id": 1530,
        "name": "Pedri",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 20361
      },
      {
        "player_id": 8341,
        "name": "Gavi",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 17616
      },
      {
        "player_id": 9,
        "name": "Aymeric Laporte",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17033
      },
      {
        "player_id": 1513,
        "name": "Jordi Alba",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 15856
      },
      {
        "player_id": 1696,
        "name": "Marco Asensio",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 14246
      },
      {
        "player_id": 1950,
        "name": "Ferran Torres",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 13550
      },
      {
        "player_id": 1394,
        "name": "Alvaro Morata",
        "position": "CF",
        "x": 6.8,
        "y": 92.5,
        "row": 0,
        "col": 0,
        "on_seconds": 10061
      }
    ],
    "pairs": [
      {
        "player_p": 1394,
        "player_q": 1513,
        "name_p": "Alvaro Morata",
        "name_q": "Jordi Alba",
        "value": 1.3373294411743482,
        "minutes_together": 62.66666666666667
      },
      {
        "player_p": 1394,
        "player_q": 8341,
        "name_p": "Alvaro Morata",
        "name_q": "Gavi",
        "value": 0.7556677858329105,
        "minutes_together": 110.08333333333333
      },
      {
        "player_p": 1513,
        "player_q": 1696,
        "name_p": "Jordi Alba",
        "name_q": "Marco Asensio",
        "value": 0.36791014873866623,
        "minutes_together": 220.71666666666667
      },
      {
        "player_p": 1394,
        "player_q": 4908,
        "name_p": "Alvaro Morata",
        "name_q": "Dani Olmo",
        "value": 0.33624027424304864,
        "minutes_together": 167.68333333333334
      },
      {
        "player_p": 18,
        "player_q": 1519,
        "name_p": "Rodri",
        "name_q": "Sergio Busquets",
        "value": 0.31591837203756845,
        "minutes_together": 346.25
      },
      {
        "player_p": 1513,
        "player_q": 1530,
        "name_p": "Jordi Alba",
        "name_q": "Pedri",
        "value": 0.2477768406877922,
        "minutes_together": 257.51666666666665
      },
      {
        "player_p": 1513,
        "player_q": 4908,
        "name_p": "Jordi Alba",
        "name_q": "Dani Olmo",
        "value": 0.2187445967108301,
        "minutes_together": 264.26666666666665
      },
      {
        "player_p": 9,
        "player_q": 18,
        "name_p": "Aymeric Laporte",
        "name_q": "Rodri",
        "value": 0.16879393221778738,
        "minutes_together": 283.8833333333333
      },
      {
        "player_p": 1530,
        "player_q": 4908,
        "name_p": "Pedri",
        "name_q": "Dani Olmo",
        "value": 0.13380581202674666,
        "minutes_together": 339.35
      },
      {
        "player_p": 9,
        "player_q": 1513,
        "name_p": "Aymeric Laporte",
        "name_q": "Jordi Alba",
        "value": 0.1256664455867141,
        "minutes_together": 235.14999999999998
      },
      {
        "player_p": 9,
        "player_q": 1530,
        "name_p": "Aymeric Laporte",
        "name_q": "Pedri",
        "value": 0.12129280415942399,
        "minutes_together": 242.35
      },
      {
        "player_p": 1513,
        "player_q": 1519,
        "name_p": "Jordi Alba",
        "name_q": "Sergio Busquets",
        "value": 0.11924699998104248,
        "minutes_together": 264.26666666666665
      },
      {
        "player_p": 18,
        "player_q": 1341,
        "name_p": "Rodri",
        "name_q": "Unai Simon",
        "value": 0.1145533420167701,
        "minutes_together": 380.8833333333333
      },
      {
        "player_p": 1519,
        "player_q": 1530,
        "name_p": "Sergio Busquets",
        "name_q": "Pedri",
        "value": 0.10989316542866745,
        "minutes_together": 339.35
      },
      {
        "player_p": 18,
        "player_q": 1530,
        "name_p": "Rodri",
        "name_q": "Pedri",
        "value": 0.08839448085599516,
        "minutes_together": 339.35
      },
      {
        "player_p": 9,
        "player_q": 4908,
        "name_p": "Aymeric Laporte",
        "name_q": "Dani Olmo",
        "value": 0.08311545247486704,
        "minutes_together": 283.8833333333333
      },
      {
        "player_p": 9,
        "player_q": 8341,
        "name_p": "Aymeric Laporte",
        "name_q": "Gavi",
        "value": 0.07723160848487516,
        "minutes_together": 226.21666666666667
      },
      {
        "player_p": 9,
        "player_q": 1341,
        "name_p": "Aymeric Laporte",
        "name_q": "Unai Simon",
        "value": 0.06913716903616623,
        "minutes_together": 283.8833333333333
      },
      {
        "player_p": 1696,
        "player_q": 1950,
        "name_p": "Marco Asensio",
        "name_q": "Ferran Torres",
        "value": 0.06099674108044088,
        "minutes_together": 213.2
      },
      {
        "player_p": 1530,
        "player_q": 1696,
        "name_p": "Pedri",
        "name_q": "Marco Asensio",
        "value": 0.049346668078881606,
        "minutes_together": 225.56666666666666
      },
      {
        "player_p": 18,
        "player_q": 1513,
        "name_p": "Rodri",
        "name_q": "Jordi Alba",
        "value": 0.04609507833723488,
        "minutes_together": 264.26666666666665
      },
      {
        "player_p": 1530,
        "player_q": 8341,
        "name_p": "Pedri",
        "name_q": "Gavi",
        "value": 0.04265805849943599,
        "minutes_together": 252.06666666666666
      },
      {
        "player_p": 1394,
        "player_q": 1519,
        "name_p": "Alvaro Morata",
        "name_q": "Sergio Busquets",
        "value": 0.0229773348979613,
        "minutes_together": 133.05
      },
      {
        "player_p": 18,
        "player_q": 4908,
        "name_p": "Rodri",
        "name_q": "Dani Olmo",
        "value": 0.020233341466491882,
        "minutes_together": 380.8833333333333
      },
      {
        "player_p": 1341,
        "player_q": 1696,
        "name_p": "Unai Simon",
        "name_q": "Marco Asensio",
        "value": 0.014373161175166713,
        "minutes_together": 237.43333333333334
      },
      {
        "player_p": 1341,
        "player_q": 1513,
        "name_p": "Unai Simon",
        "name_q": "Jordi Alba",
        "value": 0.013719802559301057,
        "minutes_together": 264.26666666666665
      },
      {
        "player_p": 1341,
        "player_q": 1530,
        "name_p": "Unai Simon",
        "name_q": "Pedri",
        "value": 0.011224476825573279,
        "minutes_together": 339.35
      },
      {
        "player_p": 1513,
        "player_q": 8341,
        "name_p": "Jordi Alba",
        "name_q": "Gavi",
        "value": 0.011008564329931674,
        "minutes_together": 191.43333333333334
      },
      {
        "player_p": 1341,
        "player_q": 1950,
        "name_p": "Unai Simon",
        "name_q": "Ferran Torres",
        "value": 0.010990447276905275,
        "minutes_together": 225.83333333333331
      },
      {
        "player_p": 1696,
        "player_q": 8341,
        "name_p": "Marco Asensio",
        "name_q": "Gavi",
        "value": 0.010373495718593025,
        "minutes_together": 207.65
      },
      {
        "player_p": 9,
        "player_q": 1696,
        "name_p": "Aymeric Laporte",
        "name_q": "Marco Asensio",
        "value": 0.009893046092650726,
        "minutes_together": 196.7166666666667
      },
      {
        "player_p": 1519,
        "player_q": 4908,
        "name_p": "Sergio Busquets",
        "name_q": "Dani Olmo",
        "value": 0.007304109542830062,
        "minutes_together": 346.25
      },
      {
        "player_p": 1341,
        "player_q": 8341,
        "name_p": "Unai Simon",
        "name_q": "Gavi",
        "value": 0.0047261878712242964,
        "minutes_together": 293.6
      },
      {
        "player_p": 1950,
        "player_q": 8341,
        "name_p": "Ferran Torres",
        "name_q": "Gavi",
        "value": 0.003569757266246527,
        "minutes_together": 183.7
      },
      {
        "player_p": 9,
        "player_q": 1519,
        "name_p": "Aymeric Laporte",
        "name_q": "Sergio Busquets",
        "value": 0.002784644311214136,
        "minutes_together": 249.25
      },
      {
        "player_p": 1519,
        "player_q": 1950,
        "name_p": "Sergio Busquets",
        "name_q": "Ferran Torres",
        "value": 0.002491433920799876,
        "minutes_together": 225.83333333333331
      },
      {
        "player_p": 9,
        "player_q": 1950,
        "name_p": "Aymeric Laporte",
        "name_q": "Ferran Torres",
        "value": -0.00022541836239765205,
        "minutes_together": 184.93333333333334
      },
      {
        "player_p": 1519,
        "player_q": 8341,
        "name_p": "Sergio Busquets",
        "name_q": "Gavi",
        "value": -0.0011198420394643329,
        "minutes_together": 258.9666666666667
      },
      {
        "player_p": 1513,
        "player_q": 1950,
        "name_p": "Jordi Alba",
        "name_q": "Ferran Torres",
        "value": -0.0012848310328145527,
        "minutes_together": 214.04999999999998
      },
      {
        "player_p": 18,
        "player_q": 1394,
        "name_p": "Rodri",
        "name_q": "Alvaro Morata",
        "value": -0.0034877133190614165,
        "minutes_together": 167.68333333333334
      },
      {
        "player_p": 1341,
        "player_q": 1519,
        "name_p": "Unai Simon",
        "name_q": "Sergio Busquets",
        "value": -0.008144152332623403,
        "minutes_together": 346.25
      },
      {
        "player_p": 18,
        "player_q": 1950,
        "name_p": "Rodri",
        "name_q": "Ferran Torres",
        "value": -0.014289194831501295,
        "minutes_together": 225.83333333333331
      },
      {
        "player_p": 1519,
        "player_q": 1696,
        "name_p": "Sergio Busquets",
        "name_q": "Marco Asensio",
        "value": -0.017831278522548535,
        "minutes_together": 232.46666666666667
      },
      {
        "player_p": 1341,
        "player_q": 1394,
        "name_p": "Unai Simon",
        "name_q": "Alvaro Morata",
        "value": -0.0179121354706129,
        "minutes_together": 167.68333333333334
      },
      {
        "player_p": 18,
        "player_q": 1696,
        "name_p": "Rodri",
        "name_q": "Marco Asensio",
        "value": -0.021926759178765357,
        "minutes_together": 237.43333333333334
      },
      {
        "player_p": 1530,
        "player_q": 1950,
        "name_p": "Pedri",
        "name_q": "Ferran Torres",
        "value": -0.033684824253849034,
        "minutes_together": 225.83333333333331
      },
      {
        "player_p": 1394,
        "player_q": 1530,
        "name_p": "Alvaro Morata",
        "name_q": "Pedri",
        "value": -0.037869944566852956,
        "minutes_together": 126.15
      },
      {
        "player_p": 1950,
        "player_q": 4908,
        "name_p": "Ferran Torres",
        "name_q": "Dani Olmo",
        "value": -0.041812232778362435,
        "minutes_together": 225.83333333333331
      },
      {
        "player_p": 4908,
        "player_q": 8341,
        "name_p": "Dani Olmo",
        "name_q": "Gavi",
        "value": -0.0431941588836488,
        "minutes_together": 293.6
      },
      {
        "player_p": 18,
        "player_q": 8341,
        "name_p": "Rodri",
        "name_q": "Gavi",
        "value": -0.04666707314577312,
        "minutes_together": 293.6
      },
      {
        "player_p": 1696,
        "player_q": 4908,
        "name_p": "Marco Asensio",
        "name_q": "Dani Olmo",
        "value": -0.06867420243046338,
        "minutes_together": 237.43333333333334
      }
    ],
    "path": "assets/figures/team_52_joi90.png"
  },
  {
    "team_id": "52",
    "team_name": "Spain",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_52_jdi90.png",
    "n_pairs": 53,
    "median": -0.025102174041016584,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 18,
        "name": "Rodri",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 22853
      },
      {
        "player_id": 1341,
        "name": "Unai Simon",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 22853
      },
      {
        "player_id": 4908,
        "name": "Dani Olmo",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 22853
      },
      {
        "player_id": 1519,
        "name": "Sergio Busquets",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 20775
      },
      {
        "player_id": 1530,
        "name": "Pedri",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 20361
      },
      {
        "player_id": 8341,
        "name": "Gavi",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 17616
      },
      {
        "player_id": 9,
        "name": "Aymeric Laporte",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17033
      },
      {
        "player_id": 1513,
        "name": "Jordi Alba",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 15856
      },
      {
        "player_id": 1696,
        "name": "Marco Asensio",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 14246
      },
      {
        "player_id": 1950,
        "name": "Ferran Torres",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 13550
      },
      {
        "player_id": 1394,
        "name": "Alvaro Morata",
        "position": "CF",
        "x": 6.8,
        "y": 92.5,
        "row": 0,
        "col": 0,
        "on_seconds": 10061
      }
    ],
    "pairs": [
      {
        "player_p": 1394,
        "player_q": 1530,
        "name_p": "Alvaro Morata",
        "name_q": "Pedri",
        "value": 0.016992223568212853,
        "minutes_together": 126.15
      },
      {
        "player_p": 1394,
        "player_q": 1519,
        "name_p": "Alvaro Morata",
        "name_q": "Sergio Busquets",
        "value": 0.009436792232337635,
        "minutes_together": 133.05
      },
      {
        "player_p": 1394,
        "player_q": 1513,
        "name_p": "Alvaro Morata",
        "name_q": "Jordi Alba",
        "value": 0.005618026156883314,
        "minutes_together": 62.66666666666667
      },
      {
        "player_p": 1394,
        "player_q": 4908,
        "name_p": "Alvaro Morata",
        "name_q": "Dani Olmo",
        "value": 0.005285566375712171,
        "minutes_together": 167.68333333333334
      },
      {
        "player_p": 1530,
        "player_q": 4908,
        "name_p": "Pedri",
        "name_q": "Dani Olmo",
        "value": 0.00038808387330880716,
        "minutes_together": 339.35
      },
      {
        "player_p": 1696,
        "player_q": 4908,
        "name_p": "Marco Asensio",
        "name_q": "Dani Olmo",
        "value": -0.001393511693947443,
        "minutes_together": 237.43333333333334
      },
      {
        "player_p": 1513,
        "player_q": 4908,
        "name_p": "Jordi Alba",
        "name_q": "Dani Olmo",
        "value": -0.0019130838702263824,
        "minutes_together": 264.26666666666665
      },
      {
        "player_p": 1519,
        "player_q": 4908,
        "name_p": "Sergio Busquets",
        "name_q": "Dani Olmo",
        "value": -0.0024976931189214947,
        "minutes_together": 346.25
      },
      {
        "player_p": 1530,
        "player_q": 1696,
        "name_p": "Pedri",
        "name_q": "Marco Asensio",
        "value": -0.009267968769227544,
        "minutes_together": 225.56666666666666
      },
      {
        "player_p": 1950,
        "player_q": 4908,
        "name_p": "Ferran Torres",
        "name_q": "Dani Olmo",
        "value": -0.010729438594015771,
        "minutes_together": 225.83333333333331
      },
      {
        "player_p": 1513,
        "player_q": 1696,
        "name_p": "Jordi Alba",
        "name_q": "Marco Asensio",
        "value": -0.011653312832257566,
        "minutes_together": 220.71666666666667
      },
      {
        "player_p": 1696,
        "player_q": 1950,
        "name_p": "Marco Asensio",
        "name_q": "Ferran Torres",
        "value": -0.011829481518484137,
        "minutes_together": 213.2
      },
      {
        "player_p": 1519,
        "player_q": 1696,
        "name_p": "Sergio Busquets",
        "name_q": "Marco Asensio",
        "value": -0.012812798761096757,
        "minutes_together": 232.46666666666667
      },
      {
        "player_p": 1519,
        "player_q": 1530,
        "name_p": "Sergio Busquets",
        "name_q": "Pedri",
        "value": -0.012928905842340849,
        "minutes_together": 339.35
      },
      {
        "player_p": 1513,
        "player_q": 1530,
        "name_p": "Jordi Alba",
        "name_q": "Pedri",
        "value": -0.01323623802489702,
        "minutes_together": 257.51666666666665
      },
      {
        "player_p": 1513,
        "player_q": 1519,
        "name_p": "Jordi Alba",
        "name_q": "Sergio Busquets",
        "value": -0.0170560981114786,
        "minutes_together": 264.26666666666665
      },
      {
        "player_p": 1696,
        "player_q": 8341,
        "name_p": "Marco Asensio",
        "name_q": "Gavi",
        "value": -0.01859253583916888,
        "minutes_together": 207.65
      },
      {
        "player_p": 1513,
        "player_q": 1950,
        "name_p": "Jordi Alba",
        "name_q": "Ferran Torres",
        "value": -0.019885592637395203,
        "minutes_together": 214.04999999999998
      },
      {
        "player_p": 4908,
        "player_q": 8341,
        "name_p": "Dani Olmo",
        "name_q": "Gavi",
        "value": -0.02038884680731949,
        "minutes_together": 293.6
      },
      {
        "player_p": 18,
        "player_q": 1530,
        "name_p": "Rodri",
        "name_q": "Pedri",
        "value": -0.021438035158156583,
        "minutes_together": 339.35
      },
      {
        "player_p": 1341,
        "player_q": 1530,
        "name_p": "Unai Simon",
        "name_q": "Pedri",
        "value": -0.022699398489958545,
        "minutes_together": 339.35
      },
      {
        "player_p": 1519,
        "player_q": 1950,
        "name_p": "Sergio Busquets",
        "name_q": "Ferran Torres",
        "value": -0.02275657736189327,
        "minutes_together": 225.83333333333331
      },
      {
        "player_p": 1530,
        "player_q": 1950,
        "name_p": "Pedri",
        "name_q": "Ferran Torres",
        "value": -0.02275657736189327,
        "minutes_together": 225.83333333333331
      },
      {
        "player_p": 1530,
        "player_q": 8341,
        "name_p": "Pedri",
        "name_q": "Gavi",
        "value": -0.023379272927310946,
        "minutes_together": 252.06666666666666
      },
      {
        "player_p": 9,
        "player_q": 1530,
        "name_p": "Aymeric Laporte",
        "name_q": "Pedri",
        "value": -0.023652313518511804,
        "minutes_together": 242.35
      },
      {
        "player_p": 1950,
        "player_q": 8341,
        "name_p": "Ferran Torres",
        "name_q": "Gavi",
        "value": -0.023862310830899965,
        "minutes_together": 183.7
      },
      {
        "player_p": 18,
        "player_q": 4908,
        "name_p": "Rodri",
        "name_q": "Dani Olmo",
        "value": -0.025102174041016584,
        "minutes_together": 380.8833333333333
      },
      {
        "player_p": 18,
        "player_q": 1519,
        "name_p": "Rodri",
        "name_q": "Sergio Busquets",
        "value": -0.025173703878656455,
        "minutes_together": 346.25
      },
      {
        "player_p": 1341,
        "player_q": 4908,
        "name_p": "Unai Simon",
        "name_q": "Dani Olmo",
        "value": -0.025761495625109827,
        "minutes_together": 380.8833333333333
      },
      {
        "player_p": 18,
        "player_q": 1696,
        "name_p": "Rodri",
        "name_q": "Marco Asensio",
        "value": -0.025824406363274835,
        "minutes_together": 237.43333333333334
      },
      {
        "player_p": 1341,
        "player_q": 1519,
        "name_p": "Unai Simon",
        "name_q": "Sergio Busquets",
        "value": -0.026322954391476402,
        "minutes_together": 346.25
      },
      {
        "player_p": 1341,
        "player_q": 1696,
        "name_p": "Unai Simon",
        "name_q": "Marco Asensio",
        "value": -0.02696926536541546,
        "minutes_together": 237.43333333333334
      },
      {
        "player_p": 9,
        "player_q": 4908,
        "name_p": "Aymeric Laporte",
        "name_q": "Dani Olmo",
        "value": -0.027640384041695113,
        "minutes_together": 283.8833333333333
      },
      {
        "player_p": 1519,
        "player_q": 8341,
        "name_p": "Sergio Busquets",
        "name_q": "Gavi",
        "value": -0.027983348422773936,
        "minutes_together": 258.9666666666667
      },
      {
        "player_p": 18,
        "player_q": 1513,
        "name_p": "Rodri",
        "name_q": "Jordi Alba",
        "value": -0.028398959519635694,
        "minutes_together": 264.26666666666665
      },
      {
        "player_p": 1341,
        "player_q": 1394,
        "name_p": "Unai Simon",
        "name_q": "Alvaro Morata",
        "value": -0.02870970313563639,
        "minutes_together": 167.68333333333334
      },
      {
        "player_p": 18,
        "player_q": 1394,
        "name_p": "Rodri",
        "name_q": "Alvaro Morata",
        "value": -0.02874225510769277,
        "minutes_together": 167.68333333333334
      },
      {
        "player_p": 9,
        "player_q": 1519,
        "name_p": "Aymeric Laporte",
        "name_q": "Sergio Busquets",
        "value": -0.028758778619466206,
        "minutes_together": 249.25
      },
      {
        "player_p": 1513,
        "player_q": 8341,
        "name_p": "Jordi Alba",
        "name_q": "Gavi",
        "value": -0.02877755461763736,
        "minutes_together": 191.43333333333334
      },
      {
        "player_p": 9,
        "player_q": 1950,
        "name_p": "Aymeric Laporte",
        "name_q": "Ferran Torres",
        "value": -0.028889935011194433,
        "minutes_together": 184.93333333333334
      },
      {
        "player_p": 1341,
        "player_q": 1513,
        "name_p": "Unai Simon",
        "name_q": "Jordi Alba",
        "value": -0.030229112925972444,
        "minutes_together": 264.26666666666665
      },
      {
        "player_p": 9,
        "player_q": 1513,
        "name_p": "Aymeric Laporte",
        "name_q": "Jordi Alba",
        "value": -0.03037330301968081,
        "minutes_together": 235.14999999999998
      },
      {
        "player_p": 9,
        "player_q": 1696,
        "name_p": "Aymeric Laporte",
        "name_q": "Marco Asensio",
        "value": -0.031819781590684465,
        "minutes_together": 196.7166666666667
      },
      {
        "player_p": 18,
        "player_q": 1950,
        "name_p": "Rodri",
        "name_q": "Ferran Torres",
        "value": -0.032273497708856284,
        "minutes_together": 225.83333333333331
      },
      {
        "player_p": 1341,
        "player_q": 1950,
        "name_p": "Unai Simon",
        "name_q": "Ferran Torres",
        "value": -0.033574249613671926,
        "minutes_together": 225.83333333333331
      },
      {
        "player_p": 1394,
        "player_q": 8341,
        "name_p": "Alvaro Morata",
        "name_q": "Gavi",
        "value": -0.034169812775951526,
        "minutes_together": 110.08333333333333
      },
      {
        "player_p": 9,
        "player_q": 1394,
        "name_p": "Aymeric Laporte",
        "name_q": "Alvaro Morata",
        "value": -0.046866194962354085,
        "minutes_together": 111.4
      },
      {
        "player_p": 18,
        "player_q": 1341,
        "name_p": "Rodri",
        "name_q": "Unai Simon",
        "value": -0.05288943269849782,
        "minutes_together": 380.8833333333333
      },
      {
        "player_p": 18,
        "player_q": 8341,
        "name_p": "Rodri",
        "name_q": "Gavi",
        "value": -0.05519568598626577,
        "minutes_together": 293.6
      },
      {
        "player_p": 1341,
        "player_q": 8341,
        "name_p": "Unai Simon",
        "name_q": "Gavi",
        "value": -0.055504307439409206,
        "minutes_together": 293.6
      },
      {
        "player_p": 9,
        "player_q": 8341,
        "name_p": "Aymeric Laporte",
        "name_q": "Gavi",
        "value": -0.06534929956119173,
        "minutes_together": 226.21666666666667
      },
      {
        "player_p": 9,
        "player_q": 18,
        "name_p": "Aymeric Laporte",
        "name_q": "Rodri",
        "value": -0.0659596847487607,
        "minutes_together": 283.8833333333333
      },
      {
        "player_p": 9,
        "player_q": 1341,
        "name_p": "Aymeric Laporte",
        "name_q": "Unai Simon",
        "value": -0.06759653375850828,
        "minutes_together": 283.8833333333333
      }
    ],
    "path": "assets/figures/team_52_jdi90.png"
  },
  {
    "team_id": "57",
    "team_name": "Japan",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_57_joi90.png",
    "n_pairs": 52,
    "median": 0.009239315260497084,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 2088,
        "name": "Maya Yoshida",
        "position": "MCB",
        "x": 34.0,
        "y": 22.5,
        "row": 4,
        "col": 2,
        "on_seconds": 22889
      },
      {
        "player_id": 13799,
        "name": "Shuichi Gonda",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 22889
      },
      {
        "player_id": 2095,
        "name": "Daichi Kamada",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 20219
      },
      {
        "player_id": 2094,
        "name": "Junya Ito",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 18910
      },
      {
        "player_id": 4928,
        "name": "Wataru Endo",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17698
      },
      {
        "player_id": 5098,
        "name": "Ko Itakura",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17489
      },
      {
        "player_id": 11841,
        "name": "Hidemasa Morita",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 16999
      },
      {
        "player_id": 9981,
        "name": "Ritsu Doan",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 13836
      },
      {
        "player_id": 13798,
        "name": "Yuto Nagatomo",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 12805
      },
      {
        "player_id": 13797,
        "name": "Shogo Taniguchi",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 11220
      },
      {
        "player_id": 13802,
        "name": "Daizen Maeda",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 10871
      }
    ],
    "pairs": [
      {
        "player_p": 2088,
        "player_q": 13802,
        "name_p": "Maya Yoshida",
        "name_q": "Daizen Maeda",
        "value": 0.7891309380217465,
        "minutes_together": 181.18333333333334
      },
      {
        "player_p": 2088,
        "player_q": 2095,
        "name_p": "Maya Yoshida",
        "name_q": "Daichi Kamada",
        "value": 0.26013597989028814,
        "minutes_together": 336.98333333333335
      },
      {
        "player_p": 2095,
        "player_q": 13798,
        "name_p": "Daichi Kamada",
        "name_q": "Yuto Nagatomo",
        "value": 0.09521240399065069,
        "minutes_together": 213.41666666666669
      },
      {
        "player_p": 2094,
        "player_q": 2095,
        "name_p": "Junya Ito",
        "name_q": "Daichi Kamada",
        "value": 0.06768532295086689,
        "minutes_together": 270.6666666666667
      },
      {
        "player_p": 4928,
        "player_q": 11841,
        "name_p": "Wataru Endo",
        "name_q": "Hidemasa Morita",
        "value": 0.066393096203918,
        "minutes_together": 196.79999999999998
      },
      {
        "player_p": 2088,
        "player_q": 13799,
        "name_p": "Maya Yoshida",
        "name_q": "Shuichi Gonda",
        "value": 0.06224104084341801,
        "minutes_together": 381.48333333333335
      },
      {
        "player_p": 2094,
        "player_q": 4928,
        "name_p": "Junya Ito",
        "name_q": "Wataru Endo",
        "value": 0.046081160836911834,
        "minutes_together": 228.65
      },
      {
        "player_p": 11841,
        "player_q": 13798,
        "name_p": "Hidemasa Morita",
        "name_q": "Yuto Nagatomo",
        "value": 0.042826265784002594,
        "minutes_together": 156.86666666666667
      },
      {
        "player_p": 13797,
        "player_q": 13798,
        "name_p": "Shogo Taniguchi",
        "name_q": "Yuto Nagatomo",
        "value": 0.036325453966077316,
        "minutes_together": 110.30000000000001
      },
      {
        "player_p": 2094,
        "player_q": 9981,
        "name_p": "Junya Ito",
        "name_q": "Ritsu Doan",
        "value": 0.0361042653987908,
        "minutes_together": 164.28333333333333
      },
      {
        "player_p": 2095,
        "player_q": 11841,
        "name_p": "Daichi Kamada",
        "name_q": "Hidemasa Morita",
        "value": 0.03398379525103988,
        "minutes_together": 238.81666666666666
      },
      {
        "player_p": 5098,
        "player_q": 11841,
        "name_p": "Ko Itakura",
        "name_q": "Hidemasa Morita",
        "value": 0.033548272149273646,
        "minutes_together": 193.31666666666666
      },
      {
        "player_p": 2088,
        "player_q": 5098,
        "name_p": "Maya Yoshida",
        "name_q": "Ko Itakura",
        "value": 0.029852100586681227,
        "minutes_together": 291.48333333333335
      },
      {
        "player_p": 2088,
        "player_q": 4928,
        "name_p": "Maya Yoshida",
        "name_q": "Wataru Endo",
        "value": 0.02877620857184137,
        "minutes_together": 294.96666666666664
      },
      {
        "player_p": 11841,
        "player_q": 13797,
        "name_p": "Hidemasa Morita",
        "name_q": "Shogo Taniguchi",
        "value": 0.02841130928997812,
        "minutes_together": 187.0
      },
      {
        "player_p": 2095,
        "player_q": 9981,
        "name_p": "Daichi Kamada",
        "name_q": "Ritsu Doan",
        "value": 0.028237647733249025,
        "minutes_together": 189.56666666666666
      },
      {
        "player_p": 2095,
        "player_q": 4928,
        "name_p": "Daichi Kamada",
        "name_q": "Wataru Endo",
        "value": 0.025364431168828232,
        "minutes_together": 268.6
      },
      {
        "player_p": 2088,
        "player_q": 13798,
        "name_p": "Maya Yoshida",
        "name_q": "Yuto Nagatomo",
        "value": 0.022232283156271723,
        "minutes_together": 213.41666666666669
      },
      {
        "player_p": 2094,
        "player_q": 13802,
        "name_p": "Junya Ito",
        "name_q": "Daizen Maeda",
        "value": 0.021806622929113926,
        "minutes_together": 181.18333333333334
      },
      {
        "player_p": 5098,
        "player_q": 13799,
        "name_p": "Ko Itakura",
        "name_q": "Shuichi Gonda",
        "value": 0.019410169887953802,
        "minutes_together": 291.48333333333335
      },
      {
        "player_p": 11841,
        "player_q": 13799,
        "name_p": "Hidemasa Morita",
        "name_q": "Shuichi Gonda",
        "value": 0.018397037622753454,
        "minutes_together": 283.31666666666666
      },
      {
        "player_p": 13797,
        "player_q": 13802,
        "name_p": "Shogo Taniguchi",
        "name_q": "Daizen Maeda",
        "value": 0.018286807324791928,
        "minutes_together": 124.53333333333333
      },
      {
        "player_p": 4928,
        "player_q": 13798,
        "name_p": "Wataru Endo",
        "name_q": "Yuto Nagatomo",
        "value": 0.01501362212305734,
        "minutes_together": 166.71666666666667
      },
      {
        "player_p": 4928,
        "player_q": 9981,
        "name_p": "Wataru Endo",
        "name_q": "Ritsu Doan",
        "value": 0.010316308041324844,
        "minutes_together": 190.79999999999998
      },
      {
        "player_p": 9981,
        "player_q": 13798,
        "name_p": "Ritsu Doan",
        "name_q": "Yuto Nagatomo",
        "value": 0.01026766736719934,
        "minutes_together": 110.16666666666667
      },
      {
        "player_p": 2095,
        "player_q": 5098,
        "name_p": "Daichi Kamada",
        "name_q": "Ko Itakura",
        "value": 0.009565258802552552,
        "minutes_together": 262.8666666666667
      },
      {
        "player_p": 2094,
        "player_q": 11841,
        "name_p": "Junya Ito",
        "name_q": "Hidemasa Morita",
        "value": 0.008913371718441615,
        "minutes_together": 217.0
      },
      {
        "player_p": 2095,
        "player_q": 13797,
        "name_p": "Daichi Kamada",
        "name_q": "Shogo Taniguchi",
        "value": 0.008838372539394438,
        "minutes_together": 142.5
      },
      {
        "player_p": 4928,
        "player_q": 13797,
        "name_p": "Wataru Endo",
        "name_q": "Shogo Taniguchi",
        "value": 0.008302823088376255,
        "minutes_together": 100.48333333333333
      },
      {
        "player_p": 13797,
        "player_q": 13799,
        "name_p": "Shogo Taniguchi",
        "name_q": "Shuichi Gonda",
        "value": 0.006529396887130626,
        "minutes_together": 187.0
      },
      {
        "player_p": 2088,
        "player_q": 9981,
        "name_p": "Maya Yoshida",
        "name_q": "Ritsu Doan",
        "value": 0.006164360390665797,
        "minutes_together": 230.6
      },
      {
        "player_p": 2088,
        "player_q": 2094,
        "name_p": "Maya Yoshida",
        "name_q": "Junya Ito",
        "value": 0.005091613301449403,
        "minutes_together": 315.1666666666667
      },
      {
        "player_p": 13798,
        "player_q": 13799,
        "name_p": "Yuto Nagatomo",
        "name_q": "Shuichi Gonda",
        "value": 0.004843899126159794,
        "minutes_together": 213.41666666666669
      },
      {
        "player_p": 4928,
        "player_q": 5098,
        "name_p": "Wataru Endo",
        "name_q": "Ko Itakura",
        "value": 0.004577778514727043,
        "minutes_together": 204.96666666666667
      },
      {
        "player_p": 5098,
        "player_q": 9981,
        "name_p": "Ko Itakura",
        "name_q": "Ritsu Doan",
        "value": 0.004064018188733676,
        "minutes_together": 144.06666666666666
      },
      {
        "player_p": 2088,
        "player_q": 11841,
        "name_p": "Maya Yoshida",
        "name_q": "Hidemasa Morita",
        "value": 0.003994331797305965,
        "minutes_together": 283.31666666666666
      },
      {
        "player_p": 5098,
        "player_q": 13797,
        "name_p": "Ko Itakura",
        "name_q": "Shogo Taniguchi",
        "value": 0.003592355050135826,
        "minutes_together": 97.0
      },
      {
        "player_p": 9981,
        "player_q": 13799,
        "name_p": "Ritsu Doan",
        "name_q": "Shuichi Gonda",
        "value": 0.0035085597599548747,
        "minutes_together": 230.6
      },
      {
        "player_p": 5098,
        "player_q": 13798,
        "name_p": "Ko Itakura",
        "name_q": "Yuto Nagatomo",
        "value": 0.002608766717658038,
        "minutes_together": 149.81666666666666
      },
      {
        "player_p": 9981,
        "player_q": 11841,
        "name_p": "Ritsu Doan",
        "name_q": "Hidemasa Morita",
        "value": 0.0024656691289181277,
        "minutes_together": 203.13333333333333
      },
      {
        "player_p": 4928,
        "player_q": 13799,
        "name_p": "Wataru Endo",
        "name_q": "Shuichi Gonda",
        "value": 0.0020127796599571797,
        "minutes_together": 294.96666666666664
      },
      {
        "player_p": 4928,
        "player_q": 13802,
        "name_p": "Wataru Endo",
        "name_q": "Daizen Maeda",
        "value": 0.00017873430999106526,
        "minutes_together": 120.15
      },
      {
        "player_p": 2095,
        "player_q": 13802,
        "name_p": "Daichi Kamada",
        "name_q": "Daizen Maeda",
        "value": -0.0004085641137889531,
        "minutes_together": 181.18333333333334
      },
      {
        "player_p": 2094,
        "player_q": 13797,
        "name_p": "Junya Ito",
        "name_q": "Shogo Taniguchi",
        "value": -0.0020281627434785253,
        "minutes_together": 187.0
      },
      {
        "player_p": 2094,
        "player_q": 13799,
        "name_p": "Junya Ito",
        "name_q": "Shuichi Gonda",
        "value": -0.0031545525837528734,
        "minutes_together": 315.1666666666667
      },
      {
        "player_p": 13798,
        "player_q": 13802,
        "name_p": "Yuto Nagatomo",
        "name_q": "Daizen Maeda",
        "value": -0.003327648854397909,
        "minutes_together": 166.75
      },
      {
        "player_p": 11841,
        "player_q": 13802,
        "name_p": "Hidemasa Morita",
        "name_q": "Daizen Maeda",
        "value": -0.0038091830116701773,
        "minutes_together": 124.53333333333333
      },
      {
        "player_p": 5098,
        "player_q": 13802,
        "name_p": "Ko Itakura",
        "name_q": "Daizen Maeda",
        "value": -0.004115723784456954,
        "minutes_together": 117.68333333333334
      },
      {
        "player_p": 2094,
        "player_q": 5098,
        "name_p": "Junya Ito",
        "name_q": "Ko Itakura",
        "value": -0.006316123382363502,
        "minutes_together": 225.16666666666669
      },
      {
        "player_p": 2088,
        "player_q": 13797,
        "name_p": "Maya Yoshida",
        "name_q": "Shogo Taniguchi",
        "value": -0.006519245096003894,
        "minutes_together": 187.0
      },
      {
        "player_p": 9981,
        "player_q": 13802,
        "name_p": "Ritsu Doan",
        "name_q": "Daizen Maeda",
        "value": -0.013160360748997887,
        "minutes_together": 77.81666666666666
      },
      {
        "player_p": 9981,
        "player_q": 13797,
        "name_p": "Ritsu Doan",
        "name_q": "Shogo Taniguchi",
        "value": -0.02788006037507165,
        "minutes_together": 136.81666666666666
      }
    ],
    "path": "assets/figures/team_57_joi90.png"
  },
  {
    "team_id": "57",
    "team_name": "Japan",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_57_jdi90.png",
    "n_pairs": 55,
    "median": -0.006200401902478827,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 2088,
        "name": "Maya Yoshida",
        "position": "MCB",
        "x": 34.0,
        "y": 22.5,
        "row": 4,
        "col": 2,
        "on_seconds": 22889
      },
      {
        "player_id": 13799,
        "name": "Shuichi Gonda",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 22889
      },
      {
        "player_id": 2095,
        "name": "Daichi Kamada",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 20219
      },
      {
        "player_id": 2094,
        "name": "Junya Ito",
        "position": "RWB",
        "x": 61.199999999999996,
        "y": 40.0,
        "row": 3,
        "col": 4,
        "on_seconds": 18910
      },
      {
        "player_id": 4928,
        "name": "Wataru Endo",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17698
      },
      {
        "player_id": 5098,
        "name": "Ko Itakura",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17489
      },
      {
        "player_id": 11841,
        "name": "Hidemasa Morita",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 16999
      },
      {
        "player_id": 9981,
        "name": "Ritsu Doan",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 13836
      },
      {
        "player_id": 13798,
        "name": "Yuto Nagatomo",
        "position": "LWB",
        "x": 6.8,
        "y": 40.0,
        "row": 3,
        "col": 0,
        "on_seconds": 12805
      },
      {
        "player_id": 13797,
        "name": "Shogo Taniguchi",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 11220
      },
      {
        "player_id": 13802,
        "name": "Daizen Maeda",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 10871
      }
    ],
    "pairs": [
      {
        "player_p": 5098,
        "player_q": 9981,
        "name_p": "Ko Itakura",
        "name_q": "Ritsu Doan",
        "value": 0.06887952999681099,
        "minutes_together": 144.06666666666666
      },
      {
        "player_p": 4928,
        "player_q": 5098,
        "name_p": "Wataru Endo",
        "name_q": "Ko Itakura",
        "value": 0.04556688574415063,
        "minutes_together": 204.96666666666667
      },
      {
        "player_p": 5098,
        "player_q": 11841,
        "name_p": "Ko Itakura",
        "name_q": "Hidemasa Morita",
        "value": 0.03831604797648847,
        "minutes_together": 193.31666666666666
      },
      {
        "player_p": 2088,
        "player_q": 4928,
        "name_p": "Maya Yoshida",
        "name_q": "Wataru Endo",
        "value": 0.03693947191713457,
        "minutes_together": 294.96666666666664
      },
      {
        "player_p": 9981,
        "player_q": 11841,
        "name_p": "Ritsu Doan",
        "name_q": "Hidemasa Morita",
        "value": 0.03566905913650788,
        "minutes_together": 203.13333333333333
      },
      {
        "player_p": 4928,
        "player_q": 11841,
        "name_p": "Wataru Endo",
        "name_q": "Hidemasa Morita",
        "value": 0.028406556411014354,
        "minutes_together": 196.79999999999998
      },
      {
        "player_p": 2094,
        "player_q": 4928,
        "name_p": "Junya Ito",
        "name_q": "Wataru Endo",
        "value": 0.02687292128843503,
        "minutes_together": 228.65
      },
      {
        "player_p": 2088,
        "player_q": 9981,
        "name_p": "Maya Yoshida",
        "name_q": "Ritsu Doan",
        "value": 0.025889382847420945,
        "minutes_together": 230.6
      },
      {
        "player_p": 4928,
        "player_q": 13799,
        "name_p": "Wataru Endo",
        "name_q": "Shuichi Gonda",
        "value": 0.025734074404606618,
        "minutes_together": 294.96666666666664
      },
      {
        "player_p": 2094,
        "player_q": 11841,
        "name_p": "Junya Ito",
        "name_q": "Hidemasa Morita",
        "value": 0.02535509328572185,
        "minutes_together": 217.0
      },
      {
        "player_p": 11841,
        "player_q": 13799,
        "name_p": "Hidemasa Morita",
        "name_q": "Shuichi Gonda",
        "value": 0.020487124664793264,
        "minutes_together": 283.31666666666666
      },
      {
        "player_p": 4928,
        "player_q": 9981,
        "name_p": "Wataru Endo",
        "name_q": "Ritsu Doan",
        "value": 0.019708244147576395,
        "minutes_together": 190.79999999999998
      },
      {
        "player_p": 9981,
        "player_q": 13799,
        "name_p": "Ritsu Doan",
        "name_q": "Shuichi Gonda",
        "value": 0.017122490442296162,
        "minutes_together": 230.6
      },
      {
        "player_p": 2095,
        "player_q": 4928,
        "name_p": "Daichi Kamada",
        "name_q": "Wataru Endo",
        "value": 0.017077744915082033,
        "minutes_together": 268.6
      },
      {
        "player_p": 4928,
        "player_q": 13798,
        "name_p": "Wataru Endo",
        "name_q": "Yuto Nagatomo",
        "value": 0.01558692158534575,
        "minutes_together": 166.71666666666667
      },
      {
        "player_p": 2094,
        "player_q": 5098,
        "name_p": "Junya Ito",
        "name_q": "Ko Itakura",
        "value": 0.013375031721942623,
        "minutes_together": 225.16666666666669
      },
      {
        "player_p": 2088,
        "player_q": 11841,
        "name_p": "Maya Yoshida",
        "name_q": "Hidemasa Morita",
        "value": 0.011690626665021756,
        "minutes_together": 283.31666666666666
      },
      {
        "player_p": 2095,
        "player_q": 5098,
        "name_p": "Daichi Kamada",
        "name_q": "Ko Itakura",
        "value": 0.010900726130514422,
        "minutes_together": 262.8666666666667
      },
      {
        "player_p": 11841,
        "player_q": 13797,
        "name_p": "Hidemasa Morita",
        "name_q": "Shogo Taniguchi",
        "value": 0.008076786271108914,
        "minutes_together": 187.0
      },
      {
        "player_p": 4928,
        "player_q": 13802,
        "name_p": "Wataru Endo",
        "name_q": "Daizen Maeda",
        "value": 0.0069356015133478005,
        "minutes_together": 120.15
      },
      {
        "player_p": 2095,
        "player_q": 11841,
        "name_p": "Daichi Kamada",
        "name_q": "Hidemasa Morita",
        "value": 0.006315727402766655,
        "minutes_together": 238.81666666666666
      },
      {
        "player_p": 11841,
        "player_q": 13798,
        "name_p": "Hidemasa Morita",
        "name_q": "Yuto Nagatomo",
        "value": 0.002717768806530817,
        "minutes_together": 156.86666666666667
      },
      {
        "player_p": 5098,
        "player_q": 13799,
        "name_p": "Ko Itakura",
        "name_q": "Shuichi Gonda",
        "value": 0.0015861933702071389,
        "minutes_together": 291.48333333333335
      },
      {
        "player_p": 2094,
        "player_q": 13799,
        "name_p": "Junya Ito",
        "name_q": "Shuichi Gonda",
        "value": 0.0009545840609219503,
        "minutes_together": 315.1666666666667
      },
      {
        "player_p": 4928,
        "player_q": 13797,
        "name_p": "Wataru Endo",
        "name_q": "Shogo Taniguchi",
        "value": -0.0034109469794511614,
        "minutes_together": 100.48333333333333
      },
      {
        "player_p": 5098,
        "player_q": 13798,
        "name_p": "Ko Itakura",
        "name_q": "Yuto Nagatomo",
        "value": -0.0035123850020008997,
        "minutes_together": 149.81666666666666
      },
      {
        "player_p": 2095,
        "player_q": 9981,
        "name_p": "Daichi Kamada",
        "name_q": "Ritsu Doan",
        "value": -0.0035545185006282363,
        "minutes_together": 189.56666666666666
      },
      {
        "player_p": 2088,
        "player_q": 2094,
        "name_p": "Maya Yoshida",
        "name_q": "Junya Ito",
        "value": -0.006200401902478827,
        "minutes_together": 315.1666666666667
      },
      {
        "player_p": 2094,
        "player_q": 2095,
        "name_p": "Junya Ito",
        "name_q": "Daichi Kamada",
        "value": -0.006428174394830975,
        "minutes_together": 270.6666666666667
      },
      {
        "player_p": 9981,
        "player_q": 13798,
        "name_p": "Ritsu Doan",
        "name_q": "Yuto Nagatomo",
        "value": -0.008334343939985044,
        "minutes_together": 110.16666666666667
      },
      {
        "player_p": 2088,
        "player_q": 13799,
        "name_p": "Maya Yoshida",
        "name_q": "Shuichi Gonda",
        "value": -0.009095766305737182,
        "minutes_together": 381.48333333333335
      },
      {
        "player_p": 2095,
        "player_q": 13799,
        "name_p": "Daichi Kamada",
        "name_q": "Shuichi Gonda",
        "value": -0.0094538015186439,
        "minutes_together": 336.98333333333335
      },
      {
        "player_p": 13798,
        "player_q": 13799,
        "name_p": "Yuto Nagatomo",
        "name_q": "Shuichi Gonda",
        "value": -0.01310352216866941,
        "minutes_together": 213.41666666666669
      },
      {
        "player_p": 11841,
        "player_q": 13802,
        "name_p": "Hidemasa Morita",
        "name_q": "Daizen Maeda",
        "value": -0.014474775146503372,
        "minutes_together": 124.53333333333333
      },
      {
        "player_p": 2088,
        "player_q": 5098,
        "name_p": "Maya Yoshida",
        "name_q": "Ko Itakura",
        "value": -0.01553348434432674,
        "minutes_together": 291.48333333333335
      },
      {
        "player_p": 2088,
        "player_q": 2095,
        "name_p": "Maya Yoshida",
        "name_q": "Daichi Kamada",
        "value": -0.017118656000999984,
        "minutes_together": 336.98333333333335
      },
      {
        "player_p": 2094,
        "player_q": 9981,
        "name_p": "Junya Ito",
        "name_q": "Ritsu Doan",
        "value": -0.017884419426184864,
        "minutes_together": 164.28333333333333
      },
      {
        "player_p": 9981,
        "player_q": 13797,
        "name_p": "Ritsu Doan",
        "name_q": "Shogo Taniguchi",
        "value": -0.018255964053456114,
        "minutes_together": 136.81666666666666
      },
      {
        "player_p": 2094,
        "player_q": 13798,
        "name_p": "Junya Ito",
        "name_q": "Yuto Nagatomo",
        "value": -0.0190477986465902,
        "minutes_together": 166.85
      },
      {
        "player_p": 2094,
        "player_q": 13797,
        "name_p": "Junya Ito",
        "name_q": "Shogo Taniguchi",
        "value": -0.019525959334438795,
        "minutes_together": 187.0
      },
      {
        "player_p": 2094,
        "player_q": 13802,
        "name_p": "Junya Ito",
        "name_q": "Daizen Maeda",
        "value": -0.021318000241624325,
        "minutes_together": 181.18333333333334
      },
      {
        "player_p": 2088,
        "player_q": 13798,
        "name_p": "Maya Yoshida",
        "name_q": "Yuto Nagatomo",
        "value": -0.023029327867744087,
        "minutes_together": 213.41666666666669
      },
      {
        "player_p": 13797,
        "player_q": 13799,
        "name_p": "Shogo Taniguchi",
        "name_q": "Shuichi Gonda",
        "value": -0.023255328247874317,
        "minutes_together": 187.0
      },
      {
        "player_p": 2095,
        "player_q": 13798,
        "name_p": "Daichi Kamada",
        "name_q": "Yuto Nagatomo",
        "value": -0.023988593257361718,
        "minutes_together": 213.41666666666669
      },
      {
        "player_p": 5098,
        "player_q": 13802,
        "name_p": "Ko Itakura",
        "name_q": "Daizen Maeda",
        "value": -0.025686847404856578,
        "minutes_together": 117.68333333333334
      },
      {
        "player_p": 13799,
        "player_q": 13802,
        "name_p": "Shuichi Gonda",
        "name_q": "Daizen Maeda",
        "value": -0.028164675011931005,
        "minutes_together": 181.18333333333334
      },
      {
        "player_p": 13798,
        "player_q": 13802,
        "name_p": "Yuto Nagatomo",
        "name_q": "Daizen Maeda",
        "value": -0.02862793769786485,
        "minutes_together": 166.75
      },
      {
        "player_p": 2088,
        "player_q": 13797,
        "name_p": "Maya Yoshida",
        "name_q": "Shogo Taniguchi",
        "value": -0.03735730201572558,
        "minutes_together": 187.0
      },
      {
        "player_p": 5098,
        "player_q": 13797,
        "name_p": "Ko Itakura",
        "name_q": "Shogo Taniguchi",
        "value": -0.03873376246732041,
        "minutes_together": 97.0
      },
      {
        "player_p": 2095,
        "player_q": 13802,
        "name_p": "Daichi Kamada",
        "name_q": "Daizen Maeda",
        "value": -0.03978769014569166,
        "minutes_together": 181.18333333333334
      },
      {
        "player_p": 13797,
        "player_q": 13798,
        "name_p": "Shogo Taniguchi",
        "name_q": "Yuto Nagatomo",
        "value": -0.04454187041254862,
        "minutes_together": 110.30000000000001
      },
      {
        "player_p": 2088,
        "player_q": 13802,
        "name_p": "Maya Yoshida",
        "name_q": "Daizen Maeda",
        "value": -0.04527073937626008,
        "minutes_together": 181.18333333333334
      },
      {
        "player_p": 13797,
        "player_q": 13802,
        "name_p": "Shogo Taniguchi",
        "name_q": "Daizen Maeda",
        "value": -0.05030636890227726,
        "minutes_together": 124.53333333333333
      },
      {
        "player_p": 2095,
        "player_q": 13797,
        "name_p": "Daichi Kamada",
        "name_q": "Shogo Taniguchi",
        "value": -0.05562829952292944,
        "minutes_together": 142.5
      },
      {
        "player_p": 9981,
        "player_q": 13802,
        "name_p": "Ritsu Doan",
        "name_q": "Daizen Maeda",
        "value": -0.06430181079545974,
        "minutes_together": 77.81666666666666
      }
    ],
    "path": "assets/figures/team_57_jdi90.png"
  },
  {
    "team_id": "58",
    "team_name": "Mexico",
    "metric": "joi90",
    "mode": "Offensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_58_joi90.png",
    "n_pairs": 52,
    "median": 0.009133296575016797,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 3301,
        "name": "H\u00e9ctor Moreno",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17481
      },
      {
        "player_id": 3299,
        "name": "C\u00e9sar Montes",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17481
      },
      {
        "player_id": 3343,
        "name": "Guillermo Ochoa",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17481
      },
      {
        "player_id": 3303,
        "name": "Jes\u00fas Gallardo",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 17481
      },
      {
        "player_id": 3455,
        "name": "Luis Ch\u00e1vez",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17481
      },
      {
        "player_id": 2111,
        "name": "Hirving Lozano",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 16027
      },
      {
        "player_id": 3414,
        "name": "Alexis Vega",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 12086
      },
      {
        "player_id": 2106,
        "name": "Edson Alvarez",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 10981
      },
      {
        "player_id": 3352,
        "name": "Jorge S\u00e1nchez",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 10978
      },
      {
        "player_id": 1384,
        "name": "Hector Herrera",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 10017
      },
      {
        "player_id": 3367,
        "name": "Henry Mart\u00edn",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 8799
      }
    ],
    "pairs": [
      {
        "player_p": 3299,
        "player_q": 3367,
        "name_p": "C\u00e9sar Montes",
        "name_q": "Henry Mart\u00edn",
        "value": 0.3991912163712824,
        "minutes_together": 146.65
      },
      {
        "player_p": 2111,
        "player_q": 3455,
        "name_p": "Hirving Lozano",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.1444005950680527,
        "minutes_together": 267.1166666666667
      },
      {
        "player_p": 3299,
        "player_q": 3455,
        "name_p": "C\u00e9sar Montes",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.1341511019548679,
        "minutes_together": 291.35
      },
      {
        "player_p": 3299,
        "player_q": 3301,
        "name_p": "C\u00e9sar Montes",
        "name_q": "H\u00e9ctor Moreno",
        "value": 0.08036906361418988,
        "minutes_together": 291.35
      },
      {
        "player_p": 2106,
        "player_q": 3301,
        "name_p": "Edson Alvarez",
        "name_q": "H\u00e9ctor Moreno",
        "value": 0.05660292533458929,
        "minutes_together": 183.01666666666665
      },
      {
        "player_p": 3301,
        "player_q": 3343,
        "name_p": "H\u00e9ctor Moreno",
        "name_q": "Guillermo Ochoa",
        "value": 0.054674870933571366,
        "minutes_together": 291.35
      },
      {
        "player_p": 2106,
        "player_q": 3299,
        "name_p": "Edson Alvarez",
        "name_q": "C\u00e9sar Montes",
        "value": 0.042793530360106045,
        "minutes_together": 183.01666666666665
      },
      {
        "player_p": 3414,
        "player_q": 3455,
        "name_p": "Alexis Vega",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.04012933029521002,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 1384,
        "player_q": 2106,
        "name_p": "Hector Herrera",
        "name_q": "Edson Alvarez",
        "value": 0.03900617447588824,
        "minutes_together": 70.46666666666667
      },
      {
        "player_p": 2111,
        "player_q": 3301,
        "name_p": "Hirving Lozano",
        "name_q": "H\u00e9ctor Moreno",
        "value": 0.038000502594593324,
        "minutes_together": 267.1166666666667
      },
      {
        "player_p": 3303,
        "player_q": 3455,
        "name_p": "Jes\u00fas Gallardo",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.03775773131910351,
        "minutes_together": 291.35
      },
      {
        "player_p": 3299,
        "player_q": 3303,
        "name_p": "C\u00e9sar Montes",
        "name_q": "Jes\u00fas Gallardo",
        "value": 0.036912496746319926,
        "minutes_together": 291.35
      },
      {
        "player_p": 3303,
        "player_q": 3352,
        "name_p": "Jes\u00fas Gallardo",
        "name_q": "Jorge S\u00e1nchez",
        "value": 0.03652912866714151,
        "minutes_together": 182.96666666666667
      },
      {
        "player_p": 3301,
        "player_q": 3414,
        "name_p": "H\u00e9ctor Moreno",
        "name_q": "Alexis Vega",
        "value": 0.03284650930271586,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 3299,
        "player_q": 3352,
        "name_p": "C\u00e9sar Montes",
        "name_q": "Jorge S\u00e1nchez",
        "value": 0.03202653153961284,
        "minutes_together": 182.96666666666667
      },
      {
        "player_p": 3301,
        "player_q": 3455,
        "name_p": "H\u00e9ctor Moreno",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.031735675200938486,
        "minutes_together": 291.35
      },
      {
        "player_p": 3352,
        "player_q": 3455,
        "name_p": "Jorge S\u00e1nchez",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.03157509460432955,
        "minutes_together": 182.96666666666667
      },
      {
        "player_p": 3299,
        "player_q": 3343,
        "name_p": "C\u00e9sar Montes",
        "name_q": "Guillermo Ochoa",
        "value": 0.02928563026618352,
        "minutes_together": 291.35
      },
      {
        "player_p": 1384,
        "player_q": 2111,
        "name_p": "Hector Herrera",
        "name_q": "Hirving Lozano",
        "value": 0.020710982254133935,
        "minutes_together": 142.71666666666667
      },
      {
        "player_p": 3303,
        "player_q": 3367,
        "name_p": "Jes\u00fas Gallardo",
        "name_q": "Henry Mart\u00edn",
        "value": 0.01893468411919841,
        "minutes_together": 146.65
      },
      {
        "player_p": 2106,
        "player_q": 3352,
        "name_p": "Edson Alvarez",
        "name_q": "Jorge S\u00e1nchez",
        "value": 0.018487764715784994,
        "minutes_together": 182.96666666666667
      },
      {
        "player_p": 2106,
        "player_q": 2111,
        "name_p": "Edson Alvarez",
        "name_q": "Hirving Lozano",
        "value": 0.016941399394527403,
        "minutes_together": 183.01666666666665
      },
      {
        "player_p": 1384,
        "player_q": 3367,
        "name_p": "Hector Herrera",
        "name_q": "Henry Mart\u00edn",
        "value": 0.016028669784259847,
        "minutes_together": 70.46666666666667
      },
      {
        "player_p": 3301,
        "player_q": 3303,
        "name_p": "H\u00e9ctor Moreno",
        "name_q": "Jes\u00fas Gallardo",
        "value": 0.014122288536348433,
        "minutes_together": 291.35
      },
      {
        "player_p": 3303,
        "player_q": 3414,
        "name_p": "Jes\u00fas Gallardo",
        "name_q": "Alexis Vega",
        "value": 0.012335096243911029,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 2111,
        "player_q": 3414,
        "name_p": "Hirving Lozano",
        "name_q": "Alexis Vega",
        "value": 0.011214752836884077,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 1384,
        "player_q": 3301,
        "name_p": "Hector Herrera",
        "name_q": "H\u00e9ctor Moreno",
        "value": 0.007051840313149519,
        "minutes_together": 166.95
      },
      {
        "player_p": 2111,
        "player_q": 3299,
        "name_p": "Hirving Lozano",
        "name_q": "C\u00e9sar Montes",
        "value": 0.006085395307519796,
        "minutes_together": 267.1166666666667
      },
      {
        "player_p": 1384,
        "player_q": 3303,
        "name_p": "Hector Herrera",
        "name_q": "Jes\u00fas Gallardo",
        "value": 0.005773912148054922,
        "minutes_together": 166.95
      },
      {
        "player_p": 3343,
        "player_q": 3455,
        "name_p": "Guillermo Ochoa",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.005650504116717914,
        "minutes_together": 291.35
      },
      {
        "player_p": 2111,
        "player_q": 3367,
        "name_p": "Hirving Lozano",
        "name_q": "Henry Mart\u00edn",
        "value": 0.004299415497573719,
        "minutes_together": 146.65
      },
      {
        "player_p": 2111,
        "player_q": 3303,
        "name_p": "Hirving Lozano",
        "name_q": "Jes\u00fas Gallardo",
        "value": 0.003836924261805544,
        "minutes_together": 267.1166666666667
      },
      {
        "player_p": 1384,
        "player_q": 3299,
        "name_p": "Hector Herrera",
        "name_q": "C\u00e9sar Montes",
        "value": 0.0034046907049680134,
        "minutes_together": 166.95
      },
      {
        "player_p": 3303,
        "player_q": 3343,
        "name_p": "Jes\u00fas Gallardo",
        "name_q": "Guillermo Ochoa",
        "value": 0.0033577538067497345,
        "minutes_together": 291.35
      },
      {
        "player_p": 1384,
        "player_q": 3455,
        "name_p": "Hector Herrera",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.002257211497918335,
        "minutes_together": 166.95
      },
      {
        "player_p": 3343,
        "player_q": 3352,
        "name_p": "Guillermo Ochoa",
        "name_q": "Jorge S\u00e1nchez",
        "value": -2.296364439936456e-06,
        "minutes_together": 182.96666666666667
      },
      {
        "player_p": 3301,
        "player_q": 3367,
        "name_p": "H\u00e9ctor Moreno",
        "name_q": "Henry Mart\u00edn",
        "value": -8.148726323919898e-05,
        "minutes_together": 146.65
      },
      {
        "player_p": 2111,
        "player_q": 3343,
        "name_p": "Hirving Lozano",
        "name_q": "Guillermo Ochoa",
        "value": -0.001316444311038219,
        "minutes_together": 267.1166666666667
      },
      {
        "player_p": 3299,
        "player_q": 3414,
        "name_p": "C\u00e9sar Montes",
        "name_q": "Alexis Vega",
        "value": -0.002472744107925094,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 2106,
        "player_q": 3343,
        "name_p": "Edson Alvarez",
        "name_q": "Guillermo Ochoa",
        "value": -0.005001710660310563,
        "minutes_together": 183.01666666666665
      },
      {
        "player_p": 2106,
        "player_q": 3367,
        "name_p": "Edson Alvarez",
        "name_q": "Henry Mart\u00edn",
        "value": -0.005804562275455591,
        "minutes_together": 146.65
      },
      {
        "player_p": 2106,
        "player_q": 3455,
        "name_p": "Edson Alvarez",
        "name_q": "Luis Ch\u00e1vez",
        "value": -0.007115772305262062,
        "minutes_together": 183.01666666666665
      },
      {
        "player_p": 2106,
        "player_q": 3303,
        "name_p": "Edson Alvarez",
        "name_q": "Jes\u00fas Gallardo",
        "value": -0.012120380105323226,
        "minutes_together": 183.01666666666665
      },
      {
        "player_p": 3367,
        "player_q": 3414,
        "name_p": "Henry Mart\u00edn",
        "name_q": "Alexis Vega",
        "value": -0.015492614827397807,
        "minutes_together": 122.76666666666667
      },
      {
        "player_p": 1384,
        "player_q": 3414,
        "name_p": "Hector Herrera",
        "name_q": "Alexis Vega",
        "value": -0.016505804393900238,
        "minutes_together": 135.81666666666666
      },
      {
        "player_p": 3352,
        "player_q": 3414,
        "name_p": "Jorge S\u00e1nchez",
        "name_q": "Alexis Vega",
        "value": -0.01670635749495499,
        "minutes_together": 136.08333333333331
      },
      {
        "player_p": 2106,
        "player_q": 3414,
        "name_p": "Edson Alvarez",
        "name_q": "Alexis Vega",
        "value": -0.021311609784098663,
        "minutes_together": 136.08333333333331
      },
      {
        "player_p": 1384,
        "player_q": 3343,
        "name_p": "Hector Herrera",
        "name_q": "Guillermo Ochoa",
        "value": -0.02233932651715322,
        "minutes_together": 166.95
      },
      {
        "player_p": 2111,
        "player_q": 3352,
        "name_p": "Hirving Lozano",
        "name_q": "Jorge S\u00e1nchez",
        "value": -0.02325677859401149,
        "minutes_together": 182.96666666666667
      },
      {
        "player_p": 3367,
        "player_q": 3455,
        "name_p": "Henry Mart\u00edn",
        "name_q": "Luis Ch\u00e1vez",
        "value": -0.024022450789582102,
        "minutes_together": 146.65
      },
      {
        "player_p": 1384,
        "player_q": 3352,
        "name_p": "Hector Herrera",
        "name_q": "Jorge S\u00e1nchez",
        "value": -0.07511616801163767,
        "minutes_together": 70.46666666666667
      },
      {
        "player_p": 3352,
        "player_q": 3367,
        "name_p": "Jorge S\u00e1nchez",
        "name_q": "Henry Mart\u00edn",
        "value": -0.09397029721400219,
        "minutes_together": 146.65
      }
    ],
    "path": "assets/figures/team_58_joi90.png"
  },
  {
    "team_id": "58",
    "team_name": "Mexico",
    "metric": "jdi90",
    "mode": "Defensive Chemistry",
    "out_path": "/Users/nick/wc2026-tracking-transformer/research/site/assets/figures/team_58_jdi90.png",
    "n_pairs": 55,
    "median": 0.02434653215178522,
    "min_minutes": 60.0,
    "players": [
      {
        "player_id": 3301,
        "name": "H\u00e9ctor Moreno",
        "position": "LCB",
        "x": 20.4,
        "y": 22.5,
        "row": 4,
        "col": 1,
        "on_seconds": 17481
      },
      {
        "player_id": 3299,
        "name": "C\u00e9sar Montes",
        "position": "RCB",
        "x": 47.6,
        "y": 22.5,
        "row": 4,
        "col": 3,
        "on_seconds": 17481
      },
      {
        "player_id": 3343,
        "name": "Guillermo Ochoa",
        "position": "GK",
        "x": 34.0,
        "y": 5.0,
        "row": 5,
        "col": 2,
        "on_seconds": 17481
      },
      {
        "player_id": 3303,
        "name": "Jes\u00fas Gallardo",
        "position": "LB",
        "x": 6.8,
        "y": 22.5,
        "row": 4,
        "col": 0,
        "on_seconds": 17481
      },
      {
        "player_id": 3455,
        "name": "Luis Ch\u00e1vez",
        "position": "CM",
        "x": 34.0,
        "y": 57.5,
        "row": 2,
        "col": 2,
        "on_seconds": 17481
      },
      {
        "player_id": 2111,
        "name": "Hirving Lozano",
        "position": "RW",
        "x": 61.199999999999996,
        "y": 57.5,
        "row": 2,
        "col": 4,
        "on_seconds": 16027
      },
      {
        "player_id": 3414,
        "name": "Alexis Vega",
        "position": "LW",
        "x": 6.8,
        "y": 57.5,
        "row": 2,
        "col": 0,
        "on_seconds": 12086
      },
      {
        "player_id": 2106,
        "name": "Edson Alvarez",
        "position": "CM",
        "x": 34.0,
        "y": 75.0,
        "row": 1,
        "col": 2,
        "on_seconds": 10981
      },
      {
        "player_id": 3352,
        "name": "Jorge S\u00e1nchez",
        "position": "RB",
        "x": 61.199999999999996,
        "y": 22.5,
        "row": 4,
        "col": 4,
        "on_seconds": 10978
      },
      {
        "player_id": 1384,
        "name": "Hector Herrera",
        "position": "CM",
        "x": 20.4,
        "y": 57.5,
        "row": 2,
        "col": 1,
        "on_seconds": 10017
      },
      {
        "player_id": 3367,
        "name": "Henry Mart\u00edn",
        "position": "CF",
        "x": 34.0,
        "y": 92.5,
        "row": 0,
        "col": 2,
        "on_seconds": 8799
      }
    ],
    "pairs": [
      {
        "player_p": 1384,
        "player_q": 2106,
        "name_p": "Hector Herrera",
        "name_q": "Edson Alvarez",
        "value": 0.084584697840126,
        "minutes_together": 70.46666666666667
      },
      {
        "player_p": 1384,
        "player_q": 3367,
        "name_p": "Hector Herrera",
        "name_q": "Henry Mart\u00edn",
        "value": 0.07024104504077054,
        "minutes_together": 70.46666666666667
      },
      {
        "player_p": 1384,
        "player_q": 3352,
        "name_p": "Hector Herrera",
        "name_q": "Jorge S\u00e1nchez",
        "value": 0.06526450849934042,
        "minutes_together": 70.46666666666667
      },
      {
        "player_p": 1384,
        "player_q": 3414,
        "name_p": "Hector Herrera",
        "name_q": "Alexis Vega",
        "value": 0.047285880938142066,
        "minutes_together": 135.81666666666666
      },
      {
        "player_p": 1384,
        "player_q": 2111,
        "name_p": "Hector Herrera",
        "name_q": "Hirving Lozano",
        "value": 0.044690085409548254,
        "minutes_together": 142.71666666666667
      },
      {
        "player_p": 1384,
        "player_q": 3455,
        "name_p": "Hector Herrera",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.03974344254274988,
        "minutes_together": 166.95
      },
      {
        "player_p": 1384,
        "player_q": 3301,
        "name_p": "Hector Herrera",
        "name_q": "H\u00e9ctor Moreno",
        "value": 0.036005586661006755,
        "minutes_together": 166.95
      },
      {
        "player_p": 1384,
        "player_q": 3299,
        "name_p": "Hector Herrera",
        "name_q": "C\u00e9sar Montes",
        "value": 0.03596078154726095,
        "minutes_together": 166.95
      },
      {
        "player_p": 2106,
        "player_q": 3414,
        "name_p": "Edson Alvarez",
        "name_q": "Alexis Vega",
        "value": 0.03360137314092818,
        "minutes_together": 136.08333333333331
      },
      {
        "player_p": 1384,
        "player_q": 3343,
        "name_p": "Hector Herrera",
        "name_q": "Guillermo Ochoa",
        "value": 0.03267103630677766,
        "minutes_together": 166.95
      },
      {
        "player_p": 2106,
        "player_q": 3455,
        "name_p": "Edson Alvarez",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.031999741244283966,
        "minutes_together": 183.01666666666665
      },
      {
        "player_p": 1384,
        "player_q": 3303,
        "name_p": "Hector Herrera",
        "name_q": "Jes\u00fas Gallardo",
        "value": 0.03167487880881104,
        "minutes_together": 166.95
      },
      {
        "player_p": 3414,
        "player_q": 3455,
        "name_p": "Alexis Vega",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.03154500095189125,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 3367,
        "player_q": 3455,
        "name_p": "Henry Mart\u00edn",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.030951384590733013,
        "minutes_together": 146.65
      },
      {
        "player_p": 2106,
        "player_q": 3367,
        "name_p": "Edson Alvarez",
        "name_q": "Henry Mart\u00edn",
        "value": 0.030951384590733013,
        "minutes_together": 146.65
      },
      {
        "player_p": 2106,
        "player_q": 3301,
        "name_p": "Edson Alvarez",
        "name_q": "H\u00e9ctor Moreno",
        "value": 0.030646609526143655,
        "minutes_together": 183.01666666666665
      },
      {
        "player_p": 2106,
        "player_q": 3299,
        "name_p": "Edson Alvarez",
        "name_q": "C\u00e9sar Montes",
        "value": 0.03056045293324817,
        "minutes_together": 183.01666666666665
      },
      {
        "player_p": 3299,
        "player_q": 3414,
        "name_p": "C\u00e9sar Montes",
        "name_q": "Alexis Vega",
        "value": 0.029731578299147472,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 3301,
        "player_q": 3367,
        "name_p": "H\u00e9ctor Moreno",
        "name_q": "Henry Mart\u00edn",
        "value": 0.028820961239809064,
        "minutes_together": 146.65
      },
      {
        "player_p": 3299,
        "player_q": 3367,
        "name_p": "C\u00e9sar Montes",
        "name_q": "Henry Mart\u00edn",
        "value": 0.02880397512234233,
        "minutes_together": 146.65
      },
      {
        "player_p": 2106,
        "player_q": 3343,
        "name_p": "Edson Alvarez",
        "name_q": "Guillermo Ochoa",
        "value": 0.02732448672429818,
        "minutes_together": 183.01666666666665
      },
      {
        "player_p": 3301,
        "player_q": 3414,
        "name_p": "H\u00e9ctor Moreno",
        "name_q": "Alexis Vega",
        "value": 0.027055681056931107,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 3367,
        "player_q": 3414,
        "name_p": "Henry Mart\u00edn",
        "name_q": "Alexis Vega",
        "value": 0.02704377699376364,
        "minutes_together": 122.76666666666667
      },
      {
        "player_p": 3343,
        "player_q": 3367,
        "name_p": "Guillermo Ochoa",
        "name_q": "Henry Mart\u00edn",
        "value": 0.026112307164998582,
        "minutes_together": 146.65
      },
      {
        "player_p": 2106,
        "player_q": 3303,
        "name_p": "Edson Alvarez",
        "name_q": "Jes\u00fas Gallardo",
        "value": 0.02510670514038913,
        "minutes_together": 183.01666666666665
      },
      {
        "player_p": 3352,
        "player_q": 3455,
        "name_p": "Jorge S\u00e1nchez",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.024963175444517805,
        "minutes_together": 182.96666666666667
      },
      {
        "player_p": 2106,
        "player_q": 3352,
        "name_p": "Edson Alvarez",
        "name_q": "Jorge S\u00e1nchez",
        "value": 0.024963175444517805,
        "minutes_together": 182.96666666666667
      },
      {
        "player_p": 3343,
        "player_q": 3414,
        "name_p": "Guillermo Ochoa",
        "name_q": "Alexis Vega",
        "value": 0.02434653215178522,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 3301,
        "player_q": 3352,
        "name_p": "H\u00e9ctor Moreno",
        "name_q": "Jorge S\u00e1nchez",
        "value": 0.02360907172415822,
        "minutes_together": 182.96666666666667
      },
      {
        "player_p": 3299,
        "player_q": 3352,
        "name_p": "C\u00e9sar Montes",
        "name_q": "Jorge S\u00e1nchez",
        "value": 0.023523071043016004,
        "minutes_together": 182.96666666666667
      },
      {
        "player_p": 3303,
        "player_q": 3367,
        "name_p": "Jes\u00fas Gallardo",
        "name_q": "Henry Mart\u00edn",
        "value": 0.023446586567884346,
        "minutes_together": 146.65
      },
      {
        "player_p": 3352,
        "player_q": 3367,
        "name_p": "Jorge S\u00e1nchez",
        "name_q": "Henry Mart\u00edn",
        "value": 0.023358575473762414,
        "minutes_together": 146.65
      },
      {
        "player_p": 3352,
        "player_q": 3414,
        "name_p": "Jorge S\u00e1nchez",
        "name_q": "Alexis Vega",
        "value": 0.023195578827070493,
        "minutes_together": 136.08333333333331
      },
      {
        "player_p": 2106,
        "player_q": 2111,
        "name_p": "Edson Alvarez",
        "name_q": "Hirving Lozano",
        "value": 0.02251123323274866,
        "minutes_together": 183.01666666666665
      },
      {
        "player_p": 3303,
        "player_q": 3414,
        "name_p": "Jes\u00fas Gallardo",
        "name_q": "Alexis Vega",
        "value": 0.021568219013570995,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 2111,
        "player_q": 3414,
        "name_p": "Hirving Lozano",
        "name_q": "Alexis Vega",
        "value": 0.02119073531750572,
        "minutes_together": 201.43333333333334
      },
      {
        "player_p": 2111,
        "player_q": 3367,
        "name_p": "Hirving Lozano",
        "name_q": "Henry Mart\u00edn",
        "value": 0.020629359988619637,
        "minutes_together": 146.65
      },
      {
        "player_p": 3343,
        "player_q": 3352,
        "name_p": "Guillermo Ochoa",
        "name_q": "Jorge S\u00e1nchez",
        "value": 0.02028513644570465,
        "minutes_together": 182.96666666666667
      },
      {
        "player_p": 3301,
        "player_q": 3455,
        "name_p": "H\u00e9ctor Moreno",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.019729852780205004,
        "minutes_together": 291.35
      },
      {
        "player_p": 3299,
        "player_q": 3455,
        "name_p": "C\u00e9sar Montes",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.01962036330382143,
        "minutes_together": 291.35
      },
      {
        "player_p": 2111,
        "player_q": 3455,
        "name_p": "Hirving Lozano",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.019531685104432962,
        "minutes_together": 267.1166666666667
      },
      {
        "player_p": 3299,
        "player_q": 3301,
        "name_p": "C\u00e9sar Montes",
        "name_q": "H\u00e9ctor Moreno",
        "value": 0.018941948877994295,
        "minutes_together": 291.35
      },
      {
        "player_p": 2111,
        "player_q": 3299,
        "name_p": "Hirving Lozano",
        "name_q": "C\u00e9sar Montes",
        "value": 0.018856200601996168,
        "minutes_together": 267.1166666666667
      },
      {
        "player_p": 3343,
        "player_q": 3455,
        "name_p": "Guillermo Ochoa",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.01823561220715259,
        "minutes_together": 291.35
      },
      {
        "player_p": 3303,
        "player_q": 3352,
        "name_p": "Jes\u00fas Gallardo",
        "name_q": "Jorge S\u00e1nchez",
        "value": 0.01806606595106236,
        "minutes_together": 182.96666666666667
      },
      {
        "player_p": 3301,
        "player_q": 3343,
        "name_p": "H\u00e9ctor Moreno",
        "name_q": "Guillermo Ochoa",
        "value": 0.017557197781325442,
        "minutes_together": 291.35
      },
      {
        "player_p": 3299,
        "player_q": 3343,
        "name_p": "C\u00e9sar Montes",
        "name_q": "Guillermo Ochoa",
        "value": 0.01744770830494186,
        "minutes_together": 291.35
      },
      {
        "player_p": 2111,
        "player_q": 3301,
        "name_p": "Hirving Lozano",
        "name_q": "H\u00e9ctor Moreno",
        "value": 0.017353853988594792,
        "minutes_together": 267.1166666666667
      },
      {
        "player_p": 3303,
        "player_q": 3455,
        "name_p": "Jes\u00fas Gallardo",
        "name_q": "Luis Ch\u00e1vez",
        "value": 0.016563485842995444,
        "minutes_together": 291.35
      },
      {
        "player_p": 3301,
        "player_q": 3303,
        "name_p": "H\u00e9ctor Moreno",
        "name_q": "Jes\u00fas Gallardo",
        "value": 0.015885071417168297,
        "minutes_together": 291.35
      },
      {
        "player_p": 3299,
        "player_q": 3303,
        "name_p": "C\u00e9sar Montes",
        "name_q": "Jes\u00fas Gallardo",
        "value": 0.015775581940784714,
        "minutes_together": 291.35
      },
      {
        "player_p": 2111,
        "player_q": 3343,
        "name_p": "Hirving Lozano",
        "name_q": "Guillermo Ochoa",
        "value": 0.0155397694447586,
        "minutes_together": 267.1166666666667
      },
      {
        "player_p": 2111,
        "player_q": 3352,
        "name_p": "Hirving Lozano",
        "name_q": "Jorge S\u00e1nchez",
        "value": 0.015471489495464143,
        "minutes_together": 182.96666666666667
      },
      {
        "player_p": 3303,
        "player_q": 3343,
        "name_p": "Jes\u00fas Gallardo",
        "name_q": "Guillermo Ochoa",
        "value": 0.014390830844115876,
        "minutes_together": 291.35
      },
      {
        "player_p": 2111,
        "player_q": 3303,
        "name_p": "Hirving Lozano",
        "name_q": "Jes\u00fas Gallardo",
        "value": 0.013490074252072376,
        "minutes_together": 267.1166666666667
      }
    ],
    "path": "assets/figures/team_58_jdi90.png"
  }
]