Reference

How to write ranges

A range is text that describes a set of hands. You type it in the Range field on the spot screen and in the Filter field above the strategy table. The syntax is the same for every game: Hold'em, Short Deck and Omaha with 4, 5 and 6 cards, hi-lo included. It comes from ProPokerTools, so if you have used it, almost everything will look familiar. Upper and lower case are the same, and spaces between parts of a range do not matter.

Contents

Cards

Ranks: A K Q J T 9 8 7 6 5 4 3 2, a ten is T. Suits: s spades, h hearts, d diamonds, c clubs. A suit goes right after its rank. If you write fewer cards than a hand has, the other cards can be anything. A star * means any rank. The examples are for Hold'em unless they say otherwise.

RangeMeaning
AsKhAce of spades and king of hearts, one hand.
AKAce and king of any suits, 16 hands.
AAA pair of aces. In Omaha, a hand with at least two aces.
KAny hand with a king.
ssTwo spades.
*Any hand.
AKsAn ace of any suit and the king of spades. The letter s after a card always means spades, not suited. Suited hands are written another way, see the next section.

Short Deck has no ranks from 2 to 5, and a range with them gives an error.

Suited and offsuit

The letters x y z w are suit variables. The same letter means the same suit, different letters mean different suits. A variable never takes a suit that is written out in the same hand.

RangeMeaning
AxKxAce and king of the same suit, 4 hands.
AK$sThe same, with a macro.
AxKyAce and king of different suits, 12 hands.
AK$oThe same, with a macro.
AxAyxyOmaha: double-suited aces, that is two pairs of cards of the same suit.
AA$dsThe same, with a macro.
AA$ssOmaha: single-suited aces, exactly one pair of cards of the same suit.
ssxxOmaha: two spades and two cards of one other suit. Four spades are not included.
AhhxyOmaha: the ace of hearts, one more heart and two cards of the two other suits.

$ss, $ds and $ts mean one, two or three suits with exactly two cards each, and no suit with three or more cards. So there is no $ss with 6 cards, and $ts needs 6 cards.

In PLO5, AsKsQhJhTd is $ds. Spades and hearts have exactly two cards each, and the diamond is alone in its suit. AsKsQsJhTh is not $ss and not $ds. Hearts have exactly two cards, but spades have three, and a suit with three or more cards is never allowed.

:xxyy is wider: in PLO5 it also matches a hand whose fifth card is a third card of one of the suits. For exact double-suited, write $ds.

Rank variables

The letters R O N M P V are rank variables, and so is every other letter the syntax does not use: B E F G I L U. They work like suit variables: the same letter means the same rank, different letters mean different ranks. A variable never takes a rank that is written out in the hand.

RangeMeaning
RRAny pair.
JRA jack and a card of another rank. Pocket jacks are not included.
RROOOmaha: two different pairs.
RONMPVPLO6: six different ranks, no pair.
RRONPLO4: exactly one pair and two cards of different ranks.
AARROmaha: a pair of aces and one more pair. Four aces are not included.

Rank spans: + and -

A minus between two hands lists every hand from one to the other. A plus or a minus at the end continues the hand up to the ace or down to the deuce. Every card with a written rank moves together, one rank per step.

RangeMeaning
TT-77TT, 99, 88, 77.
22+Every pair.
88-Pairs from 88 down to 22.
T8+T8, J9, QT, KJ, AQ.
K9-K6K9, K8, K7, K6.
AT+AT, AJ, AQ, AK. Going up, the ace stays where it is, and the other cards stop below it.
AxTx+Suited AT, AJ, AQ, AK.
A5-A5, K4, Q3, J2. Going down, every card moves, the ace too.
A5-A2A5, A4, A3, A2. You can also write A[5-2].
KQJT-T987Omaha: KQJT, QJT9, JT98, T987.
9876-Omaha: rundowns from 9876 down to 5432.
664-Omaha: 664, 553, 442.

The order of the cards does not matter: TsJs-KsQs means TsJs, JsQs, QsKs.

The two ends may differ only in ranks, and every card that changes must move by the same number of steps. Otherwise it is an error. For example, in KT-Q8 the king moves one step and the ten moves two.

