Nonprofit accounting: How it works and how to set it up

- What is nonprofit accounting?
- Nonprofit accounting vs. for-profit accounting
- Fund accounting: How nonprofits track restricted money
- Types of nonprofit net assets
- How net asset releases work
- Functional expense allocation
- The four nonprofit financial statements
- How fund and grant restrictions work in your general ledger
- How to set up an accounting system for a nonprofit
- What you need a nonprofit accountant for
- Run restricted-fund accounting with less manual coding using Ramp Stack
Nonprofit accounting is how nonprofits record and report money by the purpose and restrictions donors and grantors attach to it, with results shown as net assets instead of profit.
If you already run the books, the work that matters is tracking restrictions, releasing them on time, splitting expenses by function, and tagging each transaction to a fund. A clean setup handles all of it from one general ledger.
What is nonprofit accounting?
Nonprofit accounting is the generally accepted accounting principles (GAAP) framework for tracking money by donor restriction and reporting spending by function. Charities organized under 501(c)(3) and other tax-exempt organizations follow it under FASB ASC 958. The rules exist because you answer to donors and grantors for how restricted money gets spent.
Three structural differences set nonprofit accounting apart: You report net assets instead of equity, show expenses by function as well as nature, and track revenue by restriction. GAAP also requires accrual accounting, which lets you book a multi-year grant or pledge as a receivable when it's promised. If your books still run on cash basis, plan the accrual conversion before your first audit.
Nonprofit accounting vs. for-profit accounting
Both systems use the same double-entry mechanics, and the difference lies in what the reports measure. A company reports how much it earned for its owners. A nonprofit reports how well it stewarded money given for a mission, and most nonprofit accounting terms map line for line to commercial ones.
| Dimension | For-profit | Nonprofit |
|---|---|---|
| Goal | Generate profit for owners | Steward resources toward a mission |
| Equity section | Owners' equity | Net assets |
| Balance sheet name | Balance sheet | Statement of financial position |
| Income statement name | Income statement | Statement of activities |
| Expense reporting | By nature | By nature and function |
| Revenue sources | Sales of goods and services | Contributions, grants, and program fees |
| Tax filing | Income tax return, such as Form 1120 | Form 990 information return |
If you've closed books for a company, you know the mechanics already, so put your learning time into restrictions and functional reporting.
Fund accounting: How nonprofits track restricted money
Fund accounting tracks resources by the purpose or restriction attached to them, so you can report on each grant or restricted gift separately. Governments keep a self-balancing set of accounts for each fund. Most nonprofits get the same reporting by tagging each transaction with its fund inside one general ledger (GL).
That ledger follows the chart of accounts logic you'd use at any company. You add net asset accounts for each restriction class, plus dimensions for fund, grant, program, and function. Add those dimensions before the first restricted gift lands, since retagging old transactions means reopening closed periods.
Types of nonprofit net assets
Under ASU 2016-14, effective for fiscal years beginning after Dec 15, 2017, you report two classes: net assets without donor restrictions and net assets with donor restrictions. Donor-restricted net assets can be limited by purpose, by time, or in perpetuity.
Older grant agreements and audit reports still use the legacy three-class terms. Unrestricted maps to without donor restrictions, while temporarily restricted and permanently restricted both roll into with donor restrictions. Board designations stay in net assets without donor restrictions because your board set them and can reverse them.
| Restriction type | Who sets it | When it's released | Legacy term | Example |
|---|---|---|---|---|
| Without donor restrictions (including board-designated) | No one, or your board for designations | Available now. The board can lift a designation by vote. | Unrestricted | General operating gifts or a $200,000 board-designated operating reserve |
| With donor restrictions: purpose | Donor or grantor | When you spend on the stated purpose | Temporarily restricted | A $60,000 grant for an after-school tutoring program |
| With donor restrictions: time | Donor or grantor | When the stated date or period arrives | Temporarily restricted | A three-year pledge of $10,000 a year starting in 2027 |
| With donor restrictions: perpetual (endowment corpus) | Donor | Never. Only appropriated earnings become spendable. | Permanently restricted | A $500,000 endowment gift whose earnings fund scholarships |
Classify each gift from the signed agreement, since the donor's own words decide the class.
Net assets without donor restrictions
You can spend these net assets on any mission purpose, including general operations and overhead. They include your operating reserve and any board-designated funds, such as a building fund or a quasi-endowment.
A board designation appears as a separate line within net assets without donor restrictions or in the notes. Report designated balances separately so readers don't mistake an internal choice for a donor restriction.
Net assets with donor restrictions
These net assets carry a donor-imposed limit on purpose or timing, or the donor requires you to hold them in perpetuity. Purpose and time restrictions release as you meet them.
Perpetual endowment corpus never releases. Its investment returns stay in net assets with donor restrictions until your board appropriates them under your state's version of the Uniform Prudent Management of Institutional Funds Act (UPMIFA). Track corpus and accumulated earnings in separate accounts so you can show your auditor which dollars can ever be spent.
How net asset releases work
When you meet a donor restriction, you reclassify that amount from net assets with donor restrictions to net assets without donor restrictions. The reclassification appears as "net assets released from restrictions" on the statement of activities, with a decrease in one column and an equal increase in the other.
Say a foundation awards you a $60,000 unconditional grant on January 15, restricted to an after-school tutoring program. You spend $25,000 on the program in Q1 and $35,000 in Q2. Expenses always post to net assets without donor restrictions, so each quarter's spending triggers a matching release.
| Date | Account | Debit | Credit | Net asset class |
|---|---|---|---|---|
| January 15 | Cash | $60,000 | With donor restrictions | |
| January 15 | Grant revenue | $60,000 | With donor restrictions | |
| March 31 | Program expense: tutoring | $25,000 | Without donor restrictions | |
| March 31 | Cash | $25,000 | Without donor restrictions | |
| March 31 | Net assets released from restrictions | $25,000 | With donor restrictions | |
| March 31 | Net assets released from restrictions | $25,000 | Without donor restrictions | |
| June 30 | Program expense: tutoring | $35,000 | Without donor restrictions | |
| June 30 | Cash | $35,000 | Without donor restrictions | |
| June 30 | Net assets released from restrictions | $35,000 | With donor restrictions | |
| June 30 | Net assets released from restrictions | $35,000 | Without donor restrictions |
By June 30, the grant's restricted balance is $0, and the statement of activities shows $60,000 in releases against $60,000 in program expense.
- Release at month-end: Run releases during close, after expenses are coded, so each release matches that period's spending.
- Tie releases to the fund tag: Calculate each release from expenses carrying that grant's fund or grant tag, which keeps every release traceable to source transactions.
- Keep a restriction schedule: Track each restricted gift's opening balance, additions, releases, and ending balance. The total should equal net assets with donor restrictions on the statement of financial position every month.
- Set a same-period policy: ASC 958 lets you report a restricted gift as without donor restrictions when you meet the restriction in the period you receive it. You have to apply that policy consistently and disclose it.
A contribution is conditional when the agreement includes a barrier, such as a matching requirement or a performance target, plus a right of return or release. You don't recognize revenue until you clear the barrier, and cash received early sits as a refundable advance.
Reconcile the restriction schedule to the balance sheet every month so release errors surface in the month they happen.
Functional expense allocation
GAAP requires every nonprofit to report expenses by function as well as by nature. The functions are program services, management and general, and fundraising, and Form 990 Part IX uses the same columns.
Charge costs directly to a function whenever the invoice or timesheet shows which one it serves. For shared costs, pick a basis that tracks how each cost gets consumed and apply it the same way every period.
| Shared cost | Common allocation basis | Records to keep |
|---|---|---|
| Salaries and benefits | Time records or effort reports by function | Timesheets coded to function and payroll registers |
| Rent and occupancy | Square footage used by each function | Floor plans with square footage by function and the lease |
| IT and software | Headcount or user count by function | User lists by department and license counts |
| Insurance | Square footage for property coverage, payroll or headcount for liability | Policy declarations pages and the allocation worksheet |
| Executive time | Estimates from a periodic time study | Time logs for the sample period and a board-approved allocation memo |
Grantors and watchdogs read your program-to-overhead split closely. The BBB Wise Giving Alliance, for example, asks charities to spend at least 65% of total expenses on program activities. A documented method lets you defend your ratio when a funder asks how you got it.
Document your allocation method once and apply it the same way every month.
Not sure how to set up expense policies, track restricted grants, or stay audit-ready? Watch how real nonprofit finance professionals use Ramp to automate nonprofit accounting →
The four nonprofit financial statements
GAAP nonprofits produce four statements, and each one answers a different question for your board or grantors.
- Statement of financial position: Your balance sheet, showing assets, liabilities, and net assets by restriction class. It answers whether you can cover obligations and how much is free to spend.
- Statement of activities: Revenue and expenses by restriction class for the period, including releases. It answers whether operations without donor restrictions ran a surplus or a deficit.
- Statement of functional expenses: Every expense in a grid of nature by function. It answers how much went to programs compared with management and fundraising.
- Statement of cash flows: Cash from operating, investing, and financing activities. It answers whether operations generate cash or lean on restricted gifts and borrowing.
GAAP lets you present the functional analysis in the notes or on the face of the statement of activities. Many boards and grantors prefer the separate statement. Produce all four monthly, and the audited set at year-end will look like statements your board has already reviewed.
How fund and grant restrictions work in your general ledger
In practice, you carry funds, grants, and programs as dimensions on each transaction inside one ledger. Depending on your GL, those dimensions are classes, locations, departments, or custom segments.
A common design uses the GL account for the nature of the expense, class for the program, and a custom field for the fund or grant. Function sits in its own field or rolls up from class. With that structure, one ledger produces statements by restriction class and a budget-to-actual report for each grant.
| Dimension | What it tracks | Example values |
|---|---|---|
| GL account | Nature of the revenue or expense | 4100 Grant revenue, 6010 Salaries, 6400 Rent |
| Class | Program | Tutoring program, Food pantry |
| Location/department | Site or team | Eastside center, Development team |
| Custom field (fund or grant) | Fund or grant and its restriction class | General operating fund, Smith Foundation 2026 grant |
| Function | Program services, management and general, or fundraising | Program services, Fundraising |
Every transaction needs the right GL account plus its fund or grant tag and a function tag. A card charge coded to the right GL account with no grant tag still drops out of the grant report and understates that month's release. Month-end reconciliation has to check dimension completeness as well as account balances.
That coding and reconciliation work is where automation fits. Ramp's Accounting Agent and Ramp Stack both take it on, with your accountant approving entries before they post. Run a missing-tag report before every release so a blank field never reaches a grant report.
How to set up an accounting system for a nonprofit
Cleanup projects follow the same sequence as new setups, with one extra task: retagging historical transactions once the dimensions exist.
1. Confirm your tax-exempt status and filing obligations
Confirm your 501(c) subsection from your IRS determination letter, then identify which Form 990 you file. The IRS sets the form by size: you file Form 990-N if gross receipts are normally $50,000 or less. Form 990-EZ covers gross receipts under $200,000 with total assets under $500,000, and anything larger files the full Form 990.
Have an accountant or attorney confirm your status and state charity registration. Settle this first, because your filing form decides how detailed your expense data needs to be.
2. Choose your GL of record
Pick an accounting system that supports the dimensions you need, such as classes, locations, and custom fields. QuickBooks is a common GL of record for smaller nonprofits. Compare nonprofit accounting software on how many dimensions each plan supports before you commit.
Check dimension limits before you sign, since outgrowing them means migrating mid-grant.
3. Build a nonprofit chart of accounts with an accountant
Design the chart of accounts with a nonprofit CPA. Include net asset accounts for each restriction class, contribution and grant revenue accounts split by restriction, and natural expense accounts that map to Form 990 Part IX lines.
Map each expense account to a Part IX line now, and Form 990 prep starts from a finished crosswalk.
4. Set up dimensions for funds, grants, programs, and functions
Build the dimensions from your design: Account for nature, class for program, a custom field for fund or grant, and a function tag. Create one fund value per restricted gift or grant agreement, and name it so anyone can match it to the contract.
Make the fund and function fields required wherever your GL allows it, so nothing posts untagged.
5. Code and reconcile transactions every month
Code transactions daily or weekly, then reconcile bank and card accounts every month.
- Record contributions and grants with their restriction class and fund tag.
- Enter bills with account, program, and fund coding.
- Code card spend and attach receipts.
- Reconcile bank, card, and clearing accounts.
- Track restricted fund activity against each grant budget.
Before you close the month, pull every expense line missing a fund or function tag and fix it. Weekly coding leaves month-end for review.
6. Record releases and allocate shared costs at month-end
Run restriction releases and functional allocations on a fixed day each month, after coding is complete. Release from the restriction schedule first, then allocate shared costs so the functional split reflects final numbers.
A fixed close calendar keeps grant reports and board statements on the same numbers.
7. Produce statements and grant reports
Send your board a monthly package with all four statements and a budget-to-actual by program. Run grant reports by filtering on the fund dimension, and reconcile each one to the restriction schedule before you send it.
At year-end, give your CPA the trial balance, restriction schedule, and allocation support for the audit and Form 990. Grant reports that tie to the ledger shorten audit fieldwork.
What you need a nonprofit accountant for
Some decisions need a nonprofit CPA or a nonprofit-specific GL, and software won't replace that judgment. Software handles the repetitive work around those decisions well.
Needs an accountant:
- Establishing tax-exempt status and state charity registration
- Designing the chart of accounts and net asset structure
- Preparing Form 990
- Making GAAP net asset classification calls, including whether a grant is conditional
- Managing audits, including a single audit once you spend $1,000,000 or more in federal awards under 2 CFR 200.501
Can be automated:
- Coding transactions to account, fund, grant, and function
- Reconciling bank, card, and clearing accounts
- Updating restriction and allocation schedules
- Preparing draft statements for your review
The single audit threshold applies to fiscal years beginning on or after Oct 1, 2024, so check your federal spending each year. Hand the execution work to software and spend your CPA's hours on judgment calls.
Run restricted-fund accounting with less manual coding using Ramp Stack
Restricted funds drive most of the coding work in nonprofit accounting. Every transaction needs an account plus fund and function tags. A missed tag usually surfaces at release time or when a grant report won't tie.
Ramp Stack deploys agents that code transactions, run reconciliations, build schedules, and prepare journal entries against your GL of record. It connects to QuickBooks, NetSuite, Sage Intacct, and spreadsheets. Stack works without a Ramp card or account, so it's a realistic starting point for a small nonprofit or an outsourced controller.
With Ramp, restricted-fund accounting looks like this:
- Tag funds and grants as spend posts: For Ramp cards and Bill Pay, Ramp's Accounting Agent codes GL account, department, class, location, and custom fields.
- Review the reasoning behind each output: Agents explain the data behind their work, and you can override any coding decision.
- Inspect formula-backed workbooks: Reconciliations and schedules land in native workbooks you can check and edit.
- Keep a record of every session: An exportable Session Audit Log shows each step, and synced entries link back to their session.
- Approve entries before anything syncs: Nothing posts to your GL until your accountant approves it. Classification judgment and filings stay with your CPA.
Try Stack for free and join more than 85,000 businesses that use Ramp to save over a year’s worth of work every hour.

