Mapping QuickBooks Classes to Funds

Coming from QuickBooks? Turn your old classes into NP Ledger funds so your history lands in the right place.

Updated June 8, 2026

QuickBooks Online has no real concept of nonprofit funds. To track restricted gifts, grants, and program money, many established nonprofits repurpose QBO's Class field — so after years in QuickBooks, your class list is often your fund structure in disguise. When you import a QuickBooks General Ledger export into NP Ledger, the import reads that Class column and lets you map each class to a real NP Ledger fund, once, so every transaction lands in the right fund automatically.

Without this step, every imported transaction would go to your General Fund, and you'd have to reclassify potentially thousands of transactions by hand after the fact. Mapping classes to funds at import time means your fund balances are right from the first report — no cleanup project, no missed restrictions.

It's a one-time setup per class: NP Ledger remembers each mapping and applies it automatically to every future QuickBooks import.

  • Export a General Ledger report from QuickBooks Online that includes the Class column. (This is different from the Transactions by Tag Group report used elsewhere in NP Ledger — see the note at the end.)
  • Know, roughly, which classes are really funds. Some orgs use Class for funds; others use it for programs, locations, or grants. Only the fund-like ones should map to funds — the rest can be ignored.
  • You don't need to create your funds first. You can pick existing funds or create new ones right on the mapping screen.

Step 1: Upload the General Ledger export

Import the QuickBooks GL file the usual way (Spreadsheet Import, or Step 6 of the setup wizard). NP Ledger auto-detects the QuickBooks GL format and opens a preview. If the file has a Class column, a Class → Fund mapping section appears on that preview.

Step 2: Review the discovered classes

The mapping section lists every distinct class found in the file, with its row count and debit/credit totals so you can sanity-check before committing. The totals are there to catch mistakes — a class you didn't expect to be large is a clue you're about to map it to the wrong fund.

Step 3: Map each class

For each class, choose one of:

  • An existing fund — pick from your current funds.
  • Create a new fund — a small form captures the fund's name, fund type, restriction type, and purpose category, and the new fund is available immediately. Inline-created funds are always standard funds — this path never creates a pass-through fund (those auto-create a linked liability account and have their own dedicated flow). If you need a pass-through fund, create it separately first, then map the class to it.
  • Ignore this class — transactions on this class import to your General Fund, exactly as they would have before. "Ignore" still counts as resolving the class, so it won't block the import.

Step 4: Save, then apply

Saving your mappings reloads the preview with an updated badge. Apply stays locked until every class is resolved — either mapped to a fund or set to Ignore. If you'd rather not map anything, you can choose to send everything to the General Fund and proceed. When you Apply, NP Ledger stamps the correct fund on each transaction as it imports, and shows a summary like "312 transactions mapped to Building Fund via class BldgFund."

  • Casing and spacing don't matter. BldgFund, bldgfund, and BldgFund are all treated as the same class and collapse to one mapping. NP Ledger keeps the spelling exactly as it appears in your file for display, but matches on a normalized key (strip + lowercase). This is what lets a class that drifted in spelling across years still resolve to one fund.
  • Hierarchical classes stay whole. A class like Programs:Youth Arts is mapped as a single name — it is not split into a parent and a child. If you need parent/child program tracking, use NP Ledger's Programs and Projects, not funds.

A common expectation is that the fund carries its "With Donor Restrictions" / "Without Donor Restrictions" status, because that's how classes often get used in QuickBooks. In NP Ledger it doesn't. Net asset classification lives on the account (net_asset_class on each Chart of Accounts account), set during your chart of accounts import — not on the fund. Don't go looking for a net-asset field on the fund; there isn't one, by design. A fund still records its own restriction details (purpose, time, or both), but the With/Without Donor Restrictions split that appears on your Statement of Financial Position and Statement of Activities is driven by the accounts, not the fund.

Important: Mapping a class to a fund does not, by itself, make those dollars show up as donor-restricted on your financial statements. The restricted vs. unrestricted presentation comes from each transaction's accounts (net_asset_class). If you're migrating a "restricted" class, make sure the Chart of Accounts you imported flags the relevant accounts as with donor restrictions — otherwise the fund will look right but your restricted net assets will be understated.

Saved mappings live under Settings → Imports → Class Mappings. From there an admin can:

  • Edit a mapping's target fund. Editing changes future imports only — it does not silently rewrite transactions you already imported under the old fund.
  • Delete a mapping. Already-imported transactions are untouched; future imports of that class fall back to the General Fund.
  • Apply a correction to history — see below.

Fixing already-imported transactions

If you mapped a class to the wrong fund and have already imported under it, open the mapping and use Apply to history. This is a deliberate, separate action, not something editing does automatically:

  • It shows you, fund by fund, how many historical transaction lines would move, so you can preview before committing.
  • It runs as a single all-or-nothing operation.
  • It's guarded against runaway scale: a remap touching more than 10,000 lines requires an explicit confirmation to proceed.
  • It's reversible. Each apply records one audit event with the exact lines it moved, so you can reverse it and restore the prior fund if needed.
  • After applying, the post-import summary lists each class and the fund its transactions went to. Spot-check that the big classes landed where you expect.
  • On the Funds page, confirm the fund balances look right for the funds you mapped.
  • Re-importing more QuickBooks history later won't re-prompt for classes you've already mapped — they resolve automatically.
  • Mapping a non-fund class to a fund. If a class is really a program, location, or grant — not a fund — choose Ignore and track it with Programs or Projects instead.
  • Expecting a net-asset field on the fund. It's on the account (see above).
  • Editing a mapping and expecting history to change. Editing only affects future imports. Use Apply to history to reclassify past transactions.
  • Looking for the Transactions by Tag Group report. That's a different QuickBooks export for a different feature — it is not an alternative way to get Class data into funds. Class → Fund mapping reads the General Ledger export's Class column.

Open the AI Help panel and try: - "How do I map these QuickBooks classes to my funds?" - "What happens to classes I ignore?" - "How do I reclassify transactions I already imported under the wrong fund?"

Ready to try NP Ledger?

Native fund accounting, Form 990 support, and smarter bookkeeping for nonprofits.