Win-Rate Observatory · methodology v2

How PlaySolitaire measures win rates

This page owns the definitions, filters and uncertainty treatment behind PlaySolitaire’s corrected player win rates. It describes dataset win-rates-v2-2026-08-05; it does not combine measured completion with theoretical solvability.

Definitions

Start
One valid production game_start carrying methodology version 2 and a complete, stable game context.
Win
At most one valid game_won joined to that start. Winning, undoing and winning again still contributes one win.
Open mature start
A start old enough to enter the cohort with no observed terminal event by the observation bound. It remains in the denominator as not won.
Measured completion
Eligible wins divided by eligible mature starts. It describes observed play, not whether every deal had a possible solution.
Solvability
The share of deals for which a winning line exists under the stated rules and evidence method.

How measured completion is calculated

BigQuery deduplicates delivery by (user_pseudo_id, event_id) and joins a lifecycle by (user_pseudo_id, attempt_id). Each eligible attempt has one start, zero or one terminal, no terminal before its start and one stable deal, game, mode and pool context. No raw user, attempt, event or deal identifier appears in the public files.

Practice boards and demos do not emit eligible lifecycle events. Daily games and Klondike winnable or golden pools are excluded. Draw 2 remains an internal cohort. Current Random two-suit Spider is kept separate from legacy Random and every verified difficulty tier.

Sample period, maturity and consent

The inclusive instrumentation cutover is . Published starts run through the exclusive bound , and outcomes are observed through . The primary maturity buffer is 48 hours; 24- and 72-hour reads are retained as sensitivity checks.

Only analytics-granted sessions are observable. The sample therefore does not represent every visitor, and players self-select games, suit counts and draw modes. Unlimited undo is included. These selection effects are limitations, not adjustments made after seeing the results.

A row requires at least 500 eligible starts. Below that floor its public status is INCONCLUSIVE_LOW_VOLUME, and its counts and rate are suppressed rather than rounded into a claim.

Confidence intervals and interpretation

Every published rate includes a two-sided 95% Wilson binomial interval calculated from its exact wins and starts. Rates and bounds are displayed to one decimal percentage point. The interval describes sampling uncertainty within this observed cohort; it does not remove consent bias, player self-selection, device differences or rule and pool differences.

Solvability evidence

Exact means exhaustive search settled every sampled deal. Lower bound means the solver proved wins within a search budget and the true share may be higher. Catalog refers to an established numbered-deal catalog. Literature estimate identifies an external published estimate where PlaySolitaire does not own an exact solver result. None of these figures is a player win rate.

Reproduce the release

  1. Run scripts/win-rates-v2.sql in EU dataset analytics_361367397 with the recorded cutover, cohort and observation bounds.
  2. Require the complete aggregate quality ledger and zero hard-gate failures.
  3. Generate the reviewed manifest with scripts/gen-win-rates-v2.mjs.
  4. Generate JSON, CSV and charts from that manifest, then require exact cross-format parity.

Download the immutable JSON or CSV.

Series and correction history

DateChangeReason and effect
2026-06-30 Methodology v1 frozen at its historical JSON URL. Aggregate event counts could miss initial attempts or repeat a win after undo. The series remains available but is not blended with v2.
2026-08-05 Published win-rates-v2-2026-08-05 as the first corrected attempt-lifecycle release. Replaced the report’s measured series; theoretical solvability conclusions did not change.

No corrections have been recorded against win-rates-v2-2026-08-05.

NM Media

Reviewed by the NM Media editorial team

About