Generate Year-End Tax Statements
Goal: Produce the annual giving statement every donor expects in early January — summarizing all of their prior-year giving in one document — so they can file taxes accurately and feel taken care of.
What an annual statement is
An annual statement consolidates a donor's full prior-year giving:
- Every gift, dated, with amount and fund/campaign
- Total tax-deductible giving
- A separate section for in-kind gifts (described, no values)
- Affiliate legal name, address, EIN, 501(c)(3) statement
It supplements per-gift receipts — donors keep the per-gift receipts for record-keeping, but the annual statement is what most file with their taxes.
When to send
Best practice is to send annual statements between January 5 and January 15. Earlier than that and donors haven't yet thought about taxes; later and you're behind their tax-prep cycle.
For donors who give late in December, this also resolves any timing questions ("Was my December 30 gift counted in 2025 or 2026?") — your statement is the authoritative answer.
Generating the statements
Under Fundraising → Tax Documents, run the Generate Annual Statements flow:
- Choose the tax year (typically the prior calendar year)
- Confirm the donor segment (usually "all donors who gave in the year")
- Preview a sample statement
- Generate and send
Ayuna creates a PDF for each donor, attaches it to their record, and emails it out per their communication preferences.
What the statement contains
Standard content:
- Affiliate name, address, and tax-exempt statement
- Donor name and address as on file
- A list of every donation (date, amount, fund) for the tax year
- Subtotal of tax-deductible cash giving
- A separate section for in-kind gifts (description only, no value)
- A line stating that no goods or services were provided in return (or, for events/sponsorships with FMV, the deductible portion broken out)
- Statement that this letter consolidates and replaces individual receipts for tax purposes
Donors who don't have email
Statements still generate and save to their record. Print and mail those — Ayuna can output a print-ready batch for your mail-merge process.
Edge cases
- Donors who passed away — generate to their estate / executor when known
- Donors with marriage / name changes — make sure the name on the statement matches what they need for tax filing
- Donors with multiple addresses — use the most recent
- Donors with refunded gifts — net out the refund; the statement reflects net giving
- Donors who only gave in-kind — their statement is the in-kind acknowledgment-letter style (no values)
- Gifts and sponsorships credited to an organization — they go on the organization's own statement, under its name and address, never on the personal statement of the contact named on the gift. It is emailed to the organization's contact email or, if none is on file, to the contact on its most recent gift. Generating a statement for that contact alone leaves the organization's gifts out
Donor-side access
Donors can also download their annual statement directly from their dashboard at /donor/documents. Useful when they ask for a fresh copy mid-year or lose the original.
Compliance reminders
- The IRS requires written acknowledgment for any single gift of $250+ — annual statements satisfy this for donors who gave individual gifts under $250 throughout the year, but the per-gift receipts are also satisfactory for the $250+ gifts
- Quid-pro-quo gifts (event registrations, sponsor benefits with FMV) need the deductible portion stated — confirm the statement template handles this correctly
- Vehicle donations have separate Form 1098-C requirements — those are handled in the in-kind flow, not consolidated into the annual statement
Have your legal counsel review the template annually before the January batch.
Audit before sending
Before triggering the batch:
- Pull a sample of 10 statements and review manually
- Confirm totals match the donor profile's lifetime / current-year giving
- Check that in-kind sections appear correctly for donors who gave non-cash gifts
- Confirm name and address are current
Catching one issue in the sample saves a thousand "my statement is wrong" emails after the batch sends.