Skip to main content

exactInformationRegretVsClairvoyant

Chip EV gap between clairvoyant play (seeing the final runout) and realistic call/fold EV on the current board against a weighted range.

exactInformationRegretVsClairvoyant(heroHoleCards: CardInput, boardCards: CardInput, range: Float64Array | SparseRangeSpec, potBeforeCall: number, toCall: number): number

Returns a single number in chips. See Packed card input and SparseRangeSpec.

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 to quantify information regret on one street — how many chips hero gives up by not knowing the runout when facing a call decision vs a weighted villain range.

How to use

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

const range = new Float64Array(1326);
range.fill(1 / 1326);

const regret = poker.exactInformationRegretVsClairvoyant(
['Ah', 'Kh'],
['Qh', 'Jh', '2c'],
range,
100,
50,
);

console.log('EV gap (chips):', regret);

Positive values mean hero's realistic line leaves chips on the table relative to clairvoyant play. potBeforeCall and toCall are the pot and call size before hero acts.

Return type

Scalar number — chip EV difference (clairvoyant minus realistic optimal).

See also

exactHeroEquityRunoutQuantiles · materializeVillainRangeAfterBlockers · Tournament, runouts, and bots