# L3 — Draft event ontology (E3 velocity)

**Job:** `lane-L3-e3-elite-defection-velocity` · **NO E3 score** · MODEL_CHANGE=NO  
**JSON:** `data/lanes/L3/event_ontology_v0.json`

## Pilot elite universe (recommended)

**US sitting federal legislators (House+Senate).** Optional extend: statewide elected executives; ex-members (≤10y); state legislators (explicit scope change).

## Event types

1. **party_switching** — formal affiliation change while seated.  
2. **conflict_resignation** — exit with explicit conflict cue (not ordinary retirement).  
3. **cross_party_endorsement** — elite endorses opposite-party candidate.  
4. **same_side_repudiation** — repudiates own-party nominee/leader without switching.  
5. **coalition_abandonment** — break on **predeclared** defining coalition vote/pact (not routine dissent).  
6. **institutional_defection** — organized break from institutional role expectations toward coalition.  
7. **refusal_to_support_certify_participate** — refuse support/certify/participate in core process against prior same-side expectation.  
8. **prosecutor_judicial_executive_protest** — protest resignation/break with contemporaneous protest rationale.

## Velocity vs level

- **LEVEL (forbidden as E3):** stock division, distance, unity %, FSI FE, mass polarization.  
- **VELOCITY (target):** \(v(t)=\#\{\text{events in window }t\}/\text{elite exposure}(t)\).  
- Windows to evaluate: month / quarter / Congress. Exposure = sitting elites or person-time.

## False-positive risks (by type)

| Type | Major FP risks |
|------|----------------|
| party_switching | rebrands; ID splits; candidate-not-seated; independent coding churn |
| conflict_resignation | health/retirement; primary loss; scandal without party-conflict cue |
| cross_party_endorsement | pundits; soft praise; same-party primaries |
| same_side_repudiation | policy dissent without side repudiation |
| coalition_abandonment | ordinary whip breaks; absences |
| institutional_defection | routine absences; procedural noise |
| refuse certify/participate | symbolic protest without defection rule |
| exec/judicial/prosecutorial | forced firing; ordinary turnover |

## AI-classification needs

- **Rules-first:** party_code diffs; floor Record acts with closed coding dictionaries.  
- **AI-assist + mandatory human audit:** resignations, endorsements, repudiations, protest framing.  
- **Do not** allow unsupervised LLM labels into any rate series without dual review sample.

## Independent validation requirements

1. Dual human coding on ≥10% stratified sample (plus all rare federal switches).  
2. Agent-vs-human adjudication log with disagreement typology.  
3. Separate coder from rate-series builder (reviewer ≠ proposer).  
4. Pre-registered exclusion list for ordinary turnover.  
5. Replication roster diff vs Nokken-Poole / Grose-Yoshinaka for overlapping eras before claiming historical continuity.
