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

# Quote to invoice

> Turn task estimates into a client quote, then turn approved billable time into the invoice, and see exactly where the two numbers drift apart.

A quote is your estimates added up. An invoice is your approved hours added up. Between them sits the work, and the work is where the two numbers separate.

This guide shows you how to build the quote, and how to spot the drift while you can still do something about it.

<Info>
  **The example:** Northwind Studio quotes Bluebird Coffee for the website redesign. Priya Raman (Project Manager) builds the quote. Daniel Okafor (Finance) sends the bill.
</Info>

## Before you start

<Warning>
  **Plan requirement.** Tasks and estimates are **free**. Budgets, approvals and invoicing are **Pro**. See [Free vs Pro](/billing/free-vs-pro).
</Warning>

## Step 1 – Priya builds the quote from estimates

An **estimate** is on a task – how long that piece of work should take. Put an estimate on every task, multiply each one by the rate of the person who will do it, and you have a quote.

| Task                | Assignee | Estimate     | Billable rate | Value       |
| ------------------- | -------- | ------------ | ------------- | ----------- |
| Homepage wireframes | Sarah    | 12 hours     | \$100         | \$1,200     |
| Design system       | Sarah    | 20 hours     | \$100         | \$2,000     |
| Build the homepage  | Jonas    | 30 hours     | \$120         | \$3,600     |
| Copy for 5 pages    | Ana      | 10 hours     | \$80          | \$800       |
| **Quote**           |          | **72 hours** |               | **\$7,600** |

Now check whether the job is worth doing, using **cost** rates:

| Person         | Hours  | Cost rate | Cost        |
| -------------- | ------ | --------- | ----------- |
| Sarah Lin      | 32     | \$45      | \$1,440     |
| Jonas Bergman  | 30     | \$60      | \$1,800     |
| Ana Ferreira   | 10     | \$55      | \$550       |
| **Total cost** | **72** |           | **\$3,790** |

Expected margin: **$7,600 − $3,790 = \$3,810**, or **50.1%**.

That is the number to decide on. If your target margin is 45%, this job clears it with room. If your target is 55%, you need to re-scope or raise the price before you send the quote.

→ [Task estimates](/tasks/task-estimates) · [Billable rates](/rates/billable-rates) · [Cost rates](/rates/cost-rates)

<Tip>
  Ana is a contractor and her margin is thinner (31.3%) than Sarah's (55%) or Jonas's (50%). A quote that leans heavily on contractors looks the same on the top line and earns less. See [Manage contractors](/guides/manage-contractors).
</Tip>

## Step 2 – Priya turns the accepted quote into a project budget

Once Bluebird accepts, put the number on the project as a **money** budget so the work has a ceiling it can be measured against.

The budget is not the same as the estimates. Estimates are per task. The budget is the ceiling for the whole engagement.

→ [Set a project budget](/budgets/set-a-project-budget) · [Budget vs estimate](/concepts/budget-vs-estimate)

<Tip>
  You can also cap individual tasks, which is useful when one line of the quote must not run away. See [Task-level caps](/budgets/task-level-caps).
</Tip>

## Step 3 – the work happens, and Priya watches for drift

Turn on [budget alerts](/budgets/budget-alerts). They fire at **50%**, **75%**, **90%** and **100%** of the budget.

The alert is only half the signal. The other half is how much of the work is actually finished. Compare the two every week.

| Budget used | Work complete | Read it as                                                 |
| ----------- | ------------- | ---------------------------------------------------------- |
| 50%         | 60%           | Ahead. You will come in under.                             |
| 50%         | 50%           | On track.                                                  |
| 50%         | 35%           | Trouble. You will need about 143% of the budget to finish. |

→ [Monitor project profitability](/guides/monitor-project-profitability) · [How budgets work](/budgets/how-budgets-work)

## Step 4 – see where the numbers drifted

Bluebird finishes. Here is the quote against the reality.

| Task                | Estimate | Actual   | Quoted value | Actual value |
| ------------------- | -------- | -------- | ------------ | ------------ |
| Homepage wireframes | 12 h     | 16 h     | \$1,200      | \$1,600      |
| Design system       | 20 h     | 20 h     | \$2,000      | \$2,000      |
| Build the homepage  | 30 h     | 34 h     | \$3,600      | \$4,080      |
| Copy for 5 pages    | 10 h     | 10 h     | \$800        | \$800        |
| **Total**           | **72 h** | **80 h** | **\$7,600**  | **\$8,480**  |

Eight hours over. \*\*$880** of work you quoted at $7,600.

Cost went up too: Sarah 36 hours ($1,620), Jonas 34 hours ($2,040), Ana 10 hours ($550) = **$4,210\*\*.

