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

# Rates

> How Invup decides what an hour of work is worth, and when that decision becomes final.

Nobody picks a rate when logging time in Invup. They pick a project, a date, a duration, and sometimes a service. Invup works out the rate.

It does that by walking a chain from the most specific rate it can find down to the most general, stopping at the first one that has been set. Understanding that chain is the difference between setting rates once and fighting them every month.

## Which chain applies

There are two chains, and which one runs depends on a single condition: **the project has services enabled, and the entry names a service**.

If both are true, the service chain runs. If either is false, the shorter chain runs.

## The service chain

For a project with services enabled, where the time entry names a service, Invup checks in this order:

<Steps>
  <Step title="Is the service billable?">
    If the service is marked non billable, the rate is zero and the search stops here. Nothing below can override it.
  </Step>

  <Step title="This member, on this service, on this project">
    The most specific rate there is. Set on the project, against a particular service, for a particular person.
  </Step>

  <Step title="This member, on this service, anywhere">
    The member rate override set on the service itself. Applies across every project using that service.
  </Step>

  <Step title="This service, on this project">
    The project's own rate for that service, applying to everyone working on it.
  </Step>

  <Step title="The service's base rate">
    What the service is worth by default, wherever it is used.
  </Step>

  <Step title="The project's rate">
    The project's hourly rate.
  </Step>

  <Step title="The member's base rate">
    What this person's time is worth in this organization, when nothing more specific applies.
  </Step>
</Steps>

## The shorter chain

For a project without services enabled, or any entry that names no service:

<Steps>
  <Step title="This member, on this project">
    The rate set for that person on that project.
  </Step>

  <Step title="The project's rate">
    The project's hourly rate.
  </Step>

  <Step title="The member's base rate">
    What this person's time is worth in this organization.
  </Step>
</Steps>

## Zero is an answer

A rate of zero is a real, deliberate rate. It stops the search exactly as any other number would.

Setting a project's rate to zero does not fall through to the member's base rate. It means the work is worth nothing, which is occasionally what you want and occasionally a costly surprise. If you intend a level to be skipped, leave it empty rather than setting it to zero.

## When no rate exists at all

If nothing has been set at any level, the entry resolves to no rate rather than to zero. It is tracked, but it cannot be valued.

This is the usual reason a newly invited team member's first week of work shows no value: nobody set their base rate. See [Invite your team](/setup/invite-your-team).

## Rate locking

The chain above is live. Change a rate today and every entry that has not been locked is revalued using the new number, including entries logged months ago.

The **rate lock policy** decides when an entry's rate stops being able to move. It is an organization wide setting.

| Policy          | When the rate freezes              | Suits                                                                                                |
| --------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------- |
| **At creation** | The moment the entry is logged     | Businesses that treat a logged hour as a fact of record and never want history revalued              |
| **At invoice**  | When the entry lands on an invoice | Most businesses. Corrections stay possible while work is unbilled, and become impossible once billed |
| **No locking**  | Never                              | Businesses that always want current rates applied, including retrospectively                         |

**At invoice** is the sensible default for most people. It gives you room to fix a wrong rate before the client sees it, and closes the door the moment they have.

A locked entry keeps a record of which level of the chain produced its rate, so a rate on an old invoice can be explained rather than guessed at.

<Warning>
  Changing the rate lock policy does not retrospectively lock or unlock existing entries. It changes the behaviour from that point forward.
</Warning>

## Setting rates in the right place

The chain rewards setting rates broadly and overriding narrowly.

<Steps>
  <Step title="Start with member base rates">
    Give every team member a base rate. This alone means no work is ever unvalued.
  </Step>

  <Step title="Add service rates if you use services">
    Where the type of work changes the price more than the person does, service base rates carry most of the load.
  </Step>

  <Step title="Override at project level for exceptions">
    A client on a negotiated rate, a discounted engagement, a premium rush job.
  </Step>

  <Step title="Override per person only when you must">
    A partner billing at a special rate on one particular matter. One setting, not a policy.
  </Step>
</Steps>

Every override you add is a thing someone has to remember later. The chain exists so that you can set few of them.

## Cost rates

Alongside the billing rate, each team member carries a **cost rate**: what their hour costs your business.

Cost rates never appear on invoices and are not part of the chain. They exist so you can see the gap between what a project earned and what it consumed.

## Next

<CardGroup cols={2}>
  <Card title="Create your first project" icon="folder-open" href="/setup/create-your-first-project">
    Put the rates to work on real work.
  </Card>

  <Card title="Core concepts" icon="sitemap" href="/getting-started/core-concepts">
    How rates fit into the rest of Invup.
  </Card>
</CardGroup>
