Classes, Locations & Projects

Sometimes the chart of accounts isn't enough. You want Marketing's software spend separate from Sales's, Boston's revenue separate from Atlanta's, or the cost of one job — without a new account for each. Solid Accounting calls these dimensions: Classes, Locations and Projects, managed in Lists → Classes / Locations / Projects.

DimensionTypical useIncluded in
ClassesDepartment, fund, product line, profit centerStandard, Professional, Accountant
LocationsOffice, store, warehouse, regionProfessional, Accountant
ProjectsClient job, contract, grant, internal initiativeProfessional, Accountant

A dimension is stored on each transaction line, not on the whole transaction, so one invoice can split across two classes if the work covered both. The three are independent; a line can carry any combination, and you don't have to use all three.

Dimension or separate account?

Use a separate account when…Use a dimension when…
The accounting or tax treatment differsThe treatment is the same, only the segment differs
An outside reader (tax form, lender) needs it on its own lineIt's for internal management reporting

Examples: Office Supplies and Software are different accounts. Office Supplies for Sales vs Engineering is one account with two classes. Rent for Boston vs Atlanta is one Rent Expense account with two locations. Revenue from two client engagements is one Service Revenue account with two projects.

Setting up the lists

Open Lists → Classes / Locations / Projects and pick the tab:

  • Classes and Locations have a name, an optional code, and an optional parent for a hierarchy (for example Engineering → Backend, Frontend). Locations can also carry an address.
  • Projects have a name, optional code, customer, status (Active, Completed, Cancelled), budget, and start and end dates.

Start small — five to ten classes is plenty. Mark values you no longer use inactive: they drop out of pickers, but transactions that already use them keep them.

Where you can assign them today

  • Bank feed categorization rules (Banking → Categorization Rules) can set a class, location and project on the transactions they categorize.
  • Processor payouts can default a class.
  • Apportionment schedules (Professional) spread a shared cost such as rent or insurance across classes or entities on a basis you define.
  • The REST API accepts class_id, location_id and project_id on transaction lines, and manages the lists at /classes, /locations and /projects.

Good habits

  • Tag consistently. A report is only as good as the tagging; decide which transactions get a class and apply it every time.
  • Tag costs as well as revenue on projects, or the job looks more profitable than it is.
Updated October 31, 2026
Report a problem with this page
Was this helpful?

We use this to prioritize which docs to improve. No tracking, no email follow-up.