Junk Filings in FEC Independent Expenditures

A junk filing in the federal record of political spending, and the difference between wrong and plausibly wrong

Democracy’s Data

Last updated September 15, 2026 at 4:42p EDT

Outside money is the least accountable part of an American campaign and the best documented part of it. Every dollar a super PAC — a committee allowed to raise unlimited sums on the condition that it spends them without coordinating with any candidate — spends for or against a candidate has to be reported to the Federal Election Commission. The Commission publishes the whole cycle as one file that anybody can download for nothing. So the obvious questions look answerable. How much was there in 2024, and was it spent promoting candidates or attacking them?

Both are questions a citizen has a stake in, because this is the money nobody can be asked about. A campaign that runs a dishonest advertisement can be made to answer for it. A super PAC cannot be voted out, and the candidate it helps can disclaim it truthfully, because coordinating with it — planning or paying for the spending together — would be illegal. Buckley v. Valeo (1976) drew the line that makes this possible, allowing limits on what a person gives to a campaign but not on what they spend on their own;1 Citizens United v. FEC (2010) extended it to corporations and unions, on the reasoning that money spent independently cannot corrupt.2 Whether it mostly promotes or mostly attacks is one of the few things about it a reader can check.

So you download the file and add up a column. Can you?

The test

The data is the file of independent expenditures the Commission publishes for the 2024 cycle — the two years ending with the November 2024 election — downloadable from its bulk-data page at https://www.fec.gov/data/browse-data/?tab=bulk-data with no account and no fee: 73,449 rows, one per reportable expenditure. An independent expenditure is money spent for or against a candidate by somebody the candidate does not control. Anyone who spends above a threshold on a message urging the election or defeat of a named federal candidate has to report it, and in the closing weeks of a campaign within a day or two of writing the check.3

This file can answer the question because of one column. Schedule E, the page of the Commission’s reporting form on which independent expenditures are listed, makes the spender code every line as supporting or opposing the candidate it names. Almost no other record of political money in the United States carries that field, and without it the only answerable question is how much, which is the less interesting one. What the file does not carry is any checking. Nobody stands between the filer and the reader: the Commission is a disclosure agency rather than an auditor, for the reasons this cluster’s chapter on campaign finance disclosure sets out.

The test is to add the column up as the file arrives, look at the largest rows, and add it up again.

The data

The table every number here rests on is that bulk file: 23 columns, 73,449 rows. Here is every column, with the part worth insisting on — what each one actually contains across all 73,449 rows, rather than whatever it happened to say in the first one.

# Column as it arrives What is in it Blank What it holds
1 cand_id 749 distinct, e.g. "H4CO08034" 12.9% FEC ID of the candidate the money is about
2 cand_name 1,323 distinct, e.g. "Evans, Gabe" — that candidate’s name
3 spe_id 1,001 distinct, e.g. "C00866517" — FEC ID of the committee doing the spending
4 spe_nam 1,081 distinct, e.g. " Go America PAC" — the spender’s name, as the filer typed it
5 ele_type G · P · O · S · R · C — which election: P primary, G general, and four more — O other, S special, R runoff, C convention
6 can_office_state 57 distinct, e.g. "CO" 17.6% state of the office sought
7 can_office_dis 46 distinct, e.g. "08" — district of the office sought — a code, not a quantity
8 can_office H · P · S — office sought: H, S or P
9 cand_pty_aff 9 distinct, e.g. "REPUBLICAN PARTY" 15.0% the candidate’s party
10 exp_amo 30,236 distinct, -580,000 to 9,978,412,568 — the amount of this one expenditure
11 exp_date 581 distinct, e.g. "27-SEP-24" 35.1% the date of the expenditure — often blank, see below
12 agg_amo 30,148 distinct, 0 to 2,888,374,799 0.2% running total this spender has aggregated for or against this candidate
13 sup_opp S · O 0.2% S support or O oppose — the single character this chapter counts
14 pur 5,785 distinct, e.g. "texts supporting Gabe Evans CO-8" — purpose, in the filer’s own words
15 pay 5,448 distinct, e.g. "TTHM.com" — who was paid
16 file_num 11,837 distinct, e.g. "1845617" — the FEC filing this row came from
17 amndt_ind N · A1 · A2 · A3 · A4 — N new filing; A1–A4 a first, second, third or fourth amendment
18 tran_id 49,153 distinct, e.g. "E2D2833410CAA40CB9A5" — the filer’s own transaction ID
19 image_num 37,632 distinct, e.g. "202410319719900778" — the scanned image of the paper filing
20 receipt_dat 698 distinct, e.g. "31-OCT-24" — the date the FEC received it
21 fec_election_yr 2024 — the election year — the same value on every row, so it carries nothing
22 prev_file_num 1,185 distinct, e.g. "1832140" 82.5% the filing this one amends, where it amends one
23 dissem_dt 693 distinct, e.g. "30-OCT-24" 19.3% the date the message actually went out

