Skip to main content

icmHarvilleSkillAdjustedPayouts

Harville ICM expected payouts when first-place weights blend chip share and a skill vector before placement recursion.

icmHarvilleSkillAdjustedPayouts(stacks: F64VectorInput, payouts: F64VectorInput, skillWeights: F64VectorInput, blend: number, returnFormat?: F64ReturnFormat): number[] | Float64Array

blend in [0, 1] mixes (1 - blend) × (stackᵢ / Σ stacks) with blend × (skillᵢ / Σ skill). 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

You want Harville ICM $EV with skill-tilted first-place probabilities — for study models, custom rating overlays, or comparing standard ICM to a skill-adjusted line.

How to use

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

const stacks = [12000, 8000, 5000, 2000];
const payouts = [10000, 6000, 3000, 1000];
const skillWeights = [1, 1, 0.5, 0.5];

const icm = poker.icmExpectedPayouts(stacks, payouts);
const adjusted = poker.icmHarvilleSkillAdjustedPayouts(stacks, payouts, skillWeights, 0.3);

console.log('Standard ICM seat 0:', icm[0]);
console.log('Skill-adjusted seat 0:', adjusted[0]);

stacks, payouts, and skillWeights must have the same length; stacks must be positive; skill weights must be non-negative with a positive sum.

Return type

Length-n vector of expected payouts (number[] or Float64Array with returnFormat: 'float64').

See also

icmExpectedPayouts · icmHarvillePlacementProbabilities · icmShapleyValues