Contact
Sequence

Cost & earned value

The three cost sources, accruals, the unit matrix and where it refuses to guess, and earned value with a named forecasting formula on every report that carries one.

Costing is a project decision — a schedule either has money in it or it does not, and a scenario cannot switch it on by itself.

Cost is computed downstream of the schedule, over the result the passes already produced. It is not part of the scheduling passes themselves, because every input to those passes changes a date and a cost changes none.

The three sources#

A row's cost is the sum of three, and all three are named separately rather than rolled into one number:

SourceWhat it is
Resource costAssignment units × rate × duration, on the assignment's own rate and dates
Fixed costA typed amount on the row, with an accrual setting
Quantity costA quantity column × a unit-rate column

Accruals#

A fixed cost accrues at start, at finish, or prorated across the span. This is what decides which period a cost lands in, and therefore what a cash-flow curve looks like.

The unit matrix#

Assignment units (percent, headcount, hours) and rate units (per hour, per day, per unit) do not combine freely:

Units stated asRate is perCost
PercentDayunits/100 × rate × workingDays
PercentHourunits/100 × rate × hoursPerDay × workingDays
HeadcountDayunits × rate × workingDays
HeadcountHourunits × rate × hoursPerDay × workingDays
HoursHourunits × rate — no duration
HoursDayunits ÷ hoursPerDay × rate
AnyUnitunits × rate — a consumable, no duration

⚠⚠ Hours never multiplies by duration. A person assigned "16 hours" to a ten-day task works sixteen hours in total, not sixteen a day. Getting that backwards inflates the cost by the length of the task, silently, and it looks entirely plausible on a short one.

⚠ Conversions that need a figure nobody supplied return nothing rather than guessing. The same rule the allocation engine takes about hours-per-day, for the same reason: a cost built on an invented working day is a number somebody will put in a valuation.

An unpriced row is unpriced, not zero. It reports as having no cost, so a scenario diff does not fill with rows apparently saving nothing.

Earned value#

Computed at the data date, never at the wall clock.

PVPlanned value — the baselined cost of work scheduled by now
EVEarned value — the baselined cost of work actually done
ACActual cost
CV, SVCost and schedule variance
CPI, SPICost and schedule performance indices
EACEstimate at completion, with a selectable formula
ETC, VAC, TCPITo complete, at completion, and the to-complete index

Earned value runs on physical percent, and there is no fallback#

⚠⚠ A row with no % Complete (Physical) yields no earned value. It does not quietly fall back to the duration percentage — which is the one measure that always exists and is therefore the tempting substitute. A performance index computed from duration progress looks exactly like a performance index and is not one.

Duration progress drives the forecast. Physical drives earned value. Units drives cost actuals. They are three columns because they are three facts.

The formula is named on every report#

Three estimate-at-completion formulas, and whichever is in use is printed beside the number:

FormulaReads as
BAC ÷ CPIAssumes the cost performance so far continues
AC + (BAC − EV) ÷ (CPI × SPI)Assumes both cost and schedule performance continue
AC + (BAC − EV)Assumes the remaining work runs to budget

An unlabelled estimate at completion is a number three people will compute three ways, and all three will be defensible.

Nothing is a plausible zero#

Eleven metrics over four inputs, any of which may be absent, gives a great many ways to produce a convincing nought. Every result that could not be computed says so with the reason attached, and a report carrying one is expected to show it.