{
  "job": "lane-L3-e3-elite-defection-velocity",
  "model_change": false,
  "no_e3_score": true,
  "generated_at_utc": "2026-09-10T15:07:56.278720+00:00",
  "families": [
    {
      "family_id": "SF1_voteview_party_code_diff",
      "kind": "structured",
      "name": "VoteView / NOMINATE legislator party-code changes",
      "what_it_captures": "Within-career party_code changes for House/Senate members across Congresses (and within-Congress when files support it).",
      "level_vs_velocity": "Raw events support VELOCITY (counts/rates of switches per unit time). Party-code stock or NOMINATE dispersion is LEVEL \u2014 do not substitute.",
      "historical_coverage": "Congress ~1\u2013119+ continuous for party codes; Nokken-Poole one-Congress-at-a-time files historically to ~113; classic Nokken-Poole defector tables emphasize stable two-party eras (3\u201312, 20\u201330, 46\u2013106) with ~198 curated switches (38 Senate / 160 House) in published paper.",
      "cadence_native": "Congress (~2y) primary; within-Congress switch dates often require secondary event coding.",
      "structured_availability": "HIGH for party_code diffs; MED for exact calendar dates of switch announcements.",
      "ai_classification_need": "LOW for party_code diffs; HIGH if inferring motive/side from text.",
      "false_positive_risks": [
        "party merger/rebrand coded as switch",
        "ICPSR ID splits/merges",
        "third-party/independent coding churn",
        "special-election replacements misread as switches"
      ],
      "construct_fit": "party_switching \u2014 core",
      "notes": "Best structured backbone for US federal legislative elite party switching. Separates cleanly from FSI Factionalized Elites (level) and NOMINATE distance (polarization level)."
    },
    {
      "family_id": "SF2_academic_switcher_rosters",
      "kind": "structured_event",
      "name": "Academic party-switcher rosters (Nokken 2000; Nokken-Poole 2004; Grose-Yoshinaka; King-Benjamin replication)",
      "what_it_captures": "Hand-validated lists of in-office party defections with era filters.",
      "level_vs_velocity": "Event lists \u2192 countable velocity; published analyses often study LEVEL consequences of switches (voting change) \u2014 keep those separate.",
      "historical_coverage": "Postwar 1947\u20131997 (Nokken LSQ); multi-era historical lists through ~106th Congress; House PID stability replication through 1984 on Dataverse.",
      "cadence_native": "Event-dated or Congress-indexed; sparse \u2014 often <5 federal switches/decade in modern polarized era.",
      "structured_availability": "MED-HIGH (replication archives / tables) but not continuously updated as a live feed.",
      "ai_classification_need": "LOW if using published rosters; HIGH to extend post-2000 without human validation.",
      "false_positive_risks": [
        "era-filter omissions treated as zeros",
        "conflating campaign-season affiliation changes with in-office switches"
      ],
      "construct_fit": "party_switching",
      "notes": "Gold-standard labels for training/validation; insufficient alone for monthly rates."
    },
    {
      "family_id": "SF3_ballotpedia_news_rosters",
      "kind": "event",
      "name": "Ballotpedia / news wire party-switch trackers",
      "what_it_captures": "Recent state+federal party switches with announcement dates.",
      "level_vs_velocity": "Event velocity candidate for recent decades; coverage depth uneven pre-2010.",
      "historical_coverage": "Strongest ~2010\u2013present; earlier incomplete.",
      "cadence_native": "Calendar-dated events (daily possible in principle).",
      "structured_availability": "MED (scrapable tables) with licensing/ToS constraints.",
      "ai_classification_need": "MED \u2014 need entity resolution to officeholder IDs.",
      "false_positive_risks": [
        "candidates not yet seated",
        "local officials outside elite scope",
        "duplicate reporting"
      ],
      "construct_fit": "party_switching; partial cross_party_endorsements if pages mix types",
      "notes": "Useful modern calendar density; must define elite universe (federal vs state legislative vs statewide executive)."
    },
    {
      "family_id": "SF4_resignation_conflict_events",
      "kind": "event",
      "name": "Conflict/scandal resignations & walkouts (Congress.gov bioguide + news event coding)",
      "what_it_captures": "Resignations / caucus walkouts framed as conflict with party/leadership \u2014 not ordinary retirement.",
      "level_vs_velocity": "Velocity of conflict exits; stock of vacant seats is LEVEL/capacity \u2014 different construct.",
      "historical_coverage": "Bioguide end dates long-run; conflict attribution sparse without text coding. Modern news denser post-1990s.",
      "cadence_native": "Calendar-dated; rare.",
      "structured_availability": "LOW-MED structured; HIGH need for text provenance.",
      "ai_classification_need": "HIGH \u2014 distinguish health/retirement/primary-loss/scandal/conflict-with-party.",
      "false_positive_risks": [
        "ordinary retirement",
        "electoral defeat",
        "redistricting exit",
        "death"
      ],
      "construct_fit": "conflict_resignation; refusal_to_participate (walkout)",
      "notes": "Must require explicit conflict cue; independent human adjudication mandatory."
    },
    {
      "family_id": "SF5_cross_party_endorsements",
      "kind": "event",
      "name": "Cross-party endorsements (elite\u2192elite or elite\u2192presidential)",
      "what_it_captures": "Sitting/former officeholders endorsing opposite-party candidates; primary-season repudiations.",
      "level_vs_velocity": "Count of endorsement events = velocity; share of elites endorsing out-party in a cycle = level-ish rate \u2014 keep cycle-normalized velocity separate from stock endorsement maps.",
      "historical_coverage": "Dense for presidential cycles post-2000 via news; thin structured historical panels.",
      "cadence_native": "Campaign-timed bursts (not uniform monthly).",
      "structured_availability": "LOW structured long panels; MED recent journalism databases.",
      "ai_classification_need": "HIGH (who counts as elite; endorsement vs soft praise).",
      "false_positive_risks": [
        "surrogates/pundits as elites",
        "same-party primary endorsements",
        "fundraising co-appearances"
      ],
      "construct_fit": "cross_party_endorsement; same_side_repudiation",
      "notes": "Seasonality extreme \u2014 monthly rates need campaign-phase controls or off-cycle windowing."
    },
    {
      "family_id": "SF6_coalition_abandonment",
      "kind": "event",
      "name": "Coalition abandonment / whip breaks / discharge-petition leadership defections",
      "what_it_captures": "Public abandonment of party coalition on defining votes; mass whip breaks announced as bloc.",
      "level_vs_velocity": "Event bursts = velocity. Party-unity % (Brookings) is LEVEL cohesion \u2014 explicitly NOT a substitute for defection velocity (aligns with L1 rigidity MODIFY note).",
      "historical_coverage": "VoteView rollcalls continuous; 'defining vote' ontology contested. Brookings unity annual/congress.",
      "cadence_native": "Vote-dated (could aggregate monthly) but construct validity fragile.",
      "structured_availability": "HIGH for rollcalls; LOW for which break = defection vs ordinary dissent.",
      "ai_classification_need": "HIGH for defection labeling; LOW for raw dissent counts (which are NOT E3).",
      "false_positive_risks": [
        "ordinary ideological dissent",
        "logrolling",
        "absences"
      ],
      "construct_fit": "coalition_abandonment (conditional)",
      "notes": "Only KEEP if predeclared defining-vote list independent of outcomes; else MODIFY/INSUFFICIENT."
    },
    {
      "family_id": "SF7_institutional_certify_refuse",
      "kind": "event",
      "name": "Refusal to support/certify/participate (electoral count, quorum, committee boycotts)",
      "what_it_captures": "Elite refusals tied to institutional participation (e.g., certification objections, quorum breaks, boycotts).",
      "level_vs_velocity": "Event counts/rates. Institutional trust polls are LEVEL mass attitudes \u2014 not elite defection velocity.",
      "historical_coverage": "Sparse historical analogues; modern US federal events rare but high-salience. State-level richer but heterogeneous.",
      "cadence_native": "Event-dated; often clustered around institutional calendars.",
      "structured_availability": "MED for Congress floor actions (Congressional Record); LOW for informal refusals.",
      "ai_classification_need": "MED-HIGH; legal/procedural coding often better as rules-based.",
      "false_positive_risks": [
        "symbolic protest votes without defection",
        "procedural votes misread"
      ],
      "construct_fit": "refusal_to_support_certify_participate",
      "notes": "Construct-valid when elite actor + institutional act + break from prior same-side expectation."
    },
    {
      "family_id": "SF8_prosecutor_judicial_executive",
      "kind": "event",
      "name": "Prosecutor / judicial / executive institutional defections (construct-valid subset)",
      "what_it_captures": "US Attorneys / AG office resignations-in-protest; judge party-of-appointing breaks on institutional letters; cabinet resignations-in-protest.",
      "level_vs_velocity": "Protest-resignation velocity. Ordinary DOJ turnover / Schedule changes = ordinary turnover \u2014 FORBIDDEN substitute.",
      "historical_coverage": "Hand-coded lists exist for famous waves (e.g., Saturday Night Massacre analogues; mass US Attorney firings) but not a clean monthly panel.",
      "cadence_native": "Event-dated rare events.",
      "structured_availability": "LOW continuous; MED for specific historical episodes with secondary literature.",
      "ai_classification_need": "HIGH \u2014 protest vs career move vs forced removal.",
      "false_positive_risks": [
        "forced firings coded as defection",
        "routine confirmation-battle exits"
      ],
      "construct_fit": "institutional_defection (executive/judicial/prosecutorial)",
      "notes": "Include only with explicit protest/defection rationale in contemporaneous source; else exclude."
    },
    {
      "family_id": "SF9_state_legislator_panels",
      "kind": "structured_event",
      "name": "State legislator party panels (Klarner-style / Ballotpedia state)",
      "what_it_captures": "State legislative party switches \u2014 larger N than Congress.",
      "level_vs_velocity": "Supports velocity with higher event counts; elite definition must be declared (state legislative = elite? SRP US federal focus?).",
      "historical_coverage": "Varies by state; often 1990s\u2013present denser.",
      "cadence_native": "Session/calendar mix.",
      "structured_availability": "MED.",
      "ai_classification_need": "MED.",
      "false_positive_risks": [
        "local party label quirks",
        "nonpartisan legislatures"
      ],
      "construct_fit": "party_switching (state)",
      "notes": "Portability/L7 interest; for L3 US core, treat as EXTEND not primary unless scope expands."
    },
    {
      "family_id": "SF10_forbidden_substitutes",
      "kind": "non_source_guardrail",
      "name": "FORBIDDEN substitutes (explicit)",
      "what_it_captures": "NOT E3 velocity: FSI Factionalized Elites; NOMINATE between-party distance; affective polarization; ordinary legislator turnover; party-unity level; V-Dem elite indicators as stock.",
      "level_vs_velocity": "These are LEVEL or adjacent constructs.",
      "historical_coverage": "n/a",
      "cadence_native": "n/a",
      "structured_availability": "n/a",
      "ai_classification_need": "n/a",
      "false_positive_risks": [
        "using convenient annual indices as E3"
      ],
      "construct_fit": "NONE \u2014 guardrail",
      "notes": "Documented so reviewers can reject substitutions quickly. Overlap with L1 rigidity / E2 sensors is acknowledged but not reused as E3."
    }
  ]
}