Skip to main content

Function: devig_multiplicative()

devig_multiplicative(p_raw): number[]

Defined in: src/odds/math.ts:130

Vig removal by normalizing raw implied probabilities to sum to 1, order preserved (py devig_multiplicative).

Parameters​

p_raw​

readonly number[]

Raw implied probabilities of every outcome of one market (e.g. from prob_from_american). An empty array returns an empty array.

Returns​

number[]

A new array, p_raw[i] / sum(p_raw) for each outcome.

Throws​

OddsZeroDivisionError When p_raw is non-empty and sums to 0.

Remarks​

The sum is Python 3.12+ compensated (Neumaier) summation, so results match sdv-py's sum() to ~1e-12. NaN inputs propagate NaN.

Example​

import sdv from 'sportsdataverse';
sdv.odds.devig_multiplicative([0.6, 0.4347826086956522]); // [0.5798..., 0.4201...]