Donor-advised funds just hit $326 billion in assets at the end of 2024—up 27.5% from the year before—and 80% of nonprofits say DAFs will be more critical to their fundraising strategy in 2025. If you work with nonprofit clients like I do, you know this means one thing: tracking chaos.
The DAF Tracking Nightmare
Unlike traditional pledges with documented timelines, DAF commitments are soft promises with unpredictable timing. A board member might say “I’ll recommend a $25K grant from my Fidelity DAF sometime this quarter,” and then… crickets. Or it shows up six months later. Or never.
The problem gets worse: when the grant finally arrives, it comes from the DAF sponsor (Fidelity Charitable, Schwab Charitable, etc.), not the original donor. So you receive a wire from “Fidelity Charitable” with zero context about which donor recommended it, making stewardship and follow-up nearly impossible.
What I’m Trying to Track
For my nonprofit clients, I need a Beancount structure that handles:
- Expected DAF revenue (soft commitments from donor conversations)
- Actual DAF grants received (when they finally show up)
- Historical patterns (which donors give via DAF, typical timing, average amounts)
- Sponsor attribution (was this from Fidelity, Schwab, NPTrust?)
Right now I’m cobbling together metadata tags and separate income accounts, but it feels messy. I’m also struggling with the forecasting piece—how do you model revenue that has no legal payout requirement and 100% donor discretion?
The Identity Problem
Here’s the daily frustration: my clients receive DAF grants but often can’t identify the original donor. They need to send thank-you letters, acknowledge gifts for donor stewardship, and build relationships—but all they have is “Fidelity Charitable - $10,000” on the bank statement.
For small nonprofits without sophisticated CRM systems, this is a real problem. We end up playing detective: cross-referencing grant dates and amounts against recent donor emails, matching sizes to typical giving patterns, calling donors to ask “hey, did you happen to send us $10K via your DAF last week?”
How Are You Handling This?
For those of you tracking nonprofit finances in Beancount:
- What account structures are you using for DAF commitments vs actuals?
- How do you handle the uncertainty in forecasting?
- Any clever metadata schemes for tracking sponsor names and matching gifts to donors?
- Has anyone built importers or scripts that help with the donor identification problem?
With $64.89 billion in DAF grants flowing to nonprofits in 2024 (up 19%), we need better systems. I’d love to hear how the community is solving this.
Sources: DAF Assets Soar 30% to $326 Billion, Annual DAF Report 2025, 7 Top Takeaways from the New 2025 DAF Report