Iowa  ·  Ledger

About Iowa Ledger

This site publishes Iowa's political money and voting record as the government files it — 1,403 committees, 661 bills of the 91st General Assembly, 72,810 lobbyist declarations, and the 136 races on Iowa's 2026 ballot. Every figure links back to the filing it came from, so you never have to take my word for it.

Why "Ledger"

A ledger is a boring word, and that's the point. Every row has a date, an amount, and a filing standing behind it. Nothing here gets to make a claim it can't back with a line somebody already signed and sent to the state.

Iowa publishes all of this already. Contributions, expenditures, roll-call votes, lobbying declarations. It publishes them in formats that are technically public and practically unreadable, spread across agencies that don't talk to each other. This is the same record with the arithmetic done and every number linked back to where it came from.

How the numbers get here

Nothing on this site is typed in by hand. Public data is downloaded from the sources below, loaded into a database, and every published figure is recomputed from that database before it can ship. A number that stops reconciling fails the build, and the page does not update.

That is a deliberately higher bar than "I checked it." Reading a page finds nothing; recomputing it has found every defect this project has ever shipped — including in-kind gifts counted as cash donations, a candidate's lobbying record missing more than half its filings, and 7 vetoed bills that were being displayed as though they had merely had a floor vote.

I publish what the record says and stop there. Where the record is silent I say so rather than inferring: a candidate whose committee I cannot find is shown as unknown, never as $0, because those are different claims and only one of them is mine to make.

Where it comes from

SourceWhat we take from it
Iowa Ethics & Campaign Disclosure Board ↗ Every state committee's contributions, expenditures and DR-2 filings.
Iowa Legislature ↗ Bill text and status, recorded floor votes, and every lobbyist declaration.
Iowa Secretary of State ↗ Candidate lists and certified election canvasses.
Federal Election Commission ↗ Congressional candidates, who file federally rather than with the state.
Federal statistical agencies and state records ↗ The Where Iowa ranks measures, cited on every card.

Each feed updates on its own rhythm and each page carries its own as-of date. The Legislature only changes while it is in session; candidate lists change at filing deadlines; committee filings land on statutory due dates. A single site-wide "updated today" would be false about most of this data, so I don't print one.

What this data does not cover

Every dataset has holes. Mine are measured rather than described, because a gap nobody has measured gets rounded to zero:

Corrections

If a number here is wrong, I want to know, and I'll say so publicly when I fix it. Email brett@mohlerforiowa.com.

The fastest way to get a correction made is to name the page, the figure as it appears, and what you think it should be. If you can point at the filing, better still. That's the same evidence I'd go find.

When a published figure changes, I record what it said before, what it says now, and why. A transparency site that quietly edits its own numbers is asking for exactly the trust it refuses to extend to anyone else.

Who publishes this

I do. My name is Brett Mohler. I live in Albia, in Monroe County, and I've been in House District 26 for 23 years. I design tools for a living in agricultural manufacturing. My wife and I are raising our son here.

This is a personal project. There's no organization behind it and nobody paying for it. I built it because I wanted Iowa's campaign money and the actual roll-call votes in one place I could check without taking anyone's word for it, and I couldn't find that anywhere.

You should also know I'm a candidate. I'm running as a Democrat for Iowa House District 26 in 2026, against the incumbent, Austin Harris. My own race is on this site like every other one, and my fundraising is broken out by the same rules his is. Go look at House District 26 and judge it yourself.

Here's why I think you can still use this. I can't put my thumb on a number without breaking something that leaves a mark. Nothing here is typed in by hand. Every figure is recomputed from the state's own files before the site will publish, and a figure that stops matching its source fails the build, so the page just doesn't update. Making myself look better would mean editing the code that checks me, in public, in a repository with a history.

Respectfully, don't take that on faith either. Every number on this site links to the filing it came from. That's what those links are for.

Counts on this page are read from the same data the rest of the site renders. Bill statuses retrieved 2026-09-07; General Assembly 91st (2025–26).