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.
| Dimension | Typical use | Included in |
|---|---|---|
| Classes | Department, fund, product line, profit center | Standard, Professional, Accountant |
| Locations | Office, store, warehouse, region | Professional, Accountant |
| Projects | Client job, contract, grant, internal initiative | Professional, 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 differs | The treatment is the same, only the segment differs |
| An outside reader (tax form, lender) needs it on its own line | It'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_idandproject_idon transaction lines, and manages the lists at/classes,/locationsand/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.
Related
- General Ledger — the transaction-line model
- Banking — bank feeds and categorization rules
- Budgets
- REST API