> For the complete documentation index, see [llms.txt](https://docs.allshore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.allshore.ai/clients-and-pipeline/bill-rates-and-rate-history.md).

# Bill rates & rate history

Bill rates are **effective-dated** per role: each rate has a start date, and a change closes the previous rate rather than overwriting it. Old rate rows keep their own date ranges, which is what lets an invoice explain itself months later.

## How time gets priced

When invoicing prices a day of logged time, it looks up the rate **in force on that workday** for that role — not today's rate.

**A worked example.** A developer bills at $150/hour. On the 15th you record a new rate of $170/hour effective the 16th. A timesheet week spanning the 14th–18th prices the 14th and 15th at $150 and the 16th–18th at $170, on one invoice.

Once an invoice is generated, its lines hold the amounts they were generated with — a later rate change doesn't reach back and alter an existing invoice. A **draft** you re-generate, however, is priced fresh against whatever rate history says at that moment.

## Changing a rate

Record the new rate for the role with the date it takes effect. The rules the platform enforces:

* **The new start must be after the start of the rate currently in force.** Note what this does and doesn't stop: you can schedule rates into the future, and you *can* pick a past date as long as it falls after the current rate's start — which splices the history and changes how not-yet-generated work on those days will be priced. There is no check against what has already been invoiced, so treat a backdated change as a repricing decision, not a correction.
* **Two different rates can't share a start date** for the same role. Recording the *same* rate at the same date again (a retry, a double-click) is accepted and changes nothing.
* Changes are **per role** — moving the developer rate leaves the designer rate untouched.

## Seeding rates from your rate card

Rather than typing rates per contract, apply your firm's **rate card**: choose the roles and an effective date, and the card's current prices are written onto the contract as effective-dated rates. From there they behave like any other rate — later changes are recorded against the contract, not the card.

## Where rates show up

Rates drive invoice pricing, the **margin** figures (billed revenue against pay cost), **budget burn-down**, and the revenue projection in **Reports**. That's why a wrong rate is worth fixing at its date rather than patching an invoice.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.allshore.ai/clients-and-pipeline/bill-rates-and-rate-history.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
