# WAVE2C E2 — N3 between-party NOMINATE center distance

> **Finding (House primary):** D and R median dim1 centers moved from **0.666 → 0.893** (Congress 100 → **118**); **Δ = +0.227**.  
> Tag: **`ELITE_IDEOLOGICAL_SEPARATION`** — adjacent polarization diagnostic, **not** validated full E2 fragmentation.  
> **RESEARCH_ONLY** · `score_authorized(E2)=0` · L1 untouched · M1 unscored · `MODEL_CHANGE=NO` · no composites · no sign-flip

**Agent:** grok · **Hub job:** `b73c292a` · **Research job:** `9e319e25`  
**Date:** 2026-09-09 ~8:55 PM PT  
**Hub mirror:** `/docs/wave2c-e2-n3-between-party-distance`

---

## 0. Plain-English result

| Chamber | Role | Cong 100 | **Cong 118 (primary endpoint)** | Δ |
|---------|------|----------|----------------------------------|---|
| **House** | **Primary** | 0.666 | **0.893** | **+0.227** |
| Senate | Sensitivity | 0.6155 | 0.882 | +0.2665 |

Recent House (completed): 115=0.8895 · 116=0.8845 · 117=0.883 · **118=0.893**.  
**Congress 119** is in the raw file as **ongoing / provisional** (House 0.9255 · Senate 0.915) — **not** an endpoint claim.

Same story as the ANES out-party FT year series: a concrete table you can read without waiting on scores.

---

## 1. What this is / is not

| Is | Is not |
|----|--------|
| Between-party **median** dim1 distance (D vs R party centers) | Full E2 fragmentation score |
| Tag **`ELITE_IDEOLOGICAL_SEPARATION`** | A composite with N1 / N2 / N4 / FSI |
| House primary; Senate sensitivity | Sign-flipped or trend-shopped |
| Cong **118** primary completed endpoint | Cong 119 finished |

**Preserved contrary evidence:** N1 (within-party homogenization) and N2 (`100−unity` fell) stay on the table. Rising center distance does **not** overwrite them. N4 stays separate.

---

## 2. Source & hashes (reuse; no re-download)

| Field | Value |
|-------|-------|
| Source | VoteView / UCLA `HSall_members.csv` |
| URL | https://voteview.com/static/data/out/members/HSall_members.csv |
| Raw path | `data/raw/voteview/HSall_members.csv` |
| **Raw sha256** | `aadf38febc4dad9e8f5cba7bac4c8290f2d96d550b34938c91ff5bd32c0be358` |
| Raw bytes | 6,201,500 · retrieved 2026-09-09 ~10:17 AM PT |
| Full CSV | `data/e2/voteview_between_party_center_dist.csv` · sha256 `f32ef52d3e990069558bdc6a0e696267e45bbcd5b96671e246fe7cd79935fa47` |
| Cong≥100 CSV | `data/e2/voteview_between_party_center_dist_cong100plus.csv` · sha256 `1fdaff9a9f8f8bcd94992c4f08a6bcd579b29109d837e7b4ec58233e598c8d1c` |
| Summary JSON | `data/e2/voteview_between_party_center_dist_summary.json` · sha256 `7a8fd3ca9b8621378201d9de68685e1d6f8f51eae6aac2ef0b73ba1c0fd8036e` |

**Refresh note:** Recomputed from the same raw file. CSV bit-identical to prior completeness correction; summary JSON refreshed with Cong-118-primary plain-English finding.

---

## 3. Method (unchanged)

1. Keep `chamber ∈ {House, Senate}` (drop President / non-HS).  
2. Parties: `party_code` **100 = Democrat**, **200 = Republican**.  
3. Drop null / bad `nominate_dim1`.  
4. One row per `(congress, chamber, icpsr)` — **first wins**.  
5. Per chamber × congress: `center_dist_median = |median_D − median_R|` when both parties have `n ≥ 5` distinct members.  
6. Mean-distance = sensitivity only.  
7. `eligibility_flag=ok` = party floors met — **not** temporal completeness. Cong 119 = `ongoing_provisional`.

Coverage: 190 chamber×congress · 170 ok · 20 partial · Cong 119 provisional present.

---

## 4. Primary completed window (cong 100–118)

| Stat | House | Senate |
|------|------:|-------:|
| n | 19 | 19 |
| first (100) | 0.666 | 0.6155 |
| **last (118)** | **0.893** | **0.882** |
| Δ | **+0.227** | +0.2665 |
| mean / median | 0.799 / 0.795 | 0.718 / 0.707 |
| first-5 / last-5 mean | 0.696 / 0.887 | 0.636 / 0.823 |

---

## 5. Interpretation bounds (locked)

- Rising center separation = **`ELITE_IDEOLOGICAL_SEPARATION`**.  
- Does **not** validate full E2 fragmentation by itself.  
- Does **not** undo N1 / N2 contrary evidence.  
- Same VoteView roll-call family as N1 — not independent-system replication.  
- Career NOMINATE hindsight understates short-horizon swings.  
- Center separation ≠ within-party factionalization.

---

## 6. Hub mirrors

| Artifact | Slug |
|----------|------|
| This memo | `/docs/wave2c-e2-n3-between-party-distance` |
| Full CSV | `/docs/wave2c-e2-n3-between-party-distance.csv` |
| Cong≥100 CSV | `/docs/wave2c-e2-n3-between-party-distance-cong100plus.csv` |
| Summary JSON | `/docs/wave2c-e2-n3-between-party-distance-summary.json` |
| Alias | `/docs/wave2c-e2-n3-center-dist` (+ csv/json) |
| N1 / N2 | `/docs/wave2c-e2-voteview-diagnostic` · `/docs/wave2c-e2-n2-unity-note` |
| Completeness correction | `/docs/wave2c-e2-n3-n4-correction` |

---

## 7. Governance

`score_authorized(E2)=0` · M1 unscored · L1 untouched · no Phase/Load/PPS · no composite · no model rename · `MODEL_CHANGE=NO` · N4 separate · no Exp002 inference · no Election fitting.
