Skip to main content

Designing a good chart of accounts

How to structure your chart of accounts, and what to track with Dimensions and Funding Sources instead.

Written by Matt Spurr

Your chart of accounts is the list of accounts your transactions are recorded in. How you structure it decides whether your Statement of Activities is readable and whether grant tracking holds up. This guide covers how to organize your accounts, and what to keep out of the chart entirely.

A note on guidance: Some of this is accounting judgment, not a rule of the software. Where we say "a common approach" or "many nonprofits prefer," treat it as a starting point and adjust to your organization, your auditor, and your funders. Where we describe how ImpactGraph works, that's product behavior you can rely on.

Start with the five account-type groups

Every ledger account belongs to one of five groups. A ledger account is a single account in your chart where transactions are recorded (for example, Office Supplies or Grant Income). You don't need accounting theory here. You need to know what each group is for, because the group decides how the account behaves in your reports.

  • Assets: what your organization owns or is owed. Bank accounts, money owed to you, equipment.

  • Liabilities: what your organization owes. Credit card balances, unpaid bills, payroll owed.

  • Net Assets: what's left after liabilities are subtracted from assets. You classify these accounts as type Equity. On your Statement of Financial Position they appear under the Net Assets section.

  • Revenue: money coming in. Grants, donations, contracts, earned income.

  • Expenses: money going out. Salaries, rent, supplies, program costs.

Revenue and Expense accounts appear on your Statement of Activities, the report of revenue and expenses over a period. Asset, Liability, and Net Assets accounts appear on your Statement of Financial Position instead. Putting an account in the right group is the most important decision you make about it. The group is what determines where the money shows up.

Each group has more detail (current vs. fixed assets, restricted vs. unrestricted net assets, and so on). For the full breakdown, see Ledger account types.

Keep your chart lean

The most common chart-of-accounts mistake is letting it grow without limit. It's tempting to add a ledger account every time you want to track something new: a program, a location, a grant, an event. Resist that.

A bloated chart slows down coding and makes your books harder to reconcile with your accounting system. ImpactGraph gives you better tools for tracking those things, and they keep your chart small.

There's no fixed number of accounts that's right. The better question is whether each account earns its place. A common approach is to keep the chart as small as it can be while still distinguishing genuinely different kinds of revenue and expense, and to push program, location, and grant tracking into Dimensions and Funding Sources. If two accounts only differ by which program or grant they belong to, you probably want one account plus a Dimension or Funding Source.

Use Dimensions to slice by program, location, or department

A Dimension lets you break a report down by program, location, or department without adding new ledger accounts.

Say you want to track supplies across three programs. Instead of creating "Supplies (Youth)," "Supplies (Senior)," and "Supplies (Admin)" as three accounts, keep one Supplies account and add a Program dimension with options for Youth, Senior, and Admin. When you code a transaction, you pick the account and the program. Now you can run a report that breaks supplies down by program, and do the same for every other account, without your chart growing at all.

A rule of thumb: if you keep wanting to repeat the same word (a program name, a location, a department) across account names, you want a Dimension instead.

To learn when Dimensions are the right tool, see Using Dimensions.

Use Funding Sources to track grants and restricted funds

A Funding Source tracks a grant, contract, or fund, including its net-asset type, budget, and remaining balance. Funding Sources are not dimensions, and they are not ledger accounts. They are a separate tool built for the question every nonprofit has to answer: how much of this grant is left, and what did we spend it on?

So don't create a ledger account per grant. Code transactions against the relevant Funding Source instead. This keeps restricted-fund tracking accurate without cluttering your chart, and it gives you grant-level budgets and balances that a ledger account can't.

For setup, see managing funding sources.

When sub-accounts help (and when a Dimension is better)

A ledger account can sit under a parent account, making it a sub-account. Sub-accounts group related detail under a summary line. For example, an Insurance parent with Liability Insurance and Health Insurance beneath it. Reports can show the rolled-up total or the detail.

Reach for a sub-account when the children are genuinely different kinds of accounts that you still want to summarize together. Reach for a Dimension or Funding Source when you're slicing one account across programs, locations, or grants.

A quick way to decide:

  • Different things you'd report as a group? Sub-account. (Liability Insurance and Health Insurance under Insurance.)

  • The same expense split across programs, locations, or grants? Dimension (program/location) or Funding Source (grant).

When in doubt, prefer the leaner chart. Reach for a Dimension or Funding Source before you add accounts.

Name and number accounts consistently

Consistent names and numbers make reports read cleanly and make coding faster. This is guidance, not a requirement, but a little consistency pays off every month.

Some practices many nonprofits find helpful:

  • Use clear, specific names. "Office Supplies" reads better than "Misc Expense 2." Avoid vague catch-alls.

  • Keep a consistent style. Pick a convention (such as expense accounts written as noun phrases) and apply it across the chart.

  • If you use account numbers, use them consistently. Many charts group accounts by number range, with assets in one range and expenses in another. If you number accounts, keep the ranges tidy so related accounts sort together.

  • Match your accounting system where it matters. If your chart syncs from QuickBooks Online or NetSuite, aligning names and numbers makes reconciliation easier.

The goal is simple: someone reading the report should understand each line without having to ask what it means.

How chart design shows up in your reports

You see the results of chart design every time you run a report. Account type determines placement, so your Revenue and Expense accounts are what build your Statement of Activities, grouped by type. A lean chart gives you a short report. A bloated one gives you a long one. If an account shows up in the wrong place on a report, check its account type first.

That's the payoff for keeping the chart lean and using Dimensions and Funding Sources. You get a short Statement of Activities, and you can still slice it by program, location, or grant when you need to.

To run and customize reports, see Beginner's guide: how to run a report.

[Screenshot: A Statement of Activities report grouped by account type, with a program filter applied]

Related articles

Did this answer your question?