icmChopNegotiationAnalysis
Compare chip-proportional chop dollars to Harville ICM, per-seat surplus/deficit, and feasible Pareto transfer edges between seats.
icmChopNegotiationAnalysis(stacks: F64VectorInput, payouts: F64VectorInput): IcmChopNegotiationAnalysisResult
See Float64 ICM input.
Import
const poker = require('poker-calculations');
ESM (Node):
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const poker = require('poker-calculations');
When to use
Players are negotiating a deal and you want to show who gains or loses vs ICM under a chip chop, plus directed surplus transfers that keep everyone at least as well off as ICM.
How to use
const poker = require('poker-calculations');
const { chipChop, icm, surplus, paretoPairs, totalPrizePool } =
poker.icmChopNegotiationAnalysis(
[12000, 8000, 5000, 2000],
[10000, 6000, 3000, 1000],
);
console.log('Total prize pool:', totalPrizePool);
surplus.forEach((s, i) => {
console.log(i, s > 0 ? 'surplus' : s < 0 ? 'deficit' : 'flat', s);
});
console.log('Pareto transfer edges:', paretoPairs.length);
Positive surplus[i] means a chip chop would overpay seat i relative to Harville ICM.
Return type
IcmChopNegotiationAnalysisResult — nested IcmChopParetoPair.
See also
icmShapleyValues · icmExpectedPayouts · Tournament, runouts, and bots