> ## 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.

# Project rates

> Override a person's billing rate for one project in TimeTracker, see where the project tier sits in the rate chain, and why cost has no project override.

A **project rate** is a billing rate for one person on one project. Use it when a client negotiated a different price for that person's time.

The full rate model lives under **Rates**. This page covers the project tier.

<Card title="Project and client rates" icon="folder" href="/rates/project-and-client-rates">
  The canonical guide to overrides above the person tier.
</Card>

## Where to set it

Open the project, then **Settings → Group**. The roster table has a **Project rate** column.

<Steps>
  <Step title="Find the person's row">
    The column reads **Inherits** when there is no override.
  </Step>

  <Step title="Click the cell">
    It turns into an input.
  </Step>

  <Step title="Type the rate">
    A plain number, for example `70` or `70.50`.
  </Step>

  <Step title="Press Enter or click Save">
    You see **"Project rate updated."** Press Escape to cancel instead.
  </Step>
</Steps>

## Where the project tier sits

TimeTracker picks the **most specific rate that exists**.

| Order | Tier                             | Beats the project rate? |
| ----- | -------------------------------- | ----------------------- |
| 1     | Task rate                        | Yes                     |
| 2     | **Project rate for that person** | –                       |
| 3     | The person's own billing rate    | No                      |
| 4     | The client default rate          | No                      |

So a project rate overrides the person's usual rate, but a task rate still overrides the project rate.

**Inherits** in the column means no override exists and the chain falls through to tier 3.

See [/rates/how-rates-are-chosen](/rates/how-rates-are-chosen).

## Rates are effective dated

Saving a project rate writes a **new** rate that applies from today. It never rewrites history.

<Warning>
  A rate change is not retroactive. Time already tracked keeps the rate it was priced at, so an invoice you already raised cannot silently change. See [/rates/rate-snapshots](/rates/rate-snapshots).
</Warning>

If you need to re-price past work, that is a deliberate adjustment, not a rate edit.

## There is no project cost rate

Billing has five tiers. **Cost has one** – the person.

|                                | Billing rate                             | Cost rate                  |
| ------------------------------ | ---------------------------------------- | -------------------------- |
| Tiers                          | Task, project, person, client, workspace | The person only            |
| Editable on the project roster | Yes – **Project rate**                   | No – **Cost** is read only |
| Where to change cost           | **Settings → Rates**                     |                            |

A person's cost is what they cost you, wherever they work. Making it project shaped would let the same hour cost two different amounts depending on where it was logged.

See [/rates/cost-rates](/rates/cost-rates).

## What you can see on the roster

| Column                                          | Requires                                         |
| ----------------------------------------------- | ------------------------------------------------ |
| **Default rate** – their workspace billing rate | `rate.viewBilling`                               |
| **Cost** – their workspace cost rate            | `rate.viewCost`                                  |
| **Project rate** – this project's override      | `rate.viewBilling` to see, `rate.manage` to edit |

Without `rate.viewBilling` all three columns are absent and the roster still works.

Without `rate.manage`, **Project rate** renders as plain text – the current value or **Inherits** – with no editor.

## Example

Ana Ferreira is a contractor with a `$80/hour` billing rate and a `$55/hour` cost rate.

Bluebird Coffee negotiated `$70/hour` for copywriting on **Website Redesign** only.

1. Priya opens **Website Redesign → Settings → Group**.
2. She clicks Ana's **Project rate** cell and enters `70`, then presses Enter.
3. From today, Ana's time on Website Redesign bills at `$70/hour`.
4. Ana's time on **Monthly Retainer** still bills at her usual `$80/hour` – the override is project scoped.
5. Ana's **cost** stays `$55/hour` everywhere. On Website Redesign her margin narrows from `$25` to `$15` an hour.

If Ana logs 4 hours on Website Redesign, that is `$280` of billable value and `$220` of cost, for a margin of `$60`.

## What happens next

* New time entries on this project pick up the override.
* The project's billable value and forecast update on the next rollup.
* Invoices built from that time use the snapshotted rate on each entry.
* Time tracked **before** the change keeps its original rate.

## Permissions

| Action                 | Capability         |
| ---------------------- | ------------------ |
| See project rates      | `rate.viewBilling` |
| Edit a project rate    | `rate.manage`      |
| See cost rates         | `rate.viewCost`    |
| Open the roster at all | `project.manage`   |

## Plan gating

Setting a **billing** rate – including a project override – is free. Setting a **cost** rate requires **Pro**. Cost and margin figures already recorded stay readable on Free. See [/concepts/plans-and-features](/concepts/plans-and-features).

## Common questions

<AccordionGroup>
  <Accordion title="What does Inherits mean?">
    No project override exists for that person. Their rate comes from the next tier down – their own billing rate, then the client default. If neither exists, the hour is unpriced.
  </Accordion>

  <Accordion title="How do I clear a project rate?">
    Project rates are appended over time rather than deleted. To move someone back to their usual price, set the project rate to the same figure as their person rate.
  </Accordion>

  <Accordion title="Why did my change not affect last week's hours?">
    Because rates are effective dated. A new rate applies from today forward. That is what stops an invoice you already sent from changing under you.
  </Accordion>

  <Accordion title="Can I set one project rate for everyone?">
    Not in one control. Set a **client** default rate instead – it applies to anyone with no more specific rate. See [/clients/client-rates](/clients/client-rates).
  </Accordion>

  <Accordion title="Does a project rate affect cost or margin?">
    It changes revenue, so it changes margin. It never changes cost.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                                                       | Cause                                  | Fix                                                                              |
| ------------------------------------------------------------- | -------------------------------------- | -------------------------------------------------------------------------------- |
| No **Project rate** column                                    | You lack `rate.viewBilling`            | Ask an admin                                                                     |
| The cell is plain text, not editable                          | You lack `rate.manage`                 | Ask an admin                                                                     |
| "We couldn't save that rate. Check the amount and try again." | The value is not a plain number        | Enter something like `70` or `70.50`                                             |
| The override is ignored                                       | A **task** rate exists and outranks it | Check the task's own rate                                                        |
| The currency looks wrong                                      | It follows the winning tier            | See [/rates/currencies-and-exchange-rates](/rates/currencies-and-exchange-rates) |

## Related guides

<CardGroup cols={2}>
  <Card title="Project and client rates" icon="folder" href="/rates/project-and-client-rates">
    The canonical override guide.
  </Card>

  <Card title="How rates are chosen" icon="list-ordered" href="/rates/how-rates-are-chosen">
    All five tiers in order.
  </Card>

  <Card title="Cost rates" icon="wallet" href="/rates/cost-rates">
    Why cost has one tier.
  </Card>

  <Card title="Rate snapshots" icon="camera" href="/rates/rate-snapshots">
    Why past work never re-prices.
  </Card>

  <Card title="Project members" icon="users" href="/projects/project-members">
    The roster the column lives on.
  </Card>
</CardGroup>
