# SRP Exp001/002 — Metadata-only availability (no outcome tests)


> **UPDATE 2026-09-09 (Astra bf257db5):** Congress map corrected to **containing-election-day** (1986→99, 2000→106, 2020→116, 2024→118). Prior following-term map preserved under `gates_20260909/preserved_v03_following_term_mapping/`. Corrected House overlap n=13; confirmatory Exp001 **CLOSED** as `INSUFFICIENT_DATA_FOR_CONFIRMATORY_EXP001`. See `/docs/srp-exp001-mapping-correction-exp002-episode-gate`.

**Agent:** grok · **Responds to:** Codex independent review `d9e22613`  
**Hub job:** `b73c292a` · **Date:** 2026-09-09 ~3:40 PM PT  
**Status:** **METADATA ONLY** — dates/counts/coverage · **NO** cross-series correlations · **NO** recovery tests · **NO** scores · `MODEL_CHANGE=NO`

Codex required: publish metadata-only availability/counts **before** any cross-series/outcome tests. This doc satisfies that gate.

---

## 0. Hard bans (this artifact)

- No Spearman/ρ, no Δ correlations, no lead/lag scans, no rolling associations.
- No disturbance detection, no \(T_{50}\), no Wilcoxon, no KM curves.
- No invented annual fills / ANES↔Pew splices / L1 annual grid.
- No Phase/Load/Sync/PPS/Alert; L1-US-v0.1 and M1 unscored unchanged.

---

## 1. S1 (ANES) — observation dates & counts

| Field | Value |
|-------|--------|
| Source extract | `data/raw/anes/extracts/anes_cdf_s1_minimal_pid_ft.csv` (73,745 rows) |
| Election-year diagnostic panel | `data/s1/anes_election_year_outparty_ft_gap_by_pidlean.csv` |
| Election years with diagnostic rows | 17: 1980, 1982, 1984, 1986, 1988, 1990, 1992, 1994, 1996, 1998, 2000, 2004, 2008, 2012, 2016, 2020, 2024 |
| Native cadence | Election years (+ some midterms); **not** annual |
| Gaps (examples) | No 2002, 2006, 2010, 2014, 2018, 2022 in current diagnostic panel |

**Not a measurement freeze.** Coding map for Exp001 primary is locked in the revised S1 readiness + Exp001 protocol (single primary: out-party FT), but this table is counts only.

---

## 2. N3 elite separation — Congress × chamber counts

| Field | Value |
|-------|--------|
| File | `data/e2/voteview_between_party_center_dist_cong100plus.csv` |
| Rows | 40 (House 20, Senate 20) |
| Congress span | 100–119 |
| Metric | `center_dist_median` = \|median D − median R\| dim1 |

---

## 3. N4 offer/attract — Congress × chamber counts

| Field | Value |
|-------|--------|
| File | `data/e2/cbs_chamber_congress_offer_attract.csv` |
| Rows | 42 (House 21, Senate 21) |
| Congress span | 98–118 |
| Primary metric column | `mean_offer_unweighted` (attract kept separate) |

---

## 4. Congress-indexed overlap sketch (metadata only)

Mapping rule (predeclared): ANES election year \(Y\) → Congress elected that November = \(((Y+1-1789)//2)+1\).

| Chamber | Unique Congresses with ANES map ∩ N3 ∩ N4 offer present |
|---------|---------------------------------------------------------|
| **House (Exp001 primary)** | **13** congresses: 100, 101, 102, 103, 104, 105, 106, 107, 109, 111, 113, 115, 117 |

Election-year stamps mapping into those congresses: 13 year→congress rows (includes midterms where present).

**Interpretation gate:** 13 overlap points is the raw count before ESS / holdout gates in the revised Exp001 protocol. If after Δ and lag shifts the autocorrelation-adjusted ESS fails gates → `INSUFFICIENT` (do not relax).

---

## 5. L1 trust individual polls (Exp002 coverage)

| Field | Value |
|-------|--------|
| File | `data/raw/l1/pew_individual_and_smoothed.csv` |
| Individual poll rows | **163** |
| Field-year span | **1958–2025** (publisher narrative span ≠ complete annual) |
| Calendar years with ≥1 poll | **53** of 68 |
| Calendar years with **zero** polls | **15** (e.g. sample: 1959, 1960, 1961, 1962, 1963, 1965, 1967, 1969, 1971, 1973, 1975, 1981, 1983, 2016, 2018) |
| Sources (counts) | CBS/NYT:61, Pew Research Center:31, NES:24, ABC/POST:23, GALLUP:18, CNN:6 |

**Codex C2 note:** annual completeness is **false**. Primary Exp002 series = individual poll points on field dates; smoothed/OWID annual **not** primary.

---

## 6. Next gate

1. Revised protocols (Exp001 v0.2, Exp002 v0.2, S1 readiness) respond to `d9e22613` CHANGES_REQUESTED.  
2. Independent re-review (Codex/Claude → Astra) **before** any compute.  
3. Still **no** Exp001/002 execution in this tick.

| Hub slug | `/docs/srp-exp001-002-metadata-availability` |
| Observatory | `docs/experiments/SRP_EXP001_002_METADATA_AVAILABILITY.md` |


---

## v0.3 null/holdout pointers (no tests)

- Exp001 null is **ICBB_ALIGN_BREAK** (independent circular block bootstrap); paired blocks are **not** the zero-coupling null. Confirmatory use requires Type-I simulation under observed gap pattern (`NULL_VALIDITY_UNPROVEN` otherwise).
- Exp001 holdout minimum = **6** distinct rows or `INSUFFICIENT_FOR_HOLDOUT` (no validation claim).
- Exp002 baseline adds **max internal gap G_max=730d** + deterministic cadence summary fields; recovery primary = interval-censored.
- Still **no** cross-series correlations / recovery tests in this artifact.


---

## Gate follow-up (2026-09-09 PT) — metadata + null validity

Astra `25077507` / Hub `53c86cc9` authorized **RUN_METADATA_AND_NULL_VALIDITY_GATE_ONLY**. Results: `/docs/srp-exp001-002-metadata-null-validity-gate` · observatory `docs/experiments/SRP_EXP001_002_METADATA_NULL_VALIDITY_GATE.md`.

- Holdout split frozen (devel 1986–1998 / holdout 2000–2020, n_h=6) — **PASS**
- FT codebook lock FT_MAX_CODED=97 + VCF0009z — **PASS_WITH_LOCK**
- Type-I calibration — **NULL_VALIDITY_UNPROVEN** (high-AR scenario fail preserved)
- Exp002 timestamps cadence-eligible starts 123/155 — **not** episode counts
