{
  "suite": "ELECTION-01-integrity-negative-controls",
  "protocol": "v0.1.1-draft",
  "contract_ref": "/docs/election01-integrity-contract",
  "contract_sha256_expected": "145046ff15faa3f6d71e07c817f1d68b4a8addcd7bafea6dbb98a44a0ba4227b",
  "contract_sha256_observed": "145046ff15faa3f6d71e07c817f1d68b4a8addcd7bafea6dbb98a44a0ba4227b",
  "contract_sha256_match": true,
  "model_change": false,
  "fitting_claimed": false,
  "predictions_are_stub": true,
  "stub_prediction_invariance_not_production_estimator": true,
  "production_pipeline_invariance_pending": true,
  "l1_m1_scoring_untouched": true,
  "prior_failed_gates_sha256": "9b8d33b65400da2ca7c9d417551cd6d9641644b3014a169c9b3cc73cb6dc80e9",
  "codex_review_ref": "f4c7748b-afc2-4266-9dd4-67b4f198130e",
  "ran_at_utc": "2026-09-10T04:23:35Z",
  "summary": {
    "overall": "PASS",
    "n_tests": 8,
    "n_passed": 8,
    "n_failed": 0
  },
  "tests": [
    {
      "id": "NC1_future_release_rejected",
      "pass": true,
      "detail": {
        "pass": true,
        "cutoff": "2020-09-03",
        "decisions": [
          {
            "record_id": "poll_future",
            "accepted": false,
            "reason": "future_release"
          },
          {
            "record_id": "feature_post_election",
            "accepted": false,
            "reason": "future_release"
          },
          {
            "record_id": "poll_ok",
            "accepted": true,
            "reason": "ok"
          },
          {
            "record_id": "poll_on_cutoff",
            "accepted": true,
            "reason": "ok"
          }
        ],
        "expected": {
          "poll_future": false,
          "feature_post_election": false,
          "poll_ok": true,
          "poll_on_cutoff": true
        }
      },
      "error": null
    },
    {
      "id": "NC2_unavailable_revision_rejected",
      "pass": true,
      "detail": {
        "pass": true,
        "cutoff": "2016-09-08",
        "decisions": [
          {
            "record_id": "rev_late",
            "accepted": false,
            "reason": "unavailable_revision"
          },
          {
            "record_id": "rev_missing",
            "accepted": false,
            "reason": "unavailable_revision"
          },
          {
            "record_id": "rev_flagged",
            "accepted": false,
            "reason": "unavailable_revision"
          },
          {
            "record_id": "rev_ok",
            "accepted": true,
            "reason": "ok"
          }
        ],
        "expected": {
          "rev_late": false,
          "rev_missing": false,
          "rev_flagged": false,
          "rev_ok": true
        }
      },
      "error": null
    },
    {
      "id": "NC3_held_out_label_mutation_invariant",
      "pass": true,
      "detail": {
        "pass": true,
        "ok": true,
        "fitter_refuses_held_out": true,
        "predictions_identical": true,
        "features_identical": true,
        "predictions_sha256": "b5556b93c12d73c7760b0d29830771b18fdf8b2d7d804b290270b1370cb4c0d7",
        "features_sha256": "6c28d1aa02696c2e68bc6ddc8cbad6f192e828ae22a0168f8e0e5cf8509c1798",
        "eval_errors_differ_when_labels_differ": true,
        "frozen_a": {
          "selected_features": [
            "poll_avg_t60",
            "fundamentals"
          ],
          "predictions": {
            "2016": 0.77968,
            "2020": 10.640203
          },
          "predictions_sha256": "b5556b93c12d73c7760b0d29830771b18fdf8b2d7d804b290270b1370cb4c0d7",
          "features_sha256": "6c28d1aa02696c2e68bc6ddc8cbad6f192e828ae22a0168f8e0e5cf8509c1798",
          "fit_config_sha256": "d2402e71e69cef6944ac3ac121b8b937604013a7c20e548a0480a2ae900c9b5b",
          "meta": {
            "model_change": false,
            "fitting_claimed": false,
            "stub": true,
            "protocol": "election01-integrity-v0.1.1-draft"
          }
        },
        "eval_a_mae": 8.2302615,
        "eval_b_mae": 103.9302615
      },
      "error": null
    },
    {
      "id": "NC4_no_election_crosses_train_test",
      "pass": true,
      "detail": {
        "pass": true,
        "good_fold": {
          "ok": true,
          "overlap": [],
          "train": [
            "1968",
            "1972",
            "1976",
            "1980",
            "1984",
            "1988",
            "1992",
            "1996",
            "2000",
            "2004",
            "2008",
            "2012"
          ],
          "test": [
            "2016"
          ],
          "role": "set_disjointness_only",
          "chronology_enforced": false
        },
        "leaky_fold_detected": {
          "ok": false,
          "overlap": [
            "2016"
          ],
          "train": [
            "2008",
            "2012",
            "2016"
          ],
          "test": [
            "2016",
            "2020"
          ],
          "role": "set_disjointness_only",
          "chronology_enforced": false
        },
        "rule": "train ∩ test must be empty; leaky fold must be rejected"
      },
      "error": null
    },
    {
      "id": "NC5_overlapping_samples_not_independent",
      "pass": true,
      "detail": {
        "pass": true,
        "raw_poll_count": 9,
        "independent_count": 6,
        "independent_poll_ids": [
          "p7",
          "p8",
          "p1",
          "p3",
          "p5",
          "p6"
        ],
        "groups": [
          {
            "sample_keys": [
              "pollsterA::sA",
              "pollsterA::sDup"
            ],
            "representative_poll_id": "p7",
            "member_poll_ids": [
              "p7",
              "p9"
            ],
            "collapsed_count": 2
          },
          {
            "sample_keys": [
              "pollsterB::sB"
            ],
            "representative_poll_id": "p8",
            "member_poll_ids": [
              "p8"
            ],
            "collapsed_count": 1
          },
          {
            "sample_keys": [
              "srcA::sample_X"
            ],
            "representative_poll_id": "p1",
            "member_poll_ids": [
              "p1",
              "p2"
            ],
            "collapsed_count": 2
          },
          {
            "sample_keys": [
              "srcB::sample_Y"
            ],
            "representative_poll_id": "p3",
            "member_poll_ids": [
              "p3",
              "p4"
            ],
            "collapsed_count": 2
          },
          {
            "sample_keys": [
              "srcC::sample_Z"
            ],
            "representative_poll_id": "p5",
            "member_poll_ids": [
              "p5"
            ],
            "collapsed_count": 1
          },
          {
            "sample_keys": [
              "srcD::sample_W"
            ],
            "representative_poll_id": "p6",
            "member_poll_ids": [
              "p6"
            ],
            "collapsed_count": 1
          }
        ],
        "uncertain_dependence": [
          {
            "sample_keys": [
              "pollsterA::sA",
              "pollsterB::sB"
            ],
            "houses": [
              "HouseA",
              "HouseB"
            ],
            "overlap_days": 3,
            "action": "flag_uncertain_dependence_not_merged"
          },
          {
            "sample_keys": [
              "pollsterA::sA",
              "srcB::sample_Y"
            ],
            "houses": [
              "HouseA",
              "B"
            ],
            "overlap_days": 3,
            "action": "flag_uncertain_dependence_not_merged"
          },
          {
            "sample_keys": [
              "pollsterA::sDup",
              "pollsterB::sB"
            ],
            "houses": [
              "HouseA",
              "HouseB"
            ],
            "overlap_days": 3,
            "action": "flag_uncertain_dependence_not_merged"
          },
          {
            "sample_keys": [
              "pollsterA::sDup",
              "srcB::sample_Y"
            ],
            "houses": [
              "HouseA",
              "B"
            ],
            "overlap_days": 3,
            "action": "flag_uncertain_dependence_not_merged"
          },
          {
            "sample_keys": [
              "pollsterB::sB",
              "srcB::sample_Y"
            ],
            "houses": [
              "HouseB",
              "B"
            ],
            "overlap_days": 3,
            "action": "flag_uncertain_dependence_not_merged"
          },
          {
            "sample_keys": [
              "srcA::sample_X",
              "srcD::sample_W"
            ],
            "houses": [
              "A",
              "D"
            ],
            "overlap_days": 3,
            "action": "flag_uncertain_dependence_not_merged"
          }
        ],
        "rule": "merge only verified shared/tracker/duplicate; coincident dates flag uncertain, do not merge",
        "adversarial_independent_same_dates_count": 2
      },
      "error": null
    },
    {
      "id": "NC6_identical_eligible_test_cycles",
      "pass": true,
      "detail": {
        "pass": true,
        "matched_comparison": {
          "ok": true,
          "equal_as_sets": true,
          "cycles_a": [
            "2008",
            "2012",
            "2016",
            "2020"
          ],
          "cycles_b": [
            "2008",
            "2012",
            "2016",
            "2020"
          ],
          "only_in_a": [],
          "only_in_b": []
        },
        "mismatched_comparison_detected": {
          "ok": false,
          "equal_as_sets": false,
          "cycles_a": [
            "2008",
            "2012",
            "2016",
            "2020"
          ],
          "cycles_b": [
            "2008",
            "2012",
            "2016"
          ],
          "only_in_a": [
            "2020"
          ],
          "only_in_b": []
        },
        "reordered_rejected": {
          "ok": false,
          "equal_as_sets": true,
          "cycles_a": [
            "2008",
            "2012",
            "2016",
            "2020"
          ],
          "cycles_b": [
            "2020",
            "2008",
            "2012",
            "2016"
          ],
          "only_in_a": [],
          "only_in_b": []
        },
        "rule": "model comparisons must share identical ordered eligible test cycles"
      },
      "error": null
    },
    {
      "id": "NC7_timezone_aware_release_and_revision",
      "pass": true,
      "detail": {
        "pass": true,
        "late_release_timezone": {
          "accepted": false,
          "expected": false,
          "pass": true
        },
        "late_revision_timezone": {
          "accepted": false,
          "expected": false,
          "pass": true
        },
        "same_instant_different_zone": {
          "accepted": true,
          "expected": true,
          "pass": true
        },
        "just_before": {
          "accepted": true,
          "expected": true
        },
        "just_after": {
          "accepted": false,
          "expected": false
        },
        "fixture": {
          "cutoff": "2024-09-06T23:59:59-04:00",
          "release": "2024-09-06T23:30:00-07:00"
        }
      },
      "error": null
    },
    {
      "id": "NC8_train_before_test_chronology",
      "pass": true,
      "detail": {
        "pass": true,
        "overlap_check_ok": true,
        "chronology_2024_train_2020_test": {
          "ok": false,
          "max_train": 2024,
          "min_test": 2020,
          "train": [
            2024
          ],
          "test": [
            2020
          ],
          "role": "chronology_max_train_lt_min_test"
        },
        "good_chronology": {
          "ok": true,
          "max_train": 2012,
          "min_test": 2016,
          "train": [
            2008,
            2012
          ],
          "test": [
            2016,
            2020
          ],
          "role": "chronology_max_train_lt_min_test"
        },
        "reversed_rejected": {
          "ok": false,
          "max_train": 2020,
          "min_test": 2008,
          "train": [
            2016,
            2020
          ],
          "test": [
            2008
          ],
          "role": "chronology_max_train_lt_min_test"
        },
        "note": "disjointness alone is not chronological validation; require separate training-before-test check"
      },
      "error": null
    }
  ],
  "source_sha256": {
    "integrity_gates.py": "5ae5c4ec3c0f2607622b88cca21b13294f87e98e846610473a74c7a22424de53",
    "fit_eval_interface.py": "2c8575e0f1f5ece922c91f7b2348b4fbcb7120ca92e34448054833724a032cd3",
    "run_negative_controls.py": "59d12efa9f2a6206bc87b76f0ced0ff5e14300b8f9fc8f8db82fa86522574a34"
  },
  "report_sha256": "afa906febcece8cb5ad7261d07474976f070fbc9c8931e59a68bf234102ca303"
}
