Cost, earned value and P6 columns

Every project comes with the columns below. They are formula columns like any you write: open one to see its formula, change it, or delete it (Restore brings it back). Find them under Columns in the toolbar, filed by group.

Four are in the grid from the start: Budgeted cost, Actual cost, At completion cost and Finish variance. On a project with no costs or no baseline they are blank; hide them under Columns if you don't use them.

The rest wait in the picker. The earned value dashboard reads these columns, so a change to one (pointing ETC at another technique, say) shows there too.

Note: Earned value needs a baseline: BAC, PV and EV are read from it, so with none they are blank. An activity the baseline doesn't have is blank too.

Dates

Durations, baseline dates and variances. Variances are baseline − current in working days of the activity's own calendar, as P6 shows them: negative means late or longer.

ColumnOnWhat it is
Baseline startActivityThe task's start in the baseline: its actual start there if it had started, else its early start.
Baseline finishActivityThe task's finish in the baseline.
Baseline startWBS nodeThe earliest baseline start under the node.
Baseline finishWBS nodeThe latest baseline finish under the node.
Actual durationActivityWorking time on the task's calendar from its actual start to its actual finish, or to the data date while it is in progress; 0 if it hasn't started (P6's Actual Duration).
At completion durationActivityWorking time from the task's start to its finish as they stand (P6's At Completion Duration: not actual + remaining, since logic can hold the remaining work back).
Duration % completeActivity(Duration − remaining duration) ÷ duration, 0 to 100 (P6's Duration % Complete). A milestone is 0 until it is complete.
Schedule % completeActivityHow far the data date is through the task's baseline dates, in working time on its calendar, 0 to 100 (P6's Schedule % Complete).
Remaining floatActivityRemaining late finish − remaining early finish, in working time on the task's calendar; blank once complete (P6's Remaining Float).
Start varianceActivityBaseline start − start, in working time on the task's calendar: negative when it starts later than planned (P6's sign).
Finish varianceActivityBaseline finish − finish, in working time on the task's calendar: negative when it finishes later than planned (P6's sign).
Duration varianceActivityBaseline at completion duration − at completion duration: negative when it takes longer than planned (P6's sign).
Start varianceWBS nodeThe node's baseline start − its start, in working time on the project's calendar (P6's WBS variance).
Finish varianceWBS nodeThe node's baseline finish − its finish, in working time on the project's calendar (P6's WBS variance).

On a WBS row or a Summarize group, a column with no WBS version of its own shows what adds up: costs, units and earned value are summed, starts are the earliest, finishes the latest, Remaining float the least. A variance, a percent, a ratio or a duration that doesn't add up (Actual duration, SPI) is blank there rather than a meaningless sum.

Cost

Units and cost. An assignment's cost is its units × its rate (its own, else its resource's); an activity's adds up its assignments and its expenses. Units on an activity count labor and nonlabor only: material is in its own units.

What you enter, and what Owl works out

An assignment's actual units, remaining units and rate, and an expense's actual and remaining cost, are stored exactly as you (or an import) enter them, and nothing else changes them: not a new % complete, not a new budget, not completing the activity. Left blank, the columns below work them out, the way P6 does with "recalculate actual units and cost when duration % complete changes" on:

  • Actual units: none before the activity starts; all of the budget once it is complete; the budget × % complete on an activity measured in units; otherwise the budget × duration % complete, or, on a curve, the curve's share of the budget up to the data date.
  • Remaining units: the budget less the actual, none once the activity is complete.
  • Rate: the resource's rate.
  • An expense's Actual cost is 0 until entered (expense actuals never follow % complete), and its Remaining cost is its budget less its actual.

Clear an entered number to hand it back to its column. In a formula, [Actual units] is the worked-out value and [Actual units (entered)] what was entered (likewise [Remaining units (entered)], [Rate (entered)], and an expense's [Actual cost (entered)], [Remaining cost (entered)]). A P6 import's numbers come in as entered, and an XER export writes the worked-out ones, so P6 gets every number.

Where this differs from P6's own edit rules: an entered actual always stands (P6 overwrites it when duration % changes or the activity completes); remaining is budget − actual, as P6's "subtract actual from at completion" (P6's default adds the actual to the remaining instead); and before the start, entering the remaining doesn't change the budget.

ColumnOnWhat it is
RateAssignmentThe price per unit: the rate entered on this assignment, else its resource's rate.
Budgeted unitsAssignmentThe units budgeted for this assignment: as entered, else its units per time × the task's working hours (P6's Budgeted Units).
Units per timeAssignmentUnits per hour of the task's working time (1 is one full-time resource, 8h/d): the budgeted units ÷ the task's working hours when units were entered, else as entered (P6's Budgeted Units/Time).
Actual unitsAssignmentThe units spent so far: as entered, else worked out from the activity's progress (above).
Remaining unitsAssignmentThe units still to do: as entered, else none once the activity is complete, else the budget less the actual units.
At completion unitsAssignmentActual + remaining units (P6's At Completion Units).
Budgeted costAssignmentBudgeted units × the rate (the assignment's own, else its resource's).
Actual costAssignmentActual units × the rate.
Remaining costAssignmentRemaining units × the rate.
At completion costAssignmentActual + remaining cost.
Actual costExpenseWhat it has cost so far, as entered; 0 when nothing was.
Remaining costExpenseWhat it is still to cost: as entered, else its budget less its actual cost (not zeroed when the activity completes, as in P6).
At completion costExpenseActual + remaining cost.
Budgeted costActivityThe task's budget: its assignments' budgeted cost and its expenses' budget (P6's Budgeted Total Cost).
Actual costActivityCost so far: its assignments' actual units × rate and its expenses' actual cost (P6's Actual Total Cost).
Remaining costActivityCost still to come: its assignments' remaining units × rate and its expenses' remaining cost.
At completion costActivityActual + remaining cost (P6's At Completion Total Cost).
Remaining unitsActivityUnits still to do on its labor and nonlabor assignments (material, in its own units, is left out).
At completion unitsActivityActual + remaining units on its labor and nonlabor assignments.
Budgeted labor unitsActivityBudgeted hours of its labor assignments.
Actual labor unitsActivityActual hours of its labor assignments.
Remaining labor unitsActivityRemaining hours of its labor assignments.
Units % completeActivityActual ÷ at completion units over its labor and nonlabor assignments, material left out (P6's Units % Complete).
Units % completeWBS nodeUnits % complete of everything under the node.
Cost % completeActivityActual ÷ at completion cost (0 when there is none).
Cost % completeWBS nodeActual ÷ at completion cost of everything under the node.
Total cost varianceActivityBaseline budget − at completion cost: negative when it is forecast to cost more than planned (P6's Variance – BL Total Cost).

Over time

Amounts over time, for charts and lanes; a grid cell shows the total. Budget spreads over the activity's start to finish on each assignment's curve; what's left spreads from the remaining start (the data date, or later where logic holds the work); expenses accrue at the start, at the finish or evenly. Actual cost over time is what each schedule update added, placed between that update and the one before, on the days the activity worked there (from its actual start, to its actual finish or the data date): a past month never moves when an estimate changes, and cost reported after an activity finished stays on the days it worked. With a single update it is P6's actual spread.

ColumnOnWhat it is
Duration over timeActivityEach task's duration, in working days, spread evenly over the days it works: the plan behind the progress S-curve.
Late duration over timeActivityEach task's duration spread over its late dates: the latest the work can happen without moving the finish.
Earned duration over timeActivityThe part of each task's duration that is done, spread from its actual start to its actual finish (the data date while it is in progress; all at the actual finish if it has no actual start).
Budgeted units over timeAssignmentBudgeted units spread over the task's start to finish, on the assignment's curve (evenly over working time with none).
Budgeted cost over timeAssignmentBudgeted cost spread as its units are.
Budgeted hours over timeAssignmentA labor assignment's budgeted hours spread as its units are: what Hours by week draws.
Remaining units over timeAssignmentRemaining units from the remaining early start (the data date, or later where logic holds the work back) to the finish. On a curve, the curve is laid over the task's start to finish and its part after the remaining start carries the remaining units (P6).
Remaining cost over timeAssignmentRemaining cost spread as the remaining units are.
Remaining hours over timeAssignmentA labor assignment's remaining hours over time.
Actual cost over timeAssignmentWhat each update added to the actual cost, where it happened: between the update before and this one (the first from the actual start), on the part of that stretch the task worked (actual start to actual finish, or the data date), on the assignment's curve. A later estimate never moves a past period.
Actual hours over timeAssignmentWhat each update added to a labor assignment's actual hours, between the update before and this one (the first from the actual start), on the part of that stretch the task worked, on the assignment's curve.
Forecast cost over timeAssignmentActual cost where it was spent, then the remaining cost where it is planned.
Forecast hours over timeAssignmentActual hours where they were spent, then the remaining hours where they are planned.
Budgeted cost over timeExpenseThe expense's budget by its accrual: all at the task's start, all at its finish, or evenly between (uniform, also when none is set).
Actual cost over timeExpenseWhat each update added to the expense's actual cost, between the update before and this one (the first from the task's actual start), where the task worked in that stretch, by the expense's accrual: on the actual start, on the actual finish (the data date while in progress), or evenly.
Remaining cost over timeExpenseThe expense's remaining cost by its accrual: all on the task's start (its actual start once started, as in P6), all at the finish, or evenly over the remaining window.
Forecast cost over timeExpenseActual cost where it was spent, then the remaining cost where it accrues.
Budgeted cost over timeActivityThe task's budget over its start to finish: its assignments on their curves, its expenses by accrual.
Budgeted hours over timeActivityThe task's budgeted labor hours over time.
Actual cost over timeActivityWhat each update added to the task's actual cost, where it happened. Past periods never move.
Actual hours over timeActivityWhat each update added to the task's actual labor hours.
Remaining cost over timeActivityThe task's remaining cost from its remaining start to its finish.
Remaining hours over timeActivityThe task's remaining labor hours over time.
Forecast cost over timeActivityActual cost where it was spent, then the remaining cost where it is planned: the cash flow forecast.
Forecast hours over timeActivityActual labor hours where they were spent, then the remaining ones.
LoadAssignmentHow much of its resource this assignment takes while its task works: its units per time (1 is one full-time resource), as a level over time, blank outside the task's dates. Summed over a resource's assignments, its load at every moment: MAX(SUM(Assignments[Load])) <= 1 on a resource says it is never booked past full time.
Available hours over timeResourceEach labor resource with work assigned, available every working hour of the project calendar from the project's start to its finish, times its max units per time (a crew of three has three hours an hour): the ceiling budgeted hours are drawn against.

Earned value

PMBOK's earned value measures, worked out the way P6 works them out. A ratio whose denominator is 0 is 0, as in P6. On a WBS row and on the project, totals are sums and ratios are ratios of the sums. The project has a column only for what a sum can't give (the ratios and earned schedule): a project total is the grid's summary row, or SUM(Tasks[BAC]) in a formula.

ColumnOnWhat it is
BACActivityBudget at completion: the task's budgeted cost in the baseline (P6's BAC; blank with no baseline, or for a task the baseline doesn't have).
Performance % completeActivityThe % complete earned value is measured by: the task's % complete (P6's default technique, Activity % complete). Point it at Performance % (0/100) or (50/50) to switch.
Earned value (EV)ActivityThe baseline budget earned so far: its resources' budget × performance %, and each baseline expense by its accrual: a start-accrual one all of it once performance % is above 0, an end-accrual one none until 100 %, a uniform one × performance % (PMBOK; P6's Earned Value).
PV over timeActivityThe baseline's budget over time, on the baseline's dates, curves and accruals: planned value.
Planned value (PV)ActivityThe baseline's budget spread over its dates, added up to the data date (P6's Planned Value: not BAC × schedule %).
Actual cost (AC)ActivityActual cost to the data date, every kind: labor, nonlabor, material and expenses.
Schedule variance (SV)ActivityEV − PV: negative when less is done than planned.
Cost variance (CV)ActivityEV − AC: negative when the work done cost more than its budget.
SPIActivitySchedule performance index, EV ÷ PV (0 when PV is 0, as in P6).
CPIActivityCost performance index, EV ÷ AC (0 when AC is 0, as in P6).
SV %ActivitySV ÷ PV (P6's Schedule Variance Index).
CV %ActivityCV ÷ EV (P6's Cost Variance Index).
Estimate to complete (ETC)Activity(BAC − EV) ÷ CPI: PMBOK's typical case and P6's default technique (performance factor 1/CPI); BAC − EV while CPI is 0; 0 once complete.
Estimate at completion (EAC)ActivityAC + ETC.
Variance at completion (VAC)ActivityBAC − EAC: negative when the task is forecast to overrun.
TCPI (BAC)ActivityTo-complete performance index against the budget, (BAC − EV) ÷ (BAC − AC) (PMBOK).
TCPI (EAC)ActivityTo-complete performance index against the estimate, (BAC − EV) ÷ (EAC − AC): PMBOK's second form and P6's TCPI.
ETC (remaining cost)ActivityBottom-up ETC: the remaining cost as estimated (P6's "remaining cost" technique). Point ETC at it to use it.
ETC (CPI × SPI)Activity(BAC − EV) ÷ (CPI × SPI), for work held to a date as well as a budget; BAC − EV while the product is 0.
ETC (atypical)ActivityBAC − EV: the rest goes to budget whatever has happened so far (P6's performance factor 1).
Performance % (0/100)Activity0 until the task is complete, then 100.
Performance % (50/50)Activity50 once the task has started, 100 when it is complete.
EV over timeActivityEarned value as each update earned it, between the update before and this one (the first from the actual start), on the part of that stretch the task worked (actual start to actual finish, or the data date), with each baseline expense by its accrual. Adds up to EV.
AC over timeActivityActual cost as each update added it.
BAC (hours)ActivityThe task's budgeted labor hours in the baseline.
PV over time (hours)ActivityThe baseline's labor hours over time.
PV (hours)ActivityThe baseline's labor hours planned up to the data date.
EV (hours)ActivityBaseline labor hours × performance %.
SPIWBS nodeΣEV ÷ ΣPV of the tasks under the node.
CPIWBS nodeΣEV ÷ ΣAC of the tasks under the node.
SV %WBS nodeΣSV ÷ ΣPV of the tasks under the node.
CV %WBS nodeΣCV ÷ ΣEV of the tasks under the node.
Performance % completeWBS nodeΣEV ÷ ΣBAC of the tasks under the node (P6's WBS performance %).
Schedule % completeWBS nodeΣPV ÷ ΣBAC of the tasks under the node (P6's WBS schedule %).
TCPI (BAC)WBS node(ΣBAC − ΣEV) ÷ (ΣBAC − ΣAC) of the tasks under the node.
TCPI (EAC)WBS node(ΣBAC − ΣEV) ÷ (ΣEAC − ΣAC) of the tasks under the node.
SPIProjectΣEV ÷ ΣPV.
CPIProjectΣEV ÷ ΣAC.
SV %ProjectΣSV ÷ ΣPV.
CV %ProjectΣCV ÷ ΣEV.
TCPI (BAC)Project(ΣBAC − ΣEV) ÷ (ΣBAC − ΣAC).
TCPI (EAC)Project(ΣBAC − ΣEV) ÷ (ΣEAC − ΣAC).
Earned schedule (ES)ProjectThe day by which the baseline planned to have earned what has been earned: the last day the baseline planned value on whose running PV, by the day's end, is at most EV. Blank while nothing is earned.
SV(t)ProjectThe end of the earned schedule's day − data date, in working time: negative when behind.
SPI(t)ProjectTime from the baseline start to the end of the earned schedule's day ÷ time from it to the data date.

P6

P6's own versions of a few columns, for checking Owl against P6. Folded at the bottom of the column picker.

ColumnOnWhat it is
Planned start (P6)ActivityP6's Planned Start: the start while not started; once started, the start as of the last update before the actual start (else the planned start the import brought, else the actual start).
Planned finish (P6)ActivityP6's Planned Finish: the planned start + the duration, on the task's calendar.
Planned duration (P6)ActivityP6's Planned Duration: the original duration.
Remaining early start (P6)ActivityWhere the remaining work can start: the data date, or later where logic holds it; blank once complete.
Remaining early finish (P6)ActivityWhere the remaining work finishes at the earliest; blank once complete.
Remaining late start (P6)ActivityRemaining late finish − remaining duration; blank once complete.
Remaining late finish (P6)ActivityThe latest the remaining work can finish without moving the project's finish; blank once complete.
Budgeted cost over time (P6)AssignmentP6's budget spread: on the task's planned dates (P6), on the assignment's curve.
Actual cost over time (P6)AssignmentP6's actual spread: evenly from the actual start to the data date (the actual finish once complete), whenever the work was really done; on a curve, the curve's part before the remaining start.
Budgeted cost over time (P6)ExpenseP6's expense budget spread: by its accrual over the task's planned dates (P6).
Actual cost over time (P6)ExpenseP6's expense actual spread: by its accrual from the actual start to the data date (the actual finish once complete).
Budgeted cost over time (P6)ActivityP6's budget spread of the task: on its planned dates (P6).
Actual cost over time (P6)ActivityP6's actual spread of the task: evenly from the actual start to the data date. With a single update it agrees with Actual cost over time.

Switching the technique

Performance % complete is what earned value is measured by, and Estimate to complete (ETC) is what EAC adds to the actual cost. Both are ordinary columns, so changing technique is changing a formula:

  • For 0/100 earning, set Performance % complete's formula to [Performance % (0/100)]; for 50/50, [Performance % (50/50)].
  • For a bottom-up ETC (the remaining cost as estimated), set ETC's formula to [ETC (remaining cost)]; for work held to a date as well as a budget, [ETC (CPI × SPI)]; for an overrun you don't expect to repeat, [ETC (atypical)].

Formulas

To see exactly how a column is worked out, open it from its header: the formula bar shows its formula, and every function in it links to its page in the formula reference.