{
  "apiVersion": "1",
  "generatedAt": "2026-11-15T02:26:20.239Z",
  "mode": "published-snapshot",
  "live": false,
  "sourceCheckedAt": "2026-11-14T19:04:04.001Z",
  "note": "MMA sportsbook prices from The Odds API and a vig-removed market consensus. Market prices, not betting advice. UFC model comparison is experimental. ONE and PFL are market consensus only.",
  "data": {
    "schemaVersion": 1,
    "provider": "The Odds API",
    "sourceName": "The Odds API",
    "sourceUrl": "https://the-odds-api.com/",
    "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice.",
    "kind": "market-consensus",
    "label": "Market prices, not betting advice.",
    "predictions": false,
    "model": null,
    "publishedModelEnabled": false,
    "live": false,
    "sportKey": "mma_mixed_martial_arts",
    "markets": [
      "h2h"
    ],
    "regions": [
      "us"
    ],
    "oddsFormat": "american",
    "status": "ok",
    "fetched": true,
    "skipReason": null,
    "checkedAt": "2026-11-14T19:04:04.001Z",
    "quota": {
      "requestsRemaining": 494,
      "requestsUsed": 6,
      "requestsLast": 1,
      "estimatedCost": 1
    },
    "weighting": {
      "note": "Each book is vig-removed first. The fair price is a weighted average. Pinnacle counts three times. A Betfair exchange counts two and a half times, once, even when the UK and European listings are both returned. Matchbook, Smarkets, Kalshi, and Polymarket count twice. LowVig counts one and a half times. William Hill, each Unibet country book, and other books count once. A book listed in more than one region is counted once.",
      "pinnacle": 3,
      "betfairExchange": 2.5,
      "matchbook": 2,
      "smarkets": 2,
      "kalshi": 2,
      "polymarket": 2,
      "lowvig": 1.5,
      "williamhill": 1,
      "unibet": 1,
      "other": 1
    },
    "summary": {
      "bouts": 92,
      "consensusBouts": 90,
      "sportsbookBouts": 64,
      "matchedBouts": 40,
      "unmatchedBouts": 52,
      "modelComparisons": 23
    },
    "unmatched": [
      {
        "id": "local:lewis mcgrillen evans|nawras abzakh",
        "fighters": [
          "Lewis McGrillen-Evans",
          "Nawras Abzakh"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "local:adam benwarwar|lenny blasi",
        "fighters": [
          "Adam Benwarwar",
          "Lenny Blasi"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "local:ali al kinani|kumanngern jitmuangnon",
        "fighters": [
          "Ali Al-Kinani",
          "Kumanngern Jitmuangnon"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "local:banluelok sitwatcharachai|mya lone chaw",
        "fighters": [
          "Banluelok Sitwatcharachai",
          "Mya Lone Chaw"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "local:cihan dogu|pek por tor tor thongtawee",
        "fighters": [
          "Cihan Dogu",
          "Pek Por Tor Tor Thongtawee"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "local:giorgia pieropan|nongnuk sor dechapan",
        "fighters": [
          "Giorgia Pieropan",
          "Nongnuk Sor Dechapan"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "local:kyaw swar win|yodlekpet or atchariya",
        "fighters": [
          "Kyaw Swar Win",
          "Yodlekpet Or Atchariya"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "local:mathew gesto|nattakorn kesorn",
        "fighters": [
          "Mathew Gesto",
          "Nattakorn Kesorn"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "local:nong o hama|redtang jitmuangnon",
        "fighters": [
          "Nong-O Hama",
          "Redtang Jitmuangnon"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "local:petubon sor teanchai|songpandin chor kaewwiset",
        "fighters": [
          "Petubon Sor Teanchai",
          "Songpandin Chor Kaewwiset"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "local:ramadan ondash|shimon yoshinari",
        "fighters": [
          "Ramadan Ondash",
          "Shimon Yoshinari"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "local:saiyok kiatpraison|superchamp wutdychonburipraleasing",
        "fighters": [
          "Saiyok Kiatpraison",
          "Superchamp Wutdychonburipraleasing"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "local:suhyeon kim|takumi fukamachi",
        "fighters": [
          "Suhyeon Kim",
          "Takumi Fukamachi"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "76d75d2e4bd838e60e5dd9487006f236",
        "fighters": [
          "Ollie Sarwa",
          "Ieuan Mackenzie"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "f7b2a1d2d6f1f646b6c20b0c40b9ce4f",
        "fighters": [
          "Vadim Nemkov",
          "Sergey Bilostenniy"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "99102e8e34608e3aa99ca1a89fdcc1f4",
        "fighters": [
          "Steven Hill",
          "Sado Ucar"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "e1bffd485480b8b2794ae615bd3b7f3d",
        "fighters": [
          "Tariq Pell",
          "Wellington Lopes"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "728700fb7a75f53a5af3841b5ced3507",
        "fighters": [
          "Nik Bagley",
          "Bruno Souza"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "48ac5d198a0cfd1821b577f9420fffb2",
        "fighters": [
          "Heili Alateng",
          "Juan Diaz"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "aab7065b18217457721e43f992ea4905",
        "fighters": [
          "Macy Chiasson",
          "Beatriz Mesquita"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "5c45e5cb707c61ad4186f2480707cdb9",
        "fighters": [
          "Stephen Thompson",
          "Charlie Radtke"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "e534ad040ef8bdb205bd68ad709379f0",
        "fighters": [
          "Igor Michaliszyn",
          "Tomasz Romanowski"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "a1e10dd4d199dba4bacdf001b31639fe",
        "fighters": [
          "Mateusz Pawlik",
          "Madars Fleminas"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "ac3f74fb6ab73d7bd7294770e491de69",
        "fighters": [
          "Marcin Held",
          "Valeriu Mircea"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "fa85486095e7772788cc02d860f2cf9c",
        "fighters": [
          "Steven Krt",
          "Oskar Szczepaniak"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "bf4d3ca9cd3ce24b64e1493c5ccb89d2",
        "fighters": [
          "Sasha Moisa",
          "Wojciech Kawa"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "3252a6edf971e56a6d153f473f6b6edd",
        "fighters": [
          "Diyar Nurgozhay",
          "Alik Lorenz"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "48c97941350cd548c5a6667dc0018546",
        "fighters": [
          "Nikolas Motta",
          "Dom Mar Fan"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "0b6d5a32985b31eda832be4154e10fe5",
        "fighters": [
          "Kyoji Horiguchi",
          "Asu Almabaev"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "d55740629555c012eedd01b8f75d3b69",
        "fighters": [
          "Daniel Hooker",
          "Brian Ortega"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "456bfad38cecf187ca1851aa801a2d9f",
        "fighters": [
          "Ian Garry",
          "Yaroslav Amosov"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "579d237070d5d36330194867176cb694",
        "fighters": [
          "Sergey Pavlovich",
          "Alex Pereira"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "c0d24eeb24d69c7f938f38f857924c72",
        "fighters": [
          "Justin Gaethje",
          "Ilia Topuria"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "944dd8a4945ba0df2c4370de73387c5d",
        "fighters": [
          "Conor McGregor",
          "Jorge Masvidal"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "f270ef6ee2185e18fb06a519ce69ff22",
        "fighters": [
          "Natalia Silva",
          "Alexa Grasso"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "8488c2a34f7093513d463d4b2730572e",
        "fighters": [
          "Khamzat Chimaev",
          "Paulo Henrique Costa"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "e697d4df59aa825d85fa764db999757f",
        "fighters": [
          "Sean Strickland",
          "Khamzat Chimaev"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "408347757571816aeae5ff71d1fd3849",
        "fighters": [
          "Max Holloway",
          "Paddy Pimblett"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "ead94688d843f96aba0f1486ce663b61",
        "fighters": [
          "Sean Strickland",
          "Nassourdine Imavov"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "8ecba67676067ae49594bb3f9bc86673",
        "fighters": [
          "Valentina Shevchenko",
          "Natalia Silva"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "72f8e455cf7ea9870ba0a5b4efb10def",
        "fighters": [
          "Sergey Pavlovich",
          "Alex Pereira"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "a07b585e39e3bdba3b3d2692e0552524",
        "fighters": [
          "Islam Makhachev",
          "Carlos Prates"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "5f889b13fd30ec2449fda285a1343314",
        "fighters": [
          "Islam Makhachev",
          "Michael Morales"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "a937ca5a3966417458788442d90d953f",
        "fighters": [
          "Alex Volkanovski",
          "Jean Silva"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "48a262741dc76111ac60e56190fb4407",
        "fighters": [
          "Petr Yan",
          "Sean O'Malley"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "fcee675894f8285afc8daf0808198b74",
        "fighters": [
          "Islam Makhachev",
          "Kamaru Usman"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "9f2a5922ae9758c3b18ad1a31ea88959",
        "fighters": [
          "Paddy Pimblett",
          "Conor McGregor"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "d6f19cd9b3e49b813cf2dfe131b480dc",
        "fighters": [
          "Petr Yan",
          "Song Yadong"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "51c1b5be2ac155f167f99a26ed20bf4d",
        "fighters": [
          "Magomed Ankalaev",
          "Carlos Ulberg"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "0d48546636ab555d10e35fa641b41eb1",
        "fighters": [
          "Magomed Ankalaev",
          "Jiri Prochazka"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "04ba8611730f21fa9f0d12fa539c4f01",
        "fighters": [
          "Justin Gaethje",
          "Alex Volkanovski"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      },
      {
        "id": "a161950b3a1d3cb63af59f18d045e0b5",
        "fighters": [
          "Justin Gaethje",
          "Arman Tsarukyan"
        ],
        "status": "unmatched",
        "reason": "No CageMetric bout has both of these names.",
        "candidates": []
      }
    ],
    "bouts": [
      {
        "id": "local:lewis mcgrillen evans|nawras abzakh",
        "pairKey": "lewis mcgrillen evans|nawras abzakh",
        "pairKeys": [
          "lewis mcgrillen evans|nawras abzakh"
        ],
        "commenceTime": "2026-11-11T00:46:59.643879+00:00",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Lewis McGrillen-Evans"
          },
          {
            "name": "Nawras Abzakh"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [],
        "excluded": [
          {
            "source": "kalshi",
            "title": "Kalshi",
            "reason": "The two prices could not be turned into a no-vig chance."
          }
        ],
        "consensus": null,
        "bestAvailable": [
          {
            "name": "Lewis McGrillen-Evans",
            "book": null,
            "bookKey": null,
            "source": null,
            "american": null,
            "decimal": null,
            "tiedBooks": []
          },
          {
            "name": "Nawras Abzakh",
            "book": null,
            "bookKey": null,
            "source": null,
            "american": null,
            "decimal": null,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "local:adam benwarwar|lenny blasi",
        "pairKey": "adam benwarwar|lenny blasi",
        "pairKeys": [
          "adam benwarwar|lenny blasi"
        ],
        "commenceTime": "2026-11-14T03:23:54.221542Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Adam Benwarwar"
          },
          {
            "name": "Lenny Blasi"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betway",
            "title": "BetWay",
            "source": "bestfightodds",
            "lastUpdate": "2026-11-14T03:23:54.221542Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              110,
              -150
            ],
            "decimal": [
              2.1,
              1.666667
            ],
            "implied": [
              0.47619,
              0.6
            ],
            "noVig": [
              0.442478,
              0.557522
            ],
            "margin": 0.07619,
            "note": "BestFightOdds moneyline. Market price, not a CageMetric prediction."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Adam Benwarwar",
              "fairProbability": 0.442478
            },
            {
              "name": "Lenny Blasi",
              "fairProbability": 0.557522
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Adam Benwarwar",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": 110,
            "decimal": 2.1,
            "tiedBooks": []
          },
          {
            "name": "Lenny Blasi",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": -150,
            "decimal": 1.666667,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "local:ali al kinani|kumanngern jitmuangnon",
        "pairKey": "ali al kinani|kumanngern jitmuangnon",
        "pairKeys": [
          "ali al kinani|kumanngern jitmuangnon"
        ],
        "commenceTime": "2026-11-14T03:23:54.221542Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Ali Al-Kinani"
          },
          {
            "name": "Kumanngern Jitmuangnon"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betway",
            "title": "BetWay",
            "source": "bestfightodds",
            "lastUpdate": "2026-11-14T03:23:54.221542Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -125,
              -105
            ],
            "decimal": [
              1.8,
              1.952381
            ],
            "implied": [
              0.555556,
              0.512195
            ],
            "noVig": [
              0.520305,
              0.479695
            ],
            "margin": 0.067751,
            "note": "BestFightOdds moneyline. Market price, not a CageMetric prediction."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Ali Al-Kinani",
              "fairProbability": 0.520305
            },
            {
              "name": "Kumanngern Jitmuangnon",
              "fairProbability": 0.479695
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Ali Al-Kinani",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": -125,
            "decimal": 1.8,
            "tiedBooks": []
          },
          {
            "name": "Kumanngern Jitmuangnon",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": -105,
            "decimal": 1.952381,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "local:banluelok sitwatcharachai|mya lone chaw",
        "pairKey": "banluelok sitwatcharachai|mya lone chaw",
        "pairKeys": [
          "banluelok sitwatcharachai|mya lone chaw"
        ],
        "commenceTime": "2026-11-14T03:23:54.221542Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Banluelok Sitwatcharachai"
          },
          {
            "name": "Mya Lone Chaw"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betway",
            "title": "BetWay",
            "source": "bestfightodds",
            "lastUpdate": "2026-11-14T03:23:54.221542Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -333,
              225
            ],
            "decimal": [
              1.3003,
              3.25
            ],
            "implied": [
              0.769053,
              0.307692
            ],
            "noVig": [
              0.714239,
              0.285761
            ],
            "margin": 0.076745,
            "note": "BestFightOdds moneyline. Market price, not a CageMetric prediction."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Banluelok Sitwatcharachai",
              "fairProbability": 0.714239
            },
            {
              "name": "Mya Lone Chaw",
              "fairProbability": 0.285761
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Banluelok Sitwatcharachai",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": -333,
            "decimal": 1.3003,
            "tiedBooks": []
          },
          {
            "name": "Mya Lone Chaw",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": 225,
            "decimal": 3.25,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "local:cihan dogu|pek por tor tor thongtawee",
        "pairKey": "cihan dogu|pek por tor tor thongtawee",
        "pairKeys": [
          "cihan dogu|pek por tor tor thongtawee"
        ],
        "commenceTime": "2026-11-14T03:23:54.221542Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Cihan Dogu"
          },
          {
            "name": "Pek Por Tor Tor Thongtawee"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betway",
            "title": "BetWay",
            "source": "bestfightodds",
            "lastUpdate": "2026-11-14T03:23:54.221542Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              130,
              -175
            ],
            "decimal": [
              2.3,
              1.571429
            ],
            "implied": [
              0.434783,
              0.636364
            ],
            "noVig": [
              0.405904,
              0.594096
            ],
            "margin": 0.071146,
            "note": "BestFightOdds moneyline. Market price, not a CageMetric prediction."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Cihan Dogu",
              "fairProbability": 0.405904
            },
            {
              "name": "Pek Por Tor Tor Thongtawee",
              "fairProbability": 0.594096
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Cihan Dogu",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": 130,
            "decimal": 2.3,
            "tiedBooks": []
          },
          {
            "name": "Pek Por Tor Tor Thongtawee",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": -175,
            "decimal": 1.571429,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "local:giorgia pieropan|nongnuk sor dechapan",
        "pairKey": "giorgia pieropan|nongnuk sor dechapan",
        "pairKeys": [
          "giorgia pieropan|nongnuk sor dechapan"
        ],
        "commenceTime": "2026-11-14T03:23:54.221542Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Giorgia Pieropan"
          },
          {
            "name": "Nongnuk Sor Dechapan"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betway",
            "title": "BetWay",
            "source": "bestfightodds",
            "lastUpdate": "2026-11-14T03:23:54.221542Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -150,
              110
            ],
            "decimal": [
              1.666667,
              2.1
            ],
            "implied": [
              0.6,
              0.47619
            ],
            "noVig": [
              0.557522,
              0.442478
            ],
            "margin": 0.07619,
            "note": "BestFightOdds moneyline. Market price, not a CageMetric prediction."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Giorgia Pieropan",
              "fairProbability": 0.557522
            },
            {
              "name": "Nongnuk Sor Dechapan",
              "fairProbability": 0.442478
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Giorgia Pieropan",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": -150,
            "decimal": 1.666667,
            "tiedBooks": []
          },
          {
            "name": "Nongnuk Sor Dechapan",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": 110,
            "decimal": 2.1,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "local:kyaw swar win|yodlekpet or atchariya",
        "pairKey": "kyaw swar win|yodlekpet or atchariya",
        "pairKeys": [
          "kyaw swar win|yodlekpet or atchariya"
        ],
        "commenceTime": "2026-11-14T03:23:54.221542Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Kyaw Swar Win"
          },
          {
            "name": "Yodlekpet Or Atchariya"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betway",
            "title": "BetWay",
            "source": "bestfightodds",
            "lastUpdate": "2026-11-14T03:23:54.221542Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -138,
              105
            ],
            "decimal": [
              1.724638,
              2.05
            ],
            "implied": [
              0.579832,
              0.487805
            ],
            "noVig": [
              0.543098,
              0.456902
            ],
            "margin": 0.067637,
            "note": "BestFightOdds moneyline. Market price, not a CageMetric prediction."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Kyaw Swar Win",
              "fairProbability": 0.543098
            },
            {
              "name": "Yodlekpet Or Atchariya",
              "fairProbability": 0.456902
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Kyaw Swar Win",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": -138,
            "decimal": 1.724638,
            "tiedBooks": []
          },
          {
            "name": "Yodlekpet Or Atchariya",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": 105,
            "decimal": 2.05,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "local:mathew gesto|nattakorn kesorn",
        "pairKey": "mathew gesto|nattakorn kesorn",
        "pairKeys": [
          "mathew gesto|nattakorn kesorn"
        ],
        "commenceTime": "2026-11-14T03:23:54.221542Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Mathew Gesto"
          },
          {
            "name": "Nattakorn Kesorn"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betway",
            "title": "BetWay",
            "source": "bestfightodds",
            "lastUpdate": "2026-11-14T03:23:54.221542Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              140,
              -188
            ],
            "decimal": [
              2.4,
              1.531915
            ],
            "implied": [
              0.416667,
              0.652778
            ],
            "noVig": [
              0.38961,
              0.61039
            ],
            "margin": 0.069444,
            "note": "BestFightOdds moneyline. Market price, not a CageMetric prediction."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Mathew Gesto",
              "fairProbability": 0.38961
            },
            {
              "name": "Nattakorn Kesorn",
              "fairProbability": 0.61039
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Mathew Gesto",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": 140,
            "decimal": 2.4,
            "tiedBooks": []
          },
          {
            "name": "Nattakorn Kesorn",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": -188,
            "decimal": 1.531915,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "local:nong o hama|redtang jitmuangnon",
        "pairKey": "nong o hama|redtang jitmuangnon",
        "pairKeys": [
          "nong o hama|redtang jitmuangnon"
        ],
        "commenceTime": "2026-11-14T03:23:54.221542Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Nong-O Hama"
          },
          {
            "name": "Redtang Jitmuangnon"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betway",
            "title": "BetWay",
            "source": "bestfightodds",
            "lastUpdate": "2026-11-14T03:23:54.221542Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              280,
              -400
            ],
            "decimal": [
              3.8,
              1.25
            ],
            "implied": [
              0.263158,
              0.8
            ],
            "noVig": [
              0.247525,
              0.752475
            ],
            "margin": 0.063158,
            "note": "BestFightOdds moneyline. Market price, not a CageMetric prediction."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Nong-O Hama",
              "fairProbability": 0.247525
            },
            {
              "name": "Redtang Jitmuangnon",
              "fairProbability": 0.752475
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Nong-O Hama",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": 280,
            "decimal": 3.8,
            "tiedBooks": []
          },
          {
            "name": "Redtang Jitmuangnon",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": -400,
            "decimal": 1.25,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "local:petubon sor teanchai|songpandin chor kaewwiset",
        "pairKey": "petubon sor teanchai|songpandin chor kaewwiset",
        "pairKeys": [
          "petubon sor teanchai|songpandin chor kaewwiset"
        ],
        "commenceTime": "2026-11-14T03:23:54.221542Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Petubon Sor Teanchai"
          },
          {
            "name": "Songpandin Chor Kaewwiset"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betway",
            "title": "BetWay",
            "source": "bestfightodds",
            "lastUpdate": "2026-11-14T03:23:54.221542Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              140,
              -175
            ],
            "decimal": [
              2.4,
              1.571429
            ],
            "implied": [
              0.416667,
              0.636364
            ],
            "noVig": [
              0.395683,
              0.604317
            ],
            "margin": 0.05303,
            "note": "BestFightOdds moneyline. Market price, not a CageMetric prediction."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Petubon Sor Teanchai",
              "fairProbability": 0.395683
            },
            {
              "name": "Songpandin Chor Kaewwiset",
              "fairProbability": 0.604317
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Petubon Sor Teanchai",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": 140,
            "decimal": 2.4,
            "tiedBooks": []
          },
          {
            "name": "Songpandin Chor Kaewwiset",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": -175,
            "decimal": 1.571429,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "local:ramadan ondash|shimon yoshinari",
        "pairKey": "ramadan ondash|shimon yoshinari",
        "pairKeys": [
          "ramadan ondash|shimon yoshinari"
        ],
        "commenceTime": "2026-11-14T03:23:54.221542Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Ramadan Ondash"
          },
          {
            "name": "Shimon Yoshinari"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betway",
            "title": "BetWay",
            "source": "bestfightodds",
            "lastUpdate": "2026-11-14T03:23:54.221542Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              225,
              -350
            ],
            "decimal": [
              3.25,
              1.285714
            ],
            "implied": [
              0.307692,
              0.777778
            ],
            "noVig": [
              0.283465,
              0.716535
            ],
            "margin": 0.08547,
            "note": "BestFightOdds moneyline. Market price, not a CageMetric prediction."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Ramadan Ondash",
              "fairProbability": 0.283465
            },
            {
              "name": "Shimon Yoshinari",
              "fairProbability": 0.716535
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Ramadan Ondash",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": 225,
            "decimal": 3.25,
            "tiedBooks": []
          },
          {
            "name": "Shimon Yoshinari",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": -350,
            "decimal": 1.285714,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "local:saiyok kiatpraison|superchamp wutdychonburipraleasing",
        "pairKey": "saiyok kiatpraison|superchamp wutdychonburipraleasing",
        "pairKeys": [
          "saiyok kiatpraison|superchamp wutdychonburipraleasing"
        ],
        "commenceTime": "2026-11-14T03:23:54.221542Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Saiyok Kiatpraison"
          },
          {
            "name": "Superchamp Wutdychonburipraleasing"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betway",
            "title": "BetWay",
            "source": "bestfightodds",
            "lastUpdate": "2026-11-14T03:23:54.221542Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              130,
              -175
            ],
            "decimal": [
              2.3,
              1.571429
            ],
            "implied": [
              0.434783,
              0.636364
            ],
            "noVig": [
              0.405904,
              0.594096
            ],
            "margin": 0.071146,
            "note": "BestFightOdds moneyline. Market price, not a CageMetric prediction."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Saiyok Kiatpraison",
              "fairProbability": 0.405904
            },
            {
              "name": "Superchamp Wutdychonburipraleasing",
              "fairProbability": 0.594096
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Saiyok Kiatpraison",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": 130,
            "decimal": 2.3,
            "tiedBooks": []
          },
          {
            "name": "Superchamp Wutdychonburipraleasing",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": -175,
            "decimal": 1.571429,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "local:suhyeon kim|takumi fukamachi",
        "pairKey": "suhyeon kim|takumi fukamachi",
        "pairKeys": [
          "suhyeon kim|takumi fukamachi"
        ],
        "commenceTime": "2026-11-14T03:23:54.221542Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Suhyeon Kim"
          },
          {
            "name": "Takumi Fukamachi"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betway",
            "title": "BetWay",
            "source": "bestfightodds",
            "lastUpdate": "2026-11-14T03:23:54.221542Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              130,
              -175
            ],
            "decimal": [
              2.3,
              1.571429
            ],
            "implied": [
              0.434783,
              0.636364
            ],
            "noVig": [
              0.405904,
              0.594096
            ],
            "margin": 0.071146,
            "note": "BestFightOdds moneyline. Market price, not a CageMetric prediction."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Suhyeon Kim",
              "fairProbability": 0.405904
            },
            {
              "name": "Takumi Fukamachi",
              "fairProbability": 0.594096
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Suhyeon Kim",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": 130,
            "decimal": 2.3,
            "tiedBooks": []
          },
          {
            "name": "Takumi Fukamachi",
            "book": "BetWay",
            "bookKey": "betway",
            "source": "bestfightodds",
            "american": -175,
            "decimal": 1.571429,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:khasan-magomedsharipov:adam-borics",
        "pairKey": "adam borics|khasan magomedsharipov",
        "pairKeys": [
          "adam borics|khasan magomedsharipov"
        ],
        "commenceTime": "2026-11-14T18:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Khasan Magomedsharipov"
          },
          {
            "name": "Adam Borics"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "PFL",
          "boutId": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:khasan-magomedsharipov:adam-borics",
          "eventId": "pfl-returns-to-dubai",
          "eventTitle": "PFL Dubai",
          "discipline": "MMA",
          "candidates": [
            "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:khasan-magomedsharipov:adam-borics"
          ],
          "reason": "Both names match one PFL bout."
        },
        "books": [
          {
            "key": "kalshi",
            "title": "Kalshi",
            "source": "kalshi",
            "lastUpdate": "2026-11-14T10:46:58.606Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -300,
              213
            ],
            "decimal": [
              1.333333,
              3.125
            ],
            "implied": [
              0.75,
              0.32
            ],
            "noVig": [
              0.700935,
              0.299065
            ],
            "margin": 0.07,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Khasan Magomedsharipov",
              "fairProbability": 0.700935
            },
            {
              "name": "Adam Borics",
              "fairProbability": 0.299065
            }
          ],
          "weightTotal": 2,
          "booksUsed": 1,
          "sharpBooksUsed": [
            "Kalshi"
          ]
        },
        "bestAvailable": [
          {
            "name": "Khasan Magomedsharipov",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": -300,
            "decimal": 1.333333,
            "tiedBooks": []
          },
          {
            "name": "Adam Borics",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": 213,
            "decimal": 3.125,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "PFL",
          "reason": "No PFL model is published. Market consensus only. No edge or stake."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:alexei-pergande:akhmed-magomedov",
        "pairKey": "akhmed magomedov|alexei pergande",
        "pairKeys": [
          "akhmed magomedov|alexei pergande"
        ],
        "commenceTime": "2026-11-14T18:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Alexei Pergande"
          },
          {
            "name": "Akhmed Magomedov"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "PFL",
          "boutId": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:alexei-pergande:akhmed-magomedov",
          "eventId": "pfl-returns-to-dubai",
          "eventTitle": "PFL Dubai",
          "discipline": "MMA",
          "candidates": [
            "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:alexei-pergande:akhmed-magomedov"
          ],
          "reason": "Both names match one PFL bout."
        },
        "books": [],
        "excluded": [
          {
            "source": "kalshi",
            "title": "Kalshi",
            "reason": "The two prices could not be turned into a no-vig chance."
          }
        ],
        "consensus": null,
        "bestAvailable": [
          {
            "name": "Alexei Pergande",
            "book": null,
            "bookKey": null,
            "source": null,
            "american": null,
            "decimal": null,
            "tiedBooks": []
          },
          {
            "name": "Akhmed Magomedov",
            "book": null,
            "bookKey": null,
            "source": null,
            "american": null,
            "decimal": null,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "PFL",
          "reason": "No PFL model is published. Market consensus only. No edge or stake."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:aleksandra-savicheva:jacinta-austin",
        "pairKey": "aleksandra savicheva|jacinta austin",
        "pairKeys": [
          "aleksandra savicheva|jacinta austin"
        ],
        "commenceTime": "2026-11-14T18:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Aleksandra Savicheva"
          },
          {
            "name": "Jacinta Austin"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "PFL",
          "boutId": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:aleksandra-savicheva:jacinta-austin",
          "eventId": "pfl-returns-to-dubai",
          "eventTitle": "PFL Dubai",
          "discipline": "MMA",
          "candidates": [
            "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:aleksandra-savicheva:jacinta-austin"
          ],
          "reason": "Both names match one PFL bout."
        },
        "books": [
          {
            "key": "kalshi",
            "title": "Kalshi",
            "source": "kalshi",
            "lastUpdate": "2026-11-14T10:46:58.606Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              150,
              -170
            ],
            "decimal": [
              2.5,
              1.587302
            ],
            "implied": [
              0.4,
              0.63
            ],
            "noVig": [
              0.38835,
              0.61165
            ],
            "margin": 0.03,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Aleksandra Savicheva",
              "fairProbability": 0.38835
            },
            {
              "name": "Jacinta Austin",
              "fairProbability": 0.61165
            }
          ],
          "weightTotal": 2,
          "booksUsed": 1,
          "sharpBooksUsed": [
            "Kalshi"
          ]
        },
        "bestAvailable": [
          {
            "name": "Aleksandra Savicheva",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": 150,
            "decimal": 2.5,
            "tiedBooks": []
          },
          {
            "name": "Jacinta Austin",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": -170,
            "decimal": 1.587302,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "PFL",
          "reason": "No PFL model is published. Market consensus only. No edge or stake."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:shem-rock:connor-hughes",
        "pairKey": "connor hughes|shem rock",
        "pairKeys": [
          "connor hughes|shem rock"
        ],
        "commenceTime": "2026-11-14T18:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Shem Rock"
          },
          {
            "name": "Connor Hughes"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "PFL",
          "boutId": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:shem-rock:connor-hughes",
          "eventId": "pfl-returns-to-dubai",
          "eventTitle": "PFL Dubai",
          "discipline": "MMA",
          "candidates": [
            "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:shem-rock:connor-hughes"
          ],
          "reason": "Both names match one PFL bout."
        },
        "books": [
          {
            "key": "kalshi",
            "title": "Kalshi",
            "source": "kalshi",
            "lastUpdate": "2026-11-14T16:49:56.465Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              163,
              -186
            ],
            "decimal": [
              2.631579,
              1.538462
            ],
            "implied": [
              0.38,
              0.65
            ],
            "noVig": [
              0.368932,
              0.631068
            ],
            "margin": 0.03,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Shem Rock",
              "fairProbability": 0.368932
            },
            {
              "name": "Connor Hughes",
              "fairProbability": 0.631068
            }
          ],
          "weightTotal": 2,
          "booksUsed": 1,
          "sharpBooksUsed": [
            "Kalshi"
          ]
        },
        "bestAvailable": [
          {
            "name": "Shem Rock",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": 163,
            "decimal": 2.631579,
            "tiedBooks": []
          },
          {
            "name": "Connor Hughes",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": -186,
            "decimal": 1.538462,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "PFL",
          "reason": "No PFL model is published. Market consensus only. No edge or stake."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:saygid-izagakhmaev:david-martinez",
        "pairKey": "david martinez|saygid izagakhmaev",
        "pairKeys": [
          "david martinez|saygid izagakhmaev"
        ],
        "commenceTime": "2026-11-14T18:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Saygid Izagakhmaev"
          },
          {
            "name": "David Martinez"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "PFL",
          "boutId": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:saygid-izagakhmaev:david-martinez",
          "eventId": "pfl-returns-to-dubai",
          "eventTitle": "PFL Dubai",
          "discipline": "MMA",
          "candidates": [
            "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:saygid-izagakhmaev:david-martinez"
          ],
          "reason": "Both names match one PFL bout."
        },
        "books": [
          {
            "key": "kalshi",
            "title": "Kalshi",
            "source": "kalshi",
            "lastUpdate": "2026-11-14T16:49:56.465Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -223,
              203
            ],
            "decimal": [
              1.449275,
              3.030303
            ],
            "implied": [
              0.69,
              0.33
            ],
            "noVig": [
              0.676471,
              0.323529
            ],
            "margin": 0.02,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Saygid Izagakhmaev",
              "fairProbability": 0.676471
            },
            {
              "name": "David Martinez",
              "fairProbability": 0.323529
            }
          ],
          "weightTotal": 2,
          "booksUsed": 1,
          "sharpBooksUsed": [
            "Kalshi"
          ]
        },
        "bestAvailable": [
          {
            "name": "Saygid Izagakhmaev",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": -223,
            "decimal": 1.449275,
            "tiedBooks": []
          },
          {
            "name": "David Martinez",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": 203,
            "decimal": 3.030303,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "PFL",
          "reason": "No PFL model is published. Market consensus only. No edge or stake."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:denis-goltsov:maxwell-djantou-nana",
        "pairKey": "denis goltsov|maxwell djantou nana",
        "pairKeys": [
          "denis goltsov|maxwell djantou nana"
        ],
        "commenceTime": "2026-11-14T18:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Denis Goltsov"
          },
          {
            "name": "Maxwell Djantou Nana"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "PFL",
          "boutId": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:denis-goltsov:maxwell-djantou-nana",
          "eventId": "pfl-returns-to-dubai",
          "eventTitle": "PFL Dubai",
          "discipline": "MMA",
          "candidates": [
            "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:denis-goltsov:maxwell-djantou-nana"
          ],
          "reason": "Both names match one PFL bout."
        },
        "books": [
          {
            "key": "kalshi",
            "title": "Kalshi",
            "source": "kalshi",
            "lastUpdate": "2026-11-14T10:46:58.606Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -376,
              335
            ],
            "decimal": [
              1.265823,
              4.347826
            ],
            "implied": [
              0.79,
              0.23
            ],
            "noVig": [
              0.77451,
              0.22549
            ],
            "margin": 0.02,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Denis Goltsov",
              "fairProbability": 0.77451
            },
            {
              "name": "Maxwell Djantou Nana",
              "fairProbability": 0.22549
            }
          ],
          "weightTotal": 2,
          "booksUsed": 1,
          "sharpBooksUsed": [
            "Kalshi"
          ]
        },
        "bestAvailable": [
          {
            "name": "Denis Goltsov",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": -376,
            "decimal": 1.265823,
            "tiedBooks": []
          },
          {
            "name": "Maxwell Djantou Nana",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": 335,
            "decimal": 4.347826,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "PFL",
          "reason": "No PFL model is published. Market consensus only. No edge or stake."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:ernesto-rodriguez:rhys-mckee",
        "pairKey": "ernesto rodriguez|rhys mckee",
        "pairKeys": [
          "ernesto rodriguez|rhys mckee"
        ],
        "commenceTime": "2026-11-14T18:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Ernesto Rodriguez"
          },
          {
            "name": "Rhys McKee"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "PFL",
          "boutId": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:ernesto-rodriguez:rhys-mckee",
          "eventId": "pfl-returns-to-dubai",
          "eventTitle": "PFL Dubai",
          "discipline": "MMA",
          "candidates": [
            "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:ernesto-rodriguez:rhys-mckee"
          ],
          "reason": "Both names match one PFL bout."
        },
        "books": [
          {
            "key": "kalshi",
            "title": "Kalshi",
            "source": "kalshi",
            "lastUpdate": "2026-11-14T10:46:58.606Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -133,
              122
            ],
            "decimal": [
              1.754386,
              2.222222
            ],
            "implied": [
              0.57,
              0.45
            ],
            "noVig": [
              0.558824,
              0.441176
            ],
            "margin": 0.02,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Ernesto Rodriguez",
              "fairProbability": 0.558824
            },
            {
              "name": "Rhys McKee",
              "fairProbability": 0.441176
            }
          ],
          "weightTotal": 2,
          "booksUsed": 1,
          "sharpBooksUsed": [
            "Kalshi"
          ]
        },
        "bestAvailable": [
          {
            "name": "Ernesto Rodriguez",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": -133,
            "decimal": 1.754386,
            "tiedBooks": []
          },
          {
            "name": "Rhys McKee",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": 122,
            "decimal": 2.222222,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "PFL",
          "reason": "No PFL model is published. Market consensus only. No edge or stake."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:sergio-pettis:joji-goto",
        "pairKey": "joji goto|sergio pettis",
        "pairKeys": [
          "joji goto|sergio pettis"
        ],
        "commenceTime": "2026-11-14T18:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Sergio Pettis"
          },
          {
            "name": "Joji Goto"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "PFL",
          "boutId": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:sergio-pettis:joji-goto",
          "eventId": "pfl-returns-to-dubai",
          "eventTitle": "PFL Dubai",
          "discipline": "MMA",
          "candidates": [
            "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:sergio-pettis:joji-goto"
          ],
          "reason": "Both names match one PFL bout."
        },
        "books": [
          {
            "key": "kalshi",
            "title": "Kalshi",
            "source": "kalshi",
            "lastUpdate": "2026-11-14T16:49:56.465Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -138,
              113
            ],
            "decimal": [
              1.724138,
              2.12766
            ],
            "implied": [
              0.58,
              0.47
            ],
            "noVig": [
              0.552381,
              0.447619
            ],
            "margin": 0.05,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Sergio Pettis",
              "fairProbability": 0.552381
            },
            {
              "name": "Joji Goto",
              "fairProbability": 0.447619
            }
          ],
          "weightTotal": 2,
          "booksUsed": 1,
          "sharpBooksUsed": [
            "Kalshi"
          ]
        },
        "bestAvailable": [
          {
            "name": "Sergio Pettis",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": -138,
            "decimal": 1.724138,
            "tiedBooks": []
          },
          {
            "name": "Joji Goto",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": 113,
            "decimal": 2.12766,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "PFL",
          "reason": "No PFL model is published. Market consensus only. No edge or stake."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:khabib-nabiev:styve-ngono",
        "pairKey": "khabib nabiev|styve ngono",
        "pairKeys": [
          "khabib nabiev|styve ngono"
        ],
        "commenceTime": "2026-11-14T18:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Khabib Nabiev"
          },
          {
            "name": "Styve Ngono"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "PFL",
          "boutId": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:khabib-nabiev:styve-ngono",
          "eventId": "pfl-returns-to-dubai",
          "eventTitle": "PFL Dubai",
          "discipline": "MMA",
          "candidates": [
            "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:khabib-nabiev:styve-ngono"
          ],
          "reason": "Both names match one PFL bout."
        },
        "books": [
          {
            "key": "kalshi",
            "title": "Kalshi",
            "source": "kalshi",
            "lastUpdate": "2026-11-14T10:46:58.606Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -614,
              456
            ],
            "decimal": [
              1.162791,
              5.555556
            ],
            "implied": [
              0.86,
              0.18
            ],
            "noVig": [
              0.826923,
              0.173077
            ],
            "margin": 0.04,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Khabib Nabiev",
              "fairProbability": 0.826923
            },
            {
              "name": "Styve Ngono",
              "fairProbability": 0.173077
            }
          ],
          "weightTotal": 2,
          "booksUsed": 1,
          "sharpBooksUsed": [
            "Kalshi"
          ]
        },
        "bestAvailable": [
          {
            "name": "Khabib Nabiev",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": -614,
            "decimal": 1.162791,
            "tiedBooks": []
          },
          {
            "name": "Styve Ngono",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": 456,
            "decimal": 5.555556,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "PFL",
          "reason": "No PFL model is published. Market consensus only. No edge or stake."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:vadim-nemkov:sergei-bilostenniy",
        "pairKey": "sergei bilostenniy|vadim nemkov",
        "pairKeys": [
          "sergei bilostenniy|vadim nemkov"
        ],
        "commenceTime": "2026-11-14T18:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Vadim Nemkov"
          },
          {
            "name": "Sergei Bilostenniy"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "PFL",
          "boutId": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:vadim-nemkov:sergei-bilostenniy",
          "eventId": "pfl-returns-to-dubai",
          "eventTitle": "PFL Dubai",
          "discipline": "MMA",
          "candidates": [
            "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:vadim-nemkov:sergei-bilostenniy"
          ],
          "reason": "Both names match one PFL bout."
        },
        "books": [
          {
            "key": "kalshi",
            "title": "Kalshi",
            "source": "kalshi",
            "lastUpdate": "2026-11-14T16:49:56.465Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -426,
              270
            ],
            "decimal": [
              1.234568,
              3.703704
            ],
            "implied": [
              0.81,
              0.27
            ],
            "noVig": [
              0.75,
              0.25
            ],
            "margin": 0.08,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Vadim Nemkov",
              "fairProbability": 0.75
            },
            {
              "name": "Sergei Bilostenniy",
              "fairProbability": 0.25
            }
          ],
          "weightTotal": 2,
          "booksUsed": 1,
          "sharpBooksUsed": [
            "Kalshi"
          ]
        },
        "bestAvailable": [
          {
            "name": "Vadim Nemkov",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": -426,
            "decimal": 1.234568,
            "tiedBooks": []
          },
          {
            "name": "Sergei Bilostenniy",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": 270,
            "decimal": 3.703704,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "PFL",
          "reason": "No PFL model is published. Market consensus only. No edge or stake."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "76d75d2e4bd838e60e5dd9487006f236",
        "pairKey": "ieuan mackenzie|ollie sarwa",
        "pairKeys": [
          "ieuan mackenzie|ollie sarwa"
        ],
        "commenceTime": "2026-11-14T19:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Ollie Sarwa"
          },
          {
            "name": "Ieuan Mackenzie"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -475,
              367
            ],
            "decimal": [
              1.210526,
              4.67
            ],
            "implied": [
              0.826087,
              0.214133
            ],
            "noVig": [
              0.794147,
              0.205853
            ],
            "margin": 0.04022
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Ollie Sarwa",
              "fairProbability": 0.794147
            },
            {
              "name": "Ieuan Mackenzie",
              "fairProbability": 0.205853
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Ollie Sarwa",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -475,
            "decimal": 1.210526,
            "tiedBooks": []
          },
          {
            "name": "Ieuan Mackenzie",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 367,
            "decimal": 4.67,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "f7b2a1d2d6f1f646b6c20b0c40b9ce4f",
        "pairKey": "sergey bilostenniy|vadim nemkov",
        "pairKeys": [
          "sergey bilostenniy|vadim nemkov"
        ],
        "commenceTime": "2026-11-14T19:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Vadim Nemkov"
          },
          {
            "name": "Sergey Bilostenniy"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -550,
              415
            ],
            "decimal": [
              1.181818,
              5.15
            ],
            "implied": [
              0.846154,
              0.194175
            ],
            "noVig": [
              0.813352,
              0.186648
            ],
            "margin": 0.040329
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Vadim Nemkov",
              "fairProbability": 0.813352
            },
            {
              "name": "Sergey Bilostenniy",
              "fairProbability": 0.186648
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Vadim Nemkov",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -550,
            "decimal": 1.181818,
            "tiedBooks": []
          },
          {
            "name": "Sergey Bilostenniy",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 415,
            "decimal": 5.15,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "b03b3386b8b858f326edef1b59293dc6",
        "pairKey": "oleg popov|pouya rahmani",
        "pairKeys": [
          "oleg popov|pouya rahmani"
        ],
        "commenceTime": "2026-11-14T19:10:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Pouya Rahmani"
          },
          {
            "name": "Oleg Popov"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "PFL",
          "boutId": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:pouya-rahmani:oleg-popov",
          "eventId": "pfl-returns-to-dubai",
          "eventTitle": "PFL Dubai",
          "discipline": "MMA",
          "candidates": [
            "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:pouya-rahmani:oleg-popov"
          ],
          "reason": "Both names match one PFL bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -290,
              237
            ],
            "decimal": [
              1.344828,
              3.37
            ],
            "implied": [
              0.74359,
              0.296736
            ],
            "noVig": [
              0.714766,
              0.285234
            ],
            "margin": 0.040326
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -260,
              215
            ],
            "decimal": [
              1.384615,
              3.15
            ],
            "implied": [
              0.722222,
              0.31746
            ],
            "noVig": [
              0.694656,
              0.305344
            ],
            "margin": 0.039683
          },
          {
            "key": "kalshi",
            "title": "Kalshi",
            "source": "kalshi",
            "lastUpdate": "2026-11-14T16:49:56.465Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -355,
              233
            ],
            "decimal": [
              1.282051,
              3.333333
            ],
            "implied": [
              0.78,
              0.3
            ],
            "noVig": [
              0.722222,
              0.277778
            ],
            "margin": 0.08,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Pouya Rahmani",
              "fairProbability": 0.713467
            },
            {
              "name": "Oleg Popov",
              "fairProbability": 0.286534
            }
          ],
          "weightTotal": 4,
          "booksUsed": 3,
          "sharpBooksUsed": [
            "Kalshi"
          ]
        },
        "bestAvailable": [
          {
            "name": "Pouya Rahmani",
            "book": "FanDuel",
            "bookKey": "fanduel",
            "source": "the-odds-api",
            "american": -260,
            "decimal": 1.384615,
            "tiedBooks": []
          },
          {
            "name": "Oleg Popov",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 237,
            "decimal": 3.37,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "PFL",
          "reason": "No PFL model is published. Market consensus only. No edge or stake."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "ba2552ca4003eabe7235cfb532e3b14f",
        "pairKey": "omar el dafrawy|patrick habirora",
        "pairKeys": [
          "omar el dafrawy|patrick habirora"
        ],
        "commenceTime": "2026-11-14T19:40:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Patrick Habirora"
          },
          {
            "name": "Omar El Dafrawy"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "PFL",
          "boutId": "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:patrick-habirora:omar-el-dafrawy",
          "eventId": "pfl-returns-to-dubai",
          "eventTitle": "PFL Dubai",
          "discipline": "MMA",
          "candidates": [
            "PFL:pfl-returns-to-dubai:pfl:pfl-returns-to-dubai:patrick-habirora:omar-el-dafrawy"
          ],
          "reason": "Both names match one PFL bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -550,
              415
            ],
            "decimal": [
              1.181818,
              5.15
            ],
            "implied": [
              0.846154,
              0.194175
            ],
            "noVig": [
              0.813352,
              0.186648
            ],
            "margin": 0.040329
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -550,
              410
            ],
            "decimal": [
              1.181818,
              5.1
            ],
            "implied": [
              0.846154,
              0.196078
            ],
            "noVig": [
              0.811867,
              0.188133
            ],
            "margin": 0.042232
          },
          {
            "key": "kalshi",
            "title": "Kalshi",
            "source": "kalshi",
            "lastUpdate": "2026-11-14T16:49:56.465Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -426,
              355
            ],
            "decimal": [
              1.234568,
              4.545455
            ],
            "implied": [
              0.81,
              0.22
            ],
            "noVig": [
              0.786408,
              0.213592
            ],
            "margin": 0.03,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Patrick Habirora",
              "fairProbability": 0.799509
            },
            {
              "name": "Omar El Dafrawy",
              "fairProbability": 0.200491
            }
          ],
          "weightTotal": 4,
          "booksUsed": 3,
          "sharpBooksUsed": [
            "Kalshi"
          ]
        },
        "bestAvailable": [
          {
            "name": "Patrick Habirora",
            "book": "Kalshi",
            "bookKey": "kalshi",
            "source": "kalshi",
            "american": -426,
            "decimal": 1.234568,
            "tiedBooks": []
          },
          {
            "name": "Omar El Dafrawy",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 415,
            "decimal": 5.15,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "PFL",
          "reason": "No PFL model is published. Market consensus only. No edge or stake."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "99102e8e34608e3aa99ca1a89fdcc1f4",
        "pairKey": "sado ucar|steven hill",
        "pairKeys": [
          "sado ucar|steven hill"
        ],
        "commenceTime": "2026-11-14T20:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Steven Hill"
          },
          {
            "name": "Sado Ucar"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              130,
              -150
            ],
            "decimal": [
              2.3,
              1.666667
            ],
            "implied": [
              0.434783,
              0.6
            ],
            "noVig": [
              0.420168,
              0.579832
            ],
            "margin": 0.034783
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Steven Hill",
              "fairProbability": 0.420168
            },
            {
              "name": "Sado Ucar",
              "fairProbability": 0.579832
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Steven Hill",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 130,
            "decimal": 2.3,
            "tiedBooks": []
          },
          {
            "name": "Sado Ucar",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -150,
            "decimal": 1.666667,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "e1bffd485480b8b2794ae615bd3b7f3d",
        "pairKey": "tariq pell|wellington lopes",
        "pairKeys": [
          "tariq pell|wellington lopes"
        ],
        "commenceTime": "2026-11-14T20:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Tariq Pell"
          },
          {
            "name": "Wellington Lopes"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -800,
              550
            ],
            "decimal": [
              1.125,
              6.5
            ],
            "implied": [
              0.888889,
              0.153846
            ],
            "noVig": [
              0.852459,
              0.147541
            ],
            "margin": 0.042735
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Tariq Pell",
              "fairProbability": 0.852459
            },
            {
              "name": "Wellington Lopes",
              "fairProbability": 0.147541
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Tariq Pell",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -800,
            "decimal": 1.125,
            "tiedBooks": []
          },
          {
            "name": "Wellington Lopes",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 550,
            "decimal": 6.5,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "728700fb7a75f53a5af3841b5ced3507",
        "pairKey": "bruno souza|nik bagley",
        "pairKeys": [
          "bruno souza|nik bagley"
        ],
        "commenceTime": "2026-11-14T21:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Nik Bagley"
          },
          {
            "name": "Bruno Souza"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -340,
              274
            ],
            "decimal": [
              1.294118,
              3.74
            ],
            "implied": [
              0.772727,
              0.26738
            ],
            "noVig": [
              0.742931,
              0.257069
            ],
            "margin": 0.040107
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Nik Bagley",
              "fairProbability": 0.742931
            },
            {
              "name": "Bruno Souza",
              "fairProbability": 0.257069
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Nik Bagley",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -340,
            "decimal": 1.294118,
            "tiedBooks": []
          },
          {
            "name": "Bruno Souza",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 274,
            "decimal": 3.74,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "9a0b4ba5ef850cf840159a9559211367",
        "pairKey": "evan elder|samuel sanches",
        "pairKeys": [
          "evan elder|samuel sanches"
        ],
        "commenceTime": "2026-11-14T22:15:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "EVAN ELDER"
          },
          {
            "name": "SAMUEL SANCHES"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-334:13236",
          "eventId": "ufc-334",
          "eventTitle": "POLYMARKET UFC 334",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-334:13236"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              110,
              -130
            ],
            "decimal": [
              2.1,
              1.769231
            ],
            "implied": [
              0.47619,
              0.565217
            ],
            "noVig": [
              0.457256,
              0.542744
            ],
            "margin": 0.041408
          },
          {
            "key": "betmgm",
            "title": "BetMGM",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:22Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              100,
              -120
            ],
            "decimal": [
              2,
              1.833333
            ],
            "implied": [
              0.5,
              0.545455
            ],
            "noVig": [
              0.478261,
              0.521739
            ],
            "margin": 0.045455
          },
          {
            "key": "bovada",
            "title": "Bovada",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:11Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              102,
              -122
            ],
            "decimal": [
              2.02,
              1.819672
            ],
            "implied": [
              0.49505,
              0.54955
            ],
            "noVig": [
              0.473913,
              0.526087
            ],
            "margin": 0.044599
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -104,
              -120
            ],
            "decimal": [
              1.961538,
              1.833333
            ],
            "implied": [
              0.509804,
              0.545455
            ],
            "noVig": [
              0.483108,
              0.516892
            ],
            "margin": 0.055258
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              110,
              -130
            ],
            "decimal": [
              2.1,
              1.769231
            ],
            "implied": [
              0.47619,
              0.565217
            ],
            "noVig": [
              0.457256,
              0.542744
            ],
            "margin": 0.041408
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              112,
              -132
            ],
            "decimal": [
              2.12,
              1.757576
            ],
            "implied": [
              0.471698,
              0.568966
            ],
            "noVig": [
              0.453267,
              0.546733
            ],
            "margin": 0.040664
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:49:06.096Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              108,
              -113
            ],
            "decimal": [
              2.083333,
              1.886792
            ],
            "implied": [
              0.48,
              0.53
            ],
            "noVig": [
              0.475248,
              0.524752
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "EVAN ELDER",
              "fairProbability": 0.469195
            },
            {
              "name": "SAMUEL SANCHES",
              "fairProbability": 0.530805
            }
          ],
          "weightTotal": 8,
          "booksUsed": 7,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "EVAN ELDER",
            "book": "FanDuel",
            "bookKey": "fanduel",
            "source": "the-odds-api",
            "american": 112,
            "decimal": 2.12,
            "tiedBooks": []
          },
          {
            "name": "SAMUEL SANCHES",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -113,
            "decimal": 1.886792,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "reason": "No usable experimental UFC probability is published for this bout."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "48ac5d198a0cfd1821b577f9420fffb2",
        "pairKey": "heili alateng|juan diaz",
        "pairKeys": [
          "heili alateng|juan diaz"
        ],
        "commenceTime": "2026-11-14T22:45:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Heili Alateng"
          },
          {
            "name": "Juan Diaz"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              325,
              -425
            ],
            "decimal": [
              4.25,
              1.235294
            ],
            "implied": [
              0.235294,
              0.809524
            ],
            "noVig": [
              0.225201,
              0.774799
            ],
            "margin": 0.044818
          },
          {
            "key": "bovada",
            "title": "Bovada",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:11Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              345,
              -440
            ],
            "decimal": [
              4.45,
              1.227273
            ],
            "implied": [
              0.224719,
              0.814815
            ],
            "noVig": [
              0.216173,
              0.783827
            ],
            "margin": 0.039534
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              370,
              -485
            ],
            "decimal": [
              4.7,
              1.206186
            ],
            "implied": [
              0.212766,
              0.82906
            ],
            "noVig": [
              0.204224,
              0.795776
            ],
            "margin": 0.041826
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              320,
              -405
            ],
            "decimal": [
              4.2,
              1.246914
            ],
            "implied": [
              0.238095,
              0.80198
            ],
            "noVig": [
              0.228921,
              0.771079
            ],
            "margin": 0.040075
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              310,
              -420
            ],
            "decimal": [
              4.1,
              1.238095
            ],
            "implied": [
              0.243902,
              0.807692
            ],
            "noVig": [
              0.231936,
              0.768064
            ],
            "margin": 0.051595
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Heili Alateng",
              "fairProbability": 0.221291
            },
            {
              "name": "Juan Diaz",
              "fairProbability": 0.778709
            }
          ],
          "weightTotal": 5,
          "booksUsed": 5,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Heili Alateng",
            "book": "DraftKings",
            "bookKey": "draftkings",
            "source": "the-odds-api",
            "american": 370,
            "decimal": 4.7,
            "tiedBooks": []
          },
          {
            "name": "Juan Diaz",
            "book": "FanDuel",
            "bookKey": "fanduel",
            "source": "the-odds-api",
            "american": -405,
            "decimal": 1.246914,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "aab7065b18217457721e43f992ea4905",
        "pairKey": "beatriz mesquita|macy chiasson",
        "pairKeys": [
          "beatriz mesquita|macy chiasson"
        ],
        "commenceTime": "2026-11-14T23:15:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Macy Chiasson"
          },
          {
            "name": "Beatriz Mesquita"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              207,
              -250
            ],
            "decimal": [
              3.07,
              1.4
            ],
            "implied": [
              0.325733,
              0.714286
            ],
            "noVig": [
              0.313199,
              0.686801
            ],
            "margin": 0.040019
          },
          {
            "key": "bovada",
            "title": "Bovada",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:11Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              205,
              -245
            ],
            "decimal": [
              3.05,
              1.408163
            ],
            "implied": [
              0.327869,
              0.710145
            ],
            "noVig": [
              0.315862,
              0.684138
            ],
            "margin": 0.038014
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              210,
              -258
            ],
            "decimal": [
              3.1,
              1.387597
            ],
            "implied": [
              0.322581,
              0.72067
            ],
            "noVig": [
              0.309207,
              0.690793
            ],
            "margin": 0.043251
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              215,
              -260
            ],
            "decimal": [
              3.15,
              1.384615
            ],
            "implied": [
              0.31746,
              0.722222
            ],
            "noVig": [
              0.305344,
              0.694656
            ],
            "margin": 0.039683
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Macy Chiasson",
              "fairProbability": 0.310903
            },
            {
              "name": "Beatriz Mesquita",
              "fairProbability": 0.689097
            }
          ],
          "weightTotal": 4,
          "booksUsed": 4,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Macy Chiasson",
            "book": "FanDuel",
            "bookKey": "fanduel",
            "source": "the-odds-api",
            "american": 215,
            "decimal": 3.15,
            "tiedBooks": []
          },
          {
            "name": "Beatriz Mesquita",
            "book": "Bovada",
            "bookKey": "bovada",
            "source": "the-odds-api",
            "american": -245,
            "decimal": 1.408163,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "be9015d9adeb8abb4d68c39488422cac",
        "pairKey": "jared gordon|melquizael costa",
        "pairKeys": [
          "jared gordon|melquizael costa"
        ],
        "commenceTime": "2026-11-14T23:45:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "JARED GORDON"
          },
          {
            "name": "MELQUIZAEL COSTA"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-334:13235",
          "eventId": "ufc-334",
          "eventTitle": "POLYMARKET UFC 334",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-334:13235"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              300,
              -400
            ],
            "decimal": [
              4,
              1.25
            ],
            "implied": [
              0.25,
              0.8
            ],
            "noVig": [
              0.238095,
              0.761905
            ],
            "margin": 0.05
          },
          {
            "key": "betmgm",
            "title": "BetMGM",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:22Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              310,
              -425
            ],
            "decimal": [
              4.1,
              1.235294
            ],
            "implied": [
              0.243902,
              0.809524
            ],
            "noVig": [
              0.231533,
              0.768467
            ],
            "margin": 0.053426
          },
          {
            "key": "bovada",
            "title": "Bovada",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:11Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              310,
              -390
            ],
            "decimal": [
              4.1,
              1.25641
            ],
            "implied": [
              0.243902,
              0.795918
            ],
            "noVig": [
              0.234562,
              0.765438
            ],
            "margin": 0.039821
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              310,
              -420
            ],
            "decimal": [
              4.1,
              1.238095
            ],
            "implied": [
              0.243902,
              0.807692
            ],
            "noVig": [
              0.231936,
              0.768064
            ],
            "margin": 0.051595
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              300,
              -380
            ],
            "decimal": [
              4,
              1.263158
            ],
            "implied": [
              0.25,
              0.791667
            ],
            "noVig": [
              0.24,
              0.76
            ],
            "margin": 0.041667
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              300,
              -375
            ],
            "decimal": [
              4,
              1.266667
            ],
            "implied": [
              0.25,
              0.789474
            ],
            "noVig": [
              0.240506,
              0.759494
            ],
            "margin": 0.039474
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:49:06.157Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              335,
              -355
            ],
            "decimal": [
              4.347826,
              1.282051
            ],
            "implied": [
              0.23,
              0.78
            ],
            "noVig": [
              0.227723,
              0.772277
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "JARED GORDON",
              "fairProbability": 0.23401
            },
            {
              "name": "MELQUIZAEL COSTA",
              "fairProbability": 0.76599
            }
          ],
          "weightTotal": 8,
          "booksUsed": 7,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "JARED GORDON",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 335,
            "decimal": 4.347826,
            "tiedBooks": []
          },
          {
            "name": "MELQUIZAEL COSTA",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -355,
            "decimal": 1.282051,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "JARED GORDON",
              "modelProbability": 0.370143,
              "fairProbability": 0.23401,
              "edge": 0.136133,
              "bestAmerican": 335,
              "bestDecimal": 4.347826,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": 0.609316
            },
            {
              "name": "MELQUIZAEL COSTA",
              "modelProbability": 0.629857,
              "fairProbability": 0.76599,
              "edge": -0.136133,
              "bestAmerican": -355,
              "bestDecimal": 1.282051,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": -0.192491
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "dd9074fe98d83dd01a962ca4abe9b9d6",
        "pairKey": "cesar almeida|donte johnson",
        "pairKeys": [
          "cesar almeida|donte johnson"
        ],
        "commenceTime": "2026-11-15T00:15:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "DONTE JOHNSON"
          },
          {
            "name": "CESAR ALMEIDA"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-334:13234",
          "eventId": "ufc-334",
          "eventTitle": "POLYMARKET UFC 334",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-334:13234"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -207,
              178
            ],
            "decimal": [
              1.483092,
              2.78
            ],
            "implied": [
              0.674267,
              0.359712
            ],
            "noVig": [
              0.652109,
              0.347891
            ],
            "margin": 0.033979
          },
          {
            "key": "betmgm",
            "title": "BetMGM",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:22Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -185,
              150
            ],
            "decimal": [
              1.540541,
              2.5
            ],
            "implied": [
              0.649123,
              0.4
            ],
            "noVig": [
              0.618729,
              0.381271
            ],
            "margin": 0.049123
          },
          {
            "key": "bovada",
            "title": "Bovada",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:11Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -198,
              168
            ],
            "decimal": [
              1.505051,
              2.68
            ],
            "implied": [
              0.66443,
              0.373134
            ],
            "noVig": [
              0.640375,
              0.359625
            ],
            "margin": 0.037564
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -215,
              170
            ],
            "decimal": [
              1.465116,
              2.7
            ],
            "implied": [
              0.68254,
              0.37037
            ],
            "noVig": [
              0.648241,
              0.351759
            ],
            "margin": 0.05291
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -205,
              170
            ],
            "decimal": [
              1.487805,
              2.7
            ],
            "implied": [
              0.672131,
              0.37037
            ],
            "noVig": [
              0.644729,
              0.355271
            ],
            "margin": 0.042502
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -196,
              164
            ],
            "decimal": [
              1.510204,
              2.64
            ],
            "implied": [
              0.662162,
              0.378788
            ],
            "noVig": [
              0.636113,
              0.363887
            ],
            "margin": 0.04095
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:48:56.651Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -194,
              186
            ],
            "decimal": [
              1.515152,
              2.857143
            ],
            "implied": [
              0.66,
              0.35
            ],
            "noVig": [
              0.653465,
              0.346535
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "DONTE JOHNSON",
              "fairProbability": 0.643403
            },
            {
              "name": "CESAR ALMEIDA",
              "fairProbability": 0.356597
            }
          ],
          "weightTotal": 8,
          "booksUsed": 7,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "DONTE JOHNSON",
            "book": "BetMGM",
            "bookKey": "betmgm",
            "source": "the-odds-api",
            "american": -185,
            "decimal": 1.540541,
            "tiedBooks": []
          },
          {
            "name": "CESAR ALMEIDA",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 186,
            "decimal": 2.857143,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "DONTE JOHNSON",
              "modelProbability": 0.420829,
              "fairProbability": 0.643403,
              "edge": -0.222574,
              "bestAmerican": -185,
              "bestDecimal": 1.540541,
              "bestBook": "BetMGM",
              "expectedValuePerUnit": -0.351695
            },
            {
              "name": "CESAR ALMEIDA",
              "modelProbability": 0.579171,
              "fairProbability": 0.356597,
              "edge": 0.222574,
              "bestAmerican": 186,
              "bestDecimal": 2.857143,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": 0.654773
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "3b0d88061cf6613291e6ae4a608c9ca9",
        "pairKey": "jim miller|terrance mckinney",
        "pairKeys": [
          "jim miller|terrance mckinney"
        ],
        "commenceTime": "2026-11-15T00:45:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "JIM MILLER"
          },
          {
            "name": "TERRANCE MCKINNEY"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-334:13147",
          "eventId": "ufc-334",
          "eventTitle": "POLYMARKET UFC 334",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-334:13147"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              180,
              -210
            ],
            "decimal": [
              2.8,
              1.47619
            ],
            "implied": [
              0.357143,
              0.677419
            ],
            "noVig": [
              0.345212,
              0.654788
            ],
            "margin": 0.034562
          },
          {
            "key": "betmgm",
            "title": "BetMGM",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:22Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              165,
              -200
            ],
            "decimal": [
              2.65,
              1.5
            ],
            "implied": [
              0.377358,
              0.666667
            ],
            "noVig": [
              0.361446,
              0.638554
            ],
            "margin": 0.044025
          },
          {
            "key": "bovada",
            "title": "Bovada",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:11Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              176,
              -210
            ],
            "decimal": [
              2.76,
              1.47619
            ],
            "implied": [
              0.362319,
              0.677419
            ],
            "noVig": [
              0.348471,
              0.651529
            ],
            "margin": 0.039738
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              175,
              -225
            ],
            "decimal": [
              2.75,
              1.444444
            ],
            "implied": [
              0.363636,
              0.692308
            ],
            "noVig": [
              0.344371,
              0.655629
            ],
            "margin": 0.055944
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              180,
              -218
            ],
            "decimal": [
              2.8,
              1.458716
            ],
            "implied": [
              0.357143,
              0.685535
            ],
            "noVig": [
              0.342525,
              0.657475
            ],
            "margin": 0.042677
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              184,
              -220
            ],
            "decimal": [
              2.84,
              1.454545
            ],
            "implied": [
              0.352113,
              0.6875
            ],
            "noVig": [
              0.338696,
              0.661304
            ],
            "margin": 0.039613
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:49:15.369Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              194,
              -203
            ],
            "decimal": [
              2.941176,
              1.492537
            ],
            "implied": [
              0.34,
              0.67
            ],
            "noVig": [
              0.336634,
              0.663366
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "JIM MILLER",
              "fairProbability": 0.344249
            },
            {
              "name": "TERRANCE MCKINNEY",
              "fairProbability": 0.655751
            }
          ],
          "weightTotal": 8,
          "booksUsed": 7,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "JIM MILLER",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 194,
            "decimal": 2.941176,
            "tiedBooks": []
          },
          {
            "name": "TERRANCE MCKINNEY",
            "book": "BetMGM",
            "bookKey": "betmgm",
            "source": "the-odds-api",
            "american": -200,
            "decimal": 1.5,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "JIM MILLER",
              "modelProbability": 0.430664,
              "fairProbability": 0.344249,
              "edge": 0.086415,
              "bestAmerican": 194,
              "bestDecimal": 2.941176,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": 0.266658
            },
            {
              "name": "TERRANCE MCKINNEY",
              "modelProbability": 0.569336,
              "fairProbability": 0.655751,
              "edge": -0.086415,
              "bestAmerican": -200,
              "bestDecimal": 1.5,
              "bestBook": "BetMGM",
              "expectedValuePerUnit": -0.145996
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "1989aefff66598ea03cb4307de8e1644",
        "pairKey": "chris duncan|drew dober",
        "pairKeys": [
          "chris duncan|drew dober"
        ],
        "commenceTime": "2026-11-15T01:15:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "DREW DOBER"
          },
          {
            "name": "CHRIS DUNCAN"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-334:13146",
          "eventId": "ufc-334",
          "eventTitle": "POLYMARKET UFC 334",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-334:13146"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              161,
              -185
            ],
            "decimal": [
              2.61,
              1.540541
            ],
            "implied": [
              0.383142,
              0.649123
            ],
            "noVig": [
              0.371166,
              0.628834
            ],
            "margin": 0.032265
          },
          {
            "key": "betmgm",
            "title": "BetMGM",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:22Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              165,
              -200
            ],
            "decimal": [
              2.65,
              1.5
            ],
            "implied": [
              0.377358,
              0.666667
            ],
            "noVig": [
              0.361446,
              0.638554
            ],
            "margin": 0.044025
          },
          {
            "key": "bovada",
            "title": "Bovada",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:11Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              155,
              -180
            ],
            "decimal": [
              2.55,
              1.555556
            ],
            "implied": [
              0.392157,
              0.642857
            ],
            "noVig": [
              0.37889,
              0.62111
            ],
            "margin": 0.035014
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              150,
              -190
            ],
            "decimal": [
              2.5,
              1.526316
            ],
            "implied": [
              0.4,
              0.655172
            ],
            "noVig": [
              0.379085,
              0.620915
            ],
            "margin": 0.055172
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              154,
              -185
            ],
            "decimal": [
              2.54,
              1.540541
            ],
            "implied": [
              0.393701,
              0.649123
            ],
            "noVig": [
              0.377533,
              0.622467
            ],
            "margin": 0.042824
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              152,
              -180
            ],
            "decimal": [
              2.52,
              1.555556
            ],
            "implied": [
              0.396825,
              0.642857
            ],
            "noVig": [
              0.381679,
              0.618321
            ],
            "margin": 0.039683
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:47:46.072Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              163,
              -170
            ],
            "decimal": [
              2.631579,
              1.587302
            ],
            "implied": [
              0.38,
              0.63
            ],
            "noVig": [
              0.376238,
              0.623762
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "DREW DOBER",
              "fairProbability": 0.375284
            },
            {
              "name": "CHRIS DUNCAN",
              "fairProbability": 0.624716
            }
          ],
          "weightTotal": 8,
          "booksUsed": 7,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "DREW DOBER",
            "book": "BetMGM",
            "bookKey": "betmgm",
            "source": "the-odds-api",
            "american": 165,
            "decimal": 2.65,
            "tiedBooks": []
          },
          {
            "name": "CHRIS DUNCAN",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -170,
            "decimal": 1.587302,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "DREW DOBER",
              "modelProbability": 0.544872,
              "fairProbability": 0.375284,
              "edge": 0.169588,
              "bestAmerican": 165,
              "bestDecimal": 2.65,
              "bestBook": "BetMGM",
              "expectedValuePerUnit": 0.44391
            },
            {
              "name": "CHRIS DUNCAN",
              "modelProbability": 0.455128,
              "fairProbability": 0.624716,
              "edge": -0.169588,
              "bestAmerican": -170,
              "bestDecimal": 1.587302,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": -0.277574
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "5c45e5cb707c61ad4186f2480707cdb9",
        "pairKey": "charlie radtke|stephen thompson",
        "pairKeys": [
          "charlie radtke|stephen thompson"
        ],
        "commenceTime": "2026-11-15T01:45:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Stephen Thompson"
          },
          {
            "name": "Charlie Radtke"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -126,
              106
            ],
            "decimal": [
              1.793651,
              2.06
            ],
            "implied": [
              0.557522,
              0.485437
            ],
            "noVig": [
              0.534558,
              0.465442
            ],
            "margin": 0.042959
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -130,
              110
            ],
            "decimal": [
              1.769231,
              2.1
            ],
            "implied": [
              0.565217,
              0.47619
            ],
            "noVig": [
              0.542744,
              0.457256
            ],
            "margin": 0.041408
          },
          {
            "key": "bovada",
            "title": "Bovada",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:12Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -135,
              115
            ],
            "decimal": [
              1.740741,
              2.15
            ],
            "implied": [
              0.574468,
              0.465116
            ],
            "noVig": [
              0.552594,
              0.447406
            ],
            "margin": 0.039584
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -130,
              105
            ],
            "decimal": [
              1.769231,
              2.05
            ],
            "implied": [
              0.565217,
              0.487805
            ],
            "noVig": [
              0.536757,
              0.463243
            ],
            "margin": 0.053022
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -130,
              110
            ],
            "decimal": [
              1.769231,
              2.1
            ],
            "implied": [
              0.565217,
              0.47619
            ],
            "noVig": [
              0.542744,
              0.457256
            ],
            "margin": 0.041408
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Stephen Thompson",
              "fairProbability": 0.541879
            },
            {
              "name": "Charlie Radtke",
              "fairProbability": 0.458121
            }
          ],
          "weightTotal": 5,
          "booksUsed": 5,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Stephen Thompson",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -126,
            "decimal": 1.793651,
            "tiedBooks": []
          },
          {
            "name": "Charlie Radtke",
            "book": "Bovada",
            "bookKey": "bovada",
            "source": "the-odds-api",
            "american": 115,
            "decimal": 2.15,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "UFC:ufc-334:13257",
        "pairKey": "alatengheili|juan diaz",
        "pairKeys": [
          "alatengheili|juan diaz"
        ],
        "commenceTime": "2026-11-15T02:00:00.000Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "ALATENGHEILI"
          },
          {
            "name": "JUAN DIAZ"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-334:13257",
          "eventId": "ufc-334",
          "eventTitle": "POLYMARKET UFC 334",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-334:13257"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:49:10.400Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              355,
              -376
            ],
            "decimal": [
              4.545455,
              1.265823
            ],
            "implied": [
              0.22,
              0.79
            ],
            "noVig": [
              0.217822,
              0.782178
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "ALATENGHEILI",
              "fairProbability": 0.217822
            },
            {
              "name": "JUAN DIAZ",
              "fairProbability": 0.782178
            }
          ],
          "weightTotal": 2,
          "booksUsed": 1,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "ALATENGHEILI",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 355,
            "decimal": 4.545455,
            "tiedBooks": []
          },
          {
            "name": "JUAN DIAZ",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -376,
            "decimal": 1.265823,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "reason": "No usable experimental UFC probability is published for this bout."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "UFC:ufc-334:13149",
        "pairKey": "bia mesquita|macy chiasson",
        "pairKeys": [
          "bia mesquita|macy chiasson"
        ],
        "commenceTime": "2026-11-15T02:00:00.000Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "MACY CHIASSON"
          },
          {
            "name": "BIA MESQUITA"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-334:13149",
          "eventId": "ufc-334",
          "eventTitle": "POLYMARKET UFC 334",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-334:13149"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:48:26.603Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              223,
              -233
            ],
            "decimal": [
              3.225806,
              1.428571
            ],
            "implied": [
              0.31,
              0.7
            ],
            "noVig": [
              0.306931,
              0.693069
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "MACY CHIASSON",
              "fairProbability": 0.306931
            },
            {
              "name": "BIA MESQUITA",
              "fairProbability": 0.693069
            }
          ],
          "weightTotal": 2,
          "booksUsed": 1,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "MACY CHIASSON",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 223,
            "decimal": 3.225806,
            "tiedBooks": []
          },
          {
            "name": "BIA MESQUITA",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -233,
            "decimal": 1.428571,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "MACY CHIASSON",
              "modelProbability": 0.403727,
              "fairProbability": 0.306931,
              "edge": 0.096796,
              "bestAmerican": 223,
              "bestDecimal": 3.225806,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": 0.302344
            },
            {
              "name": "BIA MESQUITA",
              "modelProbability": 0.596273,
              "fairProbability": 0.693069,
              "edge": -0.096796,
              "bestAmerican": -233,
              "bestDecimal": 1.428571,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": -0.148181
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "UFC:ufc-334:13145",
        "pairKey": "charles radtke|stephen thompson",
        "pairKeys": [
          "charles radtke|stephen thompson"
        ],
        "commenceTime": "2026-11-15T02:00:00.000Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "STEPHEN THOMPSON"
          },
          {
            "name": "CHARLES RADTKE"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-334:13145",
          "eventId": "ufc-334",
          "eventTitle": "POLYMARKET UFC 334",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-334:13145"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:49:24.987Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -127,
              122
            ],
            "decimal": [
              1.785714,
              2.222222
            ],
            "implied": [
              0.56,
              0.45
            ],
            "noVig": [
              0.554455,
              0.445545
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "STEPHEN THOMPSON",
              "fairProbability": 0.554455
            },
            {
              "name": "CHARLES RADTKE",
              "fairProbability": 0.445545
            }
          ],
          "weightTotal": 2,
          "booksUsed": 1,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "STEPHEN THOMPSON",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -127,
            "decimal": 1.785714,
            "tiedBooks": []
          },
          {
            "name": "CHARLES RADTKE",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 122,
            "decimal": 2.222222,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "STEPHEN THOMPSON",
              "modelProbability": 0.616111,
              "fairProbability": 0.554455,
              "edge": 0.061656,
              "bestAmerican": -127,
              "bestDecimal": 1.785714,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": 0.100198
            },
            {
              "name": "CHARLES RADTKE",
              "modelProbability": 0.383889,
              "fairProbability": 0.445545,
              "edge": -0.061656,
              "bestAmerican": 122,
              "bestDecimal": 2.222222,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": -0.146913
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "0f6cfcb1868371108dac702977aa052a",
        "pairKey": "bilal hasan|luis gurule",
        "pairKeys": [
          "bilal hasan|luis gurule"
        ],
        "commenceTime": "2026-11-15T02:15:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "BILAL HASAN"
          },
          {
            "name": "LUIS GURULE"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-334:13144",
          "eventId": "ufc-334",
          "eventTitle": "POLYMARKET UFC 334",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-334:13144"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -1100,
              709
            ],
            "decimal": [
              1.090909,
              8.09
            ],
            "implied": [
              0.916667,
              0.123609
            ],
            "noVig": [
              0.881176,
              0.118824
            ],
            "margin": 0.040276
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -1000,
              600
            ],
            "decimal": [
              1.1,
              7
            ],
            "implied": [
              0.909091,
              0.142857
            ],
            "noVig": [
              0.864198,
              0.135802
            ],
            "margin": 0.051948
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -1000,
              650
            ],
            "decimal": [
              1.1,
              7.5
            ],
            "implied": [
              0.909091,
              0.133333
            ],
            "noVig": [
              0.872093,
              0.127907
            ],
            "margin": 0.042424
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -1150,
              730
            ],
            "decimal": [
              1.086957,
              8.3
            ],
            "implied": [
              0.92,
              0.120482
            ],
            "noVig": [
              0.884206,
              0.115794
            ],
            "margin": 0.040482
          },
          {
            "key": "betmgm",
            "title": "BetMGM",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:22Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -1200,
              725
            ],
            "decimal": [
              1.083333,
              8.25
            ],
            "implied": [
              0.923077,
              0.121212
            ],
            "noVig": [
              0.883929,
              0.116071
            ],
            "margin": 0.044289
          },
          {
            "key": "bovada",
            "title": "Bovada",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:12Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -1100,
              700
            ],
            "decimal": [
              1.090909,
              8
            ],
            "implied": [
              0.916667,
              0.125
            ],
            "noVig": [
              0.88,
              0.12
            ],
            "margin": 0.041667
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:49:20.062Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -809,
              733
            ],
            "decimal": [
              1.123596,
              8.333333
            ],
            "implied": [
              0.89,
              0.12
            ],
            "noVig": [
              0.881188,
              0.118812
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "BILAL HASAN",
              "fairProbability": 0.878497
            },
            {
              "name": "LUIS GURULE",
              "fairProbability": 0.121503
            }
          ],
          "weightTotal": 8,
          "booksUsed": 7,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "BILAL HASAN",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -809,
            "decimal": 1.123596,
            "tiedBooks": []
          },
          {
            "name": "LUIS GURULE",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 733,
            "decimal": 8.333333,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "reason": "No usable experimental UFC probability is published for this bout."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "d868ec0e4abce70c0de5ca26ed1318ee",
        "pairKey": "kevin holland|uros medic",
        "pairKeys": [
          "kevin holland|uros medic"
        ],
        "commenceTime": "2026-11-15T02:45:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "UROŠ MEDIĆ"
          },
          {
            "name": "KEVIN HOLLAND"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-334:13143",
          "eventId": "ufc-334",
          "eventTitle": "POLYMARKET UFC 334",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-334:13143"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -155,
              135
            ],
            "decimal": [
              1.645161,
              2.35
            ],
            "implied": [
              0.607843,
              0.425532
            ],
            "noVig": [
              0.588212,
              0.411788
            ],
            "margin": 0.033375
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -155,
              130
            ],
            "decimal": [
              1.645161,
              2.3
            ],
            "implied": [
              0.607843,
              0.434783
            ],
            "noVig": [
              0.582993,
              0.417007
            ],
            "margin": 0.042626
          },
          {
            "key": "bovada",
            "title": "Bovada",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:12Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -160,
              135
            ],
            "decimal": [
              1.625,
              2.35
            ],
            "implied": [
              0.615385,
              0.425532
            ],
            "noVig": [
              0.591195,
              0.408805
            ],
            "margin": 0.040917
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -156,
              132
            ],
            "decimal": [
              1.641026,
              2.32
            ],
            "implied": [
              0.609375,
              0.431034
            ],
            "noVig": [
              0.585707,
              0.414293
            ],
            "margin": 0.040409
          },
          {
            "key": "betmgm",
            "title": "BetMGM",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:22Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -170,
              140
            ],
            "decimal": [
              1.588235,
              2.4
            ],
            "implied": [
              0.62963,
              0.416667
            ],
            "noVig": [
              0.60177,
              0.39823
            ],
            "margin": 0.046296
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:49:07.906Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -150,
              144
            ],
            "decimal": [
              1.666667,
              2.439024
            ],
            "implied": [
              0.6,
              0.41
            ],
            "noVig": [
              0.594059,
              0.405941
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "UROŠ MEDIĆ",
              "fairProbability": 0.591142
            },
            {
              "name": "KEVIN HOLLAND",
              "fairProbability": 0.408858
            }
          ],
          "weightTotal": 7,
          "booksUsed": 6,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "UROŠ MEDIĆ",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -150,
            "decimal": 1.666667,
            "tiedBooks": []
          },
          {
            "name": "KEVIN HOLLAND",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 144,
            "decimal": 2.439024,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "UROŠ MEDIĆ",
              "modelProbability": 0.405885,
              "fairProbability": 0.591142,
              "edge": -0.185257,
              "bestAmerican": -150,
              "bestDecimal": 1.666667,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": -0.323525
            },
            {
              "name": "KEVIN HOLLAND",
              "modelProbability": 0.594115,
              "fairProbability": 0.408858,
              "edge": 0.185257,
              "bestAmerican": 144,
              "bestDecimal": 2.439024,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": 0.449062
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "46020f4cb0d327c8b0c7f876e83adfb8",
        "pairKey": "caio borralho|yousri belgaroui",
        "pairKeys": [
          "caio borralho|yousri belgaroui"
        ],
        "commenceTime": "2026-11-15T03:15:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "CAIO BORRALHO"
          },
          {
            "name": "YOUSRI BELGAROUI"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-334:13142",
          "eventId": "ufc-334",
          "eventTitle": "POLYMARKET UFC 334",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-334:13142"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -158,
              138
            ],
            "decimal": [
              1.632911,
              2.38
            ],
            "implied": [
              0.612403,
              0.420168
            ],
            "noVig": [
              0.593086,
              0.406914
            ],
            "margin": 0.032571
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -165,
              132
            ],
            "decimal": [
              1.606061,
              2.32
            ],
            "implied": [
              0.622642,
              0.431034
            ],
            "noVig": [
              0.590923,
              0.409077
            ],
            "margin": 0.053676
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -155,
              130
            ],
            "decimal": [
              1.645161,
              2.3
            ],
            "implied": [
              0.607843,
              0.434783
            ],
            "noVig": [
              0.582993,
              0.417007
            ],
            "margin": 0.042626
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -156,
              132
            ],
            "decimal": [
              1.641026,
              2.32
            ],
            "implied": [
              0.609375,
              0.431034
            ],
            "noVig": [
              0.585707,
              0.414293
            ],
            "margin": 0.040409
          },
          {
            "key": "betmgm",
            "title": "BetMGM",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:22Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -165,
              135
            ],
            "decimal": [
              1.606061,
              2.35
            ],
            "implied": [
              0.622642,
              0.425532
            ],
            "noVig": [
              0.594025,
              0.405975
            ],
            "margin": 0.048173
          },
          {
            "key": "bovada",
            "title": "Bovada",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:12Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -155,
              133
            ],
            "decimal": [
              1.645161,
              2.33
            ],
            "implied": [
              0.607843,
              0.429185
            ],
            "noVig": [
              0.58614,
              0.41386
            ],
            "margin": 0.037028
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:48:49.190Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -144,
              138
            ],
            "decimal": [
              1.694915,
              2.380952
            ],
            "implied": [
              0.59,
              0.42
            ],
            "noVig": [
              0.584158,
              0.415842
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "CAIO BORRALHO",
              "fairProbability": 0.587649
            },
            {
              "name": "YOUSRI BELGAROUI",
              "fairProbability": 0.412351
            }
          ],
          "weightTotal": 8,
          "booksUsed": 7,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "CAIO BORRALHO",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -144,
            "decimal": 1.694915,
            "tiedBooks": []
          },
          {
            "name": "YOUSRI BELGAROUI",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 138,
            "decimal": 2.380952,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "CAIO BORRALHO",
              "modelProbability": 0.53642,
              "fairProbability": 0.587649,
              "edge": -0.051229,
              "bestAmerican": -144,
              "bestDecimal": 1.694915,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": -0.090814
            },
            {
              "name": "YOUSRI BELGAROUI",
              "modelProbability": 0.46358,
              "fairProbability": 0.412351,
              "edge": 0.051229,
              "bestAmerican": 138,
              "bestDecimal": 2.380952,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": 0.103762
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "dca96b5f1b9adde7830680152cd5cbc7",
        "pairKey": "amanda nunes|kayla harrison",
        "pairKeys": [
          "amanda nunes|kayla harrison"
        ],
        "commenceTime": "2026-11-15T03:45:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "KAYLA HARRISON"
          },
          {
            "name": "AMANDA NUNES"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-334:13141",
          "eventId": "ufc-334",
          "eventTitle": "POLYMARKET UFC 334",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-334:13141"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -166,
              140
            ],
            "decimal": [
              1.60241,
              2.4
            ],
            "implied": [
              0.62406,
              0.416667
            ],
            "noVig": [
              0.599639,
              0.400361
            ],
            "margin": 0.040727
          },
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -162,
              142
            ],
            "decimal": [
              1.617284,
              2.42
            ],
            "implied": [
              0.618321,
              0.413223
            ],
            "noVig": [
              0.599413,
              0.400587
            ],
            "margin": 0.031544
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -175,
              138
            ],
            "decimal": [
              1.571429,
              2.38
            ],
            "implied": [
              0.636364,
              0.420168
            ],
            "noVig": [
              0.602314,
              0.397686
            ],
            "margin": 0.056532
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -164,
              138
            ],
            "decimal": [
              1.609756,
              2.38
            ],
            "implied": [
              0.621212,
              0.420168
            ],
            "noVig": [
              0.596528,
              0.403472
            ],
            "margin": 0.04138
          },
          {
            "key": "bovada",
            "title": "Bovada",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:12Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -163,
              138
            ],
            "decimal": [
              1.613497,
              2.38
            ],
            "implied": [
              0.619772,
              0.420168
            ],
            "noVig": [
              0.595969,
              0.404031
            ],
            "margin": 0.03994
          },
          {
            "key": "betmgm",
            "title": "BetMGM",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:22Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -170,
              140
            ],
            "decimal": [
              1.588235,
              2.4
            ],
            "implied": [
              0.62963,
              0.416667
            ],
            "noVig": [
              0.60177,
              0.39823
            ],
            "margin": 0.046296
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:49:17.191Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -150,
              144
            ],
            "decimal": [
              1.666667,
              2.439024
            ],
            "implied": [
              0.6,
              0.41
            ],
            "noVig": [
              0.594059,
              0.405941
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "KAYLA HARRISON",
              "fairProbability": 0.597969
            },
            {
              "name": "AMANDA NUNES",
              "fairProbability": 0.402031
            }
          ],
          "weightTotal": 8,
          "booksUsed": 7,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "KAYLA HARRISON",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -150,
            "decimal": 1.666667,
            "tiedBooks": []
          },
          {
            "name": "AMANDA NUNES",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 144,
            "decimal": 2.439024,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "KAYLA HARRISON",
              "modelProbability": 0.406195,
              "fairProbability": 0.597969,
              "edge": -0.191774,
              "bestAmerican": -150,
              "bestDecimal": 1.666667,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": -0.323008
            },
            {
              "name": "AMANDA NUNES",
              "modelProbability": 0.593805,
              "fairProbability": 0.402031,
              "edge": 0.191774,
              "bestAmerican": 144,
              "bestDecimal": 2.439024,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": 0.448304
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "5298300e656df1b89af9e3524867ccbe",
        "pairKey": "ciryl gane|josh hokit",
        "pairKeys": [
          "ciryl gane|josh hokit"
        ],
        "commenceTime": "2026-11-15T04:30:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "CIRYL GANE"
          },
          {
            "name": "JOSH HOKIT"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-334:13140",
          "eventId": "ufc-334",
          "eventTitle": "POLYMARKET UFC 334",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-334:13140"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -230,
              190
            ],
            "decimal": [
              1.434783,
              2.9
            ],
            "implied": [
              0.69697,
              0.344828
            ],
            "noVig": [
              0.669007,
              0.330993
            ],
            "margin": 0.041797
          },
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -192,
              167
            ],
            "decimal": [
              1.520833,
              2.67
            ],
            "implied": [
              0.657534,
              0.374532
            ],
            "noVig": [
              0.637105,
              0.362895
            ],
            "margin": 0.032066
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -210,
              165
            ],
            "decimal": [
              1.47619,
              2.65
            ],
            "implied": [
              0.677419,
              0.377358
            ],
            "noVig": [
              0.642239,
              0.357761
            ],
            "margin": 0.054778
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -225,
              188
            ],
            "decimal": [
              1.444444,
              2.88
            ],
            "implied": [
              0.692308,
              0.347222
            ],
            "noVig": [
              0.665982,
              0.334018
            ],
            "margin": 0.03953
          },
          {
            "key": "bovada",
            "title": "Bovada",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:12Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -210,
              176
            ],
            "decimal": [
              1.47619,
              2.76
            ],
            "implied": [
              0.677419,
              0.362319
            ],
            "noVig": [
              0.651529,
              0.348471
            ],
            "margin": 0.039738
          },
          {
            "key": "betmgm",
            "title": "BetMGM",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:22Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -220,
              180
            ],
            "decimal": [
              1.454545,
              2.8
            ],
            "implied": [
              0.6875,
              0.357143
            ],
            "noVig": [
              0.65812,
              0.34188
            ],
            "margin": 0.044643
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:49:09.353Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -203,
              194
            ],
            "decimal": [
              1.492537,
              2.941176
            ],
            "implied": [
              0.67,
              0.34
            ],
            "noVig": [
              0.663366,
              0.336634
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "CIRYL GANE",
              "fairProbability": 0.656339
            },
            {
              "name": "JOSH HOKIT",
              "fairProbability": 0.343661
            }
          ],
          "weightTotal": 8,
          "booksUsed": 7,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "CIRYL GANE",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -192,
            "decimal": 1.520833,
            "tiedBooks": []
          },
          {
            "name": "JOSH HOKIT",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 194,
            "decimal": 2.941176,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "CIRYL GANE",
              "modelProbability": 0.592855,
              "fairProbability": 0.656339,
              "edge": -0.063484,
              "bestAmerican": -192,
              "bestDecimal": 1.520833,
              "bestBook": "BetOnline.ag",
              "expectedValuePerUnit": -0.098367
            },
            {
              "name": "JOSH HOKIT",
              "modelProbability": 0.407145,
              "fairProbability": 0.343661,
              "edge": 0.063484,
              "bestAmerican": 194,
              "bestDecimal": 2.941176,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": 0.197485
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "e534ad040ef8bdb205bd68ad709379f0",
        "pairKey": "igor michaliszyn|tomasz romanowski",
        "pairKeys": [
          "igor michaliszyn|tomasz romanowski"
        ],
        "commenceTime": "2026-11-21T11:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Igor Michaliszyn"
          },
          {
            "name": "Tomasz Romanowski"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -155,
              115
            ],
            "decimal": [
              1.645161,
              2.15
            ],
            "implied": [
              0.607843,
              0.465116
            ],
            "noVig": [
              0.566511,
              0.433489
            ],
            "margin": 0.072959
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Igor Michaliszyn",
              "fairProbability": 0.566511
            },
            {
              "name": "Tomasz Romanowski",
              "fairProbability": 0.433489
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Igor Michaliszyn",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -155,
            "decimal": 1.645161,
            "tiedBooks": []
          },
          {
            "name": "Tomasz Romanowski",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 115,
            "decimal": 2.15,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "a1e10dd4d199dba4bacdf001b31639fe",
        "pairKey": "madars fleminas|mateusz pawlik",
        "pairKeys": [
          "madars fleminas|mateusz pawlik"
        ],
        "commenceTime": "2026-11-21T11:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Mateusz Pawlik"
          },
          {
            "name": "Madars Fleminas"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              211,
              -255
            ],
            "decimal": [
              3.11,
              1.392157
            ],
            "implied": [
              0.321543,
              0.71831
            ],
            "noVig": [
              0.30922,
              0.69078
            ],
            "margin": 0.039853
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Mateusz Pawlik",
              "fairProbability": 0.30922
            },
            {
              "name": "Madars Fleminas",
              "fairProbability": 0.69078
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Mateusz Pawlik",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 211,
            "decimal": 3.11,
            "tiedBooks": []
          },
          {
            "name": "Madars Fleminas",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -255,
            "decimal": 1.392157,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "ac3f74fb6ab73d7bd7294770e491de69",
        "pairKey": "marcin held|valeriu mircea",
        "pairKeys": [
          "marcin held|valeriu mircea"
        ],
        "commenceTime": "2026-11-21T11:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Marcin Held"
          },
          {
            "name": "Valeriu Mircea"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              105,
              -125
            ],
            "decimal": [
              2.05,
              1.8
            ],
            "implied": [
              0.487805,
              0.555556
            ],
            "noVig": [
              0.467532,
              0.532468
            ],
            "margin": 0.04336
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Marcin Held",
              "fairProbability": 0.467532
            },
            {
              "name": "Valeriu Mircea",
              "fairProbability": 0.532468
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Marcin Held",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 105,
            "decimal": 2.05,
            "tiedBooks": []
          },
          {
            "name": "Valeriu Mircea",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -125,
            "decimal": 1.8,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "fa85486095e7772788cc02d860f2cf9c",
        "pairKey": "oskar szczepaniak|steven krt",
        "pairKeys": [
          "oskar szczepaniak|steven krt"
        ],
        "commenceTime": "2026-11-21T11:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Steven Krt"
          },
          {
            "name": "Oskar Szczepaniak"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              265,
              -315
            ],
            "decimal": [
              3.65,
              1.31746
            ],
            "implied": [
              0.273973,
              0.759036
            ],
            "noVig": [
              0.265218,
              0.734782
            ],
            "margin": 0.033009
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Steven Krt",
              "fairProbability": 0.265218
            },
            {
              "name": "Oskar Szczepaniak",
              "fairProbability": 0.734782
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Steven Krt",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 265,
            "decimal": 3.65,
            "tiedBooks": []
          },
          {
            "name": "Oskar Szczepaniak",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -315,
            "decimal": 1.31746,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "bf4d3ca9cd3ce24b64e1493c5ccb89d2",
        "pairKey": "sasha moisa|wojciech kawa",
        "pairKeys": [
          "sasha moisa|wojciech kawa"
        ],
        "commenceTime": "2026-11-21T11:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Sasha Moisa"
          },
          {
            "name": "Wojciech Kawa"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -210,
              180
            ],
            "decimal": [
              1.47619,
              2.8
            ],
            "implied": [
              0.677419,
              0.357143
            ],
            "noVig": [
              0.654788,
              0.345212
            ],
            "margin": 0.034562
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Sasha Moisa",
              "fairProbability": 0.654788
            },
            {
              "name": "Wojciech Kawa",
              "fairProbability": 0.345212
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Sasha Moisa",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -210,
            "decimal": 1.47619,
            "tiedBooks": []
          },
          {
            "name": "Wojciech Kawa",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 180,
            "decimal": 2.8,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "f489c8a46fa7baeab80d1bace1b0f067",
        "pairKey": "jake matthews|tahir abdullayev",
        "pairKeys": [
          "jake matthews|tahir abdullayev"
        ],
        "commenceTime": "2026-11-21T15:15:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "JAKE MATTHEWS"
          },
          {
            "name": "TAHIR ABDULLAYEV"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-fight-night-november-21-2026:13193",
          "eventId": "ufc-fight-night-november-21-2026",
          "eventTitle": "UFC FIGHT NIGHT",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-fight-night-november-21-2026:13193"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -170,
              145
            ],
            "decimal": [
              1.588235,
              2.45
            ],
            "implied": [
              0.62963,
              0.408163
            ],
            "noVig": [
              0.606701,
              0.393299
            ],
            "margin": 0.037793
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -170,
              142
            ],
            "decimal": [
              1.588235,
              2.42
            ],
            "implied": [
              0.62963,
              0.413223
            ],
            "noVig": [
              0.603757,
              0.396243
            ],
            "margin": 0.042853
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -178,
              138
            ],
            "decimal": [
              1.561798,
              2.38
            ],
            "implied": [
              0.640288,
              0.420168
            ],
            "noVig": [
              0.603785,
              0.396215
            ],
            "margin": 0.060456
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -175,
              138
            ],
            "decimal": [
              1.571429,
              2.38
            ],
            "implied": [
              0.636364,
              0.420168
            ],
            "noVig": [
              0.602314,
              0.397686
            ],
            "margin": 0.056532
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:46:08.610Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -170,
              163
            ],
            "decimal": [
              1.587302,
              2.631579
            ],
            "implied": [
              0.63,
              0.38
            ],
            "noVig": [
              0.623762,
              0.376238
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "JAKE MATTHEWS",
              "fairProbability": 0.61068
            },
            {
              "name": "TAHIR ABDULLAYEV",
              "fairProbability": 0.38932
            }
          ],
          "weightTotal": 6,
          "booksUsed": 5,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "JAKE MATTHEWS",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -170,
            "decimal": 1.588235,
            "tiedBooks": [
              "DraftKings"
            ]
          },
          {
            "name": "TAHIR ABDULLAYEV",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 163,
            "decimal": 2.631579,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "reason": "No usable experimental UFC probability is published for this bout."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "9f892e21a835452335eba01effd8a393",
        "pairKey": "alessandro costa|amir albazi",
        "pairKeys": [
          "alessandro costa|amir albazi"
        ],
        "commenceTime": "2026-11-21T15:45:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "AMIR ALBAZI"
          },
          {
            "name": "ALESSANDRO COSTA"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-fight-night-november-21-2026:13196",
          "eventId": "ufc-fight-night-november-21-2026",
          "eventTitle": "UFC FIGHT NIGHT",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-fight-night-november-21-2026:13196"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              116,
              -135
            ],
            "decimal": [
              2.16,
              1.740741
            ],
            "implied": [
              0.462963,
              0.574468
            ],
            "noVig": [
              0.446259,
              0.553741
            ],
            "margin": 0.037431
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              114,
              -135
            ],
            "decimal": [
              2.14,
              1.740741
            ],
            "implied": [
              0.46729,
              0.574468
            ],
            "noVig": [
              0.448559,
              0.551441
            ],
            "margin": 0.041758
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              114,
              -146
            ],
            "decimal": [
              2.14,
              1.684932
            ],
            "implied": [
              0.46729,
              0.593496
            ],
            "noVig": [
              0.440513,
              0.559487
            ],
            "margin": 0.060786
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              112,
              -137
            ],
            "decimal": [
              2.12,
              1.729927
            ],
            "implied": [
              0.471698,
              0.578059
            ],
            "noVig": [
              0.44934,
              0.55066
            ],
            "margin": 0.049757
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:49:32.790Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              138,
              -144
            ],
            "decimal": [
              2.380952,
              1.694915
            ],
            "implied": [
              0.42,
              0.59
            ],
            "noVig": [
              0.415842,
              0.584158
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "AMIR ALBAZI",
              "fairProbability": 0.436059
            },
            {
              "name": "ALESSANDRO COSTA",
              "fairProbability": 0.563941
            }
          ],
          "weightTotal": 6,
          "booksUsed": 5,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "AMIR ALBAZI",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 138,
            "decimal": 2.380952,
            "tiedBooks": []
          },
          {
            "name": "ALESSANDRO COSTA",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -135,
            "decimal": 1.740741,
            "tiedBooks": [
              "DraftKings"
            ]
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "AMIR ALBAZI",
              "modelProbability": 0.484551,
              "fairProbability": 0.436059,
              "edge": 0.048492,
              "bestAmerican": 138,
              "bestDecimal": 2.380952,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": 0.153692
            },
            {
              "name": "ALESSANDRO COSTA",
              "modelProbability": 0.515449,
              "fairProbability": 0.563941,
              "edge": -0.048492,
              "bestAmerican": -135,
              "bestDecimal": 1.740741,
              "bestBook": "BetOnline.ag",
              "expectedValuePerUnit": -0.102736
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "e0fe6ef8d4d50031f2ff78a26b9b6945",
        "pairKey": "shamil gaziev|tallison teixeira",
        "pairKeys": [
          "shamil gaziev|tallison teixeira"
        ],
        "commenceTime": "2026-11-21T16:15:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "SHAMIL GAZIEV"
          },
          {
            "name": "TALLISON TEIXEIRA"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-fight-night-november-21-2026:13200",
          "eventId": "ufc-fight-night-november-21-2026",
          "eventTitle": "UFC FIGHT NIGHT",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-fight-night-november-21-2026:13200"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -220,
              185
            ],
            "decimal": [
              1.454545,
              2.85
            ],
            "implied": [
              0.6875,
              0.350877
            ],
            "noVig": [
              0.662091,
              0.337909
            ],
            "margin": 0.038377
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -225,
              185
            ],
            "decimal": [
              1.444444,
              2.85
            ],
            "implied": [
              0.692308,
              0.350877
            ],
            "noVig": [
              0.663648,
              0.336352
            ],
            "margin": 0.043185
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -235,
              180
            ],
            "decimal": [
              1.425532,
              2.8
            ],
            "implied": [
              0.701493,
              0.357143
            ],
            "noVig": [
              0.662638,
              0.337362
            ],
            "margin": 0.058635
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -230,
              180
            ],
            "decimal": [
              1.434783,
              2.8
            ],
            "implied": [
              0.69697,
              0.357143
            ],
            "noVig": [
              0.661191,
              0.338809
            ],
            "margin": 0.054113
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:43:18.612Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -194,
              186
            ],
            "decimal": [
              1.515152,
              2.857143
            ],
            "implied": [
              0.66,
              0.35
            ],
            "noVig": [
              0.653465,
              0.346535
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "SHAMIL GAZIEV",
              "fairProbability": 0.659416
            },
            {
              "name": "TALLISON TEIXEIRA",
              "fairProbability": 0.340584
            }
          ],
          "weightTotal": 6,
          "booksUsed": 5,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "SHAMIL GAZIEV",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -194,
            "decimal": 1.515152,
            "tiedBooks": []
          },
          {
            "name": "TALLISON TEIXEIRA",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 186,
            "decimal": 2.857143,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "SHAMIL GAZIEV",
              "modelProbability": 0.459009,
              "fairProbability": 0.659416,
              "edge": -0.200407,
              "bestAmerican": -194,
              "bestDecimal": 1.515152,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": -0.304532
            },
            {
              "name": "TALLISON TEIXEIRA",
              "modelProbability": 0.540991,
              "fairProbability": 0.340584,
              "edge": 0.200407,
              "bestAmerican": 186,
              "bestDecimal": 2.857143,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": 0.545689
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "6571e7bc729a887110c0869b14c3582c",
        "pairKey": "aleksandre topuria|santiago luna",
        "pairKeys": [
          "aleksandre topuria|santiago luna"
        ],
        "commenceTime": "2026-11-21T17:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "ALEKSANDRE TOPURIA"
          },
          {
            "name": "SANTIAGO LUNA"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-fight-night-november-21-2026:13194",
          "eventId": "ufc-fight-night-november-21-2026",
          "eventTitle": "UFC FIGHT NIGHT",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-fight-night-november-21-2026:13194"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -235,
              197
            ],
            "decimal": [
              1.425532,
              2.97
            ],
            "implied": [
              0.701493,
              0.3367
            ],
            "noVig": [
              0.675686,
              0.324314
            ],
            "margin": 0.038193
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -250,
              195
            ],
            "decimal": [
              1.4,
              2.95
            ],
            "implied": [
              0.714286,
              0.338983
            ],
            "noVig": [
              0.678161,
              0.321839
            ],
            "margin": 0.053269
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:49:17.568Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -186,
              178
            ],
            "decimal": [
              1.538462,
              2.777778
            ],
            "implied": [
              0.65,
              0.36
            ],
            "noVig": [
              0.643564,
              0.356436
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "ALEKSANDRE TOPURIA",
              "fairProbability": 0.660244
            },
            {
              "name": "SANTIAGO LUNA",
              "fairProbability": 0.339756
            }
          ],
          "weightTotal": 4,
          "booksUsed": 3,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "ALEKSANDRE TOPURIA",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -186,
            "decimal": 1.538462,
            "tiedBooks": []
          },
          {
            "name": "SANTIAGO LUNA",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 197,
            "decimal": 2.97,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "reason": "No usable experimental UFC probability is published for this bout."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "3252a6edf971e56a6d153f473f6b6edd",
        "pairKey": "alik lorenz|diyar nurgozhay",
        "pairKeys": [
          "alik lorenz|diyar nurgozhay"
        ],
        "commenceTime": "2026-11-21T17:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Diyar Nurgozhay"
          },
          {
            "name": "Alik Lorenz"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -265,
              220
            ],
            "decimal": [
              1.377358,
              3.2
            ],
            "implied": [
              0.726027,
              0.3125
            ],
            "noVig": [
              0.699093,
              0.300907
            ],
            "margin": 0.038527
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -265,
              205
            ],
            "decimal": [
              1.377358,
              3.05
            ],
            "implied": [
              0.726027,
              0.327869
            ],
            "noVig": [
              0.688898,
              0.311102
            ],
            "margin": 0.053896
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Diyar Nurgozhay",
              "fairProbability": 0.693996
            },
            {
              "name": "Alik Lorenz",
              "fairProbability": 0.306005
            }
          ],
          "weightTotal": 2,
          "booksUsed": 2,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Diyar Nurgozhay",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -265,
            "decimal": 1.377358,
            "tiedBooks": [
              "BetRivers"
            ]
          },
          {
            "name": "Alik Lorenz",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 220,
            "decimal": 3.2,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "ca5d034598b83c81aa267bea9b3334a4",
        "pairKey": "aljamain sterling|kevin vallejos",
        "pairKeys": [
          "aljamain sterling|kevin vallejos"
        ],
        "commenceTime": "2026-11-21T17:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "ALJAMAIN STERLING"
          },
          {
            "name": "KEVIN VALLEJOS"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-fight-night-november-21-2026:13198",
          "eventId": "ufc-fight-night-november-21-2026",
          "eventTitle": "UFC FIGHT NIGHT",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-fight-night-november-21-2026:13198"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              116,
              -135
            ],
            "decimal": [
              2.16,
              1.740741
            ],
            "implied": [
              0.462963,
              0.574468
            ],
            "noVig": [
              0.446259,
              0.553741
            ],
            "margin": 0.037431
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              112,
              -137
            ],
            "decimal": [
              2.12,
              1.729927
            ],
            "implied": [
              0.471698,
              0.578059
            ],
            "noVig": [
              0.44934,
              0.55066
            ],
            "margin": 0.049757
          },
          {
            "key": "betus",
            "title": "BetUS",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:06Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              114,
              -135
            ],
            "decimal": [
              2.14,
              1.740741
            ],
            "implied": [
              0.46729,
              0.574468
            ],
            "noVig": [
              0.448559,
              0.551441
            ],
            "margin": 0.041758
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              114,
              -135
            ],
            "decimal": [
              2.14,
              1.740741
            ],
            "implied": [
              0.46729,
              0.574468
            ],
            "noVig": [
              0.448559,
              0.551441
            ],
            "margin": 0.041758
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              108,
              -138
            ],
            "decimal": [
              2.08,
              1.724638
            ],
            "implied": [
              0.480769,
              0.579832
            ],
            "noVig": [
              0.453299,
              0.546701
            ],
            "margin": 0.060601
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:49:18.211Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              113,
              -117
            ],
            "decimal": [
              2.12766,
              1.851852
            ],
            "implied": [
              0.47,
              0.54
            ],
            "noVig": [
              0.465347,
              0.534653
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "ALJAMAIN STERLING",
              "fairProbability": 0.453816
            },
            {
              "name": "KEVIN VALLEJOS",
              "fairProbability": 0.546184
            }
          ],
          "weightTotal": 7,
          "booksUsed": 6,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "ALJAMAIN STERLING",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 116,
            "decimal": 2.16,
            "tiedBooks": []
          },
          {
            "name": "KEVIN VALLEJOS",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -117,
            "decimal": 1.851852,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "ALJAMAIN STERLING",
              "modelProbability": 0.509718,
              "fairProbability": 0.453816,
              "edge": 0.055902,
              "bestAmerican": 116,
              "bestDecimal": 2.16,
              "bestBook": "BetOnline.ag",
              "expectedValuePerUnit": 0.100991
            },
            {
              "name": "KEVIN VALLEJOS",
              "modelProbability": 0.490282,
              "fairProbability": 0.546184,
              "edge": -0.055902,
              "bestAmerican": -117,
              "bestDecimal": 1.851852,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": -0.092071
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "48c97941350cd548c5a6667dc0018546",
        "pairKey": "dom mar fan|nikolas motta",
        "pairKeys": [
          "dom mar fan|nikolas motta"
        ],
        "commenceTime": "2026-11-21T17:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Nikolas Motta"
          },
          {
            "name": "Dom Mar Fan"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              136,
              -160
            ],
            "decimal": [
              2.36,
              1.625
            ],
            "implied": [
              0.423729,
              0.615385
            ],
            "noVig": [
              0.407779,
              0.592221
            ],
            "margin": 0.039113
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              128,
              -159
            ],
            "decimal": [
              2.28,
              1.628931
            ],
            "implied": [
              0.438596,
              0.6139
            ],
            "noVig": [
              0.41672,
              0.58328
            ],
            "margin": 0.052496
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Nikolas Motta",
              "fairProbability": 0.41225
            },
            {
              "name": "Dom Mar Fan",
              "fairProbability": 0.587751
            }
          ],
          "weightTotal": 2,
          "booksUsed": 2,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Nikolas Motta",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 136,
            "decimal": 2.36,
            "tiedBooks": []
          },
          {
            "name": "Dom Mar Fan",
            "book": "BetRivers",
            "bookKey": "betrivers",
            "source": "the-odds-api",
            "american": -159,
            "decimal": 1.628931,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "981c56f62e02e086779c0b14c97afcf9",
        "pairKey": "jiri prochazka|navajo stirling",
        "pairKeys": [
          "jiri prochazka|navajo stirling"
        ],
        "commenceTime": "2026-11-21T17:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "JIŘÍ PROCHÁZKA"
          },
          {
            "name": "NAVAJO STIRLING"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-fight-night-november-21-2026:13197",
          "eventId": "ufc-fight-night-november-21-2026",
          "eventTitle": "UFC FIGHT NIGHT",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-fight-night-november-21-2026:13197"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              128,
              -150
            ],
            "decimal": [
              2.28,
              1.666667
            ],
            "implied": [
              0.438596,
              0.6
            ],
            "noVig": [
              0.422297,
              0.577703
            ],
            "margin": 0.038596
          },
          {
            "key": "betus",
            "title": "BetUS",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:06Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              126,
              -150
            ],
            "decimal": [
              2.26,
              1.666667
            ],
            "implied": [
              0.442478,
              0.6
            ],
            "noVig": [
              0.424448,
              0.575552
            ],
            "margin": 0.042478
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              120,
              -148
            ],
            "decimal": [
              2.2,
              1.675676
            ],
            "implied": [
              0.454545,
              0.596774
            ],
            "noVig": [
              0.432357,
              0.567643
            ],
            "margin": 0.05132
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              124,
              -148
            ],
            "decimal": [
              2.24,
              1.675676
            ],
            "implied": [
              0.446429,
              0.596774
            ],
            "noVig": [
              0.42794,
              0.57206
            ],
            "margin": 0.043203
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              124,
              -158
            ],
            "decimal": [
              2.24,
              1.632911
            ],
            "implied": [
              0.446429,
              0.612403
            ],
            "noVig": [
              0.421624,
              0.578376
            ],
            "margin": 0.058832
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:47:05.200Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              133,
              -138
            ],
            "decimal": [
              2.325581,
              1.724138
            ],
            "implied": [
              0.43,
              0.58
            ],
            "noVig": [
              0.425743,
              0.574257
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "JIŘÍ PROCHÁZKA",
              "fairProbability": 0.425736
            },
            {
              "name": "NAVAJO STIRLING",
              "fairProbability": 0.574264
            }
          ],
          "weightTotal": 7,
          "booksUsed": 6,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "JIŘÍ PROCHÁZKA",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 133,
            "decimal": 2.325581,
            "tiedBooks": []
          },
          {
            "name": "NAVAJO STIRLING",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -138,
            "decimal": 1.724138,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "JIŘÍ PROCHÁZKA",
              "modelProbability": 0.289731,
              "fairProbability": 0.425736,
              "edge": -0.136005,
              "bestAmerican": 133,
              "bestDecimal": 2.325581,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": -0.326208
            },
            {
              "name": "NAVAJO STIRLING",
              "modelProbability": 0.710269,
              "fairProbability": 0.574264,
              "edge": 0.136005,
              "bestAmerican": -138,
              "bestDecimal": 1.724138,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": 0.224602
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "UFC:ufc-fight-night-november-21-2026:13195",
        "pairKey": "asu almabayev|kyoji horiguchi",
        "pairKeys": [
          "asu almabayev|kyoji horiguchi"
        ],
        "commenceTime": "2026-11-21T18:00:00.000Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "KYOJI HORIGUCHI"
          },
          {
            "name": "ASU ALMABAYEV"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-fight-night-november-21-2026:13195",
          "eventId": "ufc-fight-night-november-21-2026",
          "eventTitle": "UFC FIGHT NIGHT",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-fight-night-november-21-2026:13195"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:48:01.145Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -170,
              163
            ],
            "decimal": [
              1.587302,
              2.631579
            ],
            "implied": [
              0.63,
              0.38
            ],
            "noVig": [
              0.623762,
              0.376238
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "KYOJI HORIGUCHI",
              "fairProbability": 0.623762
            },
            {
              "name": "ASU ALMABAYEV",
              "fairProbability": 0.376238
            }
          ],
          "weightTotal": 2,
          "booksUsed": 1,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "KYOJI HORIGUCHI",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -170,
            "decimal": 1.587302,
            "tiedBooks": []
          },
          {
            "name": "ASU ALMABAYEV",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 163,
            "decimal": 2.631579,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "KYOJI HORIGUCHI",
              "modelProbability": 0.55274,
              "fairProbability": 0.623762,
              "edge": -0.071022,
              "bestAmerican": -170,
              "bestDecimal": 1.587302,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": -0.122634
            },
            {
              "name": "ASU ALMABAYEV",
              "modelProbability": 0.44726,
              "fairProbability": 0.376238,
              "edge": 0.071022,
              "bestAmerican": 163,
              "bestDecimal": 2.631579,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": 0.176999
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "UFC:ufc-fight-night-november-21-2026:13199",
        "pairKey": "brian ortega|dan hooker",
        "pairKeys": [
          "brian ortega|dan hooker"
        ],
        "commenceTime": "2026-11-21T18:00:00.000Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "DAN HOOKER"
          },
          {
            "name": "BRIAN ORTEGA"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-fight-night-november-21-2026:13199",
          "eventId": "ufc-fight-night-november-21-2026",
          "eventTitle": "UFC FIGHT NIGHT",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-fight-night-november-21-2026:13199"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:49:16.402Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              -133,
              127
            ],
            "decimal": [
              1.754386,
              2.272727
            ],
            "implied": [
              0.57,
              0.44
            ],
            "noVig": [
              0.564356,
              0.435644
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "DAN HOOKER",
              "fairProbability": 0.564356
            },
            {
              "name": "BRIAN ORTEGA",
              "fairProbability": 0.435644
            }
          ],
          "weightTotal": 2,
          "booksUsed": 1,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "DAN HOOKER",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -133,
            "decimal": 1.754386,
            "tiedBooks": []
          },
          {
            "name": "BRIAN ORTEGA",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": 127,
            "decimal": 2.272727,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "DAN HOOKER",
              "modelProbability": 0.433121,
              "fairProbability": 0.564356,
              "edge": -0.131235,
              "bestAmerican": -133,
              "bestDecimal": 1.754386,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": -0.240139
            },
            {
              "name": "BRIAN ORTEGA",
              "modelProbability": 0.566879,
              "fairProbability": 0.435644,
              "edge": 0.131235,
              "bestAmerican": 127,
              "bestDecimal": 2.272727,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": 0.288362
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "8f01dcdee59eec582ccf12e049833989",
        "pairKey": "ikram aliskerov|jared cannonier",
        "pairKeys": [
          "ikram aliskerov|jared cannonier"
        ],
        "commenceTime": "2026-11-21T18:15:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "JARED CANNONIER"
          },
          {
            "name": "IKRAM ALISKEROV"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-fight-night-november-21-2026:13192",
          "eventId": "ufc-fight-night-november-21-2026",
          "eventTitle": "UFC FIGHT NIGHT",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-fight-night-november-21-2026:13192"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              284,
              -350
            ],
            "decimal": [
              3.84,
              1.285714
            ],
            "implied": [
              0.260417,
              0.777778
            ],
            "noVig": [
              0.250836,
              0.749164
            ],
            "margin": 0.038194
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              275,
              -345
            ],
            "decimal": [
              3.75,
              1.289855
            ],
            "implied": [
              0.266667,
              0.775281
            ],
            "noVig": [
              0.255931,
              0.744069
            ],
            "margin": 0.041948
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              280,
              -390
            ],
            "decimal": [
              3.8,
              1.25641
            ],
            "implied": [
              0.263158,
              0.795918
            ],
            "noVig": [
              0.248479,
              0.751521
            ],
            "margin": 0.059076
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              250,
              -335
            ],
            "decimal": [
              3.5,
              1.298507
            ],
            "implied": [
              0.285714,
              0.770115
            ],
            "noVig": [
              0.270607,
              0.729393
            ],
            "margin": 0.055829
          },
          {
            "key": "polymarket",
            "title": "Polymarket US",
            "source": "polymarket",
            "lastUpdate": "2026-11-14T16:49:20.195Z",
            "market": "h2h",
            "weight": 2,
            "includedInConsensus": true,
            "american": [
              257,
              -270
            ],
            "decimal": [
              3.571429,
              1.369863
            ],
            "implied": [
              0.28,
              0.73
            ],
            "noVig": [
              0.277228,
              0.722772
            ],
            "margin": 0.01,
            "note": "Saved public exchange quote. Not a live price."
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "JARED CANNONIER",
              "fairProbability": 0.263385
            },
            {
              "name": "IKRAM ALISKEROV",
              "fairProbability": 0.736615
            }
          ],
          "weightTotal": 6,
          "booksUsed": 5,
          "sharpBooksUsed": [
            "Polymarket US"
          ]
        },
        "bestAvailable": [
          {
            "name": "JARED CANNONIER",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 284,
            "decimal": 3.84,
            "tiedBooks": []
          },
          {
            "name": "IKRAM ALISKEROV",
            "book": "Polymarket US",
            "bookKey": "polymarket",
            "source": "polymarket",
            "american": -270,
            "decimal": 1.369863,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "JARED CANNONIER",
              "modelProbability": 0.398722,
              "fairProbability": 0.263385,
              "edge": 0.135337,
              "bestAmerican": 284,
              "bestDecimal": 3.84,
              "bestBook": "BetOnline.ag",
              "expectedValuePerUnit": 0.531093
            },
            {
              "name": "IKRAM ALISKEROV",
              "modelProbability": 0.601278,
              "fairProbability": 0.736615,
              "edge": -0.135337,
              "bestAmerican": -270,
              "bestDecimal": 1.369863,
              "bestBook": "Polymarket US",
              "expectedValuePerUnit": -0.176332
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "0b6d5a32985b31eda832be4154e10fe5",
        "pairKey": "asu almabaev|kyoji horiguchi",
        "pairKeys": [
          "asu almabaev|kyoji horiguchi"
        ],
        "commenceTime": "2026-11-21T18:45:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Kyoji Horiguchi"
          },
          {
            "name": "Asu Almabaev"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -200,
              169
            ],
            "decimal": [
              1.5,
              2.69
            ],
            "implied": [
              0.666667,
              0.371747
            ],
            "noVig": [
              0.642005,
              0.357995
            ],
            "margin": 0.038414
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -205,
              170
            ],
            "decimal": [
              1.487805,
              2.7
            ],
            "implied": [
              0.672131,
              0.37037
            ],
            "noVig": [
              0.644729,
              0.355271
            ],
            "margin": 0.042502
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -215,
              164
            ],
            "decimal": [
              1.465116,
              2.64
            ],
            "implied": [
              0.68254,
              0.378788
            ],
            "noVig": [
              0.6431,
              0.3569
            ],
            "margin": 0.061328
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Kyoji Horiguchi",
              "fairProbability": 0.643278
            },
            {
              "name": "Asu Almabaev",
              "fairProbability": 0.356722
            }
          ],
          "weightTotal": 3,
          "booksUsed": 3,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Kyoji Horiguchi",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -200,
            "decimal": 1.5,
            "tiedBooks": []
          },
          {
            "name": "Asu Almabaev",
            "book": "DraftKings",
            "bookKey": "draftkings",
            "source": "the-odds-api",
            "american": 170,
            "decimal": 2.7,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "d55740629555c012eedd01b8f75d3b69",
        "pairKey": "brian ortega|daniel hooker",
        "pairKeys": [
          "brian ortega|daniel hooker"
        ],
        "commenceTime": "2026-11-21T19:15:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Daniel Hooker"
          },
          {
            "name": "Brian Ortega"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -160,
              136
            ],
            "decimal": [
              1.625,
              2.36
            ],
            "implied": [
              0.615385,
              0.423729
            ],
            "noVig": [
              0.592221,
              0.407779
            ],
            "margin": 0.039113
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -162,
              136
            ],
            "decimal": [
              1.617284,
              2.36
            ],
            "implied": [
              0.618321,
              0.423729
            ],
            "noVig": [
              0.59337,
              0.40663
            ],
            "margin": 0.042049
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -170,
              132
            ],
            "decimal": [
              1.588235,
              2.32
            ],
            "implied": [
              0.62963,
              0.431034
            ],
            "noVig": [
              0.593618,
              0.406382
            ],
            "margin": 0.060664
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Daniel Hooker",
              "fairProbability": 0.59307
            },
            {
              "name": "Brian Ortega",
              "fairProbability": 0.40693
            }
          ],
          "weightTotal": 3,
          "booksUsed": 3,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Daniel Hooker",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -160,
            "decimal": 1.625,
            "tiedBooks": []
          },
          {
            "name": "Brian Ortega",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 136,
            "decimal": 2.36,
            "tiedBooks": [
              "DraftKings"
            ]
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "456bfad38cecf187ca1851aa801a2d9f",
        "pairKey": "ian garry|yaroslav amosov",
        "pairKeys": [
          "ian garry|yaroslav amosov"
        ],
        "commenceTime": "2026-12-05T17:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Ian Garry"
          },
          {
            "name": "Yaroslav Amosov"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -171,
              145
            ],
            "decimal": [
              1.584795,
              2.45
            ],
            "implied": [
              0.630996,
              0.408163
            ],
            "noVig": [
              0.607218,
              0.392782
            ],
            "margin": 0.03916
          },
          {
            "key": "betus",
            "title": "BetUS",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:07Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -170,
              142
            ],
            "decimal": [
              1.588235,
              2.42
            ],
            "implied": [
              0.62963,
              0.413223
            ],
            "noVig": [
              0.603757,
              0.396243
            ],
            "margin": 0.042853
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -177,
              140
            ],
            "decimal": [
              1.564972,
              2.4
            ],
            "implied": [
              0.638989,
              0.416667
            ],
            "noVig": [
              0.605301,
              0.394699
            ],
            "margin": 0.055656
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -170,
              142
            ],
            "decimal": [
              1.588235,
              2.42
            ],
            "implied": [
              0.62963,
              0.413223
            ],
            "noVig": [
              0.603757,
              0.396243
            ],
            "margin": 0.042853
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Ian Garry",
              "fairProbability": 0.605008
            },
            {
              "name": "Yaroslav Amosov",
              "fairProbability": 0.394992
            }
          ],
          "weightTotal": 4,
          "booksUsed": 4,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Ian Garry",
            "book": "BetUS",
            "bookKey": "betus",
            "source": "the-odds-api",
            "american": -170,
            "decimal": 1.588235,
            "tiedBooks": [
              "DraftKings"
            ]
          },
          {
            "name": "Yaroslav Amosov",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 145,
            "decimal": 2.45,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "e21c50b4bf66587fcd47063550868725",
        "pairKey": "israel adesanya|shara magomedov",
        "pairKeys": [
          "israel adesanya|shara magomedov"
        ],
        "commenceTime": "2026-12-05T17:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "ISRAEL ADESANYA"
          },
          {
            "name": "SHARA MAGOMEDOV"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-fight-night-december-05-2026:13245",
          "eventId": "ufc-fight-night-december-05-2026",
          "eventTitle": "UFC FIGHT NIGHT",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-fight-night-december-05-2026:13245"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -155,
              132
            ],
            "decimal": [
              1.645161,
              2.32
            ],
            "implied": [
              0.607843,
              0.431034
            ],
            "noVig": [
              0.585096,
              0.414904
            ],
            "margin": 0.038878
          },
          {
            "key": "betus",
            "title": "BetUS",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:07Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -155,
              130
            ],
            "decimal": [
              1.645161,
              2.3
            ],
            "implied": [
              0.607843,
              0.434783
            ],
            "noVig": [
              0.582993,
              0.417007
            ],
            "margin": 0.042626
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -157,
              125
            ],
            "decimal": [
              1.636943,
              2.25
            ],
            "implied": [
              0.610895,
              0.444444
            ],
            "noVig": [
              0.578861,
              0.421139
            ],
            "margin": 0.055339
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -155,
              130
            ],
            "decimal": [
              1.645161,
              2.3
            ],
            "implied": [
              0.607843,
              0.434783
            ],
            "noVig": [
              0.582993,
              0.417007
            ],
            "margin": 0.042626
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "ISRAEL ADESANYA",
              "fairProbability": 0.582486
            },
            {
              "name": "SHARA MAGOMEDOV",
              "fairProbability": 0.417514
            }
          ],
          "weightTotal": 4,
          "booksUsed": 4,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "ISRAEL ADESANYA",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -155,
            "decimal": 1.645161,
            "tiedBooks": [
              "BetUS",
              "DraftKings"
            ]
          },
          {
            "name": "SHARA MAGOMEDOV",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 132,
            "decimal": 2.32,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "ISRAEL ADESANYA",
              "modelProbability": 0.486166,
              "fairProbability": 0.582486,
              "edge": -0.09632,
              "bestAmerican": -155,
              "bestDecimal": 1.645161,
              "bestBook": "BetOnline.ag",
              "expectedValuePerUnit": -0.200179
            },
            {
              "name": "SHARA MAGOMEDOV",
              "modelProbability": 0.513834,
              "fairProbability": 0.417514,
              "edge": 0.09632,
              "bestAmerican": 132,
              "bestDecimal": 2.32,
              "bestBook": "BetOnline.ag",
              "expectedValuePerUnit": 0.192095
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "579d237070d5d36330194867176cb694",
        "pairKey": "alex pereira|sergey pavlovich",
        "pairKeys": [
          "alex pereira|sergey pavlovich"
        ],
        "commenceTime": "2026-12-13T02:30:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Sergey Pavlovich"
          },
          {
            "name": "Alex Pereira"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -205,
              158
            ],
            "decimal": [
              1.487805,
              2.58
            ],
            "implied": [
              0.672131,
              0.387597
            ],
            "noVig": [
              0.634249,
              0.365751
            ],
            "margin": 0.059728
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Sergey Pavlovich",
              "fairProbability": 0.634249
            },
            {
              "name": "Alex Pereira",
              "fairProbability": 0.365751
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Sergey Pavlovich",
            "book": "FanDuel",
            "bookKey": "fanduel",
            "source": "the-odds-api",
            "american": -205,
            "decimal": 1.487805,
            "tiedBooks": []
          },
          {
            "name": "Alex Pereira",
            "book": "FanDuel",
            "bookKey": "fanduel",
            "source": "the-odds-api",
            "american": 158,
            "decimal": 2.58,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "a76e5fe6c1ea7ed1398b624857d980fc",
        "pairKey": "charles oliveira|diego lopes",
        "pairKeys": [
          "charles oliveira|diego lopes"
        ],
        "commenceTime": "2026-12-13T04:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "CHARLES OLIVEIRA"
          },
          {
            "name": "DIEGO LOPES"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-335:13207",
          "eventId": "ufc-335",
          "eventTitle": "UFC 335",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-335:13207"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -148,
              124
            ],
            "decimal": [
              1.675676,
              2.24
            ],
            "implied": [
              0.596774,
              0.446429
            ],
            "noVig": [
              0.57206,
              0.42794
            ],
            "margin": 0.043203
          },
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -148,
              126
            ],
            "decimal": [
              1.675676,
              2.26
            ],
            "implied": [
              0.596774,
              0.442478
            ],
            "noVig": [
              0.574234,
              0.425766
            ],
            "margin": 0.039252
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -155,
              123
            ],
            "decimal": [
              1.645161,
              2.23
            ],
            "implied": [
              0.607843,
              0.44843
            ],
            "noVig": [
              0.57546,
              0.42454
            ],
            "margin": 0.056274
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -162,
              126
            ],
            "decimal": [
              1.617284,
              2.26
            ],
            "implied": [
              0.618321,
              0.442478
            ],
            "noVig": [
              0.582882,
              0.417118
            ],
            "margin": 0.060798
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "CHARLES OLIVEIRA",
              "fairProbability": 0.576159
            },
            {
              "name": "DIEGO LOPES",
              "fairProbability": 0.423841
            }
          ],
          "weightTotal": 4,
          "booksUsed": 4,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "CHARLES OLIVEIRA",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -148,
            "decimal": 1.675676,
            "tiedBooks": [
              "DraftKings"
            ]
          },
          {
            "name": "DIEGO LOPES",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 126,
            "decimal": 2.26,
            "tiedBooks": [
              "FanDuel"
            ]
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "CHARLES OLIVEIRA",
              "modelProbability": 0.544055,
              "fairProbability": 0.576159,
              "edge": -0.032104,
              "bestAmerican": -148,
              "bestDecimal": 1.675676,
              "bestBook": "BetOnline.ag",
              "expectedValuePerUnit": -0.088339
            },
            {
              "name": "DIEGO LOPES",
              "modelProbability": 0.455945,
              "fairProbability": 0.423841,
              "edge": 0.032104,
              "bestAmerican": 126,
              "bestDecimal": 2.26,
              "bestBook": "BetOnline.ag",
              "expectedValuePerUnit": 0.030435
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "c0d24eeb24d69c7f938f38f857924c72",
        "pairKey": "ilia topuria|justin gaethje",
        "pairKeys": [
          "ilia topuria|justin gaethje"
        ],
        "commenceTime": "2026-12-31T05:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Justin Gaethje"
          },
          {
            "name": "Ilia Topuria"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              210,
              -250
            ],
            "decimal": [
              3.1,
              1.4
            ],
            "implied": [
              0.322581,
              0.714286
            ],
            "noVig": [
              0.311111,
              0.688889
            ],
            "margin": 0.036866
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Justin Gaethje",
              "fairProbability": 0.311111
            },
            {
              "name": "Ilia Topuria",
              "fairProbability": 0.688889
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Justin Gaethje",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 210,
            "decimal": 3.1,
            "tiedBooks": []
          },
          {
            "name": "Ilia Topuria",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -250,
            "decimal": 1.4,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "944dd8a4945ba0df2c4370de73387c5d",
        "pairKey": "conor mcgregor|jorge masvidal",
        "pairKeys": [
          "conor mcgregor|jorge masvidal"
        ],
        "commenceTime": "2026-12-31T17:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Conor McGregor"
          },
          {
            "name": "Jorge Masvidal"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -145,
              125
            ],
            "decimal": [
              1.689655,
              2.25
            ],
            "implied": [
              0.591837,
              0.444444
            ],
            "noVig": [
              0.571116,
              0.428884
            ],
            "margin": 0.036281
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Conor McGregor",
              "fairProbability": 0.571116
            },
            {
              "name": "Jorge Masvidal",
              "fairProbability": 0.428884
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Conor McGregor",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -145,
            "decimal": 1.689655,
            "tiedBooks": []
          },
          {
            "name": "Jorge Masvidal",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 125,
            "decimal": 2.25,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "f270ef6ee2185e18fb06a519ce69ff22",
        "pairKey": "alexa grasso|natalia silva",
        "pairKeys": [
          "alexa grasso|natalia silva"
        ],
        "commenceTime": "2027-01-01T03:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Natalia Silva"
          },
          {
            "name": "Alexa Grasso"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -300,
              250
            ],
            "decimal": [
              1.333333,
              3.5
            ],
            "implied": [
              0.75,
              0.285714
            ],
            "noVig": [
              0.724138,
              0.275862
            ],
            "margin": 0.035714
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Natalia Silva",
              "fairProbability": 0.724138
            },
            {
              "name": "Alexa Grasso",
              "fairProbability": 0.275862
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Natalia Silva",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -300,
            "decimal": 1.333333,
            "tiedBooks": []
          },
          {
            "name": "Alexa Grasso",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 250,
            "decimal": 3.5,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "8488c2a34f7093513d463d4b2730572e",
        "pairKey": "khamzat chimaev|paulo henrique costa",
        "pairKeys": [
          "khamzat chimaev|paulo henrique costa"
        ],
        "commenceTime": "2027-01-01T03:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Khamzat Chimaev"
          },
          {
            "name": "Paulo Henrique Costa"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -500,
              375
            ],
            "decimal": [
              1.2,
              4.75
            ],
            "implied": [
              0.833333,
              0.210526
            ],
            "noVig": [
              0.798319,
              0.201681
            ],
            "margin": 0.04386
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Khamzat Chimaev",
              "fairProbability": 0.798319
            },
            {
              "name": "Paulo Henrique Costa",
              "fairProbability": 0.201681
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Khamzat Chimaev",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -500,
            "decimal": 1.2,
            "tiedBooks": []
          },
          {
            "name": "Paulo Henrique Costa",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 375,
            "decimal": 4.75,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "e697d4df59aa825d85fa764db999757f",
        "pairKey": "khamzat chimaev|sean strickland",
        "pairKeys": [
          "khamzat chimaev|sean strickland"
        ],
        "commenceTime": "2027-01-01T03:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Sean Strickland"
          },
          {
            "name": "Khamzat Chimaev"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              175,
              -205
            ],
            "decimal": [
              2.75,
              1.487805
            ],
            "implied": [
              0.363636,
              0.672131
            ],
            "noVig": [
              0.351079,
              0.648921
            ],
            "margin": 0.035768
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Sean Strickland",
              "fairProbability": 0.351079
            },
            {
              "name": "Khamzat Chimaev",
              "fairProbability": 0.648921
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Sean Strickland",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 175,
            "decimal": 2.75,
            "tiedBooks": []
          },
          {
            "name": "Khamzat Chimaev",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -205,
            "decimal": 1.487805,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "408347757571816aeae5ff71d1fd3849",
        "pairKey": "max holloway|paddy pimblett",
        "pairKeys": [
          "max holloway|paddy pimblett"
        ],
        "commenceTime": "2027-01-01T03:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Max Holloway"
          },
          {
            "name": "Paddy Pimblett"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -180,
              155
            ],
            "decimal": [
              1.555556,
              2.55
            ],
            "implied": [
              0.642857,
              0.392157
            ],
            "noVig": [
              0.62111,
              0.37889
            ],
            "margin": 0.035014
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Max Holloway",
              "fairProbability": 0.62111
            },
            {
              "name": "Paddy Pimblett",
              "fairProbability": 0.37889
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Max Holloway",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -180,
            "decimal": 1.555556,
            "tiedBooks": []
          },
          {
            "name": "Paddy Pimblett",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 155,
            "decimal": 2.55,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "ead94688d843f96aba0f1486ce663b61",
        "pairKey": "nassourdine imavov|sean strickland",
        "pairKeys": [
          "nassourdine imavov|sean strickland"
        ],
        "commenceTime": "2027-01-01T03:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Sean Strickland"
          },
          {
            "name": "Nassourdine Imavov"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -125,
              105
            ],
            "decimal": [
              1.8,
              2.05
            ],
            "implied": [
              0.555556,
              0.487805
            ],
            "noVig": [
              0.532468,
              0.467532
            ],
            "margin": 0.04336
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Sean Strickland",
              "fairProbability": 0.532468
            },
            {
              "name": "Nassourdine Imavov",
              "fairProbability": 0.467532
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Sean Strickland",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -125,
            "decimal": 1.8,
            "tiedBooks": []
          },
          {
            "name": "Nassourdine Imavov",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 105,
            "decimal": 2.05,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "8ecba67676067ae49594bb3f9bc86673",
        "pairKey": "natalia silva|valentina shevchenko",
        "pairKeys": [
          "natalia silva|valentina shevchenko"
        ],
        "commenceTime": "2027-01-01T03:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Valentina Shevchenko"
          },
          {
            "name": "Natalia Silva"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -190,
              165
            ],
            "decimal": [
              1.526316,
              2.65
            ],
            "implied": [
              0.655172,
              0.377358
            ],
            "noVig": [
              0.634531,
              0.365469
            ],
            "margin": 0.032531
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Valentina Shevchenko",
              "fairProbability": 0.634531
            },
            {
              "name": "Natalia Silva",
              "fairProbability": 0.365469
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Valentina Shevchenko",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -190,
            "decimal": 1.526316,
            "tiedBooks": []
          },
          {
            "name": "Natalia Silva",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 165,
            "decimal": 2.65,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "72f8e455cf7ea9870ba0a5b4efb10def",
        "pairKey": "alex pereira|sergey pavlovich",
        "pairKeys": [
          "alex pereira|sergey pavlovich"
        ],
        "commenceTime": "2027-01-13T03:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Sergey Pavlovich"
          },
          {
            "name": "Alex Pereira"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -195,
              165
            ],
            "decimal": [
              1.512821,
              2.65
            ],
            "implied": [
              0.661017,
              0.377358
            ],
            "noVig": [
              0.636588,
              0.363412
            ],
            "margin": 0.038375
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Sergey Pavlovich",
              "fairProbability": 0.636588
            },
            {
              "name": "Alex Pereira",
              "fairProbability": 0.363412
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Sergey Pavlovich",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -195,
            "decimal": 1.512821,
            "tiedBooks": []
          },
          {
            "name": "Alex Pereira",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 165,
            "decimal": 2.65,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "17bcd84de1b1485471a9d682cfe279ed",
        "pairKey": "carlos prates|michael morales",
        "pairKeys": [
          "carlos prates|michael morales"
        ],
        "commenceTime": "2027-01-31T04:30:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "CARLOS PRATES"
          },
          {
            "name": "MICHAEL MORALES"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-336:13232",
          "eventId": "ufc-336",
          "eventTitle": "UFC 336",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-336:13232"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -175,
              145
            ],
            "decimal": [
              1.571429,
              2.45
            ],
            "implied": [
              0.636364,
              0.408163
            ],
            "noVig": [
              0.609236,
              0.390764
            ],
            "margin": 0.044527
          },
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -165,
              140
            ],
            "decimal": [
              1.606061,
              2.4
            ],
            "implied": [
              0.622642,
              0.416667
            ],
            "noVig": [
              0.599092,
              0.400908
            ],
            "margin": 0.039308
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -167,
              135
            ],
            "decimal": [
              1.598802,
              2.35
            ],
            "implied": [
              0.625468,
              0.425532
            ],
            "noVig": [
              0.595117,
              0.404883
            ],
            "margin": 0.051
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -184,
              142
            ],
            "decimal": [
              1.543478,
              2.42
            ],
            "implied": [
              0.647887,
              0.413223
            ],
            "noVig": [
              0.610575,
              0.389425
            ],
            "margin": 0.06111
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "CARLOS PRATES",
              "fairProbability": 0.603505
            },
            {
              "name": "MICHAEL MORALES",
              "fairProbability": 0.396495
            }
          ],
          "weightTotal": 4,
          "booksUsed": 4,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "CARLOS PRATES",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -165,
            "decimal": 1.606061,
            "tiedBooks": []
          },
          {
            "name": "MICHAEL MORALES",
            "book": "DraftKings",
            "bookKey": "draftkings",
            "source": "the-odds-api",
            "american": 145,
            "decimal": 2.45,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "CARLOS PRATES",
              "modelProbability": 0.391682,
              "fairProbability": 0.603505,
              "edge": -0.211823,
              "bestAmerican": -165,
              "bestDecimal": 1.606061,
              "bestBook": "BetOnline.ag",
              "expectedValuePerUnit": -0.370935
            },
            {
              "name": "MICHAEL MORALES",
              "modelProbability": 0.608318,
              "fairProbability": 0.396495,
              "edge": 0.211823,
              "bestAmerican": 145,
              "bestDecimal": 2.45,
              "bestBook": "DraftKings",
              "expectedValuePerUnit": 0.490379
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "ae2d8dbd5af0e0cb50bad15082c50b71",
        "pairKey": "joshua van|manel kape",
        "pairKeys": [
          "joshua van|manel kape"
        ],
        "commenceTime": "2027-01-31T05:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "JOSHUA VAN"
          },
          {
            "name": "MANEL KAPE"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-336:13231",
          "eventId": "ufc-336",
          "eventTitle": "UFC 336",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-336:13231"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -125,
              105
            ],
            "decimal": [
              1.8,
              2.05
            ],
            "implied": [
              0.555556,
              0.487805
            ],
            "noVig": [
              0.532468,
              0.467532
            ],
            "margin": 0.04336
          },
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -125,
              107
            ],
            "decimal": [
              1.8,
              2.07
            ],
            "implied": [
              0.555556,
              0.483092
            ],
            "noVig": [
              0.534884,
              0.465116
            ],
            "margin": 0.038647
          },
          {
            "key": "betrivers",
            "title": "BetRivers",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:54Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -121,
              -103
            ],
            "decimal": [
              1.826446,
              1.970874
            ],
            "implied": [
              0.547511,
              0.507389
            ],
            "noVig": [
              0.519017,
              0.480983
            ],
            "margin": 0.0549
          },
          {
            "key": "fanduel",
            "title": "FanDuel",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -138,
              108
            ],
            "decimal": [
              1.724638,
              2.08
            ],
            "implied": [
              0.579832,
              0.480769
            ],
            "noVig": [
              0.546701,
              0.453299
            ],
            "margin": 0.060601
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "JOSHUA VAN",
              "fairProbability": 0.533268
            },
            {
              "name": "MANEL KAPE",
              "fairProbability": 0.466733
            }
          ],
          "weightTotal": 4,
          "booksUsed": 4,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "JOSHUA VAN",
            "book": "BetRivers",
            "bookKey": "betrivers",
            "source": "the-odds-api",
            "american": -121,
            "decimal": 1.826446,
            "tiedBooks": []
          },
          {
            "name": "MANEL KAPE",
            "book": "FanDuel",
            "bookKey": "fanduel",
            "source": "the-odds-api",
            "american": 108,
            "decimal": 2.08,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "JOSHUA VAN",
              "modelProbability": 0.447809,
              "fairProbability": 0.533268,
              "edge": -0.085459,
              "bestAmerican": -121,
              "bestDecimal": 1.826446,
              "bestBook": "BetRivers",
              "expectedValuePerUnit": -0.182101
            },
            {
              "name": "MANEL KAPE",
              "modelProbability": 0.552191,
              "fairProbability": 0.466733,
              "edge": 0.085458,
              "bestAmerican": 108,
              "bestDecimal": 2.08,
              "bestBook": "FanDuel",
              "expectedValuePerUnit": 0.148557
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "041f81fb9129cc14bf131d1a4474681c",
        "pairKey": "benoit saint denis|quillan salkilld",
        "pairKeys": [
          "benoit saint denis|quillan salkilld"
        ],
        "commenceTime": "2027-02-06T17:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "QUILLAN SALKILLD"
          },
          {
            "name": "BENOÎT SAINT DENIS"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-fight-night-february-06-2027:13240",
          "eventId": "ufc-fight-night-february-06-2027",
          "eventTitle": "UFC FIGHT NIGHT",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-fight-night-february-06-2027:13240"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -260,
              216
            ],
            "decimal": [
              1.384615,
              3.16
            ],
            "implied": [
              0.722222,
              0.316456
            ],
            "noVig": [
              0.695328,
              0.304672
            ],
            "margin": 0.038678
          },
          {
            "key": "betus",
            "title": "BetUS",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:07Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -260,
              214
            ],
            "decimal": [
              1.384615,
              3.14
            ],
            "implied": [
              0.722222,
              0.318471
            ],
            "noVig": [
              0.693982,
              0.306018
            ],
            "margin": 0.040694
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -265,
              215
            ],
            "decimal": [
              1.377358,
              3.15
            ],
            "implied": [
              0.726027,
              0.31746
            ],
            "noVig": [
              0.69577,
              0.30423
            ],
            "margin": 0.043488
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "QUILLAN SALKILLD",
              "fairProbability": 0.695027
            },
            {
              "name": "BENOÎT SAINT DENIS",
              "fairProbability": 0.304973
            }
          ],
          "weightTotal": 3,
          "booksUsed": 3,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "QUILLAN SALKILLD",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -260,
            "decimal": 1.384615,
            "tiedBooks": [
              "BetUS"
            ]
          },
          {
            "name": "BENOÎT SAINT DENIS",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 216,
            "decimal": 3.16,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "QUILLAN SALKILLD",
              "modelProbability": 0.589719,
              "fairProbability": 0.695027,
              "edge": -0.105308,
              "bestAmerican": -260,
              "bestDecimal": 1.384615,
              "bestBook": "BetOnline.ag",
              "expectedValuePerUnit": -0.183466
            },
            {
              "name": "BENOÎT SAINT DENIS",
              "modelProbability": 0.410281,
              "fairProbability": 0.304973,
              "edge": 0.105308,
              "bestAmerican": 216,
              "bestDecimal": 3.16,
              "bestBook": "BetOnline.ag",
              "expectedValuePerUnit": 0.296488
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "f9372526439f374b4044fe1882c24df9",
        "pairKey": "bogdan guskov|robert whittaker",
        "pairKeys": [
          "bogdan guskov|robert whittaker"
        ],
        "commenceTime": "2027-02-06T17:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "BOGDAN GUSKOV"
          },
          {
            "name": "ROBERT WHITTAKER"
          }
        ],
        "match": {
          "status": "matched",
          "promotion": "UFC",
          "boutId": "UFC:ufc-fight-night-february-06-2027:13241",
          "eventId": "ufc-fight-night-february-06-2027",
          "eventTitle": "UFC FIGHT NIGHT",
          "discipline": "MMA",
          "candidates": [
            "UFC:ufc-fight-night-february-06-2027:13241"
          ],
          "reason": "Both names match one UFC bout."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              120,
              -140
            ],
            "decimal": [
              2.2,
              1.714286
            ],
            "implied": [
              0.454545,
              0.583333
            ],
            "noVig": [
              0.437956,
              0.562044
            ],
            "margin": 0.037879
          },
          {
            "key": "betus",
            "title": "BetUS",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:07Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              118,
              -140
            ],
            "decimal": [
              2.18,
              1.714286
            ],
            "implied": [
              0.458716,
              0.583333
            ],
            "noVig": [
              0.440205,
              0.559795
            ],
            "margin": 0.042049
          },
          {
            "key": "draftkings",
            "title": "DraftKings",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:03:53Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              120,
              -142
            ],
            "decimal": [
              2.2,
              1.704225
            ],
            "implied": [
              0.454545,
              0.586777
            ],
            "noVig": [
              0.436508,
              0.563492
            ],
            "margin": 0.041322
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "BOGDAN GUSKOV",
              "fairProbability": 0.438223
            },
            {
              "name": "ROBERT WHITTAKER",
              "fairProbability": 0.561777
            }
          ],
          "weightTotal": 3,
          "booksUsed": 3,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "BOGDAN GUSKOV",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 120,
            "decimal": 2.2,
            "tiedBooks": [
              "DraftKings"
            ]
          },
          {
            "name": "ROBERT WHITTAKER",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -140,
            "decimal": 1.714286,
            "tiedBooks": [
              "BetUS"
            ]
          }
        ],
        "modelComparison": {
          "included": true,
          "publishedModelEnabled": false,
          "promotion": "UFC",
          "validated": false,
          "modelVersion": "ufc-logistic-v1-d0286496ceca",
          "label": "Experimental UFC model versus the market consensus. Not a prediction service and not betting advice.",
          "reason": "Frozen, retrospectively tested research model; not prospectively validated. Probability is conditional on a decisive result.",
          "fighters": [
            {
              "name": "BOGDAN GUSKOV",
              "modelProbability": 0.466937,
              "fairProbability": 0.438223,
              "edge": 0.028714,
              "bestAmerican": 120,
              "bestDecimal": 2.2,
              "bestBook": "BetOnline.ag",
              "expectedValuePerUnit": 0.027262
            },
            {
              "name": "ROBERT WHITTAKER",
              "modelProbability": 0.533063,
              "fairProbability": 0.561777,
              "edge": -0.028714,
              "bestAmerican": -140,
              "bestDecimal": 1.714286,
              "bestBook": "BetOnline.ag",
              "expectedValuePerUnit": -0.086178
            }
          ]
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "a07b585e39e3bdba3b3d2692e0552524",
        "pairKey": "carlos prates|islam makhachev",
        "pairKeys": [
          "carlos prates|islam makhachev"
        ],
        "commenceTime": "2027-04-25T02:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Islam Makhachev"
          },
          {
            "name": "Carlos Prates"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -225,
              189
            ],
            "decimal": [
              1.444444,
              2.89
            ],
            "implied": [
              0.692308,
              0.346021
            ],
            "noVig": [
              0.666752,
              0.333248
            ],
            "margin": 0.038328
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Islam Makhachev",
              "fairProbability": 0.666752
            },
            {
              "name": "Carlos Prates",
              "fairProbability": 0.333248
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Islam Makhachev",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -225,
            "decimal": 1.444444,
            "tiedBooks": []
          },
          {
            "name": "Carlos Prates",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 189,
            "decimal": 2.89,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "5f889b13fd30ec2449fda285a1343314",
        "pairKey": "islam makhachev|michael morales",
        "pairKeys": [
          "islam makhachev|michael morales"
        ],
        "commenceTime": "2027-04-25T02:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Islam Makhachev"
          },
          {
            "name": "Michael Morales"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -200,
              174
            ],
            "decimal": [
              1.5,
              2.74
            ],
            "implied": [
              0.666667,
              0.364964
            ],
            "noVig": [
              0.646226,
              0.353774
            ],
            "margin": 0.03163
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Islam Makhachev",
              "fairProbability": 0.646226
            },
            {
              "name": "Michael Morales",
              "fairProbability": 0.353774
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Islam Makhachev",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -200,
            "decimal": 1.5,
            "tiedBooks": []
          },
          {
            "name": "Michael Morales",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 174,
            "decimal": 2.74,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "a937ca5a3966417458788442d90d953f",
        "pairKey": "alex volkanovski|jean silva",
        "pairKeys": [
          "alex volkanovski|jean silva"
        ],
        "commenceTime": "2027-06-27T02:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Alex Volkanovski"
          },
          {
            "name": "Jean Silva"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -115,
              -105
            ],
            "decimal": [
              1.869565,
              1.952381
            ],
            "implied": [
              0.534884,
              0.512195
            ],
            "noVig": [
              0.510834,
              0.489166
            ],
            "margin": 0.047079
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Alex Volkanovski",
              "fairProbability": 0.510834
            },
            {
              "name": "Jean Silva",
              "fairProbability": 0.489166
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Alex Volkanovski",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -115,
            "decimal": 1.869565,
            "tiedBooks": []
          },
          {
            "name": "Jean Silva",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -105,
            "decimal": 1.952381,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "48a262741dc76111ac60e56190fb4407",
        "pairKey": "petr yan|sean o malley",
        "pairKeys": [
          "petr yan|sean o malley"
        ],
        "commenceTime": "2027-06-27T02:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Petr Yan"
          },
          {
            "name": "Sean O'Malley"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -250,
              207
            ],
            "decimal": [
              1.4,
              3.07
            ],
            "implied": [
              0.714286,
              0.325733
            ],
            "noVig": [
              0.686801,
              0.313199
            ],
            "margin": 0.040019
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Petr Yan",
              "fairProbability": 0.686801
            },
            {
              "name": "Sean O'Malley",
              "fairProbability": 0.313199
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Petr Yan",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -250,
            "decimal": 1.4,
            "tiedBooks": []
          },
          {
            "name": "Sean O'Malley",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 207,
            "decimal": 3.07,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "fcee675894f8285afc8daf0808198b74",
        "pairKey": "islam makhachev|kamaru usman",
        "pairKeys": [
          "islam makhachev|kamaru usman"
        ],
        "commenceTime": "2027-07-02T02:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Islam Makhachev"
          },
          {
            "name": "Kamaru Usman"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -400,
              330
            ],
            "decimal": [
              1.25,
              4.3
            ],
            "implied": [
              0.8,
              0.232558
            ],
            "noVig": [
              0.774775,
              0.225225
            ],
            "margin": 0.032558
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Islam Makhachev",
              "fairProbability": 0.774775
            },
            {
              "name": "Kamaru Usman",
              "fairProbability": 0.225225
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Islam Makhachev",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -400,
            "decimal": 1.25,
            "tiedBooks": []
          },
          {
            "name": "Kamaru Usman",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 330,
            "decimal": 4.3,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "9f2a5922ae9758c3b18ad1a31ea88959",
        "pairKey": "conor mcgregor|paddy pimblett",
        "pairKeys": [
          "conor mcgregor|paddy pimblett"
        ],
        "commenceTime": "2027-07-11T00:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Paddy Pimblett"
          },
          {
            "name": "Conor McGregor"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -160,
              140
            ],
            "decimal": [
              1.625,
              2.4
            ],
            "implied": [
              0.615385,
              0.416667
            ],
            "noVig": [
              0.596273,
              0.403727
            ],
            "margin": 0.032051
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Paddy Pimblett",
              "fairProbability": 0.596273
            },
            {
              "name": "Conor McGregor",
              "fairProbability": 0.403727
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Paddy Pimblett",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -160,
            "decimal": 1.625,
            "tiedBooks": []
          },
          {
            "name": "Conor McGregor",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 140,
            "decimal": 2.4,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "d6f19cd9b3e49b813cf2dfe131b480dc",
        "pairKey": "petr yan|song yadong",
        "pairKeys": [
          "petr yan|song yadong"
        ],
        "commenceTime": "2027-07-25T02:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Petr Yan"
          },
          {
            "name": "Song Yadong"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -250,
              207
            ],
            "decimal": [
              1.4,
              3.07
            ],
            "implied": [
              0.714286,
              0.325733
            ],
            "noVig": [
              0.686801,
              0.313199
            ],
            "margin": 0.040019
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Petr Yan",
              "fairProbability": 0.686801
            },
            {
              "name": "Song Yadong",
              "fairProbability": 0.313199
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Petr Yan",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -250,
            "decimal": 1.4,
            "tiedBooks": []
          },
          {
            "name": "Song Yadong",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 207,
            "decimal": 3.07,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "51c1b5be2ac155f167f99a26ed20bf4d",
        "pairKey": "carlos ulberg|magomed ankalaev",
        "pairKeys": [
          "carlos ulberg|magomed ankalaev"
        ],
        "commenceTime": "2027-08-01T02:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Magomed Ankalaev"
          },
          {
            "name": "Carlos Ulberg"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -180,
              157
            ],
            "decimal": [
              1.555556,
              2.57
            ],
            "implied": [
              0.642857,
              0.389105
            ],
            "noVig": [
              0.622946,
              0.377054
            ],
            "margin": 0.031962
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Magomed Ankalaev",
              "fairProbability": 0.622946
            },
            {
              "name": "Carlos Ulberg",
              "fairProbability": 0.377054
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Magomed Ankalaev",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -180,
            "decimal": 1.555556,
            "tiedBooks": []
          },
          {
            "name": "Carlos Ulberg",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 157,
            "decimal": 2.57,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "0d48546636ab555d10e35fa641b41eb1",
        "pairKey": "jiri prochazka|magomed ankalaev",
        "pairKeys": [
          "jiri prochazka|magomed ankalaev"
        ],
        "commenceTime": "2027-08-01T02:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Magomed Ankalaev"
          },
          {
            "name": "Jiri Prochazka"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -200,
              174
            ],
            "decimal": [
              1.5,
              2.74
            ],
            "implied": [
              0.666667,
              0.364964
            ],
            "noVig": [
              0.646226,
              0.353774
            ],
            "margin": 0.03163
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Magomed Ankalaev",
              "fairProbability": 0.646226
            },
            {
              "name": "Jiri Prochazka",
              "fairProbability": 0.353774
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Magomed Ankalaev",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -200,
            "decimal": 1.5,
            "tiedBooks": []
          },
          {
            "name": "Jiri Prochazka",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 174,
            "decimal": 2.74,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "04ba8611730f21fa9f0d12fa539c4f01",
        "pairKey": "alex volkanovski|justin gaethje",
        "pairKeys": [
          "alex volkanovski|justin gaethje"
        ],
        "commenceTime": "2027-10-25T02:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Justin Gaethje"
          },
          {
            "name": "Alex Volkanovski"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              -180,
              157
            ],
            "decimal": [
              1.555556,
              2.57
            ],
            "implied": [
              0.642857,
              0.389105
            ],
            "noVig": [
              0.622946,
              0.377054
            ],
            "margin": 0.031962
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Justin Gaethje",
              "fairProbability": 0.622946
            },
            {
              "name": "Alex Volkanovski",
              "fairProbability": 0.377054
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Justin Gaethje",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -180,
            "decimal": 1.555556,
            "tiedBooks": []
          },
          {
            "name": "Alex Volkanovski",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 157,
            "decimal": 2.57,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      },
      {
        "id": "a161950b3a1d3cb63af59f18d045e0b5",
        "pairKey": "arman tsarukyan|justin gaethje",
        "pairKeys": [
          "arman tsarukyan|justin gaethje"
        ],
        "commenceTime": "2028-07-30T04:00:00Z",
        "sportKey": "mma_mixed_martial_arts",
        "fighters": [
          {
            "name": "Justin Gaethje"
          },
          {
            "name": "Arman Tsarukyan"
          }
        ],
        "match": {
          "status": "unmatched",
          "promotion": null,
          "boutId": null,
          "eventId": null,
          "eventTitle": null,
          "discipline": null,
          "candidates": [],
          "reason": "No CageMetric bout has both of these names."
        },
        "books": [
          {
            "key": "betonlineag",
            "title": "BetOnline.ag",
            "source": "the-odds-api",
            "lastUpdate": "2026-11-14T19:04:02Z",
            "market": "h2h",
            "weight": 1,
            "includedInConsensus": true,
            "american": [
              350,
              -450
            ],
            "decimal": [
              4.5,
              1.222222
            ],
            "implied": [
              0.222222,
              0.818182
            ],
            "noVig": [
              0.213592,
              0.786408
            ],
            "margin": 0.040404
          }
        ],
        "excluded": [],
        "consensus": {
          "method": "Weighted average of vig-removed prices. Sharper books count more.",
          "label": "Market consensus. These are market prices, not a CageMetric prediction and not betting advice.",
          "fighters": [
            {
              "name": "Justin Gaethje",
              "fairProbability": 0.213592
            },
            {
              "name": "Arman Tsarukyan",
              "fairProbability": 0.786408
            }
          ],
          "weightTotal": 1,
          "booksUsed": 1,
          "sharpBooksUsed": []
        },
        "bestAvailable": [
          {
            "name": "Justin Gaethje",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": 350,
            "decimal": 4.5,
            "tiedBooks": []
          },
          {
            "name": "Arman Tsarukyan",
            "book": "BetOnline.ag",
            "bookKey": "betonlineag",
            "source": "the-odds-api",
            "american": -450,
            "decimal": 1.222222,
            "tiedBooks": []
          }
        ],
        "modelComparison": {
          "included": false,
          "publishedModelEnabled": false,
          "promotion": null,
          "reason": "No single CageMetric bout matched, so no model comparison was made."
        },
        "credit": "Sportsbook odds from The Odds API. These are market prices, not CageMetric predictions and not betting advice."
      }
    ]
  }
}
