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_startcarrying methodology version 2 and a complete, stable game context. - Win
- At most one valid
game_wonjoined 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
- Run
scripts/win-rates-v2.sqlin EU datasetanalytics_361367397with the recorded cutover, cohort and observation bounds. - Require the complete aggregate quality ledger and zero hard-gate failures.
- Generate the reviewed manifest with
scripts/gen-win-rates-v2.mjs. - Generate JSON, CSV and charts from that manifest, then require exact cross-format parity.
Series and correction history
| Date | Change | Reason 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.