Three things in that table are worth stopping on.

The spender’s name begins with a space. " Go America PAC", not "Go America PAC". Group the file by spender without trimming and this committee becomes two committees, sorted to opposite ends of any alphabetical list, with its money split between them. Nothing announces it. It is one invisible character.

There are three date columns and the obvious one is the emptiest. exp_date is the date of the expenditure, the column anyone would reach for, and it is blank on 35.1% of rows. dissem_dt, the date the message actually went out, is blank on 19.3%. Only receipt_dat is filled in on every row, and that is the date the Commission received the paperwork rather than the date anybody spent anything.

sup_opp is one letter, and this brief’s central finding is a count of it. S for support, O for oppose, written by the filer and checked by nobody. The whole argument about whether outside money attacks or promotes is that single character added up across 73,449 rows.

Two decisions were made before any of that was counted, and both are written down rather than assumed. Candidate names were uppercased so that case variants of one person would merge: Evans, Gabe becomes EVANS, GABE. The key is a name rather than an identifier, and it does not fully work.

One exclusion rule was applied, stated as a number: rows above $100 million are dropped. That is a threshold and not a diagnosis. Every row it removes is published beside this brief in ie_outliers.csv, so a reader can disagree with the cut and recompute from the discarded rows. Nothing else was touched: no amount corrected, no filer contacted, no obviously false row quietly deleted.

One number below cannot be recomputed from the tables handed over at the end. The Commission’s file runs to roughly 19 megabytes and is not among them, so 73,449 is the row count it had on the day it was read. A reader who downloads it later may find more, because filings and amendments keep arriving after a cycle closes.

Before you read on, commit to a number. 16 of those 73,449 rows sit above the cut and come out. A count that small, in a file that large, ought to leave a percentage where it was. Write down how far you think the share of money spent supporting candidates moves when they go. A tenth of a point? A point? Five? Put an actual number on the page before you turn it.

What it says about democracy

Here is the file added up exactly as it arrives.

Quantity Value
Filings in the 2024 independent-expenditure file 73,449
Total reported $49.67 billion
Spent supporting a candidate $46.94 billion (94.5%)
Spent opposing a candidate $2.73 billion (5.5%)

$49.67 billion, of which 94.5% supports candidates and 5.5% opposes them. Both of those numbers are wrong. One is wrong by a factor of ten. The other is backwards, and it is the dangerous one.

Filing committee Candidate named Amount Stated purpose
THE COURT OF DIVINE JUSTICE AKHLAGHY, NADER $9,978,412,568 Political Contribution
THE COMMITTEE OF 300 AKHLAGHY, NADER $9,778,412,568 Political Contribution
THE COMMITTEE OF 300 AKHLAGHY, NADER $9,000,000,000 DEPOSIT FOR WINNING IN ELECTION
THE COMMITTEE OF 300 AKHLAGHY, NADER $7,959,594,848 FOR WIN THIS ELECTION
Republican Emo Girl BOUNNHARAT, AMANDRA $6,347,882,325 Senate campaign.
The Masonic Illuminati Eye AKHLAGHY, NADER $579,874,829 Political Contribution
Gus Associates WHITE, WALTER $255,000,000 funding for waltuh white’s campaign
Quantity Value
Rows in the file 73,449
Rows above $100 million 16
Their share of all rows 0.022%
Their share of all dollars 90.4%

16 rows, 0.02% of the file, carry 90.4% of the dollars. Read who filed them. “THE COURT OF DIVINE JUSTICE.” “THE COMMITTEE OF 300.” “The Masonic Illuminati Eye.” Nearly ten billion dollars each, almost all naming one obscure candidate, for purposes including “DEPOSIT FOR WINNING IN ELECTION”.

One of them can be read in full, because the Commission publishes the submissions as well as the summary file.

Figure 1. One junk filing, as the Federal Election Commission received and published it. A facsimile of the record fits this question better than any chart would, because the claim is about what a federal agency published rather than about a quantity. Every value on the card is read out of ie_filing_1707511.fec rather than retyped: 418 bytes, three records, fields separated by the ASCII file-separator character. The payee is a fictional lawyer, the treasurer a fictional drug distributor, the candidate the protagonist of a television series, and the amount $255,000,000. The single letter in the support-or-oppose field, shown in blue, decides which side of every total below the money lands on.

