Skip to main content

solveStageMinimaxRegretBet

Pick a bet size from a grid that maximizes hero EV against a fold/call frequency model — report minimax regret vs checking.

solveStageMinimaxRegretBet(potBeforeBet: number, betSizes: number[], villainFoldFreq: number, villainCallFreq: number, heroEquityWhenCalled: number): StageMinimaxRegretBetResult

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 have a discrete bet-size menu and simplified villain response frequencies — for study sizing or bot heuristics when full game-tree solve is out of scope.

How to use

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

const { bestBet, minimaxRegret, evByAction } = poker.solveStageMinimaxRegretBet(
100,
[0, 33, 66, 100],
0.4,
0.5,
0.55,
);

console.log('Best bet (chips):', bestBet);
console.log('Regret vs check:', minimaxRegret);
console.log('EV by action (check, then bets):', evByAction);

betSizes are in chips; 0 in the grid represents check. Villain fold/call frequencies are clamped and renormalized.

Return type

StageMinimaxRegretBetResult.

See also

solveRiverPolarizedIndifferenceBet · decideAction