Three Of A Kind: How Rank?
Three of a kind is the fourth-ranked hand in standard poker hand hierarchies, sitting directly above two pair and immediately below a straight, and its internal ranking is resolved first by the triplet's face value, then by the two kickers in strict descending order. That is the entire mechanic. Anyone who tells you otherwise is either running a rigged client or has never sat through a hand history review with real money on the line. 💥
The confusion starts because casual players conflate the category rank of three of a kind with the ranking of individual hands inside that category. Both matter, and both follow a deterministic hierarchy that every hand ranking system worth auditing enforces at the engine level. Get this wrong at the payout layer and you are bleeding money to collusion rings who farm edge cases all day long.

Triplet Value Dominates Everything
When two players both hold three of a kind, the higher triplet wins outright. Period. A trio of queens crushes a trio of nines no matter what surrounds them. The kicker only enters the equation when the triplet ranks are identical, which in a single-deck game means the two players are sharing board cards on a community variant. In a heads-up showdown on the river, that scenario resolves down to the two remaining cards in each player's holding.
This is where the kicker hierarchy becomes the real battleground. Compare the highest side card first, then the second. If both kickers match, the pot is chopped. No exceptions, no "closest to the button" nonsense, no dealer discretion. Any platform that introduces ambiguity here is either incompetent or deliberately farming confusion to delay payouts. 🔪

Board Play and the Shared Triplet Trap
Community card variants create the nastiest edge case in the book: the board itself delivers the triplet. Everyone still standing at showdown now holds three of a kind, and the hand collapses into a pure kicker contest using hole cards. Two players with an ace kicker split the pot; the player holding a king kicker is drawing dead to a chop he cannot reach. Audit your RNG and your payout engine against this exact spot, because this is where three of a kind ranking disputes actually generate support tickets and chargebacks.
Watch the trap where a player holds a pocket pair that matches the board triplet. That is quads, not trips, and the hand evaluator must never collapse those two states into one comparison path. A sloppy evaluator that treats a full house built from trips as a plain triplet will misrank against a straight and hand the pot to the wrong stack. 🎯
Evaluator Order and Why It Breaks
Most hand evaluators process cards left to right and bucket them by frequency. The correct order is: detect the triplet bucket first, then extract the two highest remaining cards, then compare the tuple (triplet_rank, kicker_one, kicker_two) lexicographically. Skimp on the lexicographic step and you get a comparator that returns true for both directions, which in a multi-way pot silently awards the pot to whichever seat the loop hit first. That is not a bug you find in QA. That is a bug you find after a whale walks.
The kicker extraction must pull from the full seven-card pool in community games, deduplicated, sorted descending, with the triplet's three cards excluded before the top two are lifted. Miss the deduplication and you hand a player his own triplet card as a kicker, inflating his hand value above a legitimate opponent holding the same trips with a genuine side card.
Payout Math Tied to Rank Precision
Every integer step in the ranking tuple maps to a distinct pot distribution in split scenarios. A comparator that rounds or truncates the kicker comparison produces a distribution shift of roughly the pot divided by the number of tied seats, repeated across thousands of hands. Run the numbers on your own traffic and the leak is not subtle. It is a slow, grinding bleed that only shows up when someone finally pulls the hand history export and diffs it against the evaluator's output line by line. ⚙️
Lock the comparator to strict lexicographic order, force the deduplication step, and test the shared-triplet board case until it fails to fail. Everything downstream of that tuple comparison inherits its correctness, and nothing upstream forgives a single off-by-one in the kicker extraction order.