I’ve been doing bookkeeping for small businesses and nonprofits for about 10 years now, and one question keeps coming up with my nonprofit clients: “When should we switch from cash basis to accrual basis accounting?” After watching several organizations navigate this transition (some smoothly, some… not so smoothly), I wanted to share what I’ve learned and see how others in the Beancount community handle this.
Why Most Nonprofits Start with Cash Basis
Let’s be real: most small nonprofits start with cash basis accounting because it’s simple. You record money when it hits your bank account, you record expenses when you pay them. For a volunteer-run PTA with a $30k annual budget, this makes perfect sense. The treasurer is usually someone’s parent who got volunteered (voluntold?) into the role, not a trained accountant.
I’ve got three nonprofit clients currently on cash basis: a community garden ($18k/year), a youth soccer league ($42k/year), and a mutual aid fund ($25k/year). For them, cash basis works fine. They can see what’s in the bank, they can track where money came from and where it went, and they can generate simple reports for their boards.
When Things Get Complicated
But then organizations grow. And that’s when I start having “the conversation” about switching to accrual basis. Here are the actual triggers I’ve seen in my practice:
The First Employee: One of my clients, a food pantry, operated on cash basis for five years with all volunteers. Then they hired a part-time coordinator. Suddenly we had payroll accruals, payroll tax liabilities, and vacation time accumulation. Cash basis couldn’t accurately show what they owed.
Multi-Year Grants: Another client received their first multi-year grant from a foundation—$150k over three years. The funder required accrual-basis financial statements showing revenue recognition as the work was performed, not just when checks arrived. We couldn’t do that on cash basis.
The $750k Federal Funding Threshold: Organizations receiving over $750k per year in federal funds trigger audit requirements. And auditors want accrual basis. I had a community health nonprofit hit this threshold and we had to do an emergency transition mid-year. It was… painful. Don’t do that.
First Real Asset Purchase: When a client bought their first building, we needed to track depreciation, which requires accrual accounting. You can’t depreciate on cash basis.
The Beancount Advantage for Transitions
Here’s where Beancount becomes incredibly powerful during this transition. Traditional accounting software forces you to choose: you’re either cash or accrual, pick one. But nonprofits often need BOTH views:
- The board wants cash basis reports (they’re used to seeing “we have $X in the bank”)
- The auditor wants accrual basis statements
- The grant funder wants accrual with specific fund tracking
- The IRS Form 990 Schedule A requires accrual adjustments
With Beancount, I maintain ONE ledger on accrual basis (the proper accounting method), but I can generate cash-basis views whenever needed. Here’s my approach:
; Primary entries are accrual-basis
2026-03-15 * "Grant revenue earned - March deliverables"
Income:Grants:ABC-Foundation -5000.00 USD
Assets:GrantsReceivable:ABC 5000.00 USD
; When cash actually arrives, tag it
2026-03-20 * "Grant payment received" #cash-event
Assets:Checking 5000.00 USD
Assets:GrantsReceivable:ABC -5000.00 USD
Then I use BQL queries to generate cash-basis reports for board meetings:
SELECT date, description, position
WHERE account ~ "Assets:Checking"
OR account ~ "Expenses"
AND "#cash-event" IN tags
A Real Transition Story
My food pantry client made the switch last year. Here’s what their situation looked like:
Before (Cash Basis):
- Simple tracking: donations in, food purchases out
- Monthly board reports: “We have $12k in checking”
- No visibility into committed grant funds or obligations
Transition Triggers:
- Hired part-time coordinator (payroll accruals needed)
- Received first multi-year grant requiring accrual reporting
- Started carrying inventory of bulk food purchases
- Had outstanding payables to vendors (net-30 terms)
After (Accrual Basis in Beancount):
- Primary ledger on accrual: tracks receivables, payables, prepaid expenses, deferred revenue
- Board still gets simplified cash-view reports
- Can generate proper accrual statements for grant funders
- Single source of truth with multiple reporting perspectives
The transition took about 3 months of parallel tracking (running both systems to verify accuracy), but now they have much better financial visibility. They can see not just what’s in the bank, but what they’re obligated to pay, what they’re owed, and what their true financial position is.
Questions for the Community
I’d love to hear from others who’ve handled this transition:
-
How did you handle the board education piece? My biggest challenge is helping volunteer board members understand why accrual basis gives a more accurate picture. They’re used to looking at the checking account balance and calling that “how much money we have.”
-
What’s your chart of accounts structure for nonprofits? I’m currently using a structure like
Assets:GrantsReceivable:GrantNameandLiabilities:DeferredRevenue:GrantNamebut wondering if there’s a better approach. -
Any tips for the parallel-tracking period? Running both systems simultaneously to verify accuracy before fully committing?
-
BQL query templates for dual reporting? I’ve built a few but always looking to learn from others.
The reality is that most nonprofit treasurers are untrained volunteers doing their best. The beauty of plain-text accounting is that it provides structure without requiring professional credentials—you can learn as you go, with Git history as your safety net. But the cash-to-accrual transition is a big conceptual leap. Would love to hear your experiences and advice!