FAQs
It's called the statement of financial position. It shows your assets and liabilities at a point in time, plus net assets split between those with and without donor restrictions.
Federal law doesn't require it for every nonprofit. Auditors, most foundation and federal grantors, and many state charity regulators expect GAAP-basis statements, so you'll follow GAAP once you need an audit or a major grant.
It's a common benchmark that puts at least 80% of spending toward programs and no more than 20% toward management and fundraising. No law requires it. Your functional expense allocation method determines the ratio you report.
GAAP requires the accrual method. Some small organizations keep cash-basis books internally and convert to accrual at year-end for an audit or review.
Assets include cash, pledges and grants receivable, investments, and property. Liabilities include accounts payable, accrued payroll, deferred revenue from exchange transactions, and refundable advances on conditional grants.
Most nonprofit accountants hold an accounting degree and build experience in fund accounting, grant reporting, and Form 990 work. Staff roles rarely require a CPA license, but controllers and finance directors who manage audits often hold one.
“I want to trust the people at our sites to buy what they need, when they need it. With everything in Ramp, they have one place to go and one set of rules to follow. And I can see how all of their spending ties back to the contracts that fund their work.”
Marina Peterson
CFO, Wu Yee Children’s Services

“I assumed I would have to choose between speed and control. What I found is that you can have both. A well-designed system takes friction out, for the finance function and for everyone else.”
Justin Webster
CFO, Denver Broncos