A macro is a text replacement. K9$s-K6$s becomes K9:xx-K6:xx, and the two ends no longer match. Suited K9, K8, K7, K6 is written as (K9-K6)$s or Kx9x-Kx6x.

Choices for one card: [ ]

Square brackets list the choices for one card, with commas or as a span.

RangeMeaning
[A,K]QAQ or KQ.
[A-J][2-5]One card from ace to jack, the other from deuce to five.
[T+][T+]Two cards ten or higher.
J[T-]A jack and a second card ten or lower.
K[2s,Jc,T]A king and the deuce of spades, the jack of clubs or any ten.
Ax[Kx-Tx]Suited AK, AQ, AJ, AT.

Or, and, except

A comma means or, a colon means and, an exclamation mark means except. The colon and the exclamation mark bind tighter than the comma and apply from left to right. Round brackets change the order.

RangeMeaning
AA, KK, AKA pair of aces, a pair of kings or AK.
25%:xxSuited hands from the top 25%.
A!AKA hand with an ace, but not AK.
AA!AAAOmaha: exactly two aces.
(AA, KK):xxyyOmaha: double-suited aces or double-suited kings.
AA, KK:xxyyOmaha: any aces or double-suited kings.

Percent

A percent takes the top part of the hands by strength. Each game and number of players has its own order of hands. How it is built is explained in the article on hand order. With no suffix, the order for 6 players is used.

RangeMeaning
15%The top 15% of hands.
5%-10%Hands from 5% to 10%. You can also write 5-10%.
15%2hThe top 15% by the order for two players.
20%$dsOmaha: double-suited hands from the top 20%.

Every game has an order for 2 and 6 players. An order for 10 players exists only in Hold'em, Short Deck and PLO4.

No pairs: { }

The cards inside curly brackets all have different ranks. Cards outside the brackets are not affected.

RangeMeaning
A{A$W$W}Omaha: a pair of aces and two different cards from deuce to five.
{$L$L$L$L}Omaha hi-lo: four different cards from ace to eight.

Macros

A macro starts with $. Before the range is read, the macro is simply replaced by its text, so it works anywhere that text would work. Macros that start with : or ! go after a hand: *$np, not $np.

RangeReplaced byMeaning
$s:xxSuited, for Hold'em.
$o:xyOffsuit, for Hold'em.
$ssdepends on the gameOmaha: exactly one suited pair.
$dsdepends on the gameOmaha: exactly two suited pairs.
$tsdepends on the gamePLO6: exactly three suited pairs.
$B[A-J]Big card.
$M[T-7]Middle card.
$Z[6-2]Small card.
$F[K-J]Face card.
$R[A-T]Broadway card.
$N[K-9]A card that cannot make a low.
$L[A,2,3,4,5,6,7,8]A low card.
$W[A,2,3,4,5]A wheel card.
$np!RRNo pairs.
$op:RRONPLO4: exactly one pair.
$tp:RROOOmaha: two pairs.
$nt!RRRNo trips.
$0gAKQJ-Omaha: rundown with no gaps.
$1g(AKQT-, AKJT-, AQJT-)Omaha: rundown with one gap.
$2g(AKQ9-, AKT9-, AJT9-)Omaha: rundown with two gaps.

Macro names ignore case: $SS is the same as $ss.

Weights: @

A number after @ sets a weight, from 1 to 255. Without it the weight is 100. The weight applies to everything before it up to the nearest comma. Only the ratio of weights matters: AA@50, KK@100 is the same as AA@1, KK@2.

RangeMeaning
AA-KK, QQ@50Aces and kings always, queens half of the time.

If you are used to another syntax

How to write here what other programs write their own way.

RangeMeaning
AK$sInstead of AKs.
AK$oInstead of AKo.
AxTx+Instead of ATs+.
AKT432$dsInstead of AKT432ds.
AA:xxyyInstead of AAxxyy. Suits without ranks are joined with a colon.
AxKyTx4y3z2wThis works too: a suit right after each rank.

Differences from ProPokerTools: with no suffix, percents use the order for 6 players, not a full table.