No javascript!

Your browser has disabled javascript. Some elements may be displayed incorrectly.

Once you purchase the software you will get an email (within 24 hours, usually a bit faster than that) with your license key and a link to an installation guide:
[installation guide]

It's preferred to install it outside of you system directories, so C:\PioSolver is better than C:\Program Files\PioSolver. The reason for it is that folders like Desktop/Downloads/Program Files have additional privilege/access requirements and that causes problems sometimes.

See here. It may change in the future. Some features will be added to all version, some only to the pro version and some experimental/requiring bigger hardware ones only to edge. That link represents current state of affairs.

Yes, the upgrades are listed here:

The upgrades are listed here:
basic to pro upgrade
basic to edge upgrade
pro to edge upgrade

Please either use the same email as before or let us know which license should be upgraded after the transaction is done.

Maybe. It depends how popular XYZ is among other users, how useful we think it is and how much time it takes to implement. Your best course of action is to provide your feedback then wait and keep checking what's available every 2 weeks or so.

For now there is a short introductory video which goes over basic functionality of the solver. There is also a Quick Start Guide and Resources. Full 50 pages manual is not going to happen - the program changes too fast and maintaining a tutorial is a huge burden. In the near feature we plan to release more videos going over various features.

Please follow the steps:

  1. Unless something crashes assume it's not a bug and try to think why the results might be correct. The experience shows that majority of bug reports are user errors. Our resources are very limited so be considerate when it comes to developers' time.
  2. Make sure you are running the newest version of the solver and the viewer
  3. If after following steps 1 and 2 you still think there is a bug please send us an email The most useful piece information you can include is the way to replicate the problem (so actions leading to the unexpected/buggy behavior). If that's difficult please include as many details as possible: the tree config you work on ("copy to clipboard" button), a description of actions you took before you encountered the problem as well as a description of how the actual result differs from the expected one.
  4. If you want to be even more helpful go to Tools->Configuration, check "enable logging" and then re-create the problem. There will be log.txt file which you can send to us. That's the best way because we can look into all the details and get to the problem quickly.

Use PioUpdater: PioUpdater

There is no "optimal" build as it depends on your expectations, budget and logistics. Here are some points to have in mind:

  • Operating system: you need 64bit Windows. On Macs you need some way to run Windows, popular ones are Parallels and Bootcamp.
  • CPU and RAM: solver's speed is proportional to number of physical cores x frequency they run on assuming those are reasonably modern CPUs. The more RAM you have the bigger trees you can build. This means there is no "optimal" setup. You can always get a faster computer and more RAM if you spend more money.
  • Minimum requirements: you need a quad core CPU and 8GB of RAM to run the solver comfortably. It will work on modern dual core CPUs as well but it's going to be slower (more than 2x because usually those CPUs are also clocked at lower frequency than quads to save battery life). It's the best to download the free version and run some tests (it solves Qs Jh 2h flop) to make sure your hardware produces satisfactory performance.
  • Laptops: it's hard to get good performance on a laptop. If you intend to run the solver on those make sure to get real quad/hexa core CPU (not 2 cores with hyperthreading sometimes advertised as 4 cores) at possibly high frequency. Even the fastest laptops are slower than average modern desktop computer. The reason for this is that laptops are optimized to be portable and to have long battery lives not for performance.
  • Desktops: the performance is proportional to number of CPU cores multiplied by frequency they are clocked at. We strongly recommend AMD CPUs as starting from Zen generation (Ryzen/Thread Ripper) they offer much better performance/price ratio and you can get a lot of cores. Due to licensing changes on Intel forbidding the users to publish performance benchmarks we can no longer in good conscience recommend Intel CPUs.
  • RAM: RAM speed matters little as long as it's relatively modern. The more RAM you have the bigger trees you can build. 8GB is enough to use postflop solver comfortably with occasional 2-3 bet sizes at some points. 16GB is enough to solve even very big trees with multiple bet sizes at many points. Some users want even bigger trees though. To use the preflop solver comfortably you need at least 64GB of RAM. We got reports that RAM speed is important for Ryzen/ThreadRipper CPUs though. It's the best idea to consult hardware experts/hardware forums when assembling your system.
  • Renting: it may be the best idea to rent a dedicated server instead of building your own hardware. It offers a lot of flexibility and options. The solver doesn't hog your local resources either so you can the computer for other heavy tasks when Pio is solving on the server. There are many providers of dedicated servers out there, popular ones among our customers are ovh, and They all have their own order process, offerings and support. We don't recommend any particular provider, it's the best to consult Google and our Skype group where many people went through the process.
  • GPUs: they don't matter for the solver's performance
  • SSDs: they don't matter for the solver's performance although they do matter for overall computer experience so it's recommended to get one unless the computer is purely for Pio purposes.
  • Overclocking: overclocking will increase performance of the solver proportionally to how much you overclock. Overclocking also increases heat so you need very good cooling to make it work (generally you need to know what you are doing). Please keep in mind that you really need to know what you are doing when OC'ing. If the solver starts crashing after you overclock your system it means it's unstable and it's time to reverse course to the base frequency.
  • Intel vs AMD: New AMD CPUs (Ryzen/ThreadRipper) offer fantastic performance/cost ratio and we hihgly recommend them over Intel. The only issue with Ryzens, especially from the first and second generation is that you need to have someone competent assembling the computer as it's important to choose compatible components (RAM, motherboard, CPU). Otherwise stability issues may occur.

