> For the complete documentation index, see [llms.txt](https://docs.kick.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kick.co/accountants/bookkeeping-workflows/classes.md).

# Classes

Track income and expenses by location, department, property, project, product, funds, or any other dimension using classes and subclasses.

Classes are available on the Plus plan and above. You can create an unlimited number of classes and subclasses.

### Creating classes and subclasses

A **class** is the grouping type (e.g., Location, Department, Property). **Subclasses** are the labels you assign underneath it (e.g., Los Angeles and San Diego under a Location class).

Subclasses can be nested up to five levels deep, so you can build hierarchies like **Region → Country → City** when you need more detail.

To create a class:

1. Go to **Accounting → Classes**
2. Click **Add class**
3. Enter the class name and click **Create**

To add a subclass:

1. Find the class you want to add a subclass to
2. Click the **+** icon on that row
3. Enter the subclass name and click **Create**

You can also choose a **Parent class** directly in the create form to place a class anywhere in the hierarchy.

#### Managing your classes <a href="#managing-your-classes" id="managing-your-classes"></a>

* **Rename** – Open the row's menu and choose **Rename**.
* **Delete** – Open the row's menu and choose **Delete**. Deleting a class also deletes its subclasses and unassigns them from any transactions, so you'll be asked to confirm first.
* **Reorder** – Drag classes and subclasses using the drag handle to change their order within the same parent.

Class names must be unique among siblings (classes under the same parent). You can reuse the same name in different branches — for example, a **Sales** subclass can exist under both a **North America** class and an **EMEA** class.

#### Class and subclass examples <a href="#common-classes-and-subclasses" id="common-classes-and-subclasses"></a>

* **Location:** Los Angeles, San Diego
* **Department:** Marketing, Sales
* **Property:** Oak Street, Cove Way
* **Project:** Design, Development, Launch
* **Product:** Product 1, Product 2

***

### Assigning classes to transactions

You can assign classes to a transaction from the **Transactions** tab:

1. Reveal the **Class** column using [**Views**](/accountants/collaboration/views.md)
2. Click the dropdown in this column for any transaction
3. Select the classes that apply

You can also set a class from the transaction details drawer using the **Class** field.

To assign classes in bulk:

1. Select multiple transactions
2. Click **Actions** (⌘K) and choose **Set class**
3. Select the relevant class or subclass
4. Click **Apply**

To clear class assignments in bulk, select the transactions and choose **Remove classes** from the same **Actions** menu.

#### Assigning classes to splits <a href="#assigning-classes-to-splits" id="assigning-classes-to-splits"></a>

When you split a transaction, each split line can have its own class assignments. Set the class on each split line so different portions of a transaction can be tracked under different classes.

***

### Classes on other records <a href="#classes-on-other-records" id="classes-on-other-records"></a>

Classes aren't just for bank transactions. You can also assign them per line item on:

* **Journal entries** – Use the **Class** column when adding journal entry lines.
* **Invoices** – Set a **Class** on each invoice line item.
* **Bills** – Set a **Class** on each bill line item.
* **Products & services (catalog items)** – Assign a default class to an item so it's applied automatically to invoice lines that use it.

***

### Automating class assignment

Create a rule to automatically assign classes based on conditions like bank description, account, counterparty, or amount.

1. Go to **Rules**
2. Click **Add rule**
3. Set your conditions
4. Under actions, select **Set class**
5. Choose the class and subclass to assign

Rules run automatically when new transactions sync, so once configured, matching transactions are classified without manual intervention.

This is especially useful when you need consistent class assignment across high-volume transaction types — like tagging all transactions from a specific account to a particular location or department.

You can also use **Class** as a rule *condition* — for example, to apply additional actions to transactions already assigned to a given class. Selecting a parent class in a condition automatically includes all of its subclasses.

See [**Rules**](/accountants/bookkeeping-workflows/rules.md) for more on setting up automation.

***

### Classes from integrations <a href="#classes-from-integrations" id="classes-from-integrations"></a>

You don't always have to create classes by hand. Kick can bring them in from connected tools:

* **Gusto and Ramp** – Departments from Gusto and Ramp automatically sync as subclasses under an auto-created **Department** class. No extra setup needed.
* **QuickBooks Online** – When migrating from QuickBooks Online, you can choose to import your existing classes. In the migration step titled **What would you like to migrate?**, enable the **Classes** option to bring over your class and location tags from QuickBooks, preserving their nesting.

***

### Reporting by class <a href="#reporting-by-class" id="reporting-by-class"></a>

Classes make it easy to see performance broken out by any dimension you track.

**Filter by class.** In Accounting reports — including Profit & Loss, Balance Sheet, General Ledger, Trial Balance, and Expenses by vendor — use the **Class** filter to narrow results. Filter modes include:

* **Any selected class** – show records matching any of the selected classes
* **Every selected class** – show records matching all selected classes
* **Exclude selected class** – hide records with the selected classes
* **No classes** – show only records with no class assigned

<div data-with-frame="true"><figure><img src="/files/SAFhQ02DWNJwSnO614K3" alt=""><figcaption></figcaption></figure></div>

**Break reports into columns by class.** On Profit & Loss, Balance Sheet, and Cash Flow Statement, use the columns option to view **By class**, which splits the report into a column for each class (and its nested subclasses). This lets you compare locations, departments, or projects side by side.

***

### **FAQs**

<details>

<summary><strong>How many classes and subclasses can I create?</strong></summary>

You can create an unlimited number of classes and subclasses. Subclasses can be nested up to five levels deep.

</details>

<details>

<summary><strong>Can one transaction have more than one class?</strong></summary>

Yes, but only one class per dimension. A transaction can have both a Location and a Department, for example, but not two different Locations.

</details>

<details>

<summary><strong>Which plans include classes?</strong></summary>

Classes are available on the Plus plan and above.

</details>

<details>

<summary><strong>Can I import my classes from QuickBooks?</strong></summary>

Yes. When you migrate from QuickBooks Online, enable the **Classes** option in the migration step to bring over your existing classes and location tags.

</details>

<details>

<summary><strong>Can I assign classes to invoices, bills, and journal entries?</strong></summary>

Yes. Classes can be assigned per line item on invoices, bills, and journal entries, and you can set a default class on catalog items (products & services).

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kick.co/accountants/bookkeeping-workflows/classes.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