| If you bill      | You collect | Cost    | Margin  | Margin % |
| ---------------- | ----------- | ------- | ------- | -------- |
| The quoted price | \$7,600     | \$4,210 | \$3,390 | 44.6%    |
| The actual hours | \$8,480     | \$4,210 | \$4,270 | 50.4%    |

On a fixed quote you absorb the overrun. Margin drops from the planned **50.1%** to **44.6%**. That is what eight unbilled hours cost you.

## Where the drift comes from

Nearly every overrun is one of these five.

| Cause                               | What it looks like                           | Catch it with                                                  |
| ----------------------------------- | -------------------------------------------- | -------------------------------------------------------------- |
| **The estimate was optimistic**     | One task quietly runs 30% over from week one | [Task estimates](/tasks/task-estimates) against tracked time   |
| **Scope crept**                     | New tasks appear that were never quoted      | Tasks added after the quote date                               |
| **The wrong person did the work**   | A $120/hour developer doing $80/hour work    | Report grouped by person and task                              |
| **Rework**                          | Hours land on a task already marked done     | Time entries on completed sections                             |
| **Non-billable work hid the truth** | Real hours went in as non-billable           | [Billable vs non-billable](/concepts/billable-vs-non-billable) |

<Tip>
  Compare estimate against tracked time **per task**, not per project. A project that is on budget can still be hiding one task at 200%, paid for by another that came in early. See [Build a report](/reports/build-a-report).
</Tip>

## Step 5 – Daniel raises the invoice

<Steps>
  <Step title="Approve the time first">
    An invoice built from tracked time pulls **approved billable** entries only. Anything still in `draft` or `submitted` will not appear.

    → [Approve a timesheet](/approvals/approve-a-timesheet)
  </Step>

  <Step title="Choose how to bill">
    * **Fixed price.** Raise an invoice with your own lines for the quoted \$7,600. The hours still sit on the project for margin reporting. See [Create an invoice](/invoicing/create-an-invoice).
    * **Time and materials.** Build the invoice from tracked time and bill the real \$8,480. See [Invoice from tracked time](/invoicing/invoice-from-tracked-time).
  </Step>

  <Step title="Review and reword the draft">
    A draft invoice is fully editable. Rename line descriptions to language the client will recognise, add discounts or tax lines, and set the due date.

    → [Edit a draft invoice](/invoicing/edit-a-draft-invoice) · [Taxes and currency](/invoicing/taxes-and-currency)
  </Step>

  <Step title="Send it and record the payment">
    Sending moves the invoice from `draft` to `sent`. When Ruth opens it, it becomes `viewed`. When the money lands, record it.

    → [Send an invoice](/invoicing/send-an-invoice) · [Record a payment](/invoicing/record-a-payment)
  </Step>
</Steps>

## Common questions

<AccordionGroup>
  <Accordion title="Does TimeTracker have a quote or proposal document?">
    There is no separate quote document. You build the quote from task estimates and rates, agree it with the client outside the product, then record the agreed number as the project budget. The invoice is the document TimeTracker produces.
  </Accordion>

  <Accordion title="Can I bill more than the budget?">
    Yes. A budget is a measuring stick, not a hard stop. It warns you at 50%, 75%, 90% and 100%, and it keeps counting past 100%. What you bill is your decision. See [Budget alerts](/budgets/budget-alerts).
  </Accordion>

  <Accordion title="How do I bill the overrun on a fixed price job?">
    Agree it with the client first, then raise a separate invoice for the extra hours. Keeping the change order on its own invoice makes the conversation and the paper trail clear.
  </Accordion>

  <Accordion title="Which rate is used if the same person works on several projects?">
    The most specific rate wins: task rate, then project member rate, then the person's default, then the client default, then the workspace default. See [How rates are chosen](/rates/how-rates-are-chosen).
  </Accordion>

  <Accordion title="I changed a rate. Do old entries change too?">
    No. A time entry snapshots the rate that applied on its date, so history stays as it was billed. See [Rate snapshots](/rates/rate-snapshots).
  </Accordion>
</AccordionGroup>

## Related guides

<CardGroup cols={2}>
  <Card title="Track work for a client" icon="route" href="/guides/track-work-for-a-client">
    The full chain this sits inside.
  </Card>

  <Card title="Monitor project profitability" icon="chart-line" href="/guides/monitor-project-profitability">
    Spot the drift while you can still fix it.
  </Card>

  <Card title="Run a monthly retainer" icon="repeat" href="/guides/run-a-monthly-retainer">
    Billing that repeats instead of quoting each time.
  </Card>

  <Card title="Month-end close" icon="calendar-days" href="/guides/month-end-close">
    Doing this for every client at once.
  </Card>

  <Card title="Manage contractors" icon="handshake" href="/guides/manage-contractors">
    Why contractor hours change the margin.
  </Card>
</CardGroup>