Read the card from the top. The filing committee, Gus Associates, is the spender: the entity that says it paid. The payee is who it says it paid, and the stated purpose is what for. The candidate line, Walter Hartwell White (H4NM02098), is who the money was about, and the office line says which seat. The single letter on the support-or-oppose line, S (support), decides whether the $255,000,000 counts as money for that candidate or against. Every row in the file has these same fields, and adding that one letter up across 73,449 of them is the whole of this brief’s arithmetic.

These are not errors. They are junk filings, sitting in the federal government’s official record of campaign spending, published exactly as submitted. That is not an oversight. An agency empowered to decide which political filings are real would hold a power over political speech that nobody would want it to have, exercised by commissioners appointed on a partisan basis.4 There is no free version of this, and the cost of the arrangement we have is a national statistic that is wrong by a factor of ten until somebody reads 16 rows.

Not every bad row is somebody lying, either.

Filing committee Candidate Amount FEC file number
Food & Water Action HARRIS, KAMALA $114,056,874 1848231
Food & Water Action HARRIS, KAMALA $114,056,874 1848231
Food & Water Action HARRIS, KAMALA $114,056,874 1848231
Food & Water Action HARRIS, KAMALA $114,056,874 1848231

9 rows, all $114,056,874, all the same committee, all supporting the same candidate — and all carrying the same file number. One filing, exported 9 times, worth $1.03 billion of spending that never happened. The junk filings are people lying to the government. This is the government’s own export repeating a row. They need different fixes, and calling both of them “bad data” loses the distinction.

Now take all 16 out.

Version Direction Dollars % of that version
Raw file supporting a candidate $46.94 billion 94.5%
Raw file opposing a candidate $2.73 billion 5.5%
16 rows removed supporting a candidate $2.02 billion 42.4%
16 rows removed opposing a candidate $2.73 billion 57.6%

The total falls from $49.67 billion to $4.75 billion, which is about what the Commission’s own running summary of independent spending, and the watchdog groups that track it, report for the cycle.5 And the headline reverses. In the raw file, 94.5% of outside money supports candidates. Once 16 rows are gone, 57.6% of it is spent attacking somebody. The supportive share does not slip by a point or two. It falls 52.1 points and crosses the halfway line on the way down.

Figure 2. Removing 16 rows out of 73,449 does not shrink the answer. It reverses it. Each bar is the share of its own version’s dollars spent attacking a candidate: 5.5% as published, 57.6% with 16 rows gone. One bar against a line at half works better here than a pair of totals, because the two versions differ tenfold in size and the point is not size. The point is which side of the line they land on.

Here is why that matters more than the ten-fold error. $49.67 billion is obviously wrong, and anyone would query it. 94.5% supportive is a perfectly plausible number. It would pass a referee, sit unremarked in a paper, and be cited. Wrongness that announces itself is the safe kind.

Two exceptions have to be told, because a finding that depends on where a threshold sits is not a finding.

Quantity Value
Smallest row removed $114,056,874
Largest row kept $30,033,271
Rows anywhere in the file between $50m and $100m 0

Nothing sits anywhere near the cut. The largest row the rule keeps is $30,033,271 and the smallest it removes is $114,056,874, a gap of $84 million with 0 rows in it. Any threshold between those two figures removes the same 16 rows and gives the same answer, so the cut could have been set anywhere across a factor of 3.8 without changing a number here. That slack is what makes the rule defensible, and it is the thing to check rather than the roundness of the number chosen.

The second exception is sharper. Put back only the 9 duplicated rows, the export bug rather than the fantasy, and see whether the finding survives.

Version Supporting Opposing
16 rows removed (as published) 42.4% 57.6%
with the 9 duplicate rows restored 52.7% 47.3%

It does not. Restoring one committee’s duplicated filing is enough on its own to flip the conclusion back. So the honest sentence is narrower than “most outside money is negative.” It is “most outside money is negative, and that conclusion depends on handling one export bug correctly.” Which is exactly why the 16 removed rows are published beside the total instead of being quietly dropped.

What this brief cannot tell you

The cleaned file is not clean. Uppercasing merged Harris, Kamala with HARRIS, KAMALA, and could not merge TRUMP, DONALD with TRUMP, DONALD J.. 2 spellings of Donald Trump and 2 of Jon Tester survive into ie_candidates.csv, each carrying part of the money. Cleaning is not a phase that finishes.

