Edge Sorting in Baccarat

An AP who wants to edge sort in baccarat is like a Sumo wrestler who wants to perform ballet: just because he wants to do it does not mean it is possible. In most baccarat games, the player doesn’t touch the cards. When the player is allowed to turn over the cards, it is usually done with the finesse of a drunken elephant; the cards rarely survive the ordeal.  In many casinos, pre-shuffled shoes are brought into play. In the situation where the cards are re-used, getting the cards to be correctly oriented is yet another challenge. After all that, if somehow the shoe does get sorted, if the shuffle includes a turn then an edge sorting scheme will unilaterally fail. Then there is the final obstacle: how can edge sorting possibly work if the AP can’t see the first four cards before placing his bet?

In spite of this long list of challenges, I know of two documented cases where advantage players pulled off this remarkable feat. The key point is that high-rollers negotiated to have the first four cards dealt before they placed their wagers. They also negotiated with the house to have the dealer rotate the cards for them, so that the high and low groups were oriented in opposite orientations. Without casino management understanding why the high-rollers were making their odd requests, the lure of the high-roller’s big play was reason enough to acquiesce.

If you need a reminder about edge sorting, it is covered in this blog post. Edge sorting requires that the cards be sorted into two groups, with the defect along the edges (or corners) oriented to allow quick identification of the group to which each card belongs. In baccarat, the two groups that work best are the “low cards” which is the subset {T, A, 2, 3, 4, 5} and the “high cards” which is the subset {6, 7, 8, 9}. The point of this division is that the high cards are most likely to not require a draw of a third card when dealt. In particular, the grouping of a high card with a low card usually forms a powerful hand.

Here is a picture illustrating how the sort looks:


Here is the combinatorial analysis. In this table, “H” stands for a card from the high group and “L” stands for a card from the low group.


Note that the average edge the advantage player has over the house is 20.928%. This is a tremendous advantage, especially given the low volatility of this scheme. The single most profitable move is to bet on the player side when the player has the group HL and the banker has the group LL. This situation occurs on 20.502% of the hands played, and the AP has a 36.332% advantage. There is one situation where there is no profitable wager, namely, when both the player and banker sides show the group LL. This happens on 22.824% of the hands. In two situations, the only profitable move is to wager on the tie bet. This happens on about 19.075% of the hands.

The following table gives optimal edge sort strategy for baccarat:


The following picture illustrates the situation HL vs. HH (Player = 0,9, Banker = 8,6), with a 28.319% edge by betting on Player:


Another way that edge sorting can take place is if, after the shoe is sorted, only the first card is observed before the wager is made. This can occur when the first card is visible in the shoe, as shown in this picture:


I discuss this situation, which is equivalent to knowing the hole card, in my article on the known card in baccarat. In this situation, the player has a 6.765% edge over the house.

There are a number of ways casino management can protect the game of baccarat from an edge sorting vulnerability. The easiest solution is to use a shoe once and then discard it. If this is not a cost-feasible solution, then:

  • Include a turn in every shuffle.
  • Require that all wagers are placed before the cards are dealt.

And yes, there ARE Sumo ballerinas.

12 responses to “Edge Sorting in Baccarat

  1. Pingback: Game Theory Tuesdays: Almost Profiting On Baccarat Superstitions - Mind Your Decisions

  2. Pingback: Judge Says Poker Champ Robbed the Casino – Town Houses New Jersey US

  3. Pingback: Baccarat Math Behind Borgata vs Ivey |

  4. Pingback: How Phil Ivey Beat (Or Maybe Cheated) A Casino For Millions – Deadspin | My Blog

  5. Pingback: How Phil Ivey Beat (Or Maybe Cheated) A Casino For Millions – Deadspin | Gaming news

  6. Pingback: Were Phil Ivey's $9.8 Million Atlantic City Casino Winnings Fair or Foul? | Sports Discovery

  7. Mr. Jacobson, I was wasting a colossal amount of time running for/next loops. I appreciate your response and am going to re-write my macros to perform the tasks the way you recommend. I can’t thank you enough.


    • Wow, for/next. As long as you don’t use “goto” statements I am okay with it. I encourage you to try a stronger language. If you want to tackle any tougher projects, you’ll need the fire power.


      • Luis de Quadras

        Hi Eliot! Thanks for the post
        I am starting to program and use vba at the moment. I have two questions:
        1- Why shouldn’t I use goto? is it very time consuming?
        2- If I am to move to any easy language (R, phython, matlab or vba), which one is the best?



        • #1 Anything you can do with GOTO you can do without it. Among other things, GOTO creates spaghetti code, making it much harder to debug if you come back to it later. This is a huge point of contention among programmers. Just Google “reasons not to use GOTO statements.”

          #2. It depends on what else you want to do. For example, no language has a better math library than Matlab. On the other hand if you want to integrate a development tool between multiple Word products, then VBA.


  8. I would like to know where you got the data from the Combinatorial Analysis. What language was used to run the 5 quadrillion hands? I’ve attempted to find these numbers in Visual Basic but the run time is too great. Were these numbers based on a simulator? Was every hand considered from an 8 deck shoe?
    Thank you
    Dave H.


    • Baccarat is actually one of the fastest programs to run a complete combinatorial analysis. It is not a simulation. It takes milliseconds. The trick is to simply iterate over all six-tuples (a,b,c,d,e,f) where each satisfies 0 <= x <= 9. Then for that six-tuple, evaluate the baccarat hand that results from it. Then, count how many ways that six-tuple can arise from the shoe and weight the result of the hand appropriately. For example (0,3,3,5,6,0) can happen 128*32*31*32*32*127 ways, and the result is Player: 0,3. Banker 3,5. Banker natural wins. My programs are mostly written in C and C++ and are complied and run on a x86 Ubuntu machine.



Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s