{
  "tool_id": "art-458-attribute-sampling-plan",
  "note": "golden_hash filled by golden-parity.test.mjs --update; output_payload filled by fill-fixture-payloads.mjs. Vector 1: standard zero-EDR Poisson plan. Vector 2: nonzero EDR expansion on a small population. Vector 3: TDR<=EDR indefensible -> full-census fallback (kill-criteria guard).",
  "vectors": [
    {
      "name": "standard_95_5_tdr_zero_edr",
      "description": "95% confidence, 5% tolerable deviation rate, zero expected deviation, 1000-item population -- zero-EDR Poisson sample size, systematic interval selection over the declared population_hash.",
      "policy_parameters": {
        "confidence_level": 95,
        "population_size": 1000,
        "tolerable_deviation_rate": 5,
        "expected_deviation_rate": 0,
        "population_hash": "abc123"
      },
      "output_payload": {
        "confidence_level": 95,
        "population_size": 1000,
        "tolerable_deviation_rate": 5,
        "expected_deviation_rate": 0,
        "population_hash": "abc123",
        "method": "poisson_attribute_sampling",
        "expansion_factor": 1,
        "sample_size": 59,
        "interval": 16,
        "start_offset": 0,
        "selected_indices": [
          0,
          16,
          32,
          48,
          64,
          80,
          96,
          112,
          128,
          144,
          160,
          176,
          192,
          208,
          224,
          240,
          256,
          272,
          288,
          304,
          320,
          336,
          352,
          368,
          384,
          400,
          416,
          432,
          448,
          464,
          480,
          496,
          512,
          528,
          544,
          560,
          576,
          592,
          608,
          624,
          640,
          656,
          672,
          688,
          704,
          720,
          736,
          752,
          768,
          784,
          800,
          816,
          832,
          848,
          864,
          880,
          896,
          912,
          928
        ]
      },
      "golden_hash": "be5b894b39948f4da6b6670d0e377618e9fa8183b9830ec49f20c42e7e1124c6"
    },
    {
      "name": "capped_small_population",
      "description": "99% confidence, 10% TDR, 2% EDR (expansion factor applies) against a small 20-item population -- sample size caps at population_size.",
      "policy_parameters": {
        "confidence_level": 99,
        "population_size": 20,
        "tolerable_deviation_rate": 10,
        "expected_deviation_rate": 2,
        "population_hash": "pop-hash-002"
      },
      "output_payload": {
        "confidence_level": 99,
        "population_size": 20,
        "tolerable_deviation_rate": 10,
        "expected_deviation_rate": 2,
        "population_hash": "pop-hash-002",
        "method": "poisson_attribute_sampling",
        "expansion_factor": 1.25,
        "sample_size": 20,
        "interval": 1,
        "start_offset": 0,
        "selected_indices": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19
        ]
      },
      "golden_hash": "0080daa8e2ca4132f2ac1ecc5f0185bd8589962b61fdd3cf12dfba5bcbed338f"
    },
    {
      "name": "indefensible_full_census",
      "description": "TDR (2%) <= EDR (5%) -- statistically indefensible sampling plan; kernel reframes to full-population census per the kill-criteria guard rather than shipping a bad plan.",
      "policy_parameters": {
        "confidence_level": 90,
        "population_size": 15,
        "tolerable_deviation_rate": 2,
        "expected_deviation_rate": 5,
        "population_hash": "pop-hash-003"
      },
      "output_payload": {
        "confidence_level": 90,
        "population_size": 15,
        "tolerable_deviation_rate": 2,
        "expected_deviation_rate": 5,
        "population_hash": "pop-hash-003",
        "method": "full_census_fallback",
        "expansion_factor": null,
        "sample_size": 15,
        "interval": 1,
        "start_offset": 0,
        "selected_indices": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14
        ]
      },
      "golden_hash": "dd17341227374851dd49d0090e066f8363dcdfd1730c7945029959209a471e5e"
    }
  ]
}
