{
  "tool_id": "art-471-disposition-sampling-frame",
  "note": "golden_hash filled by golden-parity.test.mjs --update; output_payload filled by fill-fixture-payloads.mjs. Vector 1: standard 95/5/0 plan reused from art-458, single reviewer. Vector 2: same population, three-reviewer roster -- round-robin workload split. Vector 3: small population that trips the art-458 indefensible-plan full-census fallback, carried through unchanged.",
  "vectors": [
    {
      "name": "single_reviewer_standard_plan",
      "description": "95% confidence, 5% TDR, zero EDR, 1000-item disposition population, single reviewer -- entire sample assigned to one roster entry.",
      "policy_parameters": {
        "confidence_level": 95,
        "disposition_population_size": 1000,
        "tolerable_deviation_rate": 5,
        "expected_deviation_rate": 0,
        "disposition_population_hash": "abc123",
        "reviewer_roster": [
          "reviewer_1"
        ]
      },
      "output_payload": {
        "disposition_population_size": 1000,
        "disposition_population_hash": "abc123",
        "method": "poisson_attribute_sampling",
        "confidence_level": 95,
        "tolerable_deviation_rate": 5,
        "expected_deviation_rate": 0,
        "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
        ],
        "reviewer_roster": [
          "reviewer_1"
        ],
        "reviewer_workload": [
          {
            "reviewer_id": "reviewer_1",
            "disposition_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": "7b35266276b2d36dc08d256f28347692a075044ccb283a6517be8a7169af8682"
    },
    {
      "name": "three_reviewer_roundrobin_split",
      "description": "Same population and plan as vector 1, but a three-reviewer roster -- deterministic round-robin workload allocation over the selection order.",
      "policy_parameters": {
        "confidence_level": 95,
        "disposition_population_size": 1000,
        "tolerable_deviation_rate": 5,
        "expected_deviation_rate": 0,
        "disposition_population_hash": "abc123",
        "reviewer_roster": [
          "alice",
          "bob",
          "carol"
        ]
      },
      "output_payload": {
        "disposition_population_size": 1000,
        "disposition_population_hash": "abc123",
        "method": "poisson_attribute_sampling",
        "confidence_level": 95,
        "tolerable_deviation_rate": 5,
        "expected_deviation_rate": 0,
        "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
        ],
        "reviewer_roster": [
          "alice",
          "bob",
          "carol"
        ],
        "reviewer_workload": [
          {
            "reviewer_id": "alice",
            "disposition_indices": [
              0,
              48,
              96,
              144,
              192,
              240,
              288,
              336,
              384,
              432,
              480,
              528,
              576,
              624,
              672,
              720,
              768,
              816,
              864,
              912
            ]
          },
          {
            "reviewer_id": "bob",
            "disposition_indices": [
              16,
              64,
              112,
              160,
              208,
              256,
              304,
              352,
              400,
              448,
              496,
              544,
              592,
              640,
              688,
              736,
              784,
              832,
              880,
              928
            ]
          },
          {
            "reviewer_id": "carol",
            "disposition_indices": [
              32,
              80,
              128,
              176,
              224,
              272,
              320,
              368,
              416,
              464,
              512,
              560,
              608,
              656,
              704,
              752,
              800,
              848,
              896
            ]
          }
        ]
      },
      "golden_hash": "a53e3e17e1fd8801a9c500e7ec47f7b26bb1722c6e699c9ab5c48a9a2cd21e70"
    },
    {
      "name": "indefensible_plan_full_census_carried_through",
      "description": "TDR (2%) <= EDR (5%) on a 15-item population -- art-458's kill-criteria guard reframes to full-population census; this node carries that fallback through unchanged and still allocates workload across the roster.",
      "policy_parameters": {
        "confidence_level": 90,
        "disposition_population_size": 15,
        "tolerable_deviation_rate": 2,
        "expected_deviation_rate": 5,
        "disposition_population_hash": "pop-hash-003",
        "reviewer_roster": [
          "reviewer_1",
          "reviewer_2"
        ]
      },
      "output_payload": {
        "disposition_population_size": 15,
        "disposition_population_hash": "pop-hash-003",
        "method": "full_census_fallback",
        "confidence_level": 90,
        "tolerable_deviation_rate": 2,
        "expected_deviation_rate": 5,
        "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
        ],
        "reviewer_roster": [
          "reviewer_1",
          "reviewer_2"
        ],
        "reviewer_workload": [
          {
            "reviewer_id": "reviewer_1",
            "disposition_indices": [
              0,
              2,
              4,
              6,
              8,
              10,
              12,
              14
            ]
          },
          {
            "reviewer_id": "reviewer_2",
            "disposition_indices": [
              1,
              3,
              5,
              7,
              9,
              11,
              13
            ]
          }
        ]
      },
      "golden_hash": "430f90f39c0902bc8f3a5756a8e5e525b4daf51746e492234e05ef36e1bd67f1"
    }
  ]
}
