🗳️ fec¶
Federal Election Commission campaign finance data. Contains candidate and committee registrations, itemized contributions, expenditures, and inter-committee transfers. Covers all federal elections (President, Senate, House) with data from 1980 to present. Bulk downloads are pipe-delimited files with no headers.
14 datasets · 232 columns
candidates · table¶
All federal candidates registered with the FEC. Includes candidate ID, name, party, office sought, state, district, incumbent/challenger status, and principal campaign committee. One record per candidate per election cycle. Source: cn{YY}.zip bulk download (pipe-delimited, no header).
| Column | Type | Null | Description |
|---|---|---|---|
candidate_ |
string | no | FEC candidate ID (e.g., H0AL01234, S0AK00567, P80000722) |
candidate_ |
string | yes | Candidate name (LAST, FIRST MIDDLE) |
party |
string | yes | Party affiliation code (DEM, REP, LIB, GRN, IND, etc.) |
office |
string | yes | Office sought (H=House, S=Senate, P=President) |
state |
string | yes | Two-letter state abbreviation (US postal code) |
district |
string | yes | Congressional district number (00 for at-large/Senate/President) |
cd_ |
string | yes | Enriched 4-digit congressional-district FIPS (state_fips + zero-padded district) — FK to geo.congressional_districts.cd_fips. Computed at materialization for House candidates only (office=H); NULL for Senate/President/unmapped jurisdictions. Mirrors the candidate_district_profile view join logic. |
incumbent_ |
string | yes | Incumbent/challenger/open status (I, C, O) |
candidate_ |
string | yes | Candidate status (C=statutory candidate, F=statutory candidate for future, N=not yet, P=statutory candidate in prior) |
principal_ |
string | yes | Principal campaign committee ID |
street1 |
string | yes | Mailing address street line 1 |
street2 |
string | yes | Mailing address street line 2 |
city |
string | yes | Mailing address city |
state_ |
string | yes | Mailing address state |
zip |
string | yes | Mailing address ZIP code |
election_ |
integer | yes | Election year (even-numbered) |
committees · table¶
All political committees registered with the FEC. Includes PACs, party committees, campaign committees, and Super PACs. Contains committee type, designation, connected organization, treasurer, and filing frequency. Source: cm{YY}.zip bulk download (pipe-delimited, no header).
| Column | Type | Null | Description |
|---|---|---|---|
committee_ |
string | no | FEC committee ID (e.g., C00000042) |
committee_ |
string | yes | Committee name |
treasurer_ |
string | yes | Committee treasurer name |
street1 |
string | yes | Committee street address line 1 |
street2 |
string | yes | Committee street address line 2 |
city |
string | yes | Committee city |
state |
string | yes | Committee state (two-letter postal) |
zip |
string | yes | Committee ZIP code |
designation |
string | yes | Committee designation: A=Authorized by candidate, B=Lobbyist/Registrant PAC, D=Leadership PAC, J=Joint fundraiser, P=Principal campaign committee, U=Unauthorized |
committee_ |
string | yes | Committee type code: H=House, S=Senate, P=Presidential, D=Delegate, U=Single-candidate independent, V=PAC with non-contribution account, W=PAC with non-contribution account (nonqualified), X=Party nonqualified, Y=Party qualified, Z=National party nonfederal, N=PAC nonqualified, Q=PAC qualified, I=Independent expenditure filer (person), C=Communication cost filer, E=Independent expenditure filer (not a committee), O=Super PAC |
connected_ |
string | yes | Connected organization name (for corporate/labor/trade PACs) |
candidate_ |
string | yes | Candidate ID (for authorized committees) |
filing_ |
string | yes | Filing frequency (A=administratively terminated, D=debt, M=monthly, Q=quarterly, T=terminated, W=waived) |
org_ |
string | yes | Interest group category (C=corporation, L=labor, M=membership, T=trade, V=cooperative, W=corp without capital stock) |
party |
string | yes | Party affiliation |
candidate_committee_linkages · table¶
Links between candidates and their authorized committees. Shows which committees are authorized by which candidates, including the linkage type and election year context. Source: ccl{YY}.zip (pipe-delimited, no header).
| Column | Type | Null | Description |
|---|---|---|---|
candidate_ |
string | no | FEC candidate ID (e.g., H0AL01234, S0AK00567, P80000722) |
election_ |
integer | yes | Election year (even-numbered) |
fec_ |
integer | yes | FEC election year for this record |
committee_ |
string | no | FEC committee ID (e.g., C00000042) |
committee_ |
string | yes | Committee type code: H=House, S=Senate, P=Presidential, D=Delegate, U=Single-candidate independent, V=PAC with non-contribution account, W=PAC with non-contribution account (nonqualified), X=Party nonqualified, Y=Party qualified, Z=National party nonfederal, N=PAC nonqualified, Q=PAC qualified, I=Independent expenditure filer (person), C=Communication cost filer, E=Independent expenditure filer (not a committee), O=Super PAC |
committee_ |
string | yes | Committee designation (A=authorized, P=principal) |
linkage_ |
long | yes | Unique linkage identifier |
individual_contributions · table¶
Itemized individual contributions to federal committees exceeding $200 in an election cycle. Largest FEC dataset (~4-5GB per cycle, 20M+ records). Contains donor name, employer, occupation, amount, date, and memo text. Memo text is vectorized for inferred relationship discovery. Source: indiv{YY}.zip (pipe-delimited, no header).
| Column | Type | Null | Description |
|---|---|---|---|
committee_ |
string | no | FEC committee ID (e.g., C00000042) |
amendment_ |
string | yes | Amendment indicator (N=new, A=amendment, T=termination) |
report_ |
string | yes | Report type (e.g., 12G=pre-general, 12P=pre-primary, 30G=post-general, Q1-Q3=quarterly, YE=year-end) |
transaction_ |
string | yes | Primary/general indicator (P=primary, G=general) |
image_ |
string | yes | Microfilm image number |
transaction_ |
string | yes | Transaction type code (15=contribution, 15E=earmarked, 22Y=refund) |
entity_ |
string | yes | Entity type (IND=individual, COM=committee, ORG=organization, PAC=PAC, CAN=candidate) |
contributor_ |
string | yes | Contributor name (LAST, FIRST MIDDLE) |
city |
string | yes | Contributor city |
state |
string | yes | Contributor state (two-letter postal) |
zip_ |
string | yes | Contributor ZIP code |
employer |
string | yes | Contributor employer name |
occupation |
string | yes | Contributor occupation |
transaction_ |
date | yes | Transaction date |
amount |
double | yes | Transaction amount in USD (negative for refunds) |
other_ |
string | yes | Other committee ID (for transfers/earmarks) |
transaction_ |
string | yes | Transaction ID assigned by filer |
filing_ |
long | yes | FEC filing ID number |
memo_ |
string | yes | Memo code (X=memo item, not counted in totals) |
memo_ |
string | yes | Memo text (earmark info, conduit, purpose descriptions) |
sub_ |
long | yes | FEC unique record identifier |
committee_contributions · table¶
Contributions from committees (PACs, party committees) to candidates. Shows direct committee-to-candidate financial support including amount, date, and purpose. Source: pas2{YY}.zip (pipe-delimited, no header).
| Column | Type | Null | Description |
|---|---|---|---|
committee_ |
string | no | FEC committee ID (e.g., C00000042) |
amendment_ |
string | yes | Amendment indicator (N=new, A=amendment, T=termination) |
report_ |
string | yes | Report type |
transaction_ |
string | yes | Primary/general indicator |
image_ |
string | yes | Microfilm image number |
transaction_ |
string | yes | Transaction type code (24A=independent against, 24C=coordinated, 24E=independent for, 24F=comm cost for, 24K=direct contribution) |
entity_ |
string | yes | Entity type |
contributor_ |
string | yes | Contributing committee/entity name |
city |
string | yes | Contributor city |
state |
string | yes | Contributor state |
zip_ |
string | yes | Contributor ZIP code |
employer |
string | yes | Employer (if applicable) |
occupation |
string | yes | Occupation (if applicable) |
transaction_ |
date | yes | Transaction date |
amount |
double | yes | Transaction amount in USD (negative for refunds) |
other_ |
string | yes | Candidate ID or other committee ID |
candidate_ |
string | no | FEC candidate ID (e.g., H0AL01234, S0AK00567, P80000722) |
transaction_ |
string | yes | Transaction ID |
filing_ |
long | yes | FEC filing ID number |
memo_ |
string | yes | Memo code |
memo_ |
string | yes | Memo text (purpose, earmark info) |
sub_ |
long | yes | FEC unique record identifier |
intercommittee_transactions · table¶
Transactions between political committees — transfers, joint fundraising allocations, and other inter-committee financial activity. Shows the flow of money between PACs, party committees, and campaign committees. Source: oth{YY}.zip (pipe-delimited, no header).
| Column | Type | Null | Description |
|---|---|---|---|
committee_ |
string | no | FEC committee ID (e.g., C00000042) |
amendment_ |
string | yes | Amendment indicator (N=new, A=amendment, T=termination) |
report_ |
string | yes | Report type |
transaction_ |
string | yes | Primary/general indicator |
image_ |
string | yes | Microfilm image number |
transaction_ |
string | yes | Transaction type code |
entity_ |
string | yes | Entity type |
contributor_ |
string | yes | Contributing entity name |
city |
string | yes | City |
state |
string | yes | State |
zip_ |
string | yes | ZIP code |
employer |
string | yes | Employer |
occupation |
string | yes | Occupation |
transaction_ |
date | yes | Transaction date |
amount |
double | yes | Transaction amount in USD (negative for refunds) |
other_ |
string | yes | Other committee ID (receiving/sending) |
transaction_ |
string | yes | Transaction ID |
filing_ |
long | yes | FEC filing ID number |
memo_ |
string | yes | Memo code |
memo_ |
string | yes | Memo text |
sub_ |
long | yes | FEC unique record identifier |
operating_expenditures · table¶
Itemized operating expenditures by political committees. Shows how committees spend their money — consultants, media buys, travel, rent, staffing, etc. Purpose text is vectorized for spending pattern analysis. Source: oppexp{YY}.zip (pipe-delimited, no header).
| Column | Type | Null | Description |
|---|---|---|---|
committee_ |
string | no | FEC committee ID (e.g., C00000042) |
amendment_ |
string | yes | Amendment indicator (N=new, A=amendment, T=termination) |
report_ |
integer | yes | Report year |
report_ |
string | yes | Report type |
image_ |
string | yes | Microfilm image number |
line_ |
string | yes | Line number on form |
form_ |
string | yes | Form type (SB/F3, etc.) |
schedule_ |
string | yes | Schedule type description |
payee_ |
string | yes | Name of payee |
city |
string | yes | Payee city |
state |
string | yes | Payee state |
zip_ |
string | yes | Payee ZIP code |
transaction_ |
date | yes | Transaction date |
amount |
double | yes | Transaction amount in USD (negative for refunds) |
transaction_ |
string | yes | Primary/general indicator |
purpose |
string | yes | Purpose of expenditure (e.g., MEDIA BUY, CONSULTING, TRAVEL, RENT) |
category |
string | yes | Disbursement category code |
category_ |
string | yes | Disbursement category description |
memo_ |
string | yes | Memo code |
memo_ |
string | yes | Memo text |
entity_ |
string | yes | Entity type |
sub_ |
long | yes | FEC unique record identifier |
filing_ |
long | yes | FEC filing ID number |
transaction_ |
string | yes | Transaction ID |
back_ |
string | yes | Back-reference transaction ID |
independent_expenditures · table¶
Independent expenditures — spending by committees and individuals for or against candidates that is not coordinated with the candidate's campaign. Includes Super PAC spending. Source: independent_expenditure_{YYYY}.csv (CSV with headers).
| Column | Type | Null | Description |
|---|---|---|---|
candidate_ |
string | yes | FEC candidate ID |
candidate_ |
string | yes | Candidate name |
spender_ |
string | yes | Committee/spender ID |
spender_ |
string | yes | Committee/spender name |
election_ |
integer | yes | FEC election year |
support_ |
string | yes | Support/oppose indicator (S=support, O=oppose) |
purpose |
string | yes | Purpose of expenditure |
payee |
string | yes | Payee name |
transaction_ |
date | yes | Expenditure date |
amount |
double | yes | Expenditure amount in USD |
candidate_ |
string | yes | Office sought (H/S/P) |
candidate_ |
string | yes | Candidate state |
candidate_ |
string | yes | Candidate district |
candidate_ |
string | yes | Candidate party |
prev_ |
long | yes | Previous file number (for amendments) |
amendment_ |
string | yes | Amendment indicator |
filing_ |
long | yes | FEC filing ID number |
transaction_ |
string | yes | Transaction ID |
image_ |
string | yes | Image number |
electioneering_communications · table¶
Electioneering communications — broadcast, cable, or satellite ads that mention a federal candidate within 30 days of a primary or 60 days of a general election. Source: ElectioneeringComm_{YYYY}.csv (CSV with headers).
| Column | Type | Null | Description |
|---|---|---|---|
candidate_ |
string | yes | FEC candidate ID |
candidate_ |
string | yes | Candidate name |
candidate_ |
string | yes | Office sought (H/S/P) |
candidate_ |
string | yes | Candidate state |
candidate_ |
string | yes | Candidate district |
committee_ |
string | yes | Committee ID |
committee_ |
string | yes | Committee/organization name |
payee_ |
string | yes | Payee name |
disbursement_ |
string | yes | Description of the communication/disbursement |
disbursement_ |
date | yes | Disbursement date |
communication_ |
date | yes | Communication date |
amount |
double | yes | Reported disbursement amount in USD |
number_ |
integer | yes | Number of candidates targeted |
calculated_ |
double | yes | Calculated per-candidate share of disbursement |
communication_costs · table¶
Communication costs reported by corporations and labor organizations for internal communications (to employees, members) mentioning federal candidates. Source: CommunicationCosts_{YYYY}.csv (CSV with headers).
| Column | Type | Null | Description |
|---|---|---|---|
committee_ |
string | yes | Committee ID |
committee_ |
string | yes | Reporting organization name |
candidate_ |
string | yes | FEC candidate ID |
candidate_ |
string | yes | Candidate name |
candidate_ |
string | yes | Office sought (H/S/P) |
candidate_ |
string | yes | Candidate state |
candidate_ |
string | yes | Candidate district |
party |
string | yes | Candidate party affiliation |
support_ |
string | yes | Support/oppose indicator (S=support, O=oppose) |
communication_ |
string | yes | Communication type code (24A, 24N, etc.) |
communication_ |
string | yes | Communication class |
transaction_ |
date | yes | Transaction date |
amount |
double | yes | Transaction amount in USD |
purpose |
string | yes | Purpose of communication |
filing_ |
long | yes | FEC filing ID number |
candidate_summaries · table¶
Aggregated financial summary for each federal candidate per election cycle. Includes total receipts, disbursements, cash on hand, debts, and individual/ PAC contribution breakdowns. Source: candidate_summary_{YYYY}.csv (CSV with headers).
| Column | Type | Null | Description |
|---|---|---|---|
candidate_ |
string | no | FEC candidate ID (e.g., H0AL01234, S0AK00567, P80000722) |
candidate_ |
string | yes | Candidate name (LAST, FIRST MIDDLE) |
incumbent_ |
string | yes | Incumbent/challenger/open status |
office |
string | yes | Office sought (H=House, S=Senate, P=President) |
state |
string | yes | Two-letter state abbreviation (US postal code) |
district |
string | yes | Congressional district number (00 for at-large/Senate/President) |
party |
string | yes | Party affiliation (DEM, REP, LIB, GRN, IND, etc.) |
total_ |
double | yes | Total receipts |
transfers_ |
double | yes | Transfers from authorized committees |
total_ |
double | yes | Total disbursements |
transfers_ |
double | yes | Transfers to authorized committees |
cash_ |
double | yes | Cash on hand at beginning of period |
cash_ |
double | yes | Cash on hand at end of period |
contributions_ |
double | yes | Contributions from the candidate |
loans_ |
double | yes | Loans from the candidate |
other_ |
double | yes | Other loans |
loan_ |
double | yes | Candidate loan repayments |
other_ |
double | yes | Other loan repayments |
debts_ |
double | yes | Debts owed by committee |
total_ |
double | yes | Total individual contributions |
individual_ |
double | yes | Itemized individual contributions (>$200) |
individual_ |
double | yes | Unitemized individual contributions (<=$200) |
pac_ |
double | yes | Contributions from political party committees |
other_ |
double | yes | Contributions from other political committees |
coverage_ |
date | yes | Coverage end date |
refunds_ |
double | yes | Refunds to individuals |
refunds_ |
double | yes | Refunds to committees |
committee_summaries · table¶
Aggregated financial summary for each political committee per election cycle. Includes total receipts, disbursements, cash on hand, debts, contribution sources, and independent expenditures. Source: committee_summary_{YYYY}.csv (CSV with headers).
| Column | Type | Null | Description |
|---|---|---|---|
committee_ |
string | no | FEC committee ID (e.g., C00000042) |
committee_ |
string | yes | Committee name |
committee_ |
string | yes | Committee type code |
designation |
string | yes | Committee designation |
filing_ |
string | yes | Filing frequency |
total_ |
double | yes | Total receipts |
transfers_ |
double | yes | Transfers from affiliates |
individual_ |
double | yes | Total individual contributions |
other_ |
double | yes | Contributions from other political committees |
candidate_ |
double | yes | Candidate contributions |
candidate_ |
double | yes | Candidate loans |
total_ |
double | yes | Total loans received |
total_ |
double | yes | Total disbursements |
transfers_ |
double | yes | Transfers to affiliates |
refunds_ |
double | yes | Refunds to individuals |
refunds_ |
double | yes | Refunds to committees |
candidate_ |
double | yes | Candidate loan repayments |
total_ |
double | yes | Total loan repayments |
cash_ |
double | yes | Cash on hand beginning of period |
cash_ |
double | yes | Cash on hand end of period |
debts_ |
double | yes | Debts owed by committee |
nonfederal_ |
double | yes | Nonfederal transfers received |
contributions_ |
double | yes | Contributions to other committees |
independent_ |
double | yes | Independent expenditures |
party_ |
double | yes | Party coordinated expenditures |
nonfederal_ |
double | yes | Nonfederal share of expenditures |
coverage_ |
date | yes | Coverage end date |
connected_ |
string | yes | Connected organization name (for corporate/labor PACs) |
party |
string | yes | Party affiliation |
state |
string | yes | Committee state |
active_candidates · view¶
Active federal candidates from the most recent election cycle. Filters fec.candidates to rows where candidate_status = 'C' (certified active). Single-schema view using only fec tables.
View — columns are resolved by the query engine at runtime.
candidate_district_profile · view¶
Enriches FEC candidates with geographic state and congressional district data. House candidates (office=H) are matched to their TIGER district boundary via state_fips + zero-padded district number. Senate/presidential rows get state geography only (no CD match).
View — columns are resolved by the query engine at runtime.