Stake Limits — per-book / per-game caps
How Stake Limits work
Stake-limit gates cap exposure across multiple dimensions: per-book, per-game, per-modal, and a global minimum stake. They don't decide whether a bet has edge — they decide how much to risk on edges that pass.
The caps
limits.maxBetAmountByBook— per-book hard cap. Object keyed by book name (e.g.{ FanDuel: 75, DraftKings: 115, BetMGM: 75, Caesars: 50, Kalshi: 50, ProphetX: 100 }). Trims the Kelly stake to this value if Kelly comes out higher.limits.maxBetAmountScoped— per-segment caps that supersede the per-book cap when one matches. Array of entries keyed by any ofbook/league(exact slug) /leagueContains(slug substring) /market/mode/flow/minSharpCount; cap field isamount. Most-specific match wins; on a tie the smallest amount wins. Used to cap unfamiliar leagues (e.g. tennis grand slams or exhibitionfriendlies) at small dollars while leaving NBA/NCAAB sizing intact. This replay models it viaresolveScopedStakeCapForRow, mirroring the runtime resolver.limits.maxBetAmountModal— default modal cap (currently 75). Used when a per-book entry isn't set.limits.maxBetAmountPerGame— sum-of-stakes cap across all bets on the same game (currently 375). Defends against correlated-loss exposure when several +EV opportunities point at the same matchup.filters.minStake— global minimum (currently 5). Bets below the floor are dropped — Kelly fractional values that round down to micro-stakes don't justify the operational overhead.limits.maxBetsPerGameScoped— a leg-COUNT cap per game (NOT a stake cap). Array of scoped rules keyed likemaxBetAmountScoped(book/league/leagueContains/market/mode/flow/minSharpCount) with amaxfield and an optionallogOnlyflag. Blocks the (max+1)th concurrent OPEN leg on one game so stacked correlated live legs (run line + total + ML) can't all lose at once. Default ships[{ league: "mlb", mode: "live", max: 2 }], holdout-validated indocs/debates/2026-06-05-sports/mlb-cap-backtest.md. This replay models it viaapplyMaxBetsPerGameToRows: it orders the would-be-placed legs chronologically (by placement time), counts open same-game legs (keyed byeventIdfirst — the identity the backtest used — falling back to a matchup key), drops the over-cap legs from the replayed summary, and reports the dropped-leg economics in the hint under the exposure cards.logOnlyrules count but never drop.
Helper-side parity
The bet-helper userscripts (BetMGM, DraftKings, Caesars, FanDuel, HardRock, Kalshi) each enforce a separate amountMax safety cap of $100 across all six books (raised from 75 in v2026.4.19.3 with version parity). This is a defense-in-depth layer that runs inside the helper after BB sends the order — even if a config bug or upstream miscalculation produced a stake of e.g. $500, the helper would clamp to $100 before clicking. If the helper cap and the BB-side cap disagree, the lower wins.
What this Studio page does
Replays your settled positions and explores stake-cap configurations. The per-game cap is the most actionable — too low cuts realized P&L on legitimate multi-bet games; too high concentrates risk on outcomes you can't control.
Canonical contract: docs/gates.md#stake--limits. Helper-side amountMax safety cap parity is documented in each helper's CHANGELOG entry for v2026.4.19.3.
Data
Controls
Run Settings
Sweep Setup
stakeUsed by applying caps (not filtering bets).
Guardrails
Segment Filters
Data Quality & Output
Summary
| Param | Reference | Top | Bets | Reference Score | Top Score | Delta | RowsetHash | Capped Rows | Stake Lost |
|---|
Distribution
| Parameter Value | Bets | Pass Rate | Distinct Days | Green Day % | Worst Day | Win Rate | ROI | Profit | Stake | Avg EV |
|---|