Is the job ahead or behind, under or over?
Available onBuilder
Earned Value answers two questions about a job, in dollars, on one page:
- Time — is the work ahead of the schedule or behind it?
- Money — for the work that is done, have we spent more or less than we allowed?
Then it uses the answer to the second question to forecast what the job will cost in the end.

Budget, what should be done by today, what actually is done, what has been spent — and the forecast final cost that follows from them.
You will find it under Construction › Earned Value once a job is selected.
If you know Earned Value already
Section titled “If you know Earned Value already”The page uses plain words for the standard quantities:
| On the page | Standard term | How this page gets it |
|---|---|---|
| Budget | BAC | The estimate for that cost code, plus accepted variations |
| Should be done | PV | Budget × how far through each task should be by today, going only by its dates |
| Actually done | EV | Budget × the % complete someone has entered on each task |
| Spent | AC | Supplier invoices coded to that code (timesheet labour only if you tick it) |
| Money | CV and CPI | EV − AC, and EV ÷ AC |
| Time | SV and SPI | EV − PV, and EV ÷ PV |
| Forecast final | EAC and VAC | AC + (BAC − EV) ÷ CPI, and BAC − EAC |
Two choices the method leaves open are made for you. Percent complete comes from the schedule: a task connected to a cost code drives that code, and a code with no connected task follows the whole job’s average and is tagged job avg. Spent is invoices only: purchase orders are commitments, so a job with work done but invoices not yet in looks under budget. The same explanation is behind the Help button on the page.
Where the numbers come from
Section titled “Where the numbers come from”Nothing on this page is typed in. It reads three things you already keep:
| Column | Comes from |
|---|---|
| Budget | The estimate — the same figure as the Cost Codes grid — plus any accepted variations |
| Should be done | The task dates on the schedule: how far through each task ought to be by today, on the job’s working days. Nobody types this; it moves by itself every day |
| Actually done | The % complete someone has entered on each task (a task with an actual finish date counts as 100%). It only moves when the schedule is updated |
| Spent | Supplier invoices (expenses) — an invoice line counts against the item it names, or the cost code it is coded to |
That last one is deliberate. Purchase orders are commitments, not spend; the page only counts money that has actually been invoiced. If you also want your own people’s wages in the picture, tick Include approved timesheets in Spent and the approved hours × cost rate from Timesheets are added, the same way the Cost Codes grid does it.
Should be done against Actually done
Section titled “Should be done against Actually done”Both come from the schedule, but from two different things on the same task, and the gap between them is the whole point.
- Should be done looks only at a task’s dates. A ten-day task that started six working days ago should be 60% done today. Nobody enters it; it moves on its own.
- Actually done looks only at the % complete someone has entered on the task. It moves only when the schedule is updated.
A $100,000 frame that is 60% due by today and 40% entered gives $60,000 should be done and $40,000 actually done, so Time reads $20,000 behind. If the two were always equal, Time would always be zero. It also means a schedule nobody updates makes a job look far behind when it is not.
Reading the tiles
Section titled “Reading the tiles”Seven tiles across the top, in the order the story is told:
- Budget — what the job should cost.
- Should be done — the slice of the budget that is due by today, going only by task dates.
- Actually done — the slice that is complete, going by the % complete entered on tasks.
- Spent — what has gone out.
- Money — Actually done minus Spent. Positive (green) means the work done so far cost less than allowed; negative (pink) means more. The small number is “dollars earned per dollar spent” — 1.00 is on budget, 0.90 means every dollar bought 90 cents of work.
- Time — Actually done minus Should be done. Positive means ahead of the schedule, negative means behind, both in dollars of work rather than days. The small number is “done per planned” — 1.00 is on time.
- Forecast final — if the rest of the job goes the way the first part has, this is what it will cost. Underneath: how far under or over budget that lands.
If you know the classic terms, they are in the column tooltips: PV, EV, AC, CV, SV, CPI, SPI, EAC and VAC.
The table
Section titled “The table”
The same seven figures for the whole job and then for every cost code under it.
Every cost code on the job, in the same tree as the Cost Codes page, with the same seven figures per row. Parents roll their children up. Click the arrow to open a code; Open all / Close all do the lot; the page remembers what you had open.
By cost code / By item switches the detail. At item level each BOQ item appears under its code with its quantity × rate, its own invoices, and the same progress as its code (the schedule is connected to codes, not items). Two extra rows can appear under a code so the items always add up to it: Invoiced to the cost code (no item named) and, when ticked, Approved timesheet labour.
Find a code or name filters the tree and opens whatever matches.
Drag the edge of a column heading to make a column wider or narrower; double-click the edge to put it back. The widths are remembered on that computer.
The tags
Section titled “The tags”- 2 tasks — progress comes from tasks on the schedule connected to this code. This is what you want.
- job avg — nothing on the schedule is connected to this code, so it follows the whole job’s average progress. It is a fair guess, not a measurement.
- mixed — a parent with some of each underneath.
- not required — the code was switched off in Cost Codes; its budget is zero.
A note above the table tells you how many codes are on the job average. To sharpen them, open a task on the schedule, open its cost and choose Connected to a Cost Code — the task then drives that code. A task can be split across codes with a percentage.
Behind a row
Section titled “Behind a row”Click a cost code’s name (or an item’s, at item level) and a panel opens beside the table with what is behind it:
- Progress — the tasks on the schedule connected to that code, with their dates, how far along each should be, how far along it is, and its share of the code if it is split. Click a task and the schedule opens on it. A code with no connected task gets a Connect a task on the schedule button instead.
- Spend — every supplier invoice with a line against that code (or that item), the supplier, the date, and how much of the invoice belongs to this row. Click one and the whole expense opens in a window over the page, so you can check it or change the cost code on a line without losing your place; the figures update as soon as you save. (Ctrl+click opens it in a new tab instead.) The list adds up to the row’s Spent; if timesheet labour is not ticked, the panel says how much there is anyway.
A group row (a code with codes underneath) rolls its children up, so open one of the codes inside it to see tasks and invoices.
Export
Section titled “Export”Export CSV downloads the whole table at the current level, every row opened out, with the figures as plain numbers and the classic names (PV, EV, AC, CV, CPI, SV, SPI, EAC, VAC) in the column headings, ready for a spreadsheet.
History and the S-curve
Section titled “History and the S-curve”Enterprise plan. History is the one part of Earned Value that is not in Builder; the free trial shows it too, so you can see it before deciding. On Builder the History view explains what it adds and shows today’s figures; the daily point is still recorded for every job, so an upgrade has the curve from the first day the page was opened.
Switch the view from Table to History and the page draws the job over time: three lines for Should be done, Actually done and Spent, against the budget as a dashed line. A healthy job has Actually done riding on or above Should be done, and Spent below both.
To glance at the curve without leaving the table, use S-Curve on the table’s toolbar: the same chart opens in a window over the rows you were reading, and closes back to them (Esc, or click outside it).
- Hover a day to read its figures; click to pin it and the row of tiles above the chart becomes As at that day — the job as it looked then. Back to today unpins.
- All / 90 days / 30 days zoom the range. Show as table lists every recorded day.
- One point is recorded per job per day. It is written each night for every live job with a schedule or invoices, and again every time somebody opens this page, so the curve starts the first day the page is opened. Take a snapshot now writes today’s point on the spot.
- A job opened for the first time today has one point and no line yet; come back tomorrow.
What it needs to work
Section titled “What it needs to work”- Cost codes and an estimate. No codes, and the page says so.
- A schedule with dates. Without one, only Budget and Spent are filled in and the page tells you why. Tasks with no date (the engine has not run) stay out of Should be done.
- Invoices coded to the job. Uncoded expenses do not appear in Spent — the Expenses page shows which ones still need coding.
What it does not do yet
Section titled “What it does not do yet”- Per-code history. The S-curve and “as at” are for the whole job; the table is always as at today.
- Sorting. Rows stay in cost-code order; use the search to narrow the table.
