Nonprofit Accounting: 990 Functional Expense Breakdown in QuickBooks Online

Most nonprofits are required to file a yearly 990 with the IRS every year in order to maintain their 501c3 (or other status). The 990 requires multiple components that are different from most financial statements and tax documents used by for profit organizations. One requirement is nonprofits have to break down their functional expenses by whether the expense is related to Program, Fundraising, or Management. Not only is this a requirement for the IRS, but many donors will look at this breakdown for their funding decisions – so it’s important to get right. QuickBooks Online (QBO) thankfully has some tooling that we can use. In this article, I’ll break down the options of how to setup QBO and book transactions correctly.

Overview of Functional Expenses

In a nonprofit’s 990, the IRS requires the following schedule in Part IX to break down functional expenses:

990 Functional Expenses

Each expense must fall into one of these three classifications:

  • Program: whether the expense furthers the nonprofit’s tax exempt mission.
  • Fundraising: whether the expense was used to assist in fundraising.
  • Management: whether the expense was required to run the organization, but not tied directly to the mission.

Not every expense must be individually identified. That means that management has significant judgement in order to classify expenses into these buckets and allocations can be used. That makes a non profit accountant’s job much easier when booking functional expenses and gives options for how an organization should best do it.

QuickBooks Online is not really well built for nonprofit organizations, but it is probably the most widely used accounting package for small nonprofits. This setup should be carefully considered as part of the chart of accounts.

Using the Chart of Accounts to Classify Functional Expenses in QuickBooks Online

The easiest approach to breaking down functional expenses is to rely on the setup of the chart of accounts and then ensure that each expense is properly classified when booked. That means in a nonprofit’s chart of accounts, there should be separate sections for expenses related to each of the categories in the 990. An example chart might be:

Using chart of accounts to break down functional expenses for a nonprofit's 990

Some expenses though might for something similar – say “Consulting Expense” which are used for two categories – say “Consulting Expense” for program – and “Consulting Expense” for management. Consider a consultant paid to work with a nonprofit’s clients versus an HR consultant for instance. In this setup, there really should be two “Consulting Expense” accounts – one in both the Management and Program expenses. A bookkeeper then needs to be very careful to enter expenses into the correct account to maintain consistency.

The challenge with this approach is that some expenses can’t be broken down or they are shared between multiple categories. Salary and benefits are usually the first problem with this approach that a nonprofit encounters. There is a solution. Since the IRS gives nonprofits flexibility and discretion on this breakdown, the accountant preparing the 990 can perform an allocation at the end of the year.

To give an example, consider a director of a small nonprofit. The director will be working on fundraising, management, and program all at once. So if the director maintains their time in a time system, or provides the percentage breakdown of their time to the accountant; then the accountant can perform an allocation to put the salary expense into the right functional classification based on those percentages.

For these shared items, usually a separate portion of expenses is created. In this example, payroll is split into its own group. This approach is elegant as payroll is also usually one of the largest expense items for a nonprofit. Moreover, the expenses are broken out with specific identification for items that can, and allocated for items that cannot. The sample chart of account then becomes:

Another example of chart of accounts being broken down by functional expense for a nonprofit 990.

This approach works well for most small non-profits up to say 500K in donations. The first problem with this approach is that larger nonprofits may manage their financial statement reporting differently than the 990’s functional expense breakout. Second, as noted, the same account name starts to show up in multiple sections of the chart of accounts. This duplication gets complicated for bookkeeping and becomes redundant. So what should a larger or more complicated nonprofit consider?

Using Class in QuickBooks Online to breakdown functional expenses.

In QBO, there are multiple subsidiary classifications that can be used for each accounting line item. One of these – Class – can easily be used to perform the functional expense breakdown. To set this approach up, first classes must be turned on for “One to each row” in QBO using these directions and the following classes are defined:

Classes used to breakdown functional expenses in Quickbooks Online.

Now, the bookkeeper must enter a class on each expense item. QBO does not provide a hard error for a missed class, but it can provide a warning. The chart of accounts can now be simplified and the duplicated accounts can be squished down since the class provides the right breakout for the 990.

Using class to breakdown functional expenses in QBO

Then to view the expenses by functional category, it is as simple as running the Statement of Activity report and using the Class as a breakdown. This report should be run every month to identify any items that have not had a class entered onto them as well.

Report run showing classes to break down functional expenses in QBO

There is still the problem of how to handle expenses that span multiple functional expenses such as salary. One approach to this problem is to break down the expense into each class when it’s being booked. That will work, but for some items like payroll, it’s a lot of work to do every month. Instead, an easier solution would be to placed the item into the Shared class and then do an allocation at the end of the fiscal year.

Using class to breakdown functional expenses can help a nonprofit’s financial statement better align with their reporting goals and simplify the chart of accounts; but it also requires much more work to book each expense to the correct class. Since there are now two fields – the account and the class – there are twice as many things to get wrong. Moreover, some functionality in QBO still has rough edges on class. Products have to be setup carefully to ensure they have class for instance. Thus this approach should really only be used by larger nonprofits who can justify the overhead.


A nonprofit has to provide a functional expense breakdown as part of its yearly 990 filing with the IRS. QuickBooks Online provides two methods to provide this breakdown. One is to use the account method where each part of the chart of accounts is aligned with a category; and the second is to use a class where each category is assigned to a class. Larger nonprofits with more complex reporting requirements should consider using class while smaller nonprofits should use the account method.

Read our second article in the series on tracking grant budgets in QBO!

Learn from other Non Profit Leaders!

Talk with other nonprofit leaders, learn from their experience, and access other key resources!