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

# Cost rates: track labor costs and margins

> Define cost rates in Beebole for your organization, tags, projects, and people to track labor costs and measure project margins in reports.

Beebole's cost rates track what work costs your organization internally. While [billing rates](/help/documentation/billing) represent what you charge, cost rates capture what you spend — and with both in place, Beebole shows you the margin on every project, person, and period in your reports.

<Info>
  Cost rates are not included in every Beebole plan. Review your plan and add-ons on the [Subscription](/help/documentation/subscription) page. Who can view and edit them is controlled by the **Costs** permission — see [Roles & permissions](/help/documentation/roles-authorisations).
</Info>

<div style={{position: "relative", paddingBottom: "calc(64.2075% + 41px)", height: "0px", width: "100%"}}>
  <iframe src="https://demo.arcade.software/3wV0eVBMv1hSdDc0Ix66?embed&embed_mobile=tab&embed_desktop=inline&show_copy_link=true" title="Manage Costs and Billing Rates" frameBorder="0" loading="lazy" allowFullScreen allow="clipboard-write" style={{position: "absolute", top: 0, left: 0, width: "100%", height: "100%", colorScheme: "light"}} />
</div>

***

## Cost methods

Each cost rate uses one of four methods:

| Method          | What it means                                                  |
| --------------- | -------------------------------------------------------------- |
| **Hourly rate** | A fixed cost per hour worked                                   |
| **Daily rate**  | A fixed cost per day worked                                    |
| **Fixed fee**   | A flat cost, regardless of time spent — optionally repeating   |
| **No cost**     | No cost amount is calculated for the time covered by this rate |

***

## Where to set cost rates

Cost rates live in the **Cost** section of the organization, tag, project, or person settings panel — the same panel where [billing rates](/help/documentation/billing) are configured. You can set them at four levels:

| Level            | Typical use                                                                    |
| ---------------- | ------------------------------------------------------------------------------ |
| **Organization** | A company-wide default cost — set it under **Settings** > **Account Settings** |
| **Tag**          | An average cost for a department or team                                       |
| **Project**      | A specific cost allocation for one project and its subprojects                 |
| **Person**       | The person's loaded labor cost — salary plus benefits and overhead             |

<Steps>
  <Step title="Open the Cost section">
    Open the organization (**Settings** > **Account Settings**), or click **Tags**, **Projects**, or **People** in the sidebar and then the tag, project, or person name. Scroll to **Cost**.
  </Step>

  <Step title="Add a rate">
    Click **Add** (**Add a new cost rate**).
  </Step>

  <Step title="Set the start date">
    Pick the **From** date — the date the rate takes effect.
  </Step>

  <Step title="Choose the method and amount">
    Select a **Cost method** and enter the **Amount** with its currency. Changes are saved automatically.
  </Step>
</Steps>

<Info>
  Cost rates cascade exactly like billing rates: rates set on the organization or on a tag are inherited by the projects and people beneath them, and a rate added directly on a project or person overrides the inherited one.
</Info>

***

## Which rate applies to a time entry

Cost rates resolve the same way as billing rates: the most specific rate wins. For each time entry, Beebole looks for a cost rate on the project the time was logged against — starting at the deepest subproject and walking up the hierarchy — and falls back to the person's rate when no project rate applies. Rates inherited from tags or the organization count as the rate of the project or person they cascade to. Cost rates cannot be set directly on a task.

***

## Rate splits

With an **Hourly rate** or **Daily rate**, you can replace the single amount with a separate amount per person or project:

* **No split** — one cost applies to everyone.
* **Split by persons** — a separate cost for each person you add to the list, for projects or tags where team members cost different amounts.
* **Split by projects** — a separate cost for each project you add to the list.

***

## Changing rates over time

Each cost rate has a single **From** date. The rate applies to time entries dated on or after that date, until a rate with a later **From** date takes over — so an annual salary adjustment is just a new rate starting on the right date, and historical entries keep their original cost.

A **Fixed fee** cost can also repeat: turn on **Repeat** in the rate card and choose how often it recurs — **Every** 1 or more days, weeks, months, or years.

***

## Paid time off in people costs

Beebole can include the cost of paid leave in your people costs. Each absence type has an **Is paid (included in people costs)** option: when it is on, time off of that type counts toward the person's cost totals in reports and budgets; when it is off, the absence carries no cost. Configure it per absence type under **Settings** > **Time Off** — see [Time off](/help/documentation/timeoff) for details.

***

## Margins in reports

When both billing and cost rates are configured, [custom reports](/help/documentation/custom-reports) can compare what you charge against what you spend. Add the **Billing**, **Cost**, and **Margin** columns to a report — **Margin %** is also available — and group by project, person, tag, or period to see where you make or lose money.

<Tip>
  Set up cost rates early, even with approximate amounts. Having both billing and cost data from the start makes margin reports immediately useful.
</Tip>

***

## Related content

<CardGroup cols={2}>
  <Card title="Billing Rates" icon="file-invoice-dollar" href="/help/documentation/billing">
    Define what you charge for tracked time — the other half of margin tracking.
  </Card>

  <Card title="Budgets" icon="chart-pie" href="/help/documentation/budgets">
    Set cost, billing, and hours targets on projects and catch overruns early.
  </Card>

  <Card title="Custom Reports" icon="table" href="/help/documentation/custom-reports">
    Build reports with billing, cost, and margin columns, grouped your way.
  </Card>

  <Card title="Time Off" icon="umbrella-beach" href="/help/documentation/timeoff">
    Configure absence types, including whether paid leave counts toward people costs.
  </Card>
</CardGroup>

## Frequently asked questions

<AccordionGroup>
  <Accordion title="What is the difference between billing rates and cost rates?">
    In Beebole, billing rates represent what you charge for work, and cost rates represent what that work costs you internally. With both configured, reports show the margin between them.
  </Accordion>

  <Accordion title="Do I need both billing and cost rates?">
    No. You can use either independently in Beebole: billing rates alone track revenue, and cost rates alone track internal costs. You only need both to measure margins.
  </Accordion>

  <Accordion title="Can I set different cost rates per person on the same project?">
    Yes. On the project's cost rate, choose **Split by persons** and enter an amount for each team member. Beebole then applies each person's cost when they log time to that project.
  </Accordion>

  <Accordion title="Does paid time off count toward costs?">
    Yes, when the absence type has **Is paid (included in people costs)** turned on. Beebole then includes that leave in the person's cost totals in reports and budgets; unpaid absence types carry no cost.
  </Accordion>

  <Accordion title="How do I record a salary change without rewriting history?">
    Add a new cost rate on the person with a **From** date set to when the change takes effect. Beebole applies each rate only to time entries dated on or after its From date, so earlier entries keep the old cost.
  </Accordion>
</AccordionGroup>