Nothing here is evidence of fraud, and nobody was prosecuted. The 16 rows look like what they probably are: nonsense, or somebody’s error, sitting unremarked in a system that publishes what it receives.

“Independent” is a legal claim rather than an observed property. Coordination is decided after the fact if at all, and it is not a field. The constitutional argument that this spending cannot corrupt rests on a factual premise no dataset can check.

There is no persuasion data anywhere in this. Dollars and direction are here; effects are not. The obvious next source is the platform advertising libraries, and they are closed: Meta requires identity verification and Google reports each advertisement’s spending only as a range.6 This is also one category of spending in one cycle. Electioneering communications (broadcast ads that name a candidate close to an election without urging a vote either way), party spending, and groups that never file at all are elsewhere or nowhere.

What you should have learned

Extensions

None of these is answered above, and every one can be answered from the tables the Sources section hands over.

Two stretch ideas point past the spreadsheet. Take the largest row in ie_outliers.csv, look the committee up on fec.gov, and see what else it filed and whether anything ever happened to it. And download the 2022 cycle’s file from the same address, apply the same rule, and find out whether junk of this size is a feature of the register or an accident of one year.

Sources

Data

Academic literature

The data itself

Every figure above is drawn from these tables. They are plain CSV, they open in a spreadsheet, and they are yours to take further.

ie_candidates.csv, ie_columns.csv, ie_committees.csv, ie_facts.csv, ie_outliers.csv, ie_summary.csv

Rebuild this data yourself, with an AI assistant
I want to rebuild a public dataset from its original source, without any
starting files. Please do the following and show your work.

THE SOURCE. Federal Election Commission, bulk download of independent
expenditures for the 2024 cycle — money spent for or against a
candidate by people the candidate does not control and may not
coordinate with. One CSV, about 19 MB, twenty-three columns, no
account or key:
https://www.fec.gov/files/bulk-downloads/2024/independent_expenditure_2024.csv
Each row is one reported expenditure. The FEC publishes what is filed;
it does not check whether it is true. One filing can also be read
exactly as it was submitted, at
https://docquery.fec.gov/dcdev/posted/1707511.fec — the raw electronic
filing behind a $255,000,000 row supporting a candidate named Walter
White, its fields separated by an invisible character (ASCII 28).

WHAT TO BUILD.
1. The raw file's total, split into money supporting candidates and
   money opposing them. It will come to about ten times what was
   actually spent on the 2024 election.
2. The rows above a hundred million dollars. There should be sixteen,
   of two kinds: fantasy filings from committees with names like "THE
   COURT OF DIVINE JUSTICE", and one real filing exported nine times
   over. List every one.
3. The totals again without those sixteen rows, and the
   support-versus-oppose split before and after. The split reverses —
   the junk does not just inflate the total, it flips which way most
   outside money points.

CHECK YOUR WORK. The copy this book used was downloaded in August 2026.
If your rebuild matches it, you should find:
- 73,449 rows, totalling about $49.7 billion raw
- 16 rows above $100,000,000; the largest claims $9,978,412,568
- nine of the sixteen are the same $114,056,874 filing, every one
  carrying file number 1848231
- raw, 94.5% of the money supports candidates; without the sixteen
  rows, 57.6% opposes
The FEC amends this file as corrections arrive; small movements mean
revision, not error.

  1. Buckley v. Valeo, 424 U.S. 1 (1976): https://www.law.cornell.edu/supremecourt/text/424/1.↩︎

  2. Citizens United v. Federal Election Commission, 558 U.S. 310 (2010): https://www.law.cornell.edu/supremecourt/text/08-205.↩︎

  3. 52 U.S.C. §30104(c) and (g): $1,000 or more spent in the last twenty days before an election must be reported within 24 hours, and $10,000 or more earlier in the cycle within 48 hours: https://www.law.cornell.edu/uscode/text/52/30104. The Commission’s plain-language guide: https://www.fec.gov/help-candidates-and-committees/making-independent-expenditures/.↩︎

  4. Six commissioners, no more than three from one party, and four votes needed for the Commission to act: 52 U.S.C. §30106, https://www.law.cornell.edu/uscode/text/52/30106.↩︎

  5. The Commission’s summary, which can be filtered by cycle: https://www.fec.gov/data/independent-expenditures/.↩︎

  6. Google’s political advertising transparency report: https://adstransparency.google.com/political.↩︎