Bomb Pot Hero
DOUBLE‑BOARD · PLO EQUITY
← Back to calculator

Range Syntax

A range is a structural condition on a hand. The calculator expands it to every matching holding (dead cards removed), then enumerates or samples that space.
Combo counts shown are for PLO4 on an empty board.
CARD FORMAT
Ranks  2 3 4 5 6 7 8 9 T J Q K A
Suits  s♠ h♥ d♦ c♣
Exact hand  AhKhQhJh

Containment — "at least these ranks"

AsKhJd2cOne exact hand1
AAAt least two aces6,961
AKAt least one ace and one king17,316
KAt least one king76,145
AKQJOne each of A, K, Q, J256

Rank classes & spans

[A-J]One card ranked A through J (A / K / Q / J)
Q+One card ranked Q or better179,335
A-QOne card from A down to Q179,335
TT-77A pair from TT down to 7727,628

Rank variables & sublists

RR / RROOA pair / two pair (repeated letters = same rank)87,685 / 2,808
JRONA jack plus three other distinct ranks56,320
K[2s,Jc,T]A king plus one of 2♠, J♣, or any ten24,890
[A-J][2-5]33One A–J, one 2–5, and two threes1,216

Suits — a suit char binds to the rank before it

ss / hhAt least two spades / two hearts69,667
KJssA K, the J♠, and one more spade1,981
KJ*ssA K, a J, and two spades — on four different cards (* = any card)1,153
KJ:ssA K and a J, plus ≥2 spades anywhere (a K♠ / J♠ counts toward them)4,492
KJ:ss!sssA K and a J with exactly two spades (≥2 and not ≥3)3,678

Operators — combine & negate

A!KAn ace but no king (negation !)58,829
A:KIntersection — both conditions hold (same as AK)17,316
AA,KKUnion — either condition holds13,886

How suit specs are consumed

Inline specs each take a distinct card (no double duty), while : checks the hand as a whole. So KJ*ss needs the two spades on their own cards, but KJ:ss lets a K♠/J♠ count as a spade. Take the hand K♥ J♠ 8♠ 2♣:
KJ:ssJ♠ + 8♠ are the two spades
KJ*ssK, J use their cards — only 8♠ left for two spade specs

Multiple ranges per player

Give one seat several ranges by joining them with the union comma. A seat takes a single range string — AA,KK,TT-77 means the player holds AA, or KK, or a pair TT–77. Overlapping hands are de-duplicated automatically (matched once, so equity never skews).

Combining alternatives — , binds loosest (no grouping)

AA,KK,TT-77AA, or KK, or a pair TT–7741,226
AA,KK:ssAA — or KK with two spades (the :ss only touches KK)8,680
AA:ss,KK:ssAA or KK, each with two spades3,447
AA,KK,TT-77:ssAA, or KK, or a TT–77 pair with two spades20,672
To apply a condition to every alternative, distribute it manually — AA:ss,KK:ss, not AA,KK:ss (which only touches KK). A stray comma (AA,) is a parse error, never a silent match-everything.
PLO5 and PLO6 adapt automatically — the free remainder is k − specified, so AA adds three free cards in PLO5 (four in PLO6) instead of two. The same range grammar applies to every game type.
Card specs are consumed injectively — more specs than hole cards (e.g. KJ*** in PLO4) matches nothing. Whitespace separates specs, so K J * s s is five specs — write KJ*ss. A pair range must stand alone; compose it with , or : (TT-77:ss).
Suits are written literally, relative to the board (ss, KJ*ss). Double/single-suited macros aren’t supported — a bomb pot is a 100%-range game where every seat is dealt in, so “double-suited” is never a meaningful filter.