Board texture
Board texture — how connected and same-suited the community cards are — decides how sharply ranges split into strong and weak. A dry board like K♦7♠2♣ has no flush draw and no realistic straight draw; whoever has the king (or an overpair) is usually just ahead, and there's little for either range to catch up with on later streets. A wet board like 9♥8♥7♥ is monotone and maximally connected — flushes, straights, and combo draws are live for both ranges, and a hand that's ahead now can easily be behind by the river.
This app's boardWetness() heuristic scores 0 (driest) to 1 (wettest) by blending two components equally: how concentrated the board is in one suit, and how tightly its ranks cluster together (a 3-card span of 2 is maximally connected; a span of 10+ is maximally spread out). It's the same function the postflop range-narrowing model uses to decide whether to apply a draw-equity bonus when estimating a villain's continuing range.
Try it: deal a flop
Step across four textures and watch the live boardWetness() score move with them. The dry K♦7♠2♣ (0.04) and the soaked 9♥8♥7♥ (0.92) sit at the two ends; the boards between them are where most real decisions live.
Range advantage is who benefits more from a texture, based purely on preflop ranges. The raiser's range is capped differently than the caller's — more big pairs, fewer small ones — so it tends to have the edge on high, dry boards (K72 favors the range with more kings and overpairs) while the caller's wider, more speculative range catches up on low, connected boards it defended. That's why c-bet (continuation bet — the preflop raiser betting again on the flop, continuing the story preflop aggression started) strategy leans on texture as much as hand strength: the same top pair can be a bet on one board and a check on another, purely from who the texture favors before either hand is considered.