> ## Documentation Index
> Fetch the complete documentation index at: https://beebole.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Expense tracking: categories, records, and reports

> Track project and employee expenses in Beebole — create expense categories, log amounts or quantities, and report on spending alongside time.

Beebole's expense tracking lets you record spending — travel, meals, mileage, equipment — against the projects and people it belongs to. Expenses are grouped into categories you define, can carry a billing markup, and appear in reports and budgets alongside tracked time.

<Info>
  Expense tracking is not included in every Beebole plan. If you don't see expense features in your account, review your plan and add-ons on the [Subscription](/help/documentation/subscription) page.
</Info>

***

## How expenses work in Beebole

Expense tracking has two building blocks:

* **Expense types** — The categories of spending your organization recognizes (Travel, Meals, Equipment, …). You create them once in Beebole's settings.
* **Expense records** — The individual entries: a date, a category, an amount or quantity, and an optional note. You log them on the **Expenses** panel of a person or a project.

Every expense record must be linked to at least a person or a project — it can be linked to both, so you know who incurred the expense and which project it is charged to.

***

## Creating expense types

<Steps>
  <Step title="Open the Expense Type settings">
    Click the button with your initials at the bottom of the sidebar, then go to **Settings** > **Expense Types**.
  </Step>

  <Step title="Add an expense type">
    Click **Add Expense Type**, enter a **Name** (e.g., "Travel", "Meals", "Mileage"), then click **Add Expense Type** again to confirm.
  </Step>

  <Step title="Configure the Details panel">
    In the expense type's **Details** panel, check **Currency** if entries of this type are monetary amounts; leave it unchecked for quantity-based expenses such as kilometers or meals. Changes are saved automatically.
  </Step>
</Steps>

For currency-based expense types, the **Details** panel also shows **Billing markup in %**: the percentage applied to the expense amount when calculating the billed amount in reports. The billed amount is `expense amount × markup / 100`, so a markup of 100 bills the expense at cost.

<Frame caption="The Details panel of a currency-based expense type">
  <img src="https://mintcdn.com/beebole/FZmJbLXQ-vGqqEHj/help/images/expenses/expense-type-details.webp?fit=max&auto=format&n=FZmJbLXQ-vGqqEHj&q=85&s=03736de92cd417de1606642593b2765a" alt="Beebole Details panel of the Hotel expense type with Currency checked and Billing markup in % set to 100" width="538" data-path="help/images/expenses/expense-type-details.webp" />
</Frame>

### Adding several expense types at once

To create a whole list of expense types in one go, paste their names from a spreadsheet:

<Steps>
  <Step title="Open the add panel">
    Click **Add Expense Type**. Below the name field, find the **Or add multiple entries** area.
  </Step>

  <Step title="Paste your list">
    Copy the names from a spreadsheet, one name per line, then click **Paste**.
  </Step>

  <Step title="Review the preview">
    Check the entries in the **Import preview**. Click the **×** on a row to leave it out.
  </Step>

  <Step title="Import the entries">
    Click **Import entries**. If something looks wrong afterwards, click **Undo**.
  </Step>
</Steps>

Each new expense type gets a color automatically. Like a type added on its own, it starts with **Currency** unchecked, so open the monetary ones afterwards to check **Currency** and set the **Billing markup in %**.

***

## Controlling who can use an expense type

Each expense type has a **Who has access?** panel where you assign it to specific people, tags, or projects — for example, mileage reimbursement for field staff only.

The organization-wide default is the **Show all expenses** toggle in your organization's **Show or hide by default** panel: when it's on, every expense type is available unless you exclude it; when it's off, an expense type is only available where you assign it. See [Assignments](/help/documentation/assignments) for the full availability model.

***

## Archiving and deleting expense types

To manage an existing expense type, open it in **Settings** > **Expense Types** and click the **⋯** action menu next to its name. The menu offers **Duplicate**, **Rename**, **Archive**, **Unarchive**, and **Delete**.

Archive a type you no longer use. It leaves the list and the **Select expense category** picker, so nobody can log new expenses with it, while its past expense records stay in place and still count in reports. When archived types exist, click **Show Archived** on the **Expense Types** page to display them, then use the **⋯** action menu and **Unarchive** to restore one. **Hide Archived** hides them again.

