> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.usetabby.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Classes and Profit & Loss by Class

Classes let you see profit by client, project or location. Each transaction gets one class. To use more than one on a single transaction, split it.

You'll find Classes under **Accounting** in the left sidebar.

## Tour of the page

![The Classes page. The numbers match the list below.](https://storage.crisp.chat/users/helpdesk/website/-/8/a/f/c/8afcc30bafd4b000/01-classes_53536t.png)

1. **Page actions.** Import, Export and New class.
2. **Tabs.** Classes, and Profit & loss by class.
3. **Coverage.** How many of your profit and loss transactions have a class, with a link to classify the rest.
4. **Active and Archived.** Switch between classes in use and classes you've archived.
5. **Sort.** Most used, Net profit, Most spent, Name A-Z or Newest.
6. **Sub-classes.** A class can have sub-classes. Its totals include theirs.
7. **Transactions.** How many transactions carry the class. Click the number to see them in Bank feeds.
8. **Edit, Archive and Delete.** These buttons appear when you point at a row.

Income, Expenses and Net show what each class brought in and cost.

## Create a class or sub-class

Click **New class**.

![A sub-class under Clients, with a preview of how it will look.](https://storage.crisp.chat/users/helpdesk/website/-/8/a/f/c/8afcc30bafd4b000/02-new-class_kfxhfi.png)

* **Name.** Up to 50 characters.
* **Is sub-class.** Tick it to place the class under another one, then choose the **Parent class**. Reports roll a sub-class up into its parent.
* **Description.** Optional. Say what the class should be used for.
* **Color.** The color of the class's label across Tabby.

Click **Create class**. You can pick it on any transaction straight away.

## Open a class's details

Click a class name to open its details.

![The Clients class, with its two sub-classes and recent transactions.](https://storage.crisp.chat/users/helpdesk/website/-/8/a/f/c/8afcc30bafd4b000/03-class-details_8uysfn.png)

The panel shows income, expenses and net for the class, its sub-classes with a link to add another, where the money went by category, and its most recent transactions. **View all** opens the full list in Bank feeds.

## Put a class on a transaction

You set a class wherever you record the transaction:

* In **Bank feeds**, use the Class column, the row menu or the details panel. See **Add a class**.
* On an invoice, estimate, sales receipt, bill, expense or journal entry, use the **Class** section of the form.
* To classify many at once, select the transactions in Bank feeds and set the class on all of them.

On the Classes page, the link beside the coverage bar opens Bank feeds filtered to transactions without a class.

## Archive, restore or delete a class

When a client or project wraps up, **archive** its class. It stays on past transactions and in your reports, but stops appearing in your pickers. Sub-classes are archived with it.

![Archiving a class also archives its sub-classes.](https://storage.crisp.chat/users/helpdesk/website/-/8/a/f/c/8afcc30bafd4b000/04-archive-class_zo1o4h.png)

Archived classes move to the **Archived** list, where **Restore** brings one back.

![Restore an archived class at any time.](https://storage.crisp.chat/users/helpdesk/website/-/8/a/f/c/8afcc30bafd4b000/05-archived-classes_1y1zp6r.png)

**Delete** removes a class for good. It comes off every transaction that used it, and those transactions then count as unclassified. A class with sub-classes can't be deleted until you delete or move them, and Tabby offers to archive it instead.

## Profit & loss by class

Open the **Profit & loss by class** tab, or choose Profit & Loss by Class on the Reports page.

![Income, expenses and net profit for every class.](https://storage.crisp.chat/users/helpdesk/website/-/8/a/f/c/8afcc30bafd4b000/06-profit-and-loss-by-class_169k5wo.png)

1. **Period.** Year, Quarter, Custom range or All time.
2. **Classes.** All classes, or the ones you pick.
3. **Basis.** Cash, Accrual or Both.
4. **CSV and PDF.** Export the report.
5. **Unclassified transactions.** How many transactions in the period have no class, with a **Classify** link.
6. **P&L.** Opens the full profit and loss for that class.
7. **Unclassified.** The row for everything without a class, so the report always adds up to your total profit and loss.

## Compare classes side by side

Click **Classes** and tick the ones you want. Ticking a parent ticks its sub-classes too.

![Pick a parent class to compare its sub-classes.](https://storage.crisp.chat/users/helpdesk/website/-/8/a/f/c/8afcc30bafd4b000/07-choose-classes_ybcidx.png)

The report changes to a statement with a column for each class, a total, an Unclassified column and a grand total. Income and expenses are listed by account.

![Two clients side by side, with the Unclassified column highlighted.](https://storage.crisp.chat/users/helpdesk/website/-/8/a/f/c/8afcc30bafd4b000/08-compare-classes_641t6w.png)

Click **Clear** in the picker to go back to all classes.

## Import or export classes

Click **Import** and upload a CSV with a **Name** column. Add a **Parent** column to make sub-classes. Missing parents are created for you, and classes you already have are skipped.

![A Parent column turns rows into sub-classes.](https://storage.crisp.chat/users/helpdesk/website/-/8/a/f/c/8afcc30bafd4b000/09-import-classes_1edeb90.png)

**Export** downloads all your classes with their parent, description, status and color.

## Common questions

### Should I use a class or a sub-account?

Use a sub-account when you want more detail about what something is, such as splitting Travel into Airfare and Lodging. Use a class when you want to know who or what it was for, such as a client or a project, across all your accounts.

### Can a transaction have more than one class?

Each transaction gets one class. To divide one between two classes, split the transaction in **Bank feeds** and give each part its own class.