# Job costing

See what a job earned and what it cost, from engineers' time, travel, parts, purchases and expenses, against the quote.

Use the **Costing** tab on a job to see whether it made money. Only people who can see costs and margins have it.

1. Open the job and select **Costing**.
2. The top shows **Revenue**, **Cost** and **Margin**. A loss shows in red.
3. The table splits cost into **Labour**, **Travel**, **Materials**, **Purchases (POs)** and **Expenses**.

If the job came from a quote, an **Estimate** column shows what the quote expected and the **Variance**. Otherwise you'll see "No estimate".

## Where the numbers come from

- **Revenue** is what you've invoiced, less credit notes, plus priced work still to invoice. It doesn't include VAT.
- **Labour** and **Travel** come from engineers' timesheet time on this job, at each person's [cost rate](/settings/cost-rates/). Until time is linked to the job, labour lines on the job are used instead.
- **Materials** come from parts used and material lines, at their cost.
- **Purchases (POs)** are purchase orders delivered to the site for this job.

**Time on this job** lists each engineer's time with its timesheet status.

## Warnings

The panel warns you when:

- cost or hours are over the estimate by more than your limit, 10% by default,
- the job is over its not-to-exceed limit,
- labour is provisional because the timesheets aren't approved yet,
- some time has no cost rate, or some parts or expenses have no cost.

## Set a not-to-exceed limit

Use this when you've agreed a cap with the customer.

1. Under **Not to exceed**, select **Set a limit**.
2. Enter the amount and select **Save**.

The limit is checked against both cost and charge.

## Read next

- [Approve a timesheet](/people/approve-a-timesheet/)
- [Standard reports](/reports/standard-reports/): **Job profitability** covers all jobs in a period.
