• v3.19.0 61e960ba5f

    v3.19.0 - Your Pool This Patch
    All checks were successful
    CI / build-and-test (push) Successful in 2m6s
    Stable

    joeyr released this 2026-08-08 14:06:05 -05:00 | 6 commits to main since this release

    Needs a published-data API key. This section reads the same key as every other artifact — paste it in Settings if you have not already, or it stays on the no-data placeholder.

    Added

    • "Your Pool This Patch" — a third pick list, and the only one that can be on
      screen while you are still deciding.
      Suggested Picks cannot compute anything
      until the enemy laner locks, because Riot never exposes enemy hovers; that is
      most of champ select, and the section spends it showing "waiting for the enemy
      laner". The new list needs only your assigned role, so it fills that window.

      It ranks your configured pool by each champion's own measured win rate at your
      role this patch, from the champion-synergies.json artifact — Riot match data,
      a genuinely independent second opinion from the op.gg tier badge shown beside
      it. Every row carries the games behind it, and the section names the sample it
      came from (NA solo queue, Gold-Emerald), because those are one ladder's numbers
      and you may not be on it.

      Ranking is by a shrunk win rate — pulled toward 50% by games / (games + 400)
      — so 53% over 900 games outranks 56% over 60. The displayed rate stays raw; only
      the ordering is shrunk.

    • Ally pairings are shown as evidence, and deliberately do not rank anything.
      When a teammate hovers or locks, a row can carry a line like 54.7% with Thresh · 192 games for pairs with at least 50 games behind them.

      That restraint is the main design decision in this release, and it is measured
      rather than stylistic. The artifact's headline content is 100k+ ally pairing
      rows, and the obvious feature ranks picks by them. Against the published patch
      16.15 file, each pair's win rate was compared to an additive baseline (the
      champion's own rate plus the ally's own rate minus 50) and the spread of those
      residuals compared to the binomial noise expected if pairing did not matter at
      all — with the null corrected for a pair's games being a subset of both
      champions' totals, which otherwise widens the noise band and manufactures a
      signal:

      Games floor Pairs Observed SD Noise-only SD
      ≥ 20 9,948 8.65 8.65
      ≥ 50 1,828 5.76 5.82
      ≥ 100 200 3.80 4.23

      Zero excess variance at every floor; a 3-point pairing effect would have shown
      as 5.2 in the last row. The consequence is not that the ranking needed better
      tuning — a shrinkage estimator fitted to this data shrinks every pair back to
      its baseline, so the optimal ranker is the one that ignores the rows. Ranking
      on them would have sorted champ-select advice by coin flips, and the top of
      that list is visibly nonsense: a 35-game Lucian+Amumu pair at 77%. Even the ten
      best-sampled pairs in 9.5 MB — Lucian+Nami among them — have confidence
      intervals of ±5 to ±7 points around rates 1-4 points above baseline.

      So the pair line is a measurement with its sample attached, phrased
      symmetrically ("with Thresh", never "thanks to Thresh" — both champions won or
      lost the same games), and it never touches the sort. Live against production:
      Syndra shows the best pairings in a five-champion mid pool and ranks fourth,
      because its own record is 48.4%.

      This is a statement about sample size, not about the game. The producer samples
      ~21k matches per patch and does not carry them across a rollover; if that rises
      roughly 5-7x, re-run the residual test before assuming the finding holds.

    • champion-synergies.json is now consumed — eight of the ten published
      artifacts have a consumer here. It is much the largest at 9.5 MB, which the
      existing machinery absorbed better than expected: 450 KB on the wire (the API
      serves it brotli), ~1 ms to validate under the sampled posture where a strict
      whole-file parse of 103k rows would cost ~125 ms, and 9.2 MB retained — pruned
      to 0.3 MB, since the section reads about 2% of the pair rows.

      It refuses an off-patch copy, matching counters and opposite to damage and
      benchmarks: last patch's win rates are not a degraded answer to "how is this
      champion doing now", they answer a different question. On the morning of a
      patch, before the crawler has caught up, the section goes quiet rather than
      showing yesterday's meta as today's.

      Entries below 50 games are dropped outright rather than kept and filtered at
      the call site — the artifact publishes everything down to games: 1, so that
      judgement had to be made somewhere, and a caller must not be able to rank on a
      two-game record by forgetting a check.

    Downloads