# WAVE2C S1 — ANES out-party FT year series (research v0)

> **RESEARCH_ONLY** · **`score_authorized(S1)=0`** · **blocked on `coding_map_ACCEPT`** · **MODEL_CHANGE=NO**  
> Not `s1_exp001_panel_v0.1` · Not a scoring freeze · Not coding_map ACCEPT · L1/M1 untouched · No Exp001/002 inference · No Election model fit · No annual splice/fill · No ANES↔Pew splice

**Agent:** grok · **Hub job:** `b73c292a` · **Research job:** `176909d6`  
**Date:** 2026-09-09 ~8:45 PM PT  
**Hub mirror:** `/docs/wave2c-s1-outparty-ft-year-series`

---

## 0. Purpose

Concrete **year-level (study-year) out-party feeling thermometer series** built from the landed ANES CDF minimal extract, so James / reviewers can move measurement discussion forward without inventing annual fills or claiming Exp001 readiness.

---

## 1. Construct & coding (draft — pending ACCEPT)

| Item | Choice in this artifact |
|------|-------------------------|
| Party FTs | `VCF0218` Democratic Party; `VCF0224` Republican Party |
| Valid FT | **0–97** inclusive (`97` = 97–100 topcode per ANES codebook; missing 98/99/blank) |
| `FT_MAX_CODED` | **97** |
| Sign | Raw FT higher = **warmer** |
| Primary orientation | Out-party hostility **H = 97 − FT_out** |
| Companion diagnostic only | in−out FT **gap** (not primary) |
| PID lean | `VCF0303`: 1 = Dem incl. leaners; 3 = Rep incl. leaners |
| Independents | **Excluded** (VCF0303 ∉ {1,3}) |
| Out-party FT | Dem lean → Rep FT (`VCF0224`); Rep lean → Dem FT (`VCF0218`) |
| Year panel | **Equal-weight average** of Dem-lean and Rep-lean means (readiness v0.3) |
| Weights | **Design-weighted primary label** via `VCF0009z` within year (`*_weighted_eqlean`); **unweighted = sensitivity** |
| Mode | `VCF0017` listed as `modes_present` only — **not** a filter |

**Explicit:** this does **not** claim `coding_map_ACCEPT`. R1 still blocks Exp001 compute / `s1_exp001_panel_v0.1`.

---

## 2. Coverage

| Metric | Value |
|--------|-------|
| Study years (both leans present) | **18** years: 1978, 1980, 1982, 1984, 1986, 1988, 1990, 1992, 1994, 1996, 1998, 2000, 2004, 2008, 2012, 2016, 2020, 2024 |
| N (Dem+Rep lean with valid both party FTs) per year | **1055–7174** |
| Valid lean+FT respondent rows (pooled) | **43,063** |
| Gaps | Real election/midterm cadence — **no annual invent/fill** (e.g. no 2002/2006/2010/2014/2018/2022 rows) |

Note: 1978 appears in CDF with both leans + party FTs; prior diagnostic tables started at 1980. Both are research-visible here.

---

## 3. Year series preview (weighted-eqlean primary columns)

| Year | N | Mean out-party FT (w, eqlean) | Mean H=97−FT_out (w, eqlean) | Mean out FT unweighted (sens.) | Gap in−out (w, eqlean; diagnostic) |
|------|---|-------------------------------|------------------------------|--------------------------------|-------------------------------------|
| 1980 | 1310 | 46.2 | 50.8 | 46.2 | 25.6 |
| 1988 | 1717 | 45.6 | 51.4 | 45.6 | 30.1 |
| 1996 | 1528 | 41.0 | 56.0 | 40.7 | 30.0 |
| 2004 | 1055 | 39.6 | 57.4 | 38.9 | 33.6 |
| 2012 | 5079 | 28.0 | 69.0 | 27.6 | 41.2 |
| 2016 | 3610 | 26.0 | 71.1 | 25.8 | 40.6 |
| 2020 | 7174 | 19.2 | 77.8 | 18.6 | 52.0 |
| 2024 | 5080 | 20.6 | 76.4 | 19.1 | 49.5 |

**One-line descriptive finding (not a score):** Mean out-party FT (weighted eqlean) falls from the mid-40s (~1980) to ~19–21 (2020/2024); mean H rises from ~51 to ~76–78. Direction matches prior unweighted diagnostic tables; weights do not reverse the long-run colding.

Full machine tables:
- `data/s1/anes_outparty_ft_year_series_research_v0.csv` (sha256 `5aba875763a2a47e80ae60d110ad83a8c4c7dad83eda3269d86a149be2f60d31`)
- `data/s1/anes_outparty_ft_by_pidlean_research_v0.csv` (sha256 `691e623195bade7f06329f9a9b2bc58eb95bc7ba4e0f73a3f85e743aff72267f`)
- Hub CSV mirrors: `/docs/wave2c-s1-outparty-ft-year-series.csv`, `/docs/wave2c-s1-outparty-ft-by-pidlean.csv`

---

## 4. Provenance

| Item | Value |
|------|-------|
| Raw zip | `data/raw/anes/anes_timeseries_cdf_csv_20260205.zip` |
| Zip sha256 | `8769740a1f90f77b256bcc5156b7d0eb8876435c99148776e4099924faf3033c` |
| Minimal extract | `data/raw/anes/extracts/anes_cdf_s1_minimal_pid_ft.csv` |
| Extract sha256 | `54fdcfa7190ef59b6c8be4fd403a54eb6af6d951afe8ea6f4816a247eb2d83e6` |
| Release | ANES Time Series CDF **20260205** |
| Citation | American National Election Studies. 2026. ANES Time Series Cumulative Data File [dataset and documentation]. February 5, 2026 version. www.electionstudies.org |
| Codebook notes | Party thermometers VCF0218/VCF0224; valid 00–96 + 97 topcode; missing 98/99; PID lean VCF0303; weight VCF0009z (year-specific CDF weight — labeled; heterogeneity across years remains a known medium gap) |
| Missing/mode | Blank/>97 FT dropped; Independents dropped; mode codes listed per year, not filtered |
| Provenance JSON | `data/s1/anes_outparty_ft_year_series_research_v0_provenance.json` |

Cross-check: unweighted lean-level out-party means match prior `anes_election_year_outparty_ft_gap_by_pidlean.csv` (max abs diff **0.0** on overlapping year×lean cells).

---

## 5. Gates / non-claims

| Gate | Status |
|------|--------|
| `score_authorized(S1)` | **0** |
| `coding_map_ACCEPT` | **Not claimed** — still blocker |
| Exp001 associations / Exp002 inference | **Not run** |
| Election01 model fit | **Not run** |
| L1 / M1 production | **Unchanged** |
| Annual splice / Pew splice | **Forbidden / not done** |
| MODEL_CHANGE | **NO** |

---

## 6. Paths / Hub

| Artifact | Path |
|----------|------|
| This memo | `docs/s1/WAVE2C_S1_OUTPARTY_FT_YEAR_SERIES.md` |
| Hub memo | `/docs/wave2c-s1-outparty-ft-year-series` |
| Year CSV | `data/s1/anes_outparty_ft_year_series_research_v0.csv` |
| Lean CSV | `data/s1/anes_outparty_ft_by_pidlean_research_v0.csv` |
| Related readiness | `/docs/wave2c-s1-measurement-readiness` |
| Related diagnostics | `/docs/wave2c-s1-diagnostic-tables` |
