PLO5 6-max — 100bb — technical details
6-max five-card PLO preflop solve at 100bb effective with a 1.2bb ante — frequencies and EVs for every hand class on every action.
Overview
- Game
- Pot-limit Omaha 5-card · 6-max
- Stack depth
- 100bb effective
- Hands
- 134,459 PLO5 hand classes (suit-isomorphic)
- Solver
- HydraSolver
- Price
- $100, one-time
Tree
- Raise sizes
- Pot-limit
- Rake
- 5%, 1bb cap, 1.2bb ante
- Streets
- Preflop only
Solver run
- Solver game
- Omaha 5 Card Hi
- Players
- 6
- Stacks
- 99.8bb
- Rake
- 5% up to 1bb · postflop pots only
- Streets saved
- 1 street
- Iterations
- 52,948,218
- Solve time
- 71h 40m
- Save format
- 2
- Saved solve
- plo5-6max-100bb-r5c1.hds · 3.9 GB · saved 2026-10-25 22:56
File
- Format
- Zip of per-node gzipped JSON
- Download
- PLO5-6max-100bb-ante1.2-rake5-1bbcap-json.zip · 3.7 GB
- Opens with
- Any JSON tooling — gunzip a node file and parse it
What's inside
- README.txt
- How the pack is laid out and read
- index.json
- Every preflop decision node and its actions
- nodes/<line>.json.gz
- One file per decision node, named by its action line
How strategies are stored
- Each node file holds every action available at that node.
- Each action lists its hands as hand:freq:ev — the hand class, how often it takes the action, and its EV.
- Hands are suit-isomorphic classes, so one entry stands for every suit permutation of it.
Using the data
- Unzip the download. Everything sits in one folder named after the pack.
- Open index.json to find a spot: each node lists its action line (history), the player to act (actor), the actions available and its file under nodes/.
- Gunzip that node file and parse the JSON. "#meta" holds the line, the actor and each action's share of the range (poolPct); every other key is one action.
- Split an action's value on commas, then each entry on colons: hand, frequency (0 to 1) and EV in big blinds. EV is empty for hands that never reach the node.
- One hand's frequencies across a node's actions sum to 1, so the node file alone gives the full strategy for every hand.
Python: read one strategy
import gzip, json
from pathlib import Path
pack = Path("PLO5-6max-100bb-ante1.2-rake5-1bbcap-json")
# Every decision node: who acts, the actions, and the node's file.
index = json.loads((pack / "index.json").read_text())
print(len(index["nodes"]), "nodes")
# One node: the first decision, LJ to act.
node = json.loads(gzip.decompress((pack / "nodes/root.json.gz").read_bytes()))
print(node["#meta"]["actor"], "to act")
for action, rng in node.items():
if action == "#meta":
continue
for entry in rng.split(","):
hand, freq, *ev = entry.split(":")
freq = float(freq)
ev = float(ev[0]) if ev and ev[0] else None # bb; None if unreached
# ... your analysis here
print(action, "parsed")