We don’t know. But if you know nothing and want some guidelines anyways than currently (2020) the best deal AMD CPUs either Ryzens or ThreadRippers (depends on the budget). You need 8GB of RAM to run simple postflop trees with 1-2 bet sizes. 16GB of RAM should be enough for most reasonable postflop simulations. For the preflop solver you need at least 64GB for most practical trees and 128GB for bigger ones.

Both can be a limiting factor. It requires a certain amount of RAM to be able to build the tree, but RAM will usually not affect the solving time. For the simplest flop trees you need around 4gb ram, typical tree you need 6gb and for huge trees you need 12gb+ of RAM.

Processing power will be the bottleneck if you have enough RAM, but the solver is really fast. You can get away with weaker hardware (fast 2core CPU) if you don't run advanced trees with many bet sizes on every node.

For preflop solver 64GB is an absolute minimum for practical purposes (you may be able to build some toy examples with 32GB). 128GB is recommended if you want to experiment with more sizings/more complicated postflop play. While not required it's highly recommended to get fast modern CPU as well as big preflop trees take very long time to solve.

CPU Component Solving speed Ability to solve bigger trees Solutions save / load
CPU Clock Direct effect on solving speed (1:1) - -
# of CPU Cores Direct effect on solving speed almost (1:1) - -
CPU Generation About 5-10% increase in speed
for each new generation of Intel CPU’s
- -
RAM - The more RAM
the bigger trees you can solve
SSD Disk - - SSD increases
save/load speed of big trees

