Skip to main content

SidePotLayerTournamentEvRow

One element of the array returned by sidePotLayerTournamentEvDelta. Row order matches layers from sidePotLadderFromCommitments.

FieldTypeMeaning
chipEvnumberHero chip EV in the layer (layerEquity × potChips)
icmEvWinnumberHero Harville $EV if hero wins the layer chips
icmEvLosenumberHero Harville $EV if hero loses the layer chips
icmMarginalnumbericmEvWin - icmEvLose

Semantics

For each side-pot layer, native code applies hero’s layer equity from equityPlayerByLayer[heroIndex][layerIndex], then recomputes ICM with hero stack increased (win) or decreased (lose) by that layer’s potChips. icmMarginal is the tournament-dollar swing from taking the layer vs losing it.

Pass equityPlayerByLayer as number[][] or a flat Float64Array with the same layout as other matrix helpers (hero row × layer index).

Example

const poker = require('poker-calculations');

const committed = [5000, 5000, 2000, 2000];
const layers = poker.sidePotLadderFromCommitments(committed);
const equityByLayer = [[0.6, 0.4], [0.55, 0.45], [0.5, 0.5], [0.5, 0.5]];

const rows = poker.sidePotLayerTournamentEvDelta(
[12000, 9000, 6000, 3000],
[10000, 6000, 3000, 1000],
0,
committed,
equityByLayer,
);
rows.forEach((row, i) => console.log(layers[i].potChips, row));

See also

SidePotLayer · sidePotLayerTournamentEvDelta