# WAVE2C S1 — Affective Tribalization measurement research

**Agent (proposer):** grok · **Reviewer (required):** astra  
**Job:** `b73c292a` · **Research queue:** `176909d6`  
**Status:** RESEARCH ONLY — **no production scoring** · **Date:** 2026-09-09 ~10:00 AM PT  
**L1:** `L1-US-v0.1` frozen/unchanged · **`score_authorized(S1)=0`**  
**Sequencing:** Astra `3fea3a0c` — after M1-LONG feasibility, **S1 + E2 in parallel** (this memo = S1 leg).  
**Governance:** `decision_authority=delegated_agent_governance` · `delegated_by=owner` · independent review required · **no self-approval**.  
**Hub:** do **not** post until Astra review; leave Hub mirror to parent.

---

## 0. Purpose

Scaffold a **research-only** measurement pack for construct **S1 Affective Tribalization**: freeze-aware construct definition, candidate **public** sensors, narrow measurement options, falsification/risks, explicit non-goals, and the next evidence pulls.

This memo does **not** authorize scores, freeze thresholds, compute Phase/Load/PPS/Sync, or change L1/M1 production paths.

---

## 1. Construct definition (frozen methodology)

| Field | Frozen value | Source |
|-------|--------------|--------|
| **ID** | `S1` | `docs/MODEL_SPEC.md`, `srp/constants.py` |
| **Name** | **Affective Tribalization** | concept_model_version `0.1` (do not rename/replace) |
| **Domain** | Social (`S`) | |
| **Time scale** | `INTERMEDIATE` | store; do not use in scoring yet |
| **Coupling** | Member of **C3** Tribalization × Reciprocity Breakdown with `S2` | scores UNKNOWN |
| **Authorization** | Raw ingest/research OK if ANES/Pew accessible; **`score_authorized=false`**; **no threshold freeze** | `docs/MEASUREMENT_SPEC.md`, `WAVE1_AUTHORIZATION["S1"]` |
| **Freshness policy (standing)** | Apply **freshness penalties**; **no forward-fill pretending current** | Wave 1 consolidated methodology |

### 1.1 Working measurement intent (research gloss — not a formula freeze)

S1 targets **affective** (feeling-based) **in-group vs out-group tribalization** in the mass public — typically partisan or partisan-adjacent affect gaps — **not** behavioral violence, institutional trust, reciprocity/generalized trust, or demographic sorting.

Standing forbidden-proxy table already separates neighbors:

| Forbidden / adjacent | Why |
|----------------------|-----|
| **ACLED ≠ S1** | Political violence events are behavioral (closer to B2), not affective tribalization |
| **affective polarization ≠ S2** | Affective pol belongs near **S1**, not Reciprocity Breakdown |
| **GSS trust** | CORROBORATION for **S2** only |
| **L1 institutional trust** | Different construct; do not mash |
| **S3 Social Sorting** | Structural sorting ≠ affective tribalization |

Exact item wording and coding maps remain **predeclared research choices** until independent review + freeze protocol. Do not invent a 0–4 score here.

---

## 2. Candidate public sensors / sources

Roles follow mandatory vocabulary: `MEASUREMENT` | `CORROBORATION` | `EXTERNAL_VALIDATION`.  
Mappings stay **`approved=false`** until review.

### 2.1 Primary MEASUREMENT candidates (public / research-accessible)

| Sensor (proposed id) | Source | Series / items | Cadence | Role | Notes |
|----------------------|--------|----------------|---------|------|-------|
| `anes_ft_party_gap` | ANES Time Series / cumulative | Feeling thermometers: Democrat / Republican **party** (and/or Democratic/Republican **people** where available) | Election-year (+ some midterms) | **MEASUREMENT** candidate | Classic affective polarization gap = in-party FT − out-party FT by PID |
| `anes_ft_ingroup_gap` | ANES | FT for Democratic / Republican **people** / voters | Same | **MEASUREMENT** candidate | Prefer people thermometers when available (reduces party-brand conflation) |
| `pew_affective_pol` | Pew Research Center | Partisan antipathy / affective polarization batteries (like/dislike; warm/cold toward other party) | Irregular (multi-year reports) | **MEASUREMENT** candidate | Public tables/reports; item sets change — lineage required |
| `anes_party_dislike` | ANES | Like/dislike party scales where present | Election-year | **MEASUREMENT** candidate | Alternate coding path; document equivalence to FT gap |

**Access notes**

- ANES: public downloads via electionstudies.org (ToS / citation); some cumulative files large — prefer variable-minimal extracts.
- Pew: public report tables / chart data; HTML/CSV may bot-challenge automated clients (same class of issue as L1 Pew trust). Prefer documented HTML/table extract + provenance JSON.
- Observatory today: **no** S1 microdata on disk under `data/raw/` (research scaffold only). Legacy Wave 0 `I14_social_polarization` remains an **unwired stub** (`Pew / academic stub`) — demoted source_metric, not an SRP score.

### 2.2 CORROBORATION / EXTERNAL_VALIDATION only (not primary S1)

| Sensor | Source | Role | Why not primary |
|--------|--------|------|-----------------|
| Media affective / sentiment mashups | Various NLP | EXTERNAL_VALIDATION at best | `neg sentiment ≠ N1`; easy construct contamination |
| Vote-choice / ideological distance | ANES ideology, DW-NOMINATE mass projections | CORROBORATION | Ideological sorting ≠ affective tribalization (closer to S3 / elite ideology) |
| Social media echo metrics | Platform APIs | Usually blocked / non-public | Coverage ≠ confidence; ToS/credential gates |

