# Campaign finance — open flags (started 2026-10-14, data audit II)

Things that are known to be incomplete or uncertain in the campaign finance data, and what would settle them.
The README explains how the data is built.

## 1. Waiting for a source
1. **2026 county candidate with no county**: Douglas Erickson (Budget Committee District 8, Republican). Neither the
   Ethics data, the June primary nor the Secretary of State's November list places him; his race is labelled "(county
   not on file)". `cf_cleanup.py` retries on every run.
2. **Presidential 2024: DeSantis and Tim Scott** show the FEC's Maine totals but no itemized donors: their campaign
   committees' Maine gifts are not in the fec.gov exports on file (`raw/fec-pres/csv/me_pres_receipts_2024.csv.gz`),
   and the FEC API's committee list gives DeSantis only the "Draft DeSantis 2024 Fund". Export Ron DeSantis for
   President and Tim Scott for America (contributor state ME, 2023–24) through the iMac browser, add the committee ids
   to `CMFIX` in `build_pres.py`, rebuild.
3. **Statewide ballot questions for November 3, 2026**: none were on the Secretary of State's site on 2026-10-14. If
   bond questions are added, update `raw/sos-nov2026/nov2026_ballot_questions.csv` and run `build_ref.py`.

## 2. Needs Matt's decision
1. **Somerset County and Aroostook Finance Committee "NP".** The election results code Somerset County's county-office
   candidates (2018–2024) and Aroostook's Finance Committee candidates as NP (no party printed). The campaign finance
   page keeps the party each candidate filed with the Ethics Commission (mostly Unenrolled; Anthony Sparrow 2022 and
   John Rasmussen 2018 as Republicans). Nothing on file says these offices are nonpartisan, so the page does not label
   anyone "Nonpartisan". The Secretary of State's November 2026 candidate list also prints no party for Somerset County
   offices, the Knox County Budget Committee and the Aroostook County Finance Committee. If Matt confirms an office is
   nonpartisan, set those candidates to that label.

## 3. Known limits (left as they are)
1. **Spending categories above total spending** remain for a few older federal campaigns whose six-year Senate
   window or earlier House committee is not in the FEC cycle totals (Snowe 2012, Allen 2008, Michaud 2002 and eight
   smaller ones), and for 16 small state campaigns where an itemized entry sits in a report not counted in the totals
   (e.g. Barbara Cardone 2022 HD 21: $1,550 itemized, $0 in the report summaries). Totals shown are always the
   official report totals.
2. **Jason Cherry 2024 (U.S. Senate)**: the FEC's cycle summary ($103,989 spent) counts a pre-primary report that a
   later filing replaced; the report-by-report figures leave it out ($55,000).
3. **Robert Cross 2024 (U.S. House District 2)** has negative cash on hand (−$5,759) as filed.
4. **Elias Bassile 2024** is in U.S. House District 1 as the FEC's candidate file says (District 01); his $1.0M is a
   loan from himself, and he was not on the ballot.
5. **Top-donor lists** are the largest donors only; when name variants are added together a donor just below the
   cut-off may be missing.
6. `won: 1` on Harris (presidential 2024) refers to Maine's statewide electors; Trump won the District 2 elector.
7. **Name display.** Names come from the filings; middle initials are dropped and capitals turned to Title Case, but
   a few filers' notes stay in the name as filed (e.g. "Arthur Morison (write-in)", "Ryan Wheaton (House)", 2012).
8. **Ranked-choice shares (2026-10-15).** For the 11 ranked-choice contests with an official round-one tabulation the
   badge share is of the SOS's official round-one count; the town figures add up to slightly less (skipped/overvoted
   first rankings credited in the official count). A write-in total the official count does not list keeps the town
   figure.
9. **`build_ref_hist.py` is not deterministic in order**: it can list a committee's questions in a different order on
   each run (same content). Compare `ref*.json` by content, not bytes, before replacing them.
10. **FEC outside spending — transaction ids are reused (fixed 2026-10-17).** Until Oct 16 `build_data.py` kept one row per
   (committee, transaction id), assuming a repeated id meant an amendment. Committees number each new 24/48-hour report
   from scratch (SLF PAC's "SE.3" appears in a dozen different reports), so real expenditures were dropped — e.g. SLF PAC
   against Troy Jackson: $8.8M kept of $30.0M (SLF's own reported aggregate for the race: $29.2M). Now an amended report
   (its `prev_file_num`) replaces the whole report it amends and every other row counts; per committee the totals now
   match the committees' own reported aggregates (`agg_amo`) within a few percent. Effect on the Oct 16 figures (same
   data): Jackson opposed +$20.1M, Collins supported +$1.8M, Platner opposed +$0.25M; Baldacci supported −$0.47M (an
   amended Project 218 report had been counted twice).
11. **FEC independent expenditures without the right candidate ID (fixed 2026-10-17, Matt: count them "so long as you are
   confident").** `build_data.py` now gives a row the 2026 candidate's ID when its candidate ID is blank or an older one
   and office, state, district and name leave exactly one candidate (surname within one letter, first name compatible);
   it prints every row it maps. 51 rows mapped on Oct 17: CLF against Matt Dunlap $4.04M (= CLF's own reported aggregate),
   Defending Main Street $0.95M against Troy Jackson, American Hospital Association PAC $0.40M for Susan Collins, League of
   Labor Voters $0.30M for Jackson (filed under his 2014 House ID H4ME02218), and smaller rows (Maine People, Registration
   Nation, American PAC, Teamsters, IATSE, Planned Parenthood Votes, Conservative Caucus). Left out (not confident):
   12 Conservative Caucus rows naming "Baldacci, John Elias" (the 2026 candidate is Joseph Baldacci; $22K) and one row
   under a Texas candidate's ID (Vicente Gonzalez, $5K). **Duplicates** a committee re-reported under new transaction ids
   are dropped by `raw/fec/ie_corrections.csv` once checked against the committee's own periodic report: REAL CHANGE PAC's
   May 22, 2026 buy ($301,816) — its June monthly report lists only the later version (all opposing Joseph Baldacci), so
   the first 24-hour version (split $241,453 for Dunlap / $60,363 against Baldacci) is dropped; the PAC's race total is
   now its own $522,316.
12. **Ethics data sets of Oct 17 were rebuilt from the Oct 15 files** (the cloud workspace cannot download them): the
   rows the Commission added or dropped were read in the iMac browser and applied; the result was checked against the
   Commission's own files (same rows — SHA-256 of the sorted rows — and the same byte size). Row order differs from the
   Commission's file; no figure depends on it.
13. **Ethics report summaries re-read Oct 24, 2026 (11-Day Pre-General); cash and "through" date fixed.** (a) Two filings
   on file since Oct 7 are no longer listed by the Commission and were dropped: an "11-Day Pre-General MCEA Report"
   submitted Sept 22 (filer f_01kd8w6ftve6dak61qdwd3tm92) and a "42-Day Post-Primary MCEA Report" with a period of
   Aug 11 – Jul 14 (f_01kd8w6ftve6dak61qbbg0eq17); each candidate has since filed the proper report. (b) 24/48-hour reports
   state no balance, so a candidate whose latest report was one showed $0 cash (Pingree, Charles and others after Oct 21);
   cash now comes from the latest report that states a balance. (c) Some candidates have already filed the 42-Day
   Post-General report (period Oct 21 – Dec 8, mostly $0); the page said "through 12/08/2026" for three of them on the live
   site before this run. "Through" is now the submission date when the period end is still in the future. Both rules are
   in `build_me.py`; on the Oct 23 inputs they change only those three dates.
