TLDR
Most nonprofits track restricted funds by multiplying account numbers — creating a separate expense account for each grant. This approach produces an unmanageable chart of accounts, makes cross-grant reporting impossible, and fails as the portfolio grows. The correct architecture uses a segment or dimension to carry restriction and fund identity separately from the natural account. Whether the system is QuickBooks, Sage Intacct, or a specialized nonprofit accounting platform, the principle is the same: nature of expense in the account, identity of fund in the segment.
BLUF
The fundamental design choice in a nonprofit chart of accounts is whether fund identity lives in the account number or in a separate dimension. When fund identity is in the account number, the COA expands with every new grant and cross-fund reporting requires manual aggregation. When fund identity is in a dimension, the natural account captures what the cost is and the dimension captures which fund it belongs to. The dimension approach scales, produces cleaner reports, and supports FASB ASC 958 presentation without restructuring accounts.
TL;DR
- Wrong approach: separate account number per grant per expense type
- Right approach: natural account for expense type + dimension/segment for fund identity
- FASB ASC 958 requires: two net asset classes on the balance sheet (with and without donor restrictions)
- QuickBooks: classes help but are not true fund accounting
- Sage Intacct: dimension architecture is designed for this; configure funds, grants, programs as separate dimensions
The core design problem
A nonprofit receives a HUD CoC grant and an HHS ACF grant in the same year. Both fund salaries. The organization needs to:
- Track salary costs separately for each grant
- Produce total salary costs across all programs for the functional expense report
- Show the restricted fund balance for each grant on the balance sheet
- Release restrictions as qualifying costs are incurred
The multiplied-account approach creates accounts like 6101-Salaries-CoC and 6102-Salaries-ACF. This works for two grants. By year five, with 15-20 active or recently closed grants, the COA has hundreds of accounts, reports are unusable without significant manual manipulation, and adding a new grant requires adding 15-20 new accounts.
The dimension approach keeps account 6100-Salaries as the single account for all salary expense. The CoC grant identity is carried in a fund dimension. Reports run against Account=6100 show total salaries. Reports run against Fund=CoC-2024 show all costs for that grant. No account proliferation.
Net asset accounts: FASB ASC 958 structure
Under ASU 2016-14, effective for fiscal years beginning after December 15, 2017, the balance sheet shows two net asset classes:
Net assets without donor restrictions — previously called “unrestricted.” Includes board-designated reserves.
Net assets with donor restrictions — previously called temporarily restricted and permanently restricted combined. Includes purpose-restricted grants, time-restricted pledges, and permanently restricted endowments.
A minimal compliant net asset structure in the COA:
| Account | Description |
|---|---|
| 3100 | Net assets without donor restrictions |
| 3110 | Board-designated — [reserve name] |
| 3200 | Net assets with donor restrictions |
| 3210 | Donor-restricted — purpose |
| 3220 | Donor-restricted — time |
| 3230 | Permanently restricted — endowment |
Organizations do not need a separate net asset account for each grant. The grant-level balance is tracked in the fund dimension, with the balance rolling into the 3200 class account.
Revenue account structure for grants
Grants appear in the revenue section of the COA. A clean structure:
| Account | Description |
|---|---|
| 4100 | Contributions without donor restrictions |
| 4200 | Contributions with donor restrictions |
| 4300 | Government grants — federal |
| 4310 | Government grants — state/local |
| 4400 | Net assets released from restrictions |
The 4400 account records the offset to the net asset release journal entries. It shows on the statement of activities as a transfer between restriction classes.
Grant revenue hits 4300 or 4200 depending on whether it is a government contract or a private foundation grant. Federal grants that are exchange transactions (fee-for-service) may be classified differently under ASC 606. Fund dimension carries the specific grant identity in either case.
QuickBooks: what classes can and cannot do
QuickBooks class tracking assigns a class label to transaction lines. For basic program-vs-admin allocation, classes work. For multi-grant restricted fund tracking, classes have structural limitations:
- Classes are flat — no parent-child hierarchy
- Class reports show expenses by class but cannot produce a fund-level balance sheet or statement of financial position by fund
- Classes cannot enforce double-entry by fund (debits and credits stay at the transaction level, not balanced by class)
- Class-based restricted fund reporting requires manual adjustments at period end
Organizations managing 3-5 grants with simple restrictions can operate with QuickBooks classes if they supplement with grant spreadsheets. Organizations with more complex portfolios need a system with true dimension or fund architecture.
Sage Intacct: the dimension approach in practice
Sage Intacct is the most widely used accounting system for mid-sized nonprofits with complex grant portfolios. Its dimension architecture allows independent tracking of:
- Fund — the specific grant or restriction source (CoC-2024, ACF-2023, Foundation-XYZ)
- Grant — can duplicate Fund or add a layer for sub-grants
- Program — the functional program activity (Housing, Family Services, Youth)
- Department — the organizational unit (Case Management, Finance, Administration)
- Location — if the organization operates across multiple sites
Each transaction carries all applicable dimensions. Reports run against any dimension independently. A functional expense report by program uses the Program dimension; a grant budget-vs-actual uses the Grant or Fund dimension. Neither requires a separate COA restructuring.
At period end, restricted fund balances appear at the fund dimension level. Net asset release entries reduce the fund balance and increase the unrestricted fund balance — captured by the dimension, not by separate accounts.
Segment structure for organizations without Sage Intacct
Organizations using accounting systems without native dimension support (older versions of Intacct, Blackbaud Financial Edge, church management systems) can approximate the dimension approach by:
- Using a multi-segment account format: 6100-2024-CoC where the first segment is the natural account and subsequent segments are fund and program
- Enforcing consistent segment population at transaction entry
- Building reports that aggregate and filter by segment
This approach is less clean than native dimensions but avoids uncontrolled account proliferation. The segment separator must be consistent and the segment values must be maintained in a reference table.
How GrantPipe helps
GrantPipe tracks grant-level financial activity — drawdowns, expenditures, net asset releases — in parallel with the general ledger, using the grant as the organizing entity. For organizations where the accounting system’s dimension structure is not yet clean, GrantPipe provides grant-level reporting that supplements the GL without requiring a COA redesign. Grant budget vs actual, restriction balance, and compliance status are visible per award. Start with a free trial to see grant-level financial reporting alongside your compliance calendar.
Free resource
Get the Nonprofit Grant Compliance Checklist
A practical checklist for post-award grant compliance: restricted funds, reporting cadence, audit prep, and common failure points. Delivered by email.
- Natural account
- The base account code that describes the economic nature of a transaction — for example, salaries, rent, supplies. The natural account answers 'what kind of cost is this?'
DEFINITION
- Segment (dimension)
- A separate data field attached to transactions that carries classification information beyond the natural account. Common segments in nonprofit accounting include fund, grant, program, department, and location. Segments answer 'which fund does this belong to?' and 'which program does this serve?'
DEFINITION
- Fund accounting
- An accounting approach where resources are segregated into self-balancing sets of accounts (funds), each with its own assets, liabilities, and equity/net assets. Used by governments and some nonprofits. Mid-sized nonprofits more commonly use segment tracking rather than true fund-level balance sheet segmentation.
DEFINITION
- Net assets
- The nonprofit equivalent of equity: total assets minus total liabilities. Under FASB ASC 958, presented in two classes — with and without donor restrictions — on the statement of financial position.
DEFINITION
- Class tracking
- QuickBooks' mechanism for segmenting transactions. Classes are single-level labels attached to transaction lines. Useful for basic program allocation; insufficient for multi-grant restricted fund tracking.
DEFINITION
Q&A
How many expense accounts should a nonprofit have in its COA?
A well-designed nonprofit COA typically has 40-80 natural expense accounts organized by type: personnel (salaries by category, benefits, payroll taxes), occupancy, professional services, supplies, travel, depreciation, and other. Organizations with more than 80-100 expense accounts usually have fund identity embedded in account numbers — which is the problem, not the solution. The fund identity should be in a segment, not in the account number.
Q&A
What is the difference between a program and a fund?
A program is a functional activity of the organization — youth services, housing, job training. A fund represents a source of restricted resources — the HUD CoC grant, the XYZ Foundation grant, the board-designated reserve. The same program can be funded by multiple funds; the same fund can support multiple programs. Both should be tracked as independent dimensions so reporting can cut across either axis.
Q&A
How should a nonprofit handle a grant that funds multiple programs?
When a single grant funds activities across multiple programs, each expense transaction should carry both the grant identifier (fund dimension) and the program identifier (program dimension). The fund dimension aggregates all costs for the grant; the program dimension aggregates all costs for the program. Neither dimension is sufficient alone. Most organizations that lack this dual tracking end up doing manual cost allocation in spreadsheets at reporting time.
Frequently asked