{"slug":"how-to-devig-betting-odds","qid":"devig_methods","label":"De-vig methods on one lopsided market, -750 against +475","post_title":"How to De-Vig Betting Odds Into Probabilities","post_url":"/blog/how-to-devig-betting-odds#q-devig_methods","columns":["method","favourite_pct","underdog_pct"],"rows":[{"method":"Raw quote","favourite_pct":88.24,"underdog_pct":17.39},{"method":"Multiplicative","favourite_pct":83.54,"underdog_pct":16.46},{"method":"Additive and Shin","favourite_pct":85.42,"underdog_pct":14.58},{"method":"Power","favourite_pct":86.6,"underdog_pct":13.4}],"shape":"ranking","sql":"SELECT\n    m.2 AS method,\n    round(100.0 * m.3, 2) AS favourite_pct,\n    round(100.0 * m.4, 2) AS underdog_pct\nFROM\n(\n    WITH\n        750.0 / 850.0 AS raw_fav,\n        100.0 / 575.0 AS raw_dog,\n        raw_fav + raw_dog AS book_sum,\n        (book_sum - 1.0) / 2.0 AS equal_share,\n        arrayMap(i -> 1.0 + (i / 10000.0), range(0, 10001)) AS k_grid,\n        -- The exponent on the grid that pulls the raised pair closest to exactly 1.\n        arraySort(k -> abs((pow(raw_fav, k) + pow(raw_dog, k)) - 1.0), k_grid)[1] AS k_power\n    SELECT arrayJoin([\n        (1, 'Raw quote',         raw_fav,               raw_dog),\n        (2, 'Multiplicative',    raw_fav / book_sum,    raw_dog / book_sum),\n        (3, 'Additive and Shin', raw_fav - equal_share, raw_dog - equal_share),\n        (4, 'Power',             pow(raw_fav, k_power), pow(raw_dog, k_power))\n    ]) AS m\n)\nORDER BY m.1","computed_at":"2026-08-11T15:29:43.122999+00:00","elapsed":0.018058012}