The EVs are calculated against current solution (against current opponent's strategy). This means those are not perfect equilibrium EVs as those are unknown. The more precise the solutions gets the smaller EV differences between mixed actions become. In a perfect equilibrium (and only then) all the EVs for mixed actions have the same EV. Perfect equlibirum has exploitability of 0.

No, perfect GTO always maximizes EV with each hand in every spot. There is no room for -EV actions. When perfect GTO mixes actions those have the same EV. The mixing is done to guarantee the opponent can't get higher EV.

This is one of the biggest surprises about gto solutions. It turns out that especially on the flop there aren't really a clear bets or very few of them. Usually the differences are quite clear between calls and folds (at least for most hands) but check/bet decisions and often call/raise ones turn out to be close.

It doesn't mean you can just start checking all those mixed hands or betting them as that would open a huge opportunity for the opponent to exploit you. This means it's a good idea to focus on general range composition for actions but not necessirily exact hands and frequencies.

The two numbers returned for each hand are evs and matchups. The solver always returns evs in global format though (so calling 100$ and then folding is -100$, not 0 as the viewer shows).

You can think of it as probability, although it's not normalized to 1 (so for example if there are 3 events, and they have 2,3,3 matchups it means probability is 2/8 3/8 3/8 respectively). It's the real probability of certain action happening given current starting ranges and strategies of both players.

The thing is that if you for example have a range of AA and 77 on 972 flop and you wonder what average EV is you can't just take (EV(AA) + EV(77)) / 2 because AA is more probable than 77. You have to use matchups for that (EV(AA) * matchups(AA) + EV(77) * matchups(77)) / (sum of matchups).

Technically one matchup is counted when hand of weight 1 plays a single hand against other hand of weight 1. E.g. on on the river case if OOP has total of 2 combinations and IP has 4 combinations, there will be total of 8 matchups.

  • Two matchups of hands with smaller weights (against 0.5 against 0.4) will be counted as multiplication of their weights (0.2 in this case)

  • Matchups represent the real frequencies of things happening. Matchups are the occurences that special flop happened ... like if there are two flops A, B and the matchups are A-3, B-6, that means, A happened three times and B happened twice as often, namely 6 times.

  • Matchups in a split point (e.g. decision of new street) are calculated as a sum of matchups in children, and EV are averages of EV in children weighted with matchups.

  • Matchups have some interesting properties:

    • Total matchups OOP = Total Matchups IP (that is because each matchup is played by both players)
    • matchups from equity calculation = matchups from EV calculation (this is because they iterate the same number of hands - equity represents EV assuming check-down of all hands)
    • In aggregation plugin Sum of matchups for all flops will be the same number as sum of matchups of all player’s hands. (this is because it’s the same thing, but splitted by different criteria.

They are similar in a sense that they both are related to probabilities. Weight of a hand in Range is the relative probability of having a certain hand. So if AA has weight 1 and KK has weight 0.5 it means that probability of having AA is twice as high as having KK.

Strategy is a relative probability of performing a certain action with particular hand. In a single node strategies for all possible actions always add to 1 for a given hand.

Range of a player in any spot can be calculated as his starting Range multiplied by Strategies of all decisions a player has made.

So for example after flop check-raise from OOP player his range is equal to is his starting range multiplied by strategy of checking the flop multiplied by strategy of raising after opponent bet.

If starting range had AJs with weight 0.75, opening strategy for AJs was 70% Check / 30% bet, and after opponents Bet strategy was Fold 0% / Call 60% / Raise 40% then checkraise Range of AJs would be 0.75 * 70% * 40% = 0.21

In the viewer you can see two different numbers denoting action frequency. One is the number of combos (e.g. 60 combos CHECK, 40 combos BET) and these numbers depend only on the range of a player. However in reality the frequency of plays will be different as they will be affected by villain's range with card removal effect.

In an extreme case - Let's assume that hero range is either As or Ks, and villain's range is only As. If hero checks all his Ks and bets his As then he checks 50% of his combos, but because he never really has an Ace (because the villain always has it!) the real check frequency will be 100%.

It's the weigted average of EV over all flops weighted by real frequency (Matchups times Flop Weight).

One activation means you can use the software on one computer. It doesn't mean that you can only activate it once. If you lose access to the software for whatever reason (hardware crash, stolen computer etc.) It's always possible to recover it.

While our licenses are in principle per computer we allow moving them within reasonable limits for purposes like new/broken computers, long travelling and some experimentation. The edge license can be moved around without any limits. If you need to reset your license please follow the instructions here: Pio licenses

The link to the installer is there as well.

Only the edge version. You can try running basic/pro version as well but as cloud providers change the hardware on regular basis it won't work long term. Dedicated servers are better (and cheaper if you run it a lot) solution.

If you need to reset the license for whatever reason please follow the instructions on this page:

The link to the installer is there as well.

We don't support it. There are four reasons for that:

  1. Besides the software you get support with the software. Providing support is based on the idea of average usage time (some people need none, some need more). That means that we can't provide support to any number of people who buy a license from you as then the price would be way higher.
  2. Our software is in principle per computer. We allow moving it for purposes like new computer/long travelling etc. but those are not in principle floating licenses.
  3. There are many scam attempts based on re-selling Pio keys. Things that already happened include: buying a key for someone and then requesting a refund or hitting us with a chargeback, selling invalid Pio keys, selling the same key to several different people. There are other creative ways as well which we are not going to describe. We don't facilitate reselling and we will always warn about possible scams. That being said there is nothing we can (or want) to do if you re-sell your license and someone else starts using it. We don't police on what computers Pio is run, it's just from our point of view the contract for support/license related request is still bound to the original buyer and the original buyer is always entitled to key recovery.
  4. Laws: if our original customer requests access to their license we have to grant it. We don't have a way to prove the license was sold. We are neither allowed by law nor have resources to collect/verify/police private deals outside of our control. The license belongs to the original buyer.

When activating the license is not successful you will get an error code with a short description. Below are the common error codes and ways of deaing with them:

  1. ERROR CODE 1 (probably wrong key):
    Your key is most likely incorrect or you are trying to activate a different version of the software.
    -Check that you have chosen correct version of the program in the installer
    -Check that you are using a correct key; some email clients have a tendency to insert random spaces/other characters inside of the key
    -If the above fails please go to TurboActivate folder in your Pio folder and run the .exe there, it usually solves the problem or gives a better error message

  2. ERROR CODE 13 (The activation has expired or the system time has been tampered with)
    Please do the following:
    -Verify that time/date/timezone are set correctly for the location of your computer
    -Perform full system restart (not sleep/wake up cycle)

    This is a rare error which is sometimes difficult to solve. The problem is that our licensing system can't generate hardware fingerprint due to Windows malfunctioning. You can try the following:
    1)VERY IMPORTANT: make sure Windows is up to date and all recent updates are installed
    2)Run the installer as administrator
    3)Go to device manager and look at network adapters, see if there is anything malfunctioning or inactive. If there is something inactive, please enable or uninstall it.
    4)Make sure no 3rd party antivirus is running as they are known to mess up with OS configuration, never disable Windows Defender though.
    5)Restarting the computer might be needed after the above steps are taken

