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

# Rates explained

> How an hour gets a price in TimeTracker – billable rates, cost rates, where each one is set, which rate wins, and why old entries keep their old rate.

A rate turns an hour into a number. TimeTracker uses **two** rates on every hour, and
keeping them straight is the key to the whole money side of the product.

This page is the short version. Each idea has a full page behind it.

## The two rates

<CardGroup cols={2}>
  <Card title="Billable rate" icon="arrow-up" href="/rates/billable-rates">
    What you **charge** the client for one hour.
  </Card>

  <Card title="Cost rate" icon="arrow-down" href="/rates/cost-rates">
    What that hour **costs** you.
  </Card>
</CardGroup>

The gap between them is your **margin**.

**Example.** Sarah Lin works 3 hours on Bluebird Coffee's homepage.

|          | Rate    | 3 hours           |
| -------- | ------- | ----------------- |
| Billable | \$100/h | **\$300** revenue |
| Cost     | \$45/h  | **\$135** cost    |
| Margin   |         | **\$165**         |

That is the entire model. Everything else is detail about where the rates come from
and who is allowed to see them.

## Why two numbers matter

A plain time tracker knows you worked 3 hours. It cannot tell you whether those
3 hours made money.

Because TimeTracker carries both rates on every entry, you can see a project's
profitability **while it is still running** – not after you invoice it and work out
the margin in a spreadsheet.

See [profitability and margin](/budgets/profitability-and-margin).

## Where rates are set

A rate can be set in more than one place. When more than one applies, the **most
specific** one wins:

| Order | Level                   | Example                                      |
| ----- | ----------------------- | -------------------------------------------- |
| 1     | **Task**                | This one task is priced differently          |
| 2     | **Person on a project** | Sarah on Harbor bills at \$130/h             |
| 3     | **Person**              | Sarah bills at \$100/h – the normal case     |
| 4     | **Client**              | Everything for Fenwick Legal bills at \$90/h |

<Note>
  There is **no workspace-wide default rate**. The workspace sets your base currency,
  not a fallback price. If no level has a rate, the hour is recorded with no monetary
  value rather than being priced at zero.
</Note>

Cost rates are simpler: they are set on the **person** only.

The exact order is on [how rates are chosen](/rates/how-rates-are-chosen). Read it
before you set overrides, because it is the page that explains a number you did not
expect.

## Rates are frozen onto each hour

This is the most important rule, and it is the one that protects your history.

> When a time entry is saved, it **keeps a copy of the rates that applied at that
> moment**.

So if you raise Sarah's rate from $100 to $120 in July:

* Hours she recorded in June are still worth \$100/h
* Hours she records from July are worth \$120/h
* No invoice you already sent changes
* No report of last quarter quietly rewrites itself

Without this, a single rate change would silently restate every historical number in
the product. See [rate snapshots](/rates/rate-snapshots).

<Tip>
  This also means **fixing a rate does not fix past entries**. If someone was set up at
  the wrong rate for a month, changing the rate corrects the future. The past needs a
  re-apply, or an adjustment on the invoice.
</Tip>

## Who can see what

Cost is walled off from billing, deliberately.

| Capability         | What it lets you see                             |
| ------------------ | ------------------------------------------------ |
| `rate.viewBilling` | What you charge – rates, revenue, invoice values |
| `rate.viewCost`    | What you pay – cost rates and margin             |
| `time.viewCost`    | The cost side of time entries and reports        |
| `rate.manage`      | Set and change rates                             |

A Project Manager typically sees billing rates and revenue, but **not** what
individual people cost. That is usually what a business wants: the person running
delivery does not need to know their colleagues' pay.

Reports enforce the same wall. A report that asks for margin returns no margin to
someone without cost visibility, whatever the report definition says. See
[report permissions](/reports/report-permissions).

## Currency

A workspace has a default currency, and rates can be recorded in others. Where a
conversion is needed, an exchange rate is applied and recorded with the figure, so
reports across currencies add up consistently.

See [currencies and exchange rates](/rates/currencies-and-exchange-rates).

## Plan notes

* **Billable rates are free.** Setting what you charge is available on every plan.
* **Setting a cost rate needs Pro.** That is the single write behind the
  `profitability` feature.
* On Free, cost and margin you already recorded stay **readable**. You just cannot
  set a new cost rate, so margin stops being kept current.

See [plans and features](/concepts/plans-and-features).

## Rates and non-billable hours

A non-billable hour has **no revenue** but still has **cost**. That is exactly why
your margin falls when internal work rises.

Sarah's week: 35 billable hours at $100 = $3,500 revenue. But all 39 hours cost
$45 = $1,755. Margin is $1,745, not the $1,925 you would get by ignoring the four
non-billable hours.

See [billable vs non-billable](/concepts/billable-vs-non-billable).

## Common questions

<AccordionGroup>
  <Accordion title="Do I have to set cost rates?">
    No. Without them you still get revenue and budget burn – you just do not get
    margin. Add them when you want to know whether the work is profitable, not only
    whether it is billable.
  </Accordion>

  <Accordion title="I changed a rate and old numbers did not move. Is that a bug?">
    No, that is the design. Each entry keeps the rate it was recorded at. See
    [rate snapshots](/rates/rate-snapshots).
  </Accordion>

  <Accordion title="Can a client see our rates?">
    A client-portal contact never sees cost rates or margin. What they see of billing
    is limited to what is shared with them. See
    [what clients can see](/portal/what-clients-can-see).
  </Accordion>

  <Accordion title="What if someone has no rate set?">
    Their hours are recorded with no monetary value. The time still counts toward
    timesheets, hours budgets and reports – it contributes nothing to revenue.
  </Accordion>

  <Accordion title="Can two people on the same project bill at different rates?">
    Yes, and that is the normal case. Rates are per person by default; the project or
    client level only overrides when you want a single agreed rate.
  </Accordion>
</AccordionGroup>

## Related guides

<CardGroup cols={2}>
  <Card title="How rates are chosen" icon="list-ol" href="/rates/how-rates-are-chosen">
    The resolution order, in full.
  </Card>

  <Card title="Set a person rate" icon="user" href="/rates/set-a-person-rate">
    The most common thing you will do.
  </Card>

  <Card title="Profitability and margin" icon="percent" href="/budgets/profitability-and-margin">
    What the two rates add up to.
  </Card>

  <Card title="Rate permissions" icon="lock" href="/rates/rate-permissions">
    Who sees billing, who sees cost.
  </Card>
</CardGroup>
