TLDR
QuickBooks Classes simulate fund tracking by tagging transactions with a fund label. True fund accounting stores transactions against fund accounts at the ledger level. The distinction matters because in QuickBooks, missed tags corrupt fund balances without warning. In true fund accounting software, fund assignment is mandatory — the transaction won't save without it. For auditors and grantors, the difference is evident in your statements.
The workaround’s origin story
When a nonprofit first sets up QuickBooks, the bookkeeper typically discovers the Class feature and realizes it can simulate fund tracking. Create a Class for each restricted grant. Tag every transaction. Filter by Class to see fund-level activity.
This works for a while. Often for years.
The problem isn’t that Classes can’t track funds — they can, approximately. The problem is that the approximation requires perfect execution of a manual process indefinitely, with no system enforcement and no audit trail that distinguishes “this was intentionally unrestricted” from “someone forgot to tag this.”
The enforcement gap
A system control is something the software enforces. A manual control is something a human checks.
Requiring Class assignment on every QuickBooks transaction is a manual control. Someone has to review the unclassified transactions report at month-end. Someone has to chase down the entries that are missing tags. Someone has to fix them before the fund balance is meaningful.
In true fund accounting software, fund assignment is a system control. The transaction cannot be saved without a fund. There is no unclassified transactions report because unclassified transactions cannot exist.
This difference matters to auditors. When auditors assess your internal controls, manual controls get lower ratings than system controls. A process that depends on someone remembering to check a report is less reliable than a system that prevents the error from occurring.
Research from Beancount.io (2024) found that 61% of nonprofits rely on spreadsheets to supplement their accounting software. The Intuit Business Solutions Survey (2024) found that organizations on inadequate software spend an average of 25 hours per week on manual data entry and reconciliation. Most of that time goes to closing gaps that system-level fund accounting eliminates at entry.
What this means for month-end
Every nonprofit bookkeeper running QuickBooks with Class-based fund tracking has a month-end step that fund accounting software eliminates: the Class cleanup.
Pull the unclassified transactions report. Identify every transaction without a Class. Research each one — was it a vendor payment, a payroll entry, a journal entry? Determine the correct Class. Fix it. Re-run the fund balance report. Confirm it ties to the general ledger.
That step doesn’t exist in fund accounting software because the transactions are always tagged — the system required it at entry.
The time saved varies by transaction volume and how disciplined the tagging has been during the month. For organizations with hundreds of transactions per month and multiple staff entering data, the cleanup can take hours. That time is the hidden cost of running fund tracking as a manual control in general-purpose accounting software.
The Statement of Functional Expenses gap
QuickBooks Online has no native Statement of Functional Expenses report. The report structure does not exist in the product. No setting enables it.
The Statement of Functional Expenses presents expenses in a matrix: rows are expense types by nature (salaries, occupancy, supplies), columns are expense types by function (program services, management and general, fundraising). FASB ASC 958 requires this statement for voluntary health and welfare organizations. Form 990 Part IX requires it for all nonprofits that file the full 990.
Because QuickBooks uses a single-dimension expense structure, a nonprofit bookkeeper cannot produce this report from QuickBooks without building it manually in Excel. The standard workflow: export the transaction detail, build an allocation spreadsheet that splits each expense line by program function using either direct assignment or a percentage-based allocation methodology, and then reconcile the totals back to the QuickBooks income statement.
The result is a shadow accounting system where the authoritative Part IX numbers live in a spreadsheet rather than the general ledger. When an auditor asks about the allocation methodology or requests support for a specific line item, your bookkeeper traces the answer through two systems. The audit trail covers the spreadsheet but not the underlying QuickBooks data, and examiners notice.
Correcting systemic classification failures in this setup (cases where the allocation methodology was inconsistently applied across multiple periods) can consume dozens of labor hours and delay grant reporting. In fund accounting software built for nonprofits, functional expense allocation is maintained at transaction entry. The Statement of Functional Expenses is a system report, not a spreadsheet project.
Like what you're reading?
Try RestrictedBooks free for 30 days — no credit card required.
See plans & pricing- Statement of Functional Expenses
- A financial statement required for voluntary health and welfare organizations under FASB ASC 958, and strongly recommended best practice for all nonprofits. It presents expenses in a two-dimensional matrix: rows are expense types by nature (salaries, rent, supplies) and columns are expense types by function (program, management and general, fundraising). Form 990 Part IX uses this same structure. QuickBooks Online has no native report that produces this output.
DEFINITION
- Fund accounting
- An accounting system where each designated fund — restricted grant, unrestricted operating, endowment — maintains its own ledger of assets, liabilities, and net assets. Transactions post against fund accounts directly, not against a general ledger with optional labels.
DEFINITION
- FASB ASC 958
- The FASB accounting standard for not-for-profit entities. Requires that financial statements display net assets with donor restrictions and net assets without donor restrictions as separate line items. Determines how restricted fund balances must be disclosed and how restrictions are released.
DEFINITION
- QuickBooks Classes
- An optional transaction attribute in QuickBooks Online and Desktop that allows tagging transactions with a label. Used by nonprofits to simulate fund tracking. Not a ledger-level control — Class assignment is optional and can be bypassed. Does not enforce spending restrictions or prevent fund balance errors.
DEFINITION
- Restriction enforcement
- A system control that prevents or alerts when a transaction would cause a restricted fund to be overspent. True fund accounting software can implement this because fund balances are maintained at the ledger level. QuickBooks cannot implement it because the fund is a tag, not an account.
DEFINITION
- Net asset reclassification
- The accounting entry that moves funds from net assets with donor restrictions to net assets without donor restrictions when a restriction is satisfied. FASB ASC 958 requires this entry whenever a time or purpose restriction is fulfilled. Documented in GAAP-compliant financial statements as a line item.
DEFINITION
Q&A
What is the fundamental problem with using QuickBooks for nonprofit fund accounting?
QuickBooks stores transactions in a for-profit equity structure where fund tracking is added as an optional tag (Class or Location). Because the tag is optional, missed tags corrupt fund balances without triggering any system warning. Because the structure is equity-based rather than fund-based, FASB ASC 958-compliant financial statements require manual reconstruction at audit time. These are structural limitations, not configuration problems — they cannot be fully resolved by any QuickBooks setup or add-on.
Q&A
How does true fund accounting software prevent the problems that QuickBooks creates?
By making fund assignment a required field at transaction entry. When a bookkeeper records a grant expense, the fund field must be completed before the transaction saves. This system control — not a procedure or a manual review — ensures every transaction has a fund assignment. Fund balances are therefore always accurate, not only after a month-end cleanup.
Frequently asked