{
  "title": "Solitaire win rates: corrected player outcomes and solver ceilings",
  "source": "https://playsolitaire.io/solitaire-win-rates",
  "methodology": "https://playsolitaire.io/research/gameplay-methodology",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "citation": "PlaySolitaire.io Win-Rate Observatory (win-rates-v2-2026-08-05, CC BY 4.0) — https://playsolitaire.io/solitaire-win-rates",
  "datasetVersion": "win-rates-v2-2026-08-05",
  "methodologyVersion": 2,
  "series": "corrected-attempt-lifecycle",
  "asOf": "2026-08-06T06:59:59.999Z",
  "period": {
    "startsAt": "2026-07-15T12:50:26.000Z",
    "startsBefore": "2026-08-04T07:00:00.000Z",
    "outcomesBefore": "2026-08-06T07:00:00.000Z",
    "display": "starts July 15–August 3, 2026; outcomes observed through August 5",
    "shortDisplay": "Jul 15–Aug 3, 2026",
    "maturityHours": 48
  },
  "uncertainty": "Two-sided 95% Wilson binomial interval; displayed bounds are rounded to one decimal percentage point.",
  "publicationFloor": 500,
  "entries": [
    {
      "id": "klondike-draw1",
      "label": "Klondike — Draw 1",
      "href": "/",
      "cohort": "klondike-draw1",
      "status": "PUBLISHED",
      "measured": {
        "starts": 138759,
        "wins": 51334,
        "ratePercent": 37,
        "rateDisplay": "37.0%",
        "interval95": {
          "lowPercent": 36.7,
          "highPercent": 37.2
        },
        "intervalDisplay": "36.7–37.2%",
        "startsDisplay": "138,759",
        "winsDisplay": "51,334"
      },
      "solver": {
        "value": 80,
        "display": "≈ 79–82%",
        "kind": "literature",
        "n": null,
        "script": null,
        "note": "thoughtful-play estimate from the solitaire literature; we own no Klondike solver ceiling"
      },
      "caveat": "Unlimited undo included; solvability is the published thoughtful-play estimate for Draw 1."
    },
    {
      "id": "klondike-draw3",
      "label": "Klondike — Draw 3",
      "href": "/solitaire-turn-3",
      "cohort": "klondike-draw3",
      "status": "PUBLISHED",
      "measured": {
        "starts": 12190,
        "wins": 4634,
        "ratePercent": 38,
        "rateDisplay": "38.0%",
        "interval95": {
          "lowPercent": 37.2,
          "highPercent": 38.9
        },
        "intervalDisplay": "37.2–38.9%",
        "startsDisplay": "12,190",
        "winsDisplay": "4,634"
      },
      "solver": null,
      "caveat": "Players self-select Draw 3, so this is not a same-player comparison with Draw 1."
    },
    {
      "id": "spider-1-suits",
      "label": "Spider — 1 suit",
      "href": "/spider-solitaire",
      "cohort": "spider-1-suits",
      "status": "PUBLISHED",
      "measured": {
        "starts": 3347,
        "wins": 2012,
        "ratePercent": 60.1,
        "rateDisplay": "60.1%",
        "interval95": {
          "lowPercent": 58.4,
          "highPercent": 61.8
        },
        "intervalDisplay": "58.4–61.8%",
        "startsDisplay": "3,347",
        "winsDisplay": "2,012"
      },
      "solver": {
        "value": 100,
        "display": "Practically every deal",
        "kind": "literature",
        "n": null,
        "script": null
      },
      "caveat": ""
    },
    {
      "id": "spider-2-suits",
      "label": "Spider — 2 suits (Random)",
      "href": "/spider-solitaire-2-suits",
      "cohort": "spider-2-suits-current-random",
      "status": "PUBLISHED",
      "measured": {
        "starts": 1566,
        "wins": 275,
        "ratePercent": 17.6,
        "rateDisplay": "17.6%",
        "interval95": {
          "lowPercent": 15.8,
          "highPercent": 19.5
        },
        "intervalDisplay": "15.8–19.5%",
        "startsDisplay": "1,566",
        "winsDisplay": "275"
      },
      "solver": {
        "value": 100,
        "display": "Published verified pool: 90 of 90",
        "kind": "exact-exhaustive",
        "n": 90,
        "script": "scripts/spider/build-verified-pool.ts",
        "note": "applies only to the published spider-2s-v1 pool, not Random deals"
      },
      "caveat": "Current unfiltered Random games only; legacy Random and verified difficulty tiers are excluded."
    },
    {
      "id": "spider-4-suits",
      "label": "Spider — 4 suits",
      "href": "/spider-solitaire-4-suits",
      "cohort": "spider-4-suits",
      "status": "PUBLISHED",
      "measured": {
        "starts": 843,
        "wins": 174,
        "ratePercent": 20.6,
        "rateDisplay": "20.6%",
        "interval95": {
          "lowPercent": 18,
          "highPercent": 23.5
        },
        "intervalDisplay": "18.0–23.5%",
        "startsDisplay": "843",
        "winsDisplay": "174"
      },
      "solver": {
        "value": 90,
        "display": "Most deals — if the line can be found",
        "kind": "literature",
        "n": null,
        "script": null
      },
      "caveat": ""
    },
    {
      "id": "freecell",
      "label": "FreeCell",
      "href": "/freecell",
      "cohort": "freecell",
      "status": "PUBLISHED",
      "measured": {
        "starts": 4426,
        "wins": 1573,
        "ratePercent": 35.5,
        "rateDisplay": "35.5%",
        "interval95": {
          "lowPercent": 34.1,
          "highPercent": 37
        },
        "intervalDisplay": "34.1–37.0%",
        "startsDisplay": "4,426",
        "winsDisplay": "1,573"
      },
      "solver": {
        "value": 99.997,
        "display": "31,999 of 32,000 (99.997%)",
        "kind": "catalog",
        "n": 32000,
        "script": null,
        "note": "the original Microsoft catalog; the modern 1,000,000-deal catalog is ≈99.999%"
      },
      "caveat": "the original Microsoft catalog; the modern 1,000,000-deal catalog is ≈99.999%"
    },
    {
      "id": "tripeaks",
      "label": "TriPeaks",
      "href": "/tripeaks-solitaire",
      "cohort": "tripeaks",
      "status": "INCONCLUSIVE_LOW_VOLUME",
      "measured": null,
      "solver": {
        "value": 96.6,
        "display": "96.6%",
        "kind": "exact-exhaustive",
        "n": 1000,
        "script": "scripts/bench-tripeaks.ts"
      },
      "caveat": ""
    },
    {
      "id": "pyramid",
      "label": "Pyramid",
      "href": "/pyramid-solitaire",
      "cohort": "pyramid",
      "status": "INCONCLUSIVE_LOW_VOLUME",
      "measured": null,
      "solver": {
        "value": 65.8,
        "display": "65.8%",
        "kind": "exact-exhaustive",
        "n": 1520,
        "script": null,
        "note": "one-off analysis; bench harness not yet recreated"
      },
      "caveat": "deals served on this site are pre-verified winnable — measured rates are on the curated pool"
    },
    {
      "id": "golf",
      "label": "Golf (strict rules)",
      "href": "/golf-solitaire",
      "cohort": "golf",
      "status": "INCONCLUSIVE_LOW_VOLUME",
      "measured": null,
      "solver": {
        "value": 27,
        "display": "≈ 27%",
        "kind": "exact-exhaustive",
        "n": 2000,
        "script": "scripts/bench-golf.ts"
      },
      "caveat": "deals served on this site are pre-verified winnable — measured rates are on the curated pool"
    },
    {
      "id": "yukon",
      "label": "Yukon",
      "href": "/yukon-solitaire",
      "cohort": "yukon",
      "status": "INCONCLUSIVE_LOW_VOLUME",
      "measured": null,
      "solver": {
        "value": 75,
        "display": "≈ 75%",
        "kind": "budgeted-lower-bound",
        "n": null,
        "script": null,
        "note": "solver finds a full line on roughly three of four random deals within budget"
      },
      "caveat": "solver finds a full line on roughly three of four random deals within budget"
    },
    {
      "id": "alaska",
      "label": "Alaska",
      "href": "/alaska-solitaire",
      "cohort": "alaska",
      "status": "INCONCLUSIVE_LOW_VOLUME",
      "measured": null,
      "solver": {
        "value": 80,
        "display": "≈ 80%",
        "kind": "budgeted-lower-bound",
        "n": null,
        "script": null,
        "note": "solver finds a full line on about four of five random deals within budget"
      },
      "caveat": "solver finds a full line on about four of five random deals within budget"
    },
    {
      "id": "scorpion",
      "label": "Scorpion",
      "href": "/scorpion-solitaire",
      "cohort": "scorpion",
      "status": "INCONCLUSIVE_LOW_VOLUME",
      "measured": null,
      "solver": {
        "value": 12.8,
        "display": "≥ 12.8%",
        "kind": "budgeted-lower-bound",
        "n": 1000,
        "script": "scripts/bench-scorpion.ts",
        "note": "224 of 1,000 deals undecided at the search budget"
      },
      "caveat": "224 of 1,000 deals undecided at the search budget"
    },
    {
      "id": "wasp",
      "label": "Wasp",
      "href": "/wasp-solitaire",
      "cohort": "wasp",
      "status": "INCONCLUSIVE_LOW_VOLUME",
      "measured": null,
      "solver": {
        "value": 77.9,
        "display": "≥ 77.9%",
        "kind": "budgeted-lower-bound",
        "n": 1000,
        "script": "scripts/bench-scorpion.ts"
      },
      "caveat": ""
    },
    {
      "id": "fortythieves",
      "label": "Forty Thieves",
      "href": "/forty-thieves-solitaire",
      "cohort": "fortythieves",
      "status": "INCONCLUSIVE_LOW_VOLUME",
      "measured": null,
      "solver": {
        "value": 7.7,
        "display": "≥ 7.7%",
        "kind": "budgeted-lower-bound",
        "n": 1000,
        "script": "scripts/bench-fortythieves.ts",
        "note": "923 of 1,000 deals unresolved by the bounded search (922 hit the 2M-node budget; 1 ended without a winning line); avg best line banks 40.6 of 104"
      },
      "caveat": "923 of 1,000 deals unresolved by the bounded search (922 hit the 2M-node budget; 1 ended without a winning line); avg best line banks 40.6 of 104"
    },
    {
      "id": "crescent",
      "label": "Crescent",
      "href": "/crescent-solitaire",
      "cohort": "crescent",
      "status": "INCONCLUSIVE_LOW_VOLUME",
      "measured": null,
      "solver": {
        "value": 45,
        "display": "≥ 45%",
        "kind": "budgeted-lower-bound",
        "n": 1000,
        "script": "scripts/bench-crescent.ts",
        "note": "with all 3 shuffles; per-shuffle floors 5.8/13.0/26.9/45.0% and unresolved counts 942/870/731/550 at the bounded search limits; avg best line banks 102.2 of 104"
      },
      "caveat": "with all 3 shuffles; per-shuffle floors 5.8/13.0/26.9/45.0% and unresolved counts 942/870/731/550 at the bounded search limits; avg best line banks 102.2 of 104"
    },
    {
      "id": "canfield",
      "label": "Canfield",
      "href": "/canfield-solitaire",
      "cohort": "canfield",
      "status": "INCONCLUSIVE_LOW_VOLUME",
      "measured": null,
      "solver": {
        "value": 33.1,
        "display": "≥ 33.1%",
        "kind": "budgeted-lower-bound",
        "n": 1000,
        "script": "scripts/bench-canfield.ts",
        "note": "441 of 1,000 proven lost within the 3-redeal search cap (play allows unlimited); 228 undecided at the 2M-node budget; avg best line banks 27.4 of 52 — $136.75 at the 1890s casino payout"
      },
      "caveat": "441 of 1,000 proven lost within the 3-redeal search cap (play allows unlimited); 228 undecided at the 2M-node budget; avg best line banks 27.4 of 52 — $136.75 at the 1890s casino payout"
    },
    {
      "id": "eightoff",
      "label": "Eight Off",
      "href": "/eight-off-solitaire",
      "cohort": "eightoff",
      "status": "INCONCLUSIVE_LOW_VOLUME",
      "measured": null,
      "solver": {
        "value": 97.7,
        "display": "≥ 97.7%",
        "kind": "budgeted-lower-bound",
        "n": 1000,
        "script": "scripts/bench-eightoff.ts",
        "note": "0 of 1,000 proven lost; 23 undecided at the 2M-node budget; avg best line banks 51.5 of 52"
      },
      "caveat": "0 of 1,000 proven lost; 23 undecided at the 2M-node budget; avg best line banks 51.5 of 52"
    },
    {
      "id": "russian",
      "label": "Russian",
      "href": "/russian-solitaire",
      "cohort": "russian",
      "status": "INCONCLUSIVE_LOW_VOLUME",
      "measured": null,
      "solver": {
        "value": 7,
        "display": "≈ 7%",
        "kind": "exact-exhaustive",
        "n": 2000,
        "script": "scripts/bench-russian.ts"
      },
      "caveat": ""
    }
  ]
}