“A well-run district should not have to choose between getting work done at the school site and keeping control of the dollars behind it. We're not hiring more people to do more jobs, so we have to be smarter about the process. With Ramp, the purchase, the receipt, and the record stay together from the start. ”
Nick Brizeno
Director of Purchasing, San Marcos Unified School District

“In senior living, scale only works if the communities still feel personal. We needed the back office to carry more of the complexity, not the people serving residents. Ramp helped us build that infrastructure, so the experience in the community could stay human.”
Ryan Cole
CFO, Agemark Senior Living

“AI is moving faster than the finance context around it. Prices change, models change, and the value is not always obvious from an invoice. We needed enough detail to know which bets deserved more investment — and which ones did not.”
Greg Cooley
Controller, AngelList

“Invoices, cards, tokens. The categories change but the principle doesn't: know where the money is going, remove the work around it, and make sure the spend is worth it.”
Maciej Mylik. Finance
ElevenLabs

“We weren’t trying to retrofit an old finance system. We had a blank canvas, and Ramp gave us the foundation to build a global finance function of the future.”
Justin Dourado
Director of Finance, Othership

“There's just no surprises anymore. No more waiting two months to find out how a job did. We know how it's doing as it's happening.”
Erich Kuss
Financial Systems Manager, Infinity Home Services



