BASELINE

BASELINE()

The project's baseline, as a schedule you read with IN: IN(BASELINE(), [Finish date]) is each task's baseline finish. There are no separate baseline fields to look for; every field, and every formula column, can be read in the baseline this way. Tasks line up by task code, so a task added since the baseline was set is blank. More in The baseline.

Examples

Formula
=WORKDAYS(IN(BASELINE(), [Finish date]), [Finish date])

Finish variance: how many working days later than baselined the task now finishes. Negative when it is ahead.

Formula
=IN(BASELINE(), [Duration]) <> [Duration]

Tasks whose planned duration has changed since the baseline. As a guardrail, it lists them.

Formula on WBS rows
=WORKDAYS(IN(BASELINE(), [Finish date]), [Finish date])

On a WBS row: the same variance for the node as a whole, from the latest finish of the tasks under it.

Measure (on the project)
=IN(BASELINE(), SUM(Assignments[Budgeted units (entered)] * Assignments[Hourly rate]))

As a measure: the budget at completion, from the baseline's own assignments and rates.

Reach for something else when

You wantUse
A named revision or a scenario rather than the baselineSCHEDULE
The schedule if something changed nowWHATIF
How a value moved over every update, not just against one planHISTORY

Common questions

What is a task that isn't in the baseline?

Blank, with the reason "not in the baseline". So is every row when no baseline is set. Wrap the reading in COALESCE or test it with ISBLANK when a guardrail should treat new work differently.

Are the baseline's dates the ones stored when it was set?

They are worked out again by the same engine, from the baseline's own tasks, links and durations, at its own data date, on the project's calendars and settings. So the baseline is read the same way as the schedule itself.

Can I read the baseline's history, or its own baseline?

No: "Another schedule has no baseline, other schedules or past versions of its own: BASELINE(), SCHEDULE(…) and HISTORY can't be read inside IN(BASELINE(), …) or IN(SCHEDULE(…), …)".

The editor refuses this
=IN(BASELINE(), MAX(HISTORY(INDAYS([Remaining duration]))))

Why is BASELINE() on its own refused?

It is a whole schedule, not a value. Read a field from it with IN.