### 2.3 Explicitly rejected as S1 MEASUREMENT

| Sensor | Standing rule |
|--------|---------------|
| ACLED event counts | **ACLED ≠ S1** |
| GSS interpersonal trust | S2 CORROBORATION only |
| FSI / elite indices | Elite domain (E*), not S1 |
| OWID/Pew institutional trust MA | L1 lineage — wrong construct |

---

## 3. Measurement options (narrow)

Keep **one primary research series** + optional corroboration. Do not mash sensors into a production score.

### Option A — ANES in-party − out-party feeling-thermometer gap (preferred research primary)

1. Restrict to respondents with valid PID (Democrat/Republican; leaners policy **predeclared**).  
2. Compute \( \mathrm{gap}_i = \mathrm{FT}_{\mathrm{in},i} - \mathrm{FT}_{\mathrm{out},i} \) (0–100 thermometers).  
3. Aggregate: annual/election-year mean or median gap; report n, dispersion, design weights if used.  
4. Store raw item versions + transform_note; **no interpolation / no carry-forward**.

**Pros:** Closest to “affective tribalization” in U.S. literature; public; long history.  
**Cons:** Sparse between elections; mode/weight changes; thermometer non-response; leaner treatment sensitivity.

### Option B — Pew partisan antipathy / warm-cold series (secondary / gap-fill)

Use Pew published partisan dislike or warm/cold shares as a **separate** series with its own sensor_id. Compare shapes to Option A; **do not** splice Pew into ANES without a documented bridge study.

### Option C — Dual thermometer (party vs people) discrimination diagnostic

Compute both party-FT and people-FT gaps; report correlation and years of divergence as a **construct-validity diagnostic** (not a blended score).

### Coding / threshold stance

- Research coding maps may be sketched in a later evidence pack.  
- **No threshold freeze**; **no 0–4 S1 score**; missing → null / UNKNOWN semantics if ever surfaced in UI.  
- Freshness: stamp `retrieved_at` / field dates; down-weight stale survey years explicitly rather than forward-filling.

---

## 4. Falsification / risks

| Risk | Severity | Falsification / mitigation |
|------|----------|----------------------------|
| **Conflating S1 with S2/S3** | High | Predeclare item list; reject GSS trust and sorting indices as S1 MEASUREMENT |
| **ACLED / protest leakage** | High | Hard gate: no ACLED in S1 ingest path |
| **Sparse cadence → fake continuity** | High | No forward-fill; show gaps; freshness penalties |
| **Leaner / Independent coding games** | Medium | Predeclare leaner-as-partisan vs exclude; sensitivity table |
| **Mode / weight breaks (ANES)** | Medium | Document study year mode; weighted + unweighted |
| **Pew item drift** | Medium | Versioned item dictionary; no silent splice to ANES |
| **Tuning to known political transitions** | Process | Independently specified evaluation (Astra `3fea3a0c`); preserve negative/false-positive controls |
| **Self-approval / Hub premature post** | Process | Reviewer=astra; parent posts Hub only after review |

---

## 5. What NOT to do

- Do **not** flip `score_authorized(S1)` or freeze thresholds.  
- Do **not** compute Phase / Alert / Load / Sync / PPS / Resilience / Coupling scores from S1 (or from L1 alone).  
- Do **not** change L1-US-v0.1 or M1 production / research scoring code.  
- Do **not** use ACLED as S1; do not treat affective pol as S2.  
- Do **not** invent mashup formulas (ANES+Pew+Twitter).  
- Do **not** post Hub mirrors until memo is Astra-reviewed and solid.  
- Do **not** touch Hub orchestration.

---

## 6. Proposed next evidence pulls

1. **ANES cumulative / Time Series extract** — variable-minimal: PID, party & people feeling thermometers, year, weights, mode; save under `data/raw/anes/` + provenance JSON (URL, retrieve time PT, sha256, ToS note).  
2. **Pew affective polarization table lineage** — identify 2–3 stable published series (antipathy / warm-cold), scrape or manual-table extract with SOURCE_LINEAGE-style notes (parallel to L1 Pew trust).  
3. **Overlap & discrimination sketch** — election-year ANES gap vs nearest Pew release; report n, correlation, years of disagreement; **no** score, **no** threshold proposal in that pull.

---

## 7. Governance / review block

| Field | Value |
|-------|--------|
| `decision_authority` | `delegated_agent_governance` |
| `delegated_by` | `owner` |
| **proposer** | `grok` |
| **reviewer** | `astra` (required; no self-approval) |
| **decision** | *pending Astra review* — research scaffold only |
| **evidence** | This memo; methodology `WAVE1_CONSOLIDATED.md`; `MEASUREMENT_SPEC.md`; `SENSOR_CANDIDATES.md`; sequencing Hub `3fea3a0c`; queue `176909d6` |
| **model_version** | concept `0.1` / measurement_spec `0.1` — **no freeze bump** |
| **rollback_target** | Delete/ignore this research pack; L1/M1/S1 authorization unchanged |
| **Hub post** | **Deferred** to parent after review |

---

## 8. Paths

| Artifact | Path |
|----------|------|
| This memo | `docs/s1/WAVE2C_S1_MEASUREMENT_RESEARCH.md` |
| Parallel E2 pack | `docs/e2/WAVE2C_E2_NARROW_SENSOR_RESEARCH.md` |
| Standing S1 auth | `docs/MEASUREMENT_SPEC.md`, `srp/constants.py` |