When importing file into Excel or other spreadsheet tool you should have an option to set column separator and for .csv files it should be a comma. Some tools don’t import .csv files properly by default and you might have to search for some import options to set comma as a column separator.

In Excel you can do this: Mark Column A go to Data -> Text in Columns and then choose Comma as a separator

They are used to calculate weighted averages over all flops in the subset.

I.e Let’s say you have scripted all strategically different 1755 flops to calculate average flop donk %. You can’t take simple average over all flops, but you have to include more frequent flops (like AKQ rainbow) with higher weight than less frequent flops (like 222). Similarly if you have made a script with a weighted subset of flops those weights are used to calculate average frequencies and EV over all flops.

This error most often occurs when PioViewer is run from a directory that is missing necessary files. It can for example in case you have moved pioViewer file out of pioSolver directory (e.g. you wanted to make shortcut on the desktop but copied the file instead).

Example error message might be the following: * Server Error: ERROR: go can't do that on incomplete tree * Server Error: ERROR: lock_node can't do that on incomplete tree * Server Error: ERROR: round_up_to can't do that on incomplete tree

In PioSOLVER incomplete trees are those which have been stripped of information about one or more last streets (e.g. tree without rivers, or turns and rivers). The advantage of such trees is that they are way smaller when saved. Disadvantage is that the strategy on those trees cannot be modified anymore.

The reason for this is that incomplete trees cache EV information in places where cut streets would happen. When particular runouts are requested they are being recalculated on the fly. If the strategy on earlier round would be changed it would require a recalculation of all affected parts of the tree - including those removed from the tree. As most of the work solver performs is on the rivers it would be as expensive as building and solving the tree from scratch.

There are some operations which require recalculation of EV on a full tree, and these operations are not permitted on incomplete trees (small trees without rivers, turns or flops). An example of such operations are * “Go” (calculating solution - which is a full tree operation), * “Round strategies”, “Lock Strategy” - change of strategy changes the EV’s which cannot be recalculated if there is part of the tree missing

  • Server Error: ERROR: calc_ev Can't do that when solver is running

It means that the operation you are trying to execute cannot be executed while calculation is running. Stop solver or wait until it completes to do what you want.

Currently it's not possible to view tree, ranges and strategy of a postlop part of a preflop tree when the solver is running. To view the postflop part of solution it's necessary to stop the calculation first.

This error can happen in few cases: * You are trying to load a file from a newer version of PioSolver (e.g. when someone shared a file with you) in an older version of PioSolver. In this case you should update your PioSolver.

  • You are trying to load a file that isn't pioSolver save file but comes from some other program (e.g. jesolver). In this case please make sure to use jesolver to open jesolver files and PioSolver to open PioSolver files.

This warning occurs when specified ranges on the flop contain different weights for the strtegically identical combo on the flop. So for example QsQh:1, QdQc:0, QhQd:0.5. In this case solver cannot use some optimizations and therefore will use more time and memory to calculate.

You can't (unless you are buying a lot of licenses). We feel it's unfair to only give discounts to people who ask for them and charge other customers the full price. If we think it's a good idea to discount the prices we will lower them for everyone.

We don't and it's unlikely to change in foreseeable future. Main reasons: -accounting/organizational overhead -our belief that affiliate programs remove incentives for honest reviews

We might be willing to pay for/give free copies for reviews/educational material etc. Feel free to contact us about it. We will not make any deal that provide incentives for a positive/good review as we want our customers get honest opinions about Pio. Not a single review/video posted about Pio by 3rd parties is paid for. We want to keep it this way.

We are happy to make the following deals: -If you are a content maker with some following we may send you a free license in exchange of a promise of an honest look at the software and mentioning it/making a review if you like it. The expectactions end there. We won't send more licenses in exchange for more reviews nor we will pressure you to publish anything. -Bulk purchases: if you are buying a lot of licensing we will give you a discount -Cross advertising: if we like what you are doing and you like what we are doing it might be good for both sides to mention that to our user bases. -Incorporating new formats/feautes in Pio: if you would like to make your software compatible with our (by implementing import/export of common format etc.) you are very welcome to talk to us about it.

Currently we are not making any kind of affiliate/resale deals.

Please don't contact us if you are selling any of the following: -advertising -web analytics -SEO services -Website "optimization"

If we need any of the above we will look for it ourselves. -punter11235#1235 on Discord -tell us who you are, outline what you want us to do and what you can offer in return

You probably can't. Pio is a succesful project that doesn't need financing and which we still like working on. If you are serious about buying it you will need:
-a lot of money (has to be life-changing for us)
-willingness to pay for conducting talks/disclosing business information like number of customers, current state of development etc.

We will not talk about selling the company if you don't prove that you are serious about it (this means paying). We already wasted too much time dealing with wannabe investors.