top of page

Resources for Your Nonprofit

How to Track Restricted Funds in QuickBooks Online for nonprofits: A Practical, Auditor-Ready Workflow

ree

If restricted funds keep you guessing, you are not alone. Many nonprofits struggle to see grant balances in real time, pull clean funder reports, or run a simple budget vs. actual for each grant. The good news is that QuickBooks Online can do all of this when you set it up with a clear structure.


This guide shows you exactly how to track restricted funds using Customers (renamed to Donors) with a tidy parent to child hierarchy. You will also learn why Classes should be reserved for functional expenses and programs, and how to produce a Profit and Loss by Donor that shows each fund’s activity and remaining balance.


Why structure matters

Restricted funds live or die by clarity. Funders want to see the revenue received, the expenses charged to that funding, and the remaining balance. Program leaders want the same thing in plain English. Your setup must deliver:

  • A consistent place to tag every restricted transaction

  • Functional expense reporting for Form 990 or T3010

  • Simple, repeatable reports for boards and funders


The architecture at a glance

You will use a 3 part structure:


  1. Chart of Accounts for the standard categories

  2. Classes for functional expense and program tracking

  3. Customers/Donors for each restricted fund and its parent entities


Why not use Classes for restricted funds? Because Classes should map to Program Services, Management and General, and Fundraising, with optional subclasses for your specific programs and even projects under those programs. Your restricted fund tracking must be independent of this functional layer. Customers/Donors give you that second dimension cleanly.


Step 0. Turn on the right features and labels

  1. Go to Gear → Account and Settings → Advanced

  2. Turn on Track classes

  3. (Optional) Leave Locations off for this workflow

  4. In Advanced → Other preferences, change Customer label to Donor so your lists read naturally for a nonprofit


Step 1. Use Classes only for functional expenses and programs

Go to Gear → All lists → Classes and set up:

  • Program Services

    • Program A

    • Program B

    • Program C

  • Management and General (or Admin in Canada)

  • Fundraising

You can add deeper subclasses under each program if you need project level visibility. Keep Classes focused on how costs appear on the Statement of Functional Expenses. Do not mix restricted funds here.


Step 2. Build your Donors hierarchy for restricted funds

Go to Sales → Donors and create a tidy parent to child layout:

  • Parent donor: Restricted Funds This is only a container. You will not post revenue or expenses to this parent.

  • Child donors: One per funding source beneath Restricted Funds Example:

    • Restricted Funds

      • Fun Foundation

      • RAD Foundation

  • Grandchild donors: One per grant under each foundation Example:

    • Restricted Funds

      • Fun Foundation

        • 2020 Fun Grant

        • 2021 Fun Grant

      • RAD Foundation

        • 2021 RAD Foundation Grant


Always check Bill with parent on the grant level donors. This lets reports roll up neatly and makes filtering easy.

Tip: Open a grant’s Donor profile and use Notes for key terms and conditions. Attach the PDF grant agreement in Attachments. When you are deciding which expense belongs where, you can reference the agreement in one click.


Step 3. Record restricted revenue to the specific grant donor

To record a check from a funder:

  1. + New → Bank Deposit or Sales Receipt

  2. Received From: choose the grant donor (for example, “2021 Fund Grant” under “Fund Foundation”)

  3. Account: Grant Revenue or Restricted Donations income

  4. Amount: the deposit amount

  5. Class: choose the functional class only if the grant is strictly program specific; if it spans multiple programs, leave class assignment to the expense side

Save. This ties the income directly to the grant donor.


Step 4. Tag expenses to the grant donor on every form

You can charge costs to a restricted fund from any entry screen:

  • Expense

  • Bill

  • Check

  • Journal entry

On each line:

  • Choose the correct Expense account (for example, Supplies, Salaries and Wages, Advertising and Marketing)

  • In the Donor or Name column, select the grant donor (for example, “2021 Fund Grant”)

  • In the Class column, select the relevant Program or Management and General or Fundraising class

Examples:

  • Fuel receipt for a site visit

    • Expense account: Travel

    • Donor: 2021 Fund Grant

    • Class: Program A

  • Journal entry for monthly payroll allocation

    • Debit: Salaries and Wages

    • Name: 2021 Fund Grant

    • Class: Program A

    • Credit: Checking (or payroll clearing)

The key is consistency. Every restricted expense must carry the grant donor and, separately, the Class.


Step 5. Produce a Profit and Loss by Donor that shows balances

Now for the payoff. You want a single report that shows revenue and expenses for each grant and the remaining balance.

  1. Go to Reports → Profit and Loss

  2. Click Customize

  3. In Rows/Columns → Columns, choose Donors

  4. In Filter → Donors, select the single parent Restricted Funds donor This includes all grant donors beneath it

  5. Set the Report period from the beginning of time to your current cut off A common trick is From 01/01/1900 to month end, so you capture all revenue and all expenses over the life of the grant

  6. Click Run report


What you get:

  • A P&L with one column per grant donor

  • Revenue lines show each grant received

  • Expense lines show every transaction charged to each grant

  • Net income per column equals the grant balance remaining

Use this with program leads and funders. If someone asks, “What is left on the 2021 Fund Grant?” you can read the number straight from the column total. If a funder asks for detail, click into the number to open the transaction list.


Step 6. Optional: Budget vs. Actual by grant

If your funder requires a budget comparison, you have two options:

  • Maintain a simple off-system budget for each grant and reconcile to the P&L by Donor report each month

  • If you use Projects for large, multi-year grants, run Project profitability and pair it with an external budget tracker

This article centers on the Donor hierarchy method because it keeps Classes free for functional reporting and it works across QuickBooks Online and Desktop. If you already use Projects, you can blend the two, but avoid duplicating dimensions.


Frequently asked questions


Can I still use Locations? Yes, but it is not required for this workflow. Keeping it simple reduces errors. Many nonprofits leave Locations off when they use the Donor hierarchy for restricted funds.  The limitations of Locations is that you can only categorize at the “transactional” level, but not the individual line item.


What if a grant is time restricted but unrestricted in purpose?It’s up to you if you want to record expenses against the time restricted grant, or simply release the funds based upon time passed.  Either way, it can be tracked using the donor feature. 


Can I split one expense across two grants? Yes. Use two lines on the same transaction. Put the correct amount on each line and tag each line to the proper grant donor and Class.


How do I see total restricted funds on hand? On the P&L by Donor report filtered to the Restricted Funds parent and run from the beginning of time through your reporting date, look at the total net income at the far right. That equals the combined restricted fund balance. It will tie to your Restricted Net Assets on the balance sheet once you post your period end reclassification entries.


Does this work in QuickBooks Desktop? Yes. The navigation looks different, but the concept is the same. Use Customers and Jobs in a parent to child structure, reserve Classes for functional expenses, and run a P&L by Customer:Job filtered to the parent.


Common pitfalls to avoid

  • Using Classes for restricted funds. You lose clean functional reporting and create double work.

  • Posting to the parent donor. Always post at the grant level. The parent and foundation levels are for grouping and filters only.

  • Forgetting to set the report start date to “beginning of time.” A grant received last year will not show if you only run the current year.

  • Missing Donor tags on expenses. If expenses do not carry the grant donor, the P&L by Donor will understate spend and overstate balances.

  • Overcomplicating the Chart of Accounts. Keep income simple: Individual Contributions, Grant Revenue, Earned Revenue, In-kind. Let Donors and Classes do the heavy lifting.


Quick setup checklist

  • Turn on Class tracking and rename Customer to Donor

  • Build Classes for Program Services, Management and General, and Fundraising, with program subclasses

  • Create a Restricted Funds parent donor

  • Add a donor for each funder under Restricted Funds

  • Add a donor for each grant under the funder

  • Record revenue to the grant donor

  • Tag every restricted expense line with the grant donor and the correct Class

  • Run P&L by Donor filtered to Restricted Funds from 01/01/1900 through period end


Bring clarity to your restricted funds

With this structure, you can answer the three questions every funder asks: What came in, what went out, and what is left. You will give program teams the same clarity without exporting to a maze of spreadsheets.

If your restricted fund reporting still feels noisy, we can set up the Donor hierarchy, tune your Classes, and build the exact reports your board and funders expect.


Schedule a free discovery call with MightyNonprofits and let’s get your restricted funds audit ready and easy to manage.


Sources: ✅ “Nonprofit Accounting – Tracking Grants & Restricted Funds” – Intuit ✅ “How to Record Donations or Charitable Contributions in QuickBooks Online” – Intuit ✅ “Tracking Restricted Donations with QuickBooks Online Projects” – Atchley & Associates LLP ✅ “QuickBooks Online Nonprofit Setup Tips” – Aplos Academy ✅ “QuickBooks for Nonprofits Setup Mistakes” – The Charity CF


 
 
 
bottom of page