{
  "schemaVersion": 1,
  "generatedOn": "2026-09-03",
  "generatedBy": "scripts/generate-poker-shuffle-evidence-data.mjs",
  "title": "Pocket-pair exact-binomial detection-power reference",
  "scope": "One preregistered count of hero pocket pairs in complete consecutive two-card Texas hold’em deals.",
  "nullModel": {
    "event": "The hero receives two cards of the same rank.",
    "favorableTwoCardCombinations": 78,
    "totalTwoCardCombinations": 1326,
    "probability": 0.058823529411764705,
    "derivation": "13 ranks × C(4,2) = 78; C(52,2) = 1,326; 78 / 1,326 = 1 / 17.",
    "assumptions": [
      "Each recorded deal belongs to the declared population and includes the hero’s two dealt cards.",
      "The null treats deals as independent uniform shuffles of a standard 52-card deck.",
      "The event, sample window, stopping rule, and number of tests are fixed before outcomes are inspected."
    ]
  },
  "testRule": {
    "familyAlpha": 0.05,
    "plannedTestsForPublishedRows": 1,
    "construction": "Equal-tail exact binomial rule with alpha / (2m) in each tail; m is the number of outcome checks fixed in advance.",
    "discreteness": "Cutoffs include only complete tail probabilities within the budget, so the actual false-flag rate can be below 5%."
  },
  "plantedAlternatives": [
    0.04,
    0.08
  ],
  "sources": [
    {
      "name": "UK Gambling Commission, RTS 7 – Generation of random outcomes",
      "url": "https://www.gamblingcommission.gov.uk/standards/remote-gambling-and-software-technical-standards/rts-7-generation-of-random-outcomes",
      "accessed": "2026-09-03",
      "use": "Separates distribution, unpredictability, seeding, scaling/mapping, and non-adaptive behavior."
    },
    {
      "name": "UK Gambling Commission, Testing strategy – Procedure for testing",
      "url": "https://www.gamblingcommission.gov.uk/strategy/testing-strategy-for-compliance-with-remote-gambling-and-software-technical/3-procedure-for-testing",
      "accessed": "2026-09-03",
      "use": "Shows that third-party RNG work includes documentation, source review, raw output, shuffled-deck data, mapping, versions, signatures, and deployment context."
    },
    {
      "name": "NIST SP 800-22 Rev. 1a",
      "url": "https://csrc.nist.gov/pubs/sp/800/22/r1/upd1/final",
      "accessed": "2026-09-03",
      "use": "Supports the boundary that statistical tests are a first step, not certification or a substitute for cryptanalysis."
    },
    {
      "name": "GLI-19, Standards for Interactive Gaming Systems v3.0",
      "url": "https://gaminglabs.com/wp-content/uploads/2020/07/GLI-19-Interactive-Gaming-Systems-v3.0.pdf",
      "accessed": "2026-09-03",
      "use": "Provides separate source-review, statistical-analysis, distribution, independence, RNG-strength, and game-mapping controls."
    }
  ],
  "limitations": [
    "These calculations cannot certify randomness or fairness.",
    "A non-flag does not establish that a shuffle, RNG, implementation, or operator is fair.",
    "A flag does not identify a cause; dependence, logging defects, selection, multiple looks, or model mismatch can also produce it.",
    "Pocket-pair counts ignore card order, rank-specific frequencies, seats, boards, time dependence, entropy, source code, binary identity, and operating controls.",
    "The published power values concern two planted pocket-pair rates only and are not estimates about any product or operator."
  ],
  "rows": [
    {
      "deals": 100,
      "expectedPocketPairs": 5.882353,
      "lowerFlagAtOrBelow": 1,
      "upperFlagAtOrAbove": 12,
      "actualSingleTestFalseFlagRate": 0.031432187414,
      "powerIfTrueRateIs4Percent": 0.087831665024,
      "powerIfTrueRateIs8Percent": 0.105164554732
    },
    {
      "deals": 250,
      "expectedPocketPairs": 14.705882,
      "lowerFlagAtOrBelow": 7,
      "upperFlagAtOrAbove": 23,
      "actualSingleTestFalseFlagRate": 0.041997792162,
      "powerIfTrueRateIs4Percent": 0.214923078538,
      "powerIfTrueRateIs8Percent": 0.273350986198
    },
    {
      "deals": 500,
      "expectedPocketPairs": 29.411765,
      "lowerFlagAtOrBelow": 19,
      "upperFlagAtOrAbove": 41,
      "actualSingleTestFalseFlagRate": 0.045771892013,
      "powerIfTrueRateIs4Percent": 0.468454416202,
      "powerIfTrueRateIs8Percent": 0.458153466548
    },
    {
      "deals": 1000,
      "expectedPocketPairs": 58.823529,
      "lowerFlagAtOrBelow": 44,
      "upperFlagAtOrAbove": 75,
      "actualSingleTestFalseFlagRate": 0.043849598337,
      "powerIfTrueRateIs4Percent": 0.769756907959,
      "powerIfTrueRateIs8Percent": 0.736124631505
    },
    {
      "deals": 2500,
      "expectedPocketPairs": 147.058824,
      "lowerFlagAtOrBelow": 123,
      "upperFlagAtOrAbove": 172,
      "actualSingleTestFalseFlagRate": 0.041220490657,
      "powerIfTrueRateIs4Percent": 0.990133525512,
      "powerIfTrueRateIs8Percent": 0.983781652594
    },
    {
      "deals": 5000,
      "expectedPocketPairs": 294.117647,
      "lowerFlagAtOrBelow": 261,
      "upperFlagAtOrAbove": 328,
      "actualSingleTestFalseFlagRate": 0.047246001551,
      "powerIfTrueRateIs4Percent": 0.999989552601,
      "powerIfTrueRateIs8Percent": 0.999948831383
    },
    {
      "deals": 10000,
      "expectedPocketPairs": 588.235294,
      "lowerFlagAtOrBelow": 542,
      "upperFlagAtOrAbove": 636,
      "actualSingleTestFalseFlagRate": 0.048158366504,
      "powerIfTrueRateIs4Percent": 0.999999999998,
      "powerIfTrueRateIs8Percent": 0.999999999816
    },
    {
      "deals": 50000,
      "expectedPocketPairs": 2941.176471,
      "lowerFlagAtOrBelow": 2837,
      "upperFlagAtOrAbove": 3046,
      "actualSingleTestFalseFlagRate": 0.048069071898,
      "powerIfTrueRateIs4Percent": 1,
      "powerIfTrueRateIs8Percent": 1
    }
  ]
}
