Add 3-bet/4-bet range models - #9
Merged
Merged
Conversation
Polarized value+bluff models for the 3-bet and 4-bet decision points, alongside CallingRange's flatter existing opinion on the same spots (the two deliberately disagree — see RANGES.md). Reuses ChenScore, PushFoldRange's threshold pipeline, and OpeningRange's own numbers rather than inventing new primitives.
Adds threeBetDecisions/fourBetDecisions grid enumerations following the existing callingDecisions/openDefenseDecisions pattern.
New range-mode picker entries render ThreeBetRange/FourBetRange through PreflopGrid, with a third cell color for bluff combos and on-screen caveats about the polarized structure and stack-depth bluff cutoffs. 4-Bet mode inverts the existing defender-vs-opener control shape (hero is the Position opener, opponent is the DefendingPosition who 3-bet them).
Sourced anchors (BB 3-bet vs BTN 13%, CO-vs-BTN 4-bet 67%/17%), what's hand-tuned vs sourced, and a "Two opinions, on purpose" note reconciling ThreeBetRange's 13% with CallingRange.decideVsOpen's cruder ~21% at the same spot.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ThreeBetRange/FourBetRangemodels: polarized value+bluff fold/call/3-bet(4-bet) decisions, reusingChenScore,PushFoldRange's threshold pipeline, andOpeningRange's numbers rather than inventing new primitives.CallingRangealready uses.premiumHandAlways3BetsForValue: narrow spots (e.g. a deep non-blind defender vs. a tight UTG open) could have a total 3-bet/4-bet percentage smaller than the fixed bluff-combo carve-out, which incorrectly blocked any value action — even for AA. Fixed by gating bluff inclusion on the range actually having room for bluffs, matching this project's own cited guidance ("if your value range is tight, you don't need bluffs").PreflopGrid.threeBetDecisions/fourBetDecisionsfollow the existingcallingDecisions/openDefenseDecisionspattern.PreflopRangeViewgets two new modes (3-Bet, 4-Bet) with a third cell color for bluff combos and on-screen caveats about the polarized structure and stack-depth bluff cutoffs (20bb for 3-bet, 40bb for 4-bet). 4-Bet mode inverts the existing defender-vs-opener control shape since hero is the original opener there.RANGES.mddocuments the sourced anchors, what's hand-tuned vs sourced, and a "Two opinions, on purpose" section reconcilingThreeBetRange's 13% withCallingRange.decideVsOpen's cruder ~21% at the identical BB-vs-BTN spot — disclosed, not silently overridden.Test plan
swift test(PokerKit): 208/208 green, no lost tests.BankrollTrackerUITests.testLogSessionUpdatesListAndSummary, confirmed pre-existing/flaky on a cleanmaincheckout — unrelated to this branch, reproduced identically before and after stashing this branch's changes).PreflopRangeUITestscoverage for both 3-Bet and 4-Bet modes.🤖 Generated with Claude Code