Installation

Click on the corresponding link for your platform on the XEO Poker main site.

You will need to create a user on the main website as well to use the app or from the app itself. You can delete your account from the app. Only premium users can use the mobile app. The same user can be used accross different platforms and devices. Account sharing is not recommended as it may get flagged by the system as a stolen account and get you banned. Getting unbanned requires sending an email to support ([email protected]).

Password must be at least 8 characters long and upon account creation a valid name and email address are required. A verification email will be sent to the address you provided. It is recommended that you use a custom username, as typing an email for login may be too verbose. Otherwise, username will be automatically generated.

Home Page & Navigation

This is the homepage:

HomePage

After you login you will be able to navigate through the different sections of the app using the tabs at the top. There are 3 sections: the odds calculator, the range builder, and the gto solver. We will go into more detail in the following chapters.

At the bottom you can toggle the color theme (light or dark) and you can also toggle how the suits are visualized. You can leave it default, which renders the suits using the platform's own emojis, or you can use 4 color suits (black spades, green clubs, red hearts and blue diamonds).

This is the homepage after logging in and using dark theme (for the rest of the guide we will be using light theme only):

DarkHome

Odds Calculator

When you open this section you are greeted with the following:

Odds Calculators

At the top you have the range selections for every player. Range selection and manipulation is explained in chapter 3.1.

Following that you have other configurations detailed in chapter 3.2.

Within the main screen at the bottom right you can increase or decrease the amount of players. At the moment, the max amount of players is 6 but it will probably be increased to 9 in the near future.

At the bottom you have navigation tabs to go through the results with different visualization options.

Player Range Manipulation

The Range Selector works the same way in all sections (odds calculator, range builder, solver). It looks like this:

Range Selector

It's composed of:

  • Matrix: this matrix displays all posible preflop combos. You can click and drag to select more than one at a time. To deselect, start by clicking on a combo that's already selected. Behaviour is modified if you have Suit Selection enabled.
  • Suit Selection: this button modifies the click and drag behaviour of the matrix. If enabled, after clicking and dragging on the matrix a pop up will appear letting you choose which individual hands should be added to the range based on the suit.
  • Show Weighted: this option is useful to visualize either if all hands of a combo are selected or if specific hands/combos have a weight lower than 100%, which is the default. For example, if you only have pairs of aces which contain the Ace of Hearts, then only 50% of the box will fill up to reflect that.
  • Clear: this button will reset the range selector to it's defaults and it will delete the range.
  • Weight: the slider will determine the weight of future additions to the range, as long as they were added visually.
  • Range: the actual range of the player. You can manually edit this textfield.

This is the suit selection pop up:

Suit Selection

This is how the "Show Weighted" option modifies the visuals:

Show Weighted

Patterns

To describe the patterns that the range textfield accepts we will define 'R' as rank (A, K, .. , 2) and 's' as suit (spades, hearts, clubs and diamonds). With that in mind, these are the acceptable patterns:

  • RsRs: that is two cards, or a single hand. Examples: AcAd, Js5h, 2s2d.
  • RR: a combo that will decompose into its suited and offsuited versions if it's not a pair. Examples: AA, K5 (K5s and K5o).
  • RRs: a suited combo. Only valid if the combo is not a pair. Examples: AJs, KQs.
  • RRo: an offsuited combo. Only valid if the combo is not a pair. Examples: AJo, KQo.
  • RR+: a combo and all the higher ranking combos. You can also apply the '+' to suited ('s') or offsuited ('o') combos. For pairs it selects that pair and all higher ranking pairs. For non-pairs it fixates the higher rank and increases the lower rank to select all of these combos. Examples: QQ+ (QQ, KK, AA), 85+ (85, 86, 87), T7s+ (T7s, T8s, T9s).
  • RR-RR: a range of combos. Either they are both pairs or both non-pairs that share a rank. Examples: 99-66 (99, 88, 77, 66), KJ-K8 (KJ, KT, K9, K8), 97s-94s (97s, 96s, 95s, 94s).
  • 'random': this will add everything to the range with a weight of 100%.

The weight modifier is just an '@' followed by 1 or 2 digits (1-99). Example: AA@50 (AA with a weight of 50%).

Configuration

Configuration is pretty simple.

Odds Calculator Settings

You have the following settings:

  • Board: public cards on the table. You can type them in or select them by clicking on the button.
  • Dead Cards: cards that nobody still in the game has and that are not in the dealer's deck. These can be cards from players that have folded and have shown their holding.
  • Number of Threads: CPU threads to run when calculating equities. Default is 4 but recommendation is to use at most 80% of your CPU threads. You will have 1 to 2 threads per core on your CPU, and it may vary per core (intel has chips that contain both performance cores with 2 threads and efficiency cores with 1 thread).
  • Enumerate: enumeration runs through all possibilities giving an exact calculation. If it's not selected you will run a monte carlo simulation which will converge to a pretty decent equity solution. Enumeration is recommended for 2 players. For more than 2 players, it will depend on the ranges selected and the street but monte carlo will usually be faster.
  • Calculate Turn/River Hit: if the board is a flop or turn, you have the option of seeing which upcoming cards benefit each range. This will slow it down, so it's up to the user.

Clicking on the Board or Dead Cards button will show a pop up that looks like this:

Board Selector

You can select/deselect each card individually or you can randomly select by clicking on the corresponding buttons below.

Matrix Results

Matrix Results

On this tab you can visualize the equities for each combo on the matrix, and individually for every hand or combo on the scrollable list on the side. On the picture you also have a filter to only display (on the list) hands or combos with an equity of at leat 50%. There are many filters and you can play with them.

This is how it looks like when you have "Show Combo Equities" selected:

Matrix Results Combos

The list is scrollable and you can reorder it by clicking on the title of any column. Order can be either ascending or descending. Clicking and dragging on the matrix will create a selection that will act as its own filter for the list.

Filters only apply to the list, not to the matrix. Here is a close up of the filter:

Filters

Select a filter from the dropdown, adjust the limits on the slider and click "Add Filter". All your filters will show on the bottom and you can remove them one by one. To remove all filters just click on "Clear Filters".

Line Chart

Line Chart

This chart has all combos ordered by equity, and you can hover over it to display the details of individual combos. To view the hand version of this chart, click on the top left corner button that reads "Combos".

Line Chart Combos

As you can see, one player clearly dominates the other.

Turn/River Equity

Turn/River Chart

This chart allows you to see how the next card to be dealt will impact the overall equity of each player. In this case, none of the cards will have much of an impact to the overall range, but it might greatly affect individual parts of the range.

You can click on any bar to see the full results of that dealt card.

Board Hit Analysis

Board Hit

This chart displays the frequency and equity of each hand rank and draw for each of the players' ranges. It is still under testing, so if you see anything incorrect please report to support.

Range Builder

The range builder builds a range by reducing your initial range. This can be achieved by getting rid of your best and worst cards (condensed range) or by getting rid of middling cards (polarized range).

At the top you have the following:

  • Starting Range: this is your initial range that you want to modify with the constraints selected.
  • Number of opponents: between 1 and the maximum allowed (6 at the moment).
  • Opponents Ranges: The static opponent ranges that you are facing.

Range Builder

You also have the following settings:

Range Builder Settings

  • Board: public cards dealt by the dealer.
  • Dead Cards: cards that nobody still in the game can have and that won't be dealt to the board (an example would be cards of a player that has folded and showed his holding)
  • Number of threads: CPU threads to carry on the calculation.
  • Target equity: this is the equity you want your final range to have. If the initial equity is 30% and the target equity is 20%, it will get rid of cards with an equity above 20%. The inverse will happen if the initial equity is below 20%, it will take out cards with lower equity.
  • Enumerate: whether to calculate the starting equity using enumeration or monte carlo simulation (exact vs approximate). For 2 players it's recommended to use enumeration as the result is exact and it doesn't usually take long. For more players it depends on what street you are and how big are the ranges. After all, this is a personal choice.
  • Condensed: condensed means you want a condensed range, as opposed to polarized. With a condensed range you will be eliminating cards from the top and the bottom of your starting range. With a polarized range it will be cards with an equity right above or below of your target equity.
  • Inclusion/Exclusion Range: when targeting a condensed range, all cards must have an equity within the slider limits. If a polarized range is selected, then all cards have to be outside of the slider limits.

Once you run the range builder, you can copy the final range using the button and paste it wherever you want.

Solver

This section is to create a gto solution for a heads up situation.

Configuration is explained in chapter 5.1.

While going through the solution is explained in chapter 5.2.

Solver

At the bottom you have tabs to navigate from the settings to the results and back.

Building a tree

To build a tree you first need to select a range for OOP (out of position player) and IP (in position player). Range selection is explained in chapter 3.1.

After selecting ranges you have the following settings:

Solver Settings

  • Stack: starting stack for both players (or the lowest of both stacks).
  • Initial Pot: chips on the table.
  • Rake: a % over the pot that the house will take away (0-100%). Having a rake other than 0% will slow down the solver considerably.
  • Rake Cap: rake taken by the house will never be higher than this number.
  • Flop, Turn and River: a flop must be selected, and a turn must be selected if a river card is chosen.
  • BET/RAISE SIZINGS: bets on the left and raises on the right. Each row corresponds to a street and a player. These fields are prefilled with possible values. When betting you can bet a fix amount (number followed by 'b'), a percentage of the pot (number followed by '%'), a geometric bet (a number followed by 'g', no number will default to number of streets remaining) or go all-in by typing 'a'. Raises can also be a multiplier times the previous bet (number followed by x).

Action Tree

Once you have all those settings to your liking you can build a tree. After the tree is built you can visualize it and edit it.

Solver Tree

Click through the tree to navigate it. You can remove actions by clicking on the substract icon. To add an action choose from the dropdown and, if appropriate, choose an amount.

If a bet or raise is below the minimum or above the maximum, the amount will be adjusted to the minimum or the action will be converted to an all-in respectively.

Saving and Loading

You can now run the solver, and once it's finished solving you can save the game to your system to avoid running the same setups over and over. You can also load a solution instead of running the solver.

Navigating the solution

A solution will look like this:

Solver Results

At the top you have the betting tree which you can navigate by clicking on each action.

The matrix and grid should be familiar to you as it operates similarly to the matrix results in the odds calculator. You can toggle between individual hands and combos by clicking on the button below the matrix. Any selections on the matrix will work as a filter to show only what is selected on the lists. The lists are scrollable and they can be reordered by clicking on the title of any column.

The colors on the matrix match the color on the tree above and they are in proportion to the strategy that should be followed.

There is also an additional list on the bottom for the available actions.

Solver Results Actions