<Warning>
  **Delete** only works on an expense type that no expense record uses. When records exist, Beebole refuses the deletion and, in most cases, names a person with expense records of that type; click the name to open their **Expenses** panel. To retire a type and keep its history, archive it instead. See [Delete protection](/help/documentation/concepts#delete-protection).
</Warning>

***

## Logging expenses

You log expense records on the **Expenses** panel of a person or a project:

<Steps>
  <Step title="Open the person or project">
    Click **People** or **Projects** in the sidebar and select the person who incurred the expense or the project it is charged to.
  </Step>

  <Step title="Open the Expenses panel">
    In the detail panel, open the **Expenses** panel.
  </Step>

  <Step title="Add the expense">
    Click **Add**, then pick a category with **Select expense category**. Beebole creates the record, dated today, and saves it automatically.
  </Step>

  <Step title="Fill in the details">
    Adjust the **Date**, enter the **Amount** (for currency-based categories, with its own currency) or **Quantity** (for unit-based categories), link the **Project** — or the **Person** when you started from a project — and add an optional **Note**. Every change is saved automatically.
  </Step>
</Steps>

<Frame caption="An expense record open in a person's Expenses panel">
  <img src="https://mintcdn.com/beebole/5bgGRd5Ksfa3-rvq/help/images/expenses/expenses-panel.webp?fit=max&auto=format&n=5bgGRd5Ksfa3-rvq&q=85&s=ab0c9edf37d79e4a8161345b803ed760" alt="Expenses panel on Ana Pereira's profile with a Hotel record open: Date Oct 06, 2025, Category Hotel, Project Silverline Retail, Amount $138.00 and the note UX research trip, above the Add button" width="538" data-path="help/images/expenses/expenses-panel.webp" />
</Frame>

To remove an expense record, open it in the **Expenses** panel and click the trash button (**Delete**).

<Info>
  What a person can see and do in the **Expenses** panel depends on the **Expense records** permission of their role. See [Roles and authorizations](/help/documentation/roles-authorisations).
</Info>

***

## Expenses in reports

To analyze spending, click **Reports** in the sidebar and add an **Expense** column to a report. You can group expense records by expense type, person, project, tag, or period, and filter them like any other report. Expense columns include **Amount**, **Quantity**, and **Expense billing** — the billed amount with the category's markup applied (in the report matrix they appear as **Expense amount** and **Expense quantity**). See [Reports](/help/documentation/reports) for folders, charts, sharing, and exports.

<Frame caption="A report of expense records grouped by expense type">
  <img src="https://mintcdn.com/beebole/PNc0aLhj1gS9JUQ3/help/images/expenses/expense-report.webp?fit=max&auto=format&n=PNc0aLhj1gS9JUQ3&q=85&s=da0ab81444f519b5fa2fcd12afdcd392" alt="Beebole custom report Expenses by type for the current year, with the Expense type: Name, Expense: Quantity, Expense: Amount and Expense: Expense billing columns for Hotel, Meal, Mileage and Taxi, Mileage counted as a quantity of 410, and a Total row of 1,576.00 spent and 1,415.00 billed" width="2200" height="1156" data-path="help/images/expenses/expense-report.webp" />
</Frame>

Expenses also count toward the project's budgets, alongside time: the expense amount adds to the budget's cost and the billed amount to its billing. Only currency-based expenses count. Quantity-based expenses, such as mileage or units, are left out of budgets. On a budget [split by person](/help/documentation/budgets#budget-splits), an expense linked to a person counts on that person's line. Track them in the **Budget Status** report described in [Budgets](/help/documentation/budgets).

***

## Related content

<CardGroup cols={2}>
  <Card title="Budgets" icon="chart-bar" href="/help/documentation/budgets">
    Set billing, cost, and hours targets on projects and monitor consumption — including expenses.
  </Card>

  <Card title="Reports" icon="chart-line" href="/help/documentation/reports">
    Build, filter, and share reports on time and expense records.
  </Card>

  <Card title="Assignments" icon="user-check" href="/help/documentation/assignments">
    Control which expense types, projects, and absence types are available to each person.
  </Card>

  <Card title="Projects" icon="folder" href="/help/documentation/projects">
    Create the projects that expenses and budgets are tracked against.
  </Card>
</CardGroup>

***

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Do expenses go through the approval workflow?">
    No. Beebole's approval workflow covers timesheets and time-off requests. Expense records are not submitted or approved — anyone with the **Expense records** permission can add and edit them directly.
  </Accordion>

  <Accordion title="Can I track mileage or other unit-based expenses?">
    Yes. Leave the **Currency** setting unchecked on the expense type, and Beebole records a **Quantity** instead of a monetary amount — useful for kilometers, meals, or any per-unit expense. Quantities show in reports but don't count toward project budgets, which only add up currency-based expenses.
  </Accordion>

  <Accordion title="How does the billing markup work?">
    Each currency-based expense type has a **Billing markup in %** setting. In reports, the **Expense billing** column shows `expense amount × markup / 100` — so a markup of 100 bills the expense at cost, and a markup of 120 adds 20%.
  </Accordion>

  <Accordion title="How do I stop using an expense type without losing its records?">
    Archive it. In **Settings** > **Expense Types**, click the type's **⋯** action menu, then **Archive**. Beebole removes it from the **Select expense category** picker, and its past expense records stay in reports. Deleting is refused while records use the type. Click **Show Archived**, then **Unarchive** in the type's menu, to bring it back.
  </Accordion>

  <Accordion title="What currency is an expense recorded in?">
    The default is your own currency setting; you can change it on the **Amount** field.
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.