The limit isn't broken by one contribution — it's broken by the sum
A single $500 contribution is unremarkable. The same $500 contribution, arriving as the fourth gift from a donor who has already given close to the limit earlier in the cycle, is a different question entirely — and answering it requires knowing the donor's full giving history, not just the transaction in front of you.
This page describes how contribution records are read and rolled up into a running aggregate per donor, so that question has an answer ready before a report is filed, not discovered afterward.
Why a single report period isn't the right lens
FEC reports cover a specific filing period — a month, a quarter, a pre-election window — but the contribution limit itself operates on the election, not the filing period. A donor who gave near the limit in an earlier report and gives again in a later one can cross the line even though each individual report, read on its own, shows nothing alarming.
Catching that requires looking across every report period together, not one at a time — exactly the kind of cross-period tracking that's tedious to maintain by hand and easy to let slip once a campaign is juggling several reporting deadlines back to back.
What this doesn't decide
Doesn't determine whether a contribution must be refunded
It surfaces the aggregate total and the contributions behind it. The remedy for an excessive contribution — refund, redesignation — is a compliance decision your treasurer makes.
Doesn't resolve a donor-identity match on its own
Where two records could plausibly be the same donor or two different people, it's flagged for your review rather than merged automatically.
Doesn't track state-level limits
Aggregation here is built around federal limits. State and local contribution limits, where applicable, follow separate rules outside this feature's scope.
What aggregation actually requires
Donor identity (matched by name and address, not amount alone), the election each contribution is designated for (since primary and general limits are separate), and the full contribution history across every reconciled period — combined, these three give a reliable running total per donor, rather than a snapshot that only reflects the most recent report.
What gets read
| Field | Used for |
|---|---|
| Donor name and address | Matching contributions to the correct donor across periods |
| Contribution amount and date | Building the running aggregate total |
| Election designation (primary/general) | Tracking each limit separately |
| Source document reference | Linking every aggregate figure back to its evidence |
How it works
Upload bank statements and contribution records
One or more reporting periods, from any channel the campaign uses.
Every contribution is read and matched to a donor
Name and address used together, with ambiguous matches flagged.
Aggregate totals are built per donor, per election
Primary and general contributions tracked separately, across every period.
Donors near or over the limit are surfaced
With the full contribution history behind each total, ready for review.
A donor who crosses the line, caught
A donor gives three separate contributions to a candidate's primary election across three different reporting periods, each individually unremarkable.
| Period | Contribution | Running total |
|---|---|---|
| Q1 | $1,500 | $1,500 |
| Q2 | $1,200 | $2,700 |
| Q3 | $900 | $3,600 — over the primary-election limit |
No single quarter's contribution looked excessive on its own — it's only the running total across all three that crosses the line, exactly the pattern that's easy to miss without a persistent aggregate tracked across every reporting period.
Primary and general elections are separate limits
A donor can give up to the federal limit for a candidate's primary election, and separately, up to the same limit again for the general election — two distinct caps, not one combined ceiling. A contribution that appears excessive when compared against a single combined total may in fact be entirely compliant once correctly split between the two elections it was designated for.
Getting this split right depends entirely on accurate election designation on each contribution record — a field that's easy to leave ambiguous in casual bookkeeping but critical to get right for an aggregate total to mean anything.
A donor who gives before knowing whether a primary will even be contested, or who gives a single contribution intended to cover both elections without saying so explicitly, is a common source of ambiguity here — the safest default is to treat an undesignated contribution as applying to the next election on the calendar, and to flag it for the donor or the treasurer to clarify rather than assume a split that was never actually specified.
Joint fundraising committees complicate the picture
A joint fundraising committee collects one contribution from a donor and allocates it across several participating candidates and committees according to a pre-set formula — which means the amount that counts against the federal limit for any one candidate is the allocated share, not the full amount the donor originally wrote a check for.
Reading the joint fundraising committee's own allocation memo alongside the participating committee's bank deposits keeps the aggregate total scoped to what actually counts against that specific committee's limit, rather than the gross amount the donor contributed to the joint committee overall.
Manual vs. automatic
| Manual | Automatic |
|---|---|
| Aggregate rebuilt from scratch each filing period | Running total maintained continuously across periods |
| Cross-period pattern easy to miss under deadline pressure | Donors approaching the limit surfaced automatically |
| Primary/general split tracked manually, prone to error | Each election's limit tracked separately by design |
From a handful of major donors to a full donor file
A campaign with a small circle of major donors can track proximity to the limit informally, by memory. A campaign with a broad donor file spanning thousands of small and mid-size contributors faces a genuinely different problem — the donors worth worrying about are buried in volume, not obvious from a quick glance at the largest checks.
Reading and aggregating every contribution the same way, regardless of donor count, surfaces the handful of donors actually worth a compliance reviewer's attention without requiring anyone to scan the full donor file by hand.
This scaling advantage compounds for a PAC or committee contributing to many candidates simultaneously — the same donor can appear across several candidate relationships at once, and keeping each candidate's own limit tracked correctly, separately from every other candidate the committee supports, is exactly the kind of bookkeeping that becomes unmanageable by hand once the number of candidates grows past a handful.
Volume, in other words, is where the manual approach breaks down first — not because the logic gets harder, but because the sheer number of donor-candidate pairs to track outpaces what any one person can reliably hold in a spreadsheet.
Who uses this
Campaign treasurers
A running aggregate per donor, ready before a report is filed rather than discovered after.
Compliance consultants
The same aggregation process applied consistently across every client campaign.
PAC finance directors
Donor totals tracked across every candidate and committee a PAC contributes through.
Campaign counsel
A clear evidence trail behind every aggregate figure when a refund or redesignation decision is needed.
Each of these roles shares the same underlying need — a reliable answer to "how close is this donor to the limit" — even though what they do with that answer differs. A treasurer builds it into monthly reconciliation, an FEC-facing compliance consultant uses it to prepare a filing, a PAC finance director rolls it up across every candidate the PAC supports, and counsel uses it as the evidence base for a refund or redesignation decision.
Why aggregation needs to run across the whole cycle, not one period
A tool that only checks the current report period against the limit will confidently approve every individual contribution while missing the pattern that only shows up when several periods are added together. Maintaining a persistent, cross-period aggregate — rather than resetting the count every time a new filing period starts — is the difference between catching a slow accumulation toward the limit and only noticing it once a donor has already crossed it.
It's worth being specific about why this matters beyond the mechanical check itself. A cross-period aggregate doesn't just answer a compliance question — it changes how a treasurer can respond. A donor flagged as approaching the limit while there's still time before their next likely contribution gives the campaign room to decide, in advance, how to handle it. A donor discovered to be over the limit only after the fact leaves refund or redesignation as the only remaining options.
That gap in timing is exactly what a persistent aggregate closes — the earlier a campaign knows, the more options it actually has.
Two failure modes, and why both matter
An imperfect aggregation fails in one of two directions, and it's worth naming both since they're easy to conflate. Over-merging treats two genuinely distinct donors as one — perhaps a parent and an adult child sharing a last name and address — inflating an aggregate total that was never actually close to the limit. Over-splitting does the opposite — one donor's contributions, entered slightly differently across two reporting periods, get tracked as two separate people, masking a real aggregate that should have been flagged.
Both are costly in different ways. Over-merging can lead a campaign to unnecessarily refuse or refund a perfectly legal contribution out of an abundance of caution. Over-splitting is the more dangerous failure — it lets a genuinely excessive contribution slip through undetected, exactly the outcome the whole feature exists to prevent. Weighing name, address and contribution pattern together, rather than any one signal alone, is specifically what keeps both failure modes rare.
What the exported evidence trail looks like
Every aggregate total carries a reference back to the exact bank deposit and payout report line each underlying contribution came from — not just a rolled-up number. That matters the moment an aggregate needs to be defended to someone else: campaign counsel evaluating a potential refund, or an FEC reviewer asking about a specific donor's history, both want to see where a number actually came from, not just trust the final total.
The export includes each donor's full contribution history — date, amount, election designation, and the source document — alongside the aggregate total, so the underlying evidence and the rolled-up figure travel together rather than the total being handed over on its own with no way to check it.
Harder cases this is built to handle
A donor who moves mid-cycle
A change of address between contributions doesn't automatically split the donor into two records — name, prior address history and contribution pattern are weighed together before treating it as a new donor.
Family members sharing a household
Two adults at the same address with different names are tracked as separate donors by default, since shared address alone isn't sufficient to treat two people as the same contributor.
A donor who changes employer mid-cycle
Occupation and employer are recorded per contribution, as of the date each gift was made, rather than overwritten with the most recent value across a donor's whole history.
A refunded contribution later re-given
A contribution that was refunded and later re-contributed is tracked as two distinct events in the donor's history, not silently netted against each other.
Get started with your first bank statement
Upload one bank statement or contribution record to see how aggregation works — no signup required to try it. See the full overview of campaign finance compliance for how this fits into the rest of the process.
For a campaign with an existing donor history from earlier reporting periods, uploading that history alongside the current period's documents builds a complete aggregate from the very first session, rather than starting the running total from zero at whatever point the tool happens to be adopted.
Security and privacy
Uploads are encrypted with TLS from end to end.
Processing runs on infrastructure with SOC 2-aligned controls.
Original documents are deleted shortly after processing.
Nothing you upload is ever used to train AI models.
For a dataset built around donor names, addresses, occupations and employers, that matters — aggregate contribution tracking necessarily touches personal information, and handling it carefully is a responsibility that sits alongside the compliance question itself.
