# WAVE2C E2 — VoteView within-party NOMINATE dispersion diagnostic

**Agent:** grok · **Reviewer (required):** astra  
**Research job:** `9e319e25-7d13-466f-b6cc-dbd0e91c7acc` · **Hub job:** `b73c292a`  
**Status:** RESEARCH DIAGNOSTIC ONLY — **no E2 / L1 / M1 scoring** · **Date:** 2026-09-09 ~10:17 AM PT  
**L1:** `L1-US-v0.1` frozen/unchanged · **`score_authorized(E2)=0`**  
**Gate:** This artifact does **not** authorize scores, Phase/Load/PPS, or formula freezes.

---

## 0. Purpose

Execute Option **N1** evidence pull from the E2 narrow-sensor research memo: download public VoteView member ideal points and compute **chamber × party × Congress** within-party dispersion of 1st-dimension NOMINATE. Table is a **research diagnostic** for construct E2 (Elite Fragmentation) — not a score series.

---

## 1. No-score gate (explicit)

| Gate | Status |
|------|--------|
| E2 production / research **score** | **NOT computed** |
| 0–4 band crosswalk | **Forbidden here** |
| L1-US-v0.1 / M1 changes | **None** |
| FSI Factionalized Elites as MEASUREMENT | **Not used** (EXTERNAL_VALIDATION only if plotted later) |
| Phase / Load / Sync / PPS / Coupling | **Not computed** |
| Mash N1 + unity + FSI into one E2 index | **Not done** |

---

## 2. Source & provenance

| Field | Value |
|-------|-------|
| Source | VoteView / UCLA — Member Ideology export |
| URL | https://voteview.com/static/data/out/members/HSall_members.csv |
| Docs | https://voteview.com/articles/data_help_members |
| Retrieved | 2026-09-09 ~10:17 AM PT |
| Raw path | `data/raw/voteview/HSall_members.csv` |
| Raw bytes | 6,201,500 |
| Raw sha256 | `aadf38febc4dad9e8f5cba7bac4c8290f2d96d550b34938c91ff5bd32c0be358` |
| Provenance | `data/raw/voteview/provenance.json` · `data/e2/provenance.json` |

Metric field used: `nominate_dim1` (career NOMINATE 1st dimension). Nokken-Poole not used in this pull.

---

## 3. Method (predeclared)

1. Keep `chamber ∈ {House, Senate}` (drop President).  
2. Keep major parties only: `party_code` **100 = Democrat**, **200 = Republican**.  
3. Drop rows with null `nominate_dim1`.  
4. For each **chamber × party × congress**: compute  
   - `n_members`  
   - mean, **SD** (sample, ddof=1), **IQR** (p75−p25), min, max of `nominate_dim1`  
5. Mark `dispersion_eligible` when `n_members ≥ 5` (predeclared floor).  
6. **No** scoring, weighting, or band mapping.

**Universe counts (filtered):** **43,616** member–congress rows · **95** congresses (25–119) · **360** eligible chamber×party×congress cells (362 total cells incl. n<5).

---

## 4. Landmark dispersion (SD of nominate_dim1)

| Congress | Start yr | Chamber | Party | n | SD | IQR |
|----------|----------|---------|-------|---|-----|-----|
| 80 | 1947 | House | D | 194 | 0.178 | 0.272 |
| 80 | 1947 | House | R | 253 | 0.156 | 0.190 |
| 80 | 1947 | Senate | D | 47 | 0.211 | 0.271 |
| 80 | 1947 | Senate | R | 51 | 0.165 | 0.198 |
| 90 | 1967 | House | D | 250 | 0.183 | 0.252 |
| 90 | 1967 | House | R | 189 | 0.149 | 0.146 |
| 100 | 1987 | House | D | 262 | 0.165 | 0.228 |
| 100 | 1987 | Senate | D | 55 | 0.111 | 0.134 |
| 110 | 2007 | House | D | 243 | 0.135 | 0.181 |
| 110 | 2007 | Senate | D | 50 | 0.087 | 0.125 |
| 115 | 2017 | House | D | 200 | 0.108 | 0.146 |
| 115 | 2017 | House | R | 250 | 0.147 | 0.214 |
| 118 | 2023 | House | D | 221 | 0.109 | 0.152 |
| 118 | 2023 | House | R | 230 | 0.155 | 0.220 |
| 118 | 2023 | Senate | D | 52 | 0.114 | 0.151 |
| 118 | 2023 | Senate | R | 49 | 0.186 | 0.221 |
| 119 | 2025 | House | D | 222 | 0.115 | 0.165 |
| 119 | 2025 | House | R | 227 | 0.161 | 0.233 |
| 119 | 2025 | Senate | D | 45 | 0.107 | 0.145 |
| 119 | 2025 | Senate | R | 57 | 0.169 | 0.199 |

Full table: `data/e2/voteview_within_party_nominate_disp.csv`  
Cong ≥100 slice: `data/e2/voteview_within_party_nominate_disp_cong100plus.csv`  
Machine summary: `data/e2/voteview_dispersion_summary.json`

### Mean SD by modern windows (eligible cells)

| Chamber | Party | Cong 80–90 | Cong 100–110 | Cong 111–119 |
|---------|-------|------------|--------------|--------------|
| House | Democrat | 0.182 | 0.147 | 0.116 |
| House | Republican | 0.150 | 0.149 | 0.149 |
| Senate | Democrat | 0.206 | 0.100 | 0.121 |
| Senate | Republican | 0.172 | 0.153 | 0.164 |

---

## 5. Key diagnostic finding (1 line)

**Within-party dim1 SD fell sharply for Democrats (House/Senate) from mid-20th c. to recent congresses, while Republicans stayed flatter and often more dispersed than Democrats lately — so N1 alone trends toward *intra-party homogenization*, not rising elite fragmentation.**

Implication for E2 research: N1 is still a valid elite cohesion sensor, but a rising-fragmentation narrative would need **other** sensors (e.g. party-unity inverse, leadership challenges) and/or explicit era segmentation — do **not** treat falling SD as rising E2.

---

## 6. Risks / caveats (carry forward)

- Career NOMINATE is static within careers → understates short-horizon factional swings (Nokken-Poole is a later robustness check).  
- Southern realignment / party-system breaks make long single-trend claims unsafe.  
- Chamber pooling forbidden for primary claims (House ≠ Senate).  
- Ideal-point model assumptions ≠ organizational faction structure.  
- FSI FE must remain EXTERNAL_VALIDATION only if overlaid later.

---

## 7. Optional later pull — party unity (`100 − unity`)

Not blocking. One public series to audit next for Option N2 prototype (methodology + license check before ingest):

- **Brookings Vital Statistics on Congress — Party Unity** (tables / downloadable series): https://www.brookings.edu/articles/vital-statistics-on-congress/  
- VoteView-adjacent polarization / agreement materials: https://voteview.com/data  

Keep unity as a **separate** sensor from N1 dispersion (correlation diagnostic only; no averaged E2 index).

---

## 8. Paths

| Artifact | Path |
|----------|------|
| Raw members CSV | `data/raw/voteview/HSall_members.csv` |
| Raw provenance | `data/raw/voteview/provenance.json` |
| Dispersion (all) | `data/e2/voteview_within_party_nominate_disp.csv` |
| Dispersion (cong≥100) | `data/e2/voteview_within_party_nominate_disp_cong100plus.csv` |
| Summary JSON | `data/e2/voteview_dispersion_summary.json` |
| Derived provenance | `data/e2/provenance.json` |
| Parent research memo | `docs/e2/WAVE2C_E2_NARROW_SENSOR_RESEARCH.md` |
| This diagnostic | `docs/e2/WAVE2C_E2_VOTEVIEW_DIAGNOSTIC.md` |

---

## 9. Governance

| Field | Value |
|-------|--------|
| `decision_authority` | `delegated_agent_governance` |
| proposer | grok |
| reviewer | astra (required; no self-approval) |
| decision | *pending Astra review* — diagnostic pull only |
| rollback | Ignore/delete `data/raw/voteview/`, `data/e2/`, this doc; L1/M1/E2 auth unchanged |
