Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

FEC — Federal Election Commission Candidate Master Files

The FEC publishes bulk data files for every registered federal candidate: President, US Senate, and US House. These files provide stable candidate identifiers (CAND_ID) that persist across election cycles, making them a reference source for cross-linking federal candidates across MEDSL, NC SBE, and OpenElections data.

What FEC provides

The candidate master file (cn.txt) contains one row per candidate per election cycle. It covers all candidates who have filed with the FEC, including those who lost primaries or never appeared on a general election ballot.

Available cycles: 1980–present. We have downloaded 2020 and 2022.

Download

Bulk data is at fec.gov/data/browse-data.

mkdir -p local-data/sources/fec/{2020,2022}

# 2022
curl -L -o local-data/sources/fec/2022/cn.zip \
  "https://www.fec.gov/files/bulk-downloads/2022/cn.zip"
unzip -o local-data/sources/fec/2022/cn.zip -d local-data/sources/fec/2022/

# 2020
curl -L -o local-data/sources/fec/2020/cn.zip \
  "https://www.fec.gov/files/bulk-downloads/2020/cn.zip"
unzip -o local-data/sources/fec/2020/cn.zip -d local-data/sources/fec/2020/

Schema

The file cn.txt is pipe-delimited (|) with 15 columns and no header row.

#ColumnDescriptionExample
1CAND_IDStable candidate identifierH0NC09072
2CAND_NAMEName in LAST, FIRST MIDDLE formatBRAY, SHANNON W
3CAND_PTY_AFFILIATIONParty codeLIB
4CAND_ELECTION_YRElection year2022
5CAND_OFFICE_STState (2-letter postal code)NC
6CAND_OFFICEOffice: H / S / PH
7CAND_OFFICE_DISTRICTCongressional district (00 for Senate/President)09
8CAND_ICIIncumbent/Challenger/Open: I/C/OC
9CAND_STATUSStatus code (C=statutory candidate, F=filed, N=not yet, P=prior cycle)C
10CAND_PCCPrincipal campaign committee IDC00654321
11CAND_ST1Mailing address street
12CAND_ST2Mailing address street 2
13CAND_CITYMailing address city
14CAND_STMailing address state
15CAND_ZIPMailing address ZIP

Usage in the pipeline

FEC data serves two purposes:

  1. Stable identifiers. CAND_ID persists across election cycles. A candidate who runs for the same seat in 2020 and 2022 keeps the same ID. This provides a ground-truth link for validating temporal chains built by the L4 layer.

  2. Name cross-referencing. CAND_NAME is parsed at L1 into last, first, middle, and suffix components. These parsed names are compared against MEDSL and state source names during L3 entity resolution. FEC uses LAST, FIRST MIDDLE format consistently, which makes it one of the more predictable sources for name parsing.

Limitations

  • Federal candidates only. No state legislators, no county commissioners, no school board members. FEC has no jurisdiction over non-federal offices.
  • Filing ≠ appearing on ballot. Many CAND_ID entries correspond to candidates who filed paperwork but never appeared on a general election ballot.
  • Party codes differ from other sources. FEC uses codes like LIB, GRE, NNE (None) that do not match MEDSL’s LIBERTARIAN, GREEN, NONPARTISAN labels. Normalization is required at L1.