← Blog
How-to·8 May 2026·6 min read

Calculated & indicator columns: turn columns into a status story

A grid full of raw dates makes people squint. Nobody scans a table of "Forecast Finish 14 Aug 26" and instantly knows whether that's good or a problem. So stop making them do the arithmetic in their heads — compute it in a column, then paint the answer as a stoplight. Here's how to turn a wall of dates into a programme that reads at a glance.

Watch a director read a status table. Their eyes flick left to right, subtracting one date from another, trying to work out if a line is slipping — and three rows in, they give up and ask you. That's not their failing; it's the table's. The information is all there, in the right cells, and still unreadable, because the reader has to do the maths.

The fix isn't a prettier table. It's a table that has already done the thinking. You add a column that computes the thing people actually care about — variance, an index, a gap to threshold — and then you show that number as a symbol: a red/amber/green stoplight, a filled pie, a tick. The reader stops calculating and starts deciding. And because it's computed, it stays honest: change a date and every symbol downstream repaints itself.

Same data, two readings: raw dates vs. a computed symbol Baseline · Forecast · Actual · Float … 02 Mar · 09 Mar · — · +3 18 Apr · 02 May · — · −6 30 May · 30 May · 28 May · +1 11 Jul · 25 Aug · — · −31 “…is row 4 in trouble? subtract, compare, guess.” ──▶ Variance → Status on track watch on track 31 days late read in half a second, no arithmetic.
Fig 1. The whole idea in one picture. The left is correct and slow; the right is the same numbers, computed once and painted as colour. A calculated column does the subtraction so the reader doesn't have to.

Columns that compute, not just display

A schedule grid is more than a place to park imported fields. Alongside the columns that carry data — text, dates, values you typed or pulled in from P6 — you can add calculated columns that derive a new value from the others. The simplest and most useful is a variance:

Variance (days) = Forecast Finish − Baseline Finish

That single expression turns two dates most people can't compare at a glance into one signed number they can: positive is late, negative is early, zero is on plan. And because columns can reference other columns, you can chain them — feed a calculated column into the next one. A "Days to gate" column subtracts today from a milestone date; a "Slip since last month" column subtracts a stored snapshot from the live forecast; an index column divides one value by another. Each is just arithmetic across cells, evaluated live.

The chain: dates → variance → threshold → symbol Baseline11 Jul 26 Forecast25 Aug 26 F − B+45 days threshold rule≤5 green · ≤20 amber>20 red RED Edit either date and the whole chain re-evaluates — the stoplight repaints itself.
Fig 2. A calculated column is a small pipeline. Two dates subtract into a variance; a threshold rule maps that number onto three bands; the band drives a coloured symbol. Nothing is baked in — it all recomputes when the inputs move.

From number to symbol: RAG, pies and stoplights

A computed number is halfway there. The other half is the indicator — the bit that makes it readable without reading. Sketchedule's calculated and indicator SmartColumns let you map a value onto a visual:

The point of all three is the same: the reader's eye lands on colour and shape, which the brain resolves far quicker than digits. And critically, the value under the symbol is still there — sort by it, filter on it, export it — so the pretty version and the analytic version are the same column.

A worked example: Variance, a pie, and CPI

Take a small works package view — a handful of activities, each with a baseline finish, a live forecast, a percent complete, and cost fields. Here's the status story you can build in about a minute.

  1. Add a column. Right-click the grid header and insert a new SmartColumn. Name it Variance (days) and set its type to calculated.
  2. Write the formula. Give it the expression [Forecast Finish] − [Baseline Finish]. Every row now shows a signed day count — the slip, computed off the real dates, not typed.
  3. Map thresholds to a symbol. Turn the column into a RAG stoplight: ≤5 → green, ≤20 → amber, >20 → red. Add a second indicator column that renders % Complete as a pie, and a CPI column (EV ÷ AC) shown as its own stoplight banded around 1.0.
  4. It recomputes live. Nudge a forecast finish, bring progress to the data date, or refresh from the updated P6 — the variance, the pie fill and both stoplights all repaint in place. No macro, no rebuild, no re-colouring by hand.
Status view · calculated Variance + %-pie + stoplight, built in Sketchedule Activity Start Finish % St JanFebMarAprMayJunJulAug data date ▾ Civils Site clearance05 Jan02 Feb Foundations03 Feb28 Mar ▾ Structures Steel erection30 Mar22 May Cladding18 May11 Jul ▾ Fit-out & handover M&E first fix08 Jun24 Jul Handover15 Aug St = Status stoplight from Variance = Forecast − Baseline % column renders a pie · ≤5 ≤20 >20 days · grey summary bars span each section
Fig 3. The app-faithful view: an Activity/Start/Finish grid with a %-complete pie column and a Status stoplight column, alongside the Gantt — section bands, grey summary bars, a milestone diamond and the dashed data date. Every dot is computed from the Variance column, live.
Why the pie earns its place: a percentage and a pie carry the same number, but the pie is read pre-attentively — you clock "barely started" or "nearly done" before you've consciously read anything. Pair it with the stoplight and a row tells its whole story, progress and health, in one glance.

The CPI stoplight — one number for cost health

The same machinery handles earned value. If your rows carry planned value, earned value and actual cost, a calculated column gives you the two indices practitioners live by:

CPI = EV ÷ AC  ·  SPI = EV ÷ PV

A raw CPI of 0.92 means little to a sponsor; a red dot next to a package does. Band the CPI column around 1.0 — green at or above plan, amber in a tolerance zone, red below — and a cost overrun announces itself in colour down the whole grid. Add a Datagraph beneath and the same earned-value figures become an S-curve. The number, the symbol and the curve are three views of one computed truth.

CPI = EV ÷ AC, banded around 1.0 → a cost-health stoplight per package 1.00 0.901.10 Civils1.06 Structures1.01 Cladding0.96 M&E0.89 Commissioning1.03 green ≥1.00 · amber 0.95–1.00 · red <0.95
Fig 4. The CPI column as a stoplight: bars stretch either side of the 1.0 line and a dot bands the index into cost-health colour. M&E's 0.89 doesn't need explaining — the red does it. Same value, exportable and sortable underneath.

Where this beats the alternatives

Two familiar categories try to do a version of this, and both leave you doing work by hand.

Heavyweight desktop schedulers can hold a computed field, but making one drive a coloured symbol usually means custom fields wired to graphical indicators, or a macro — a fiddly, brittle setup that the next planner won't understand and won't maintain. The variance is computable; turning it into a stoplight that survives a refresh is the part that quietly eats an afternoon.

Cloud work-OS boards are the opposite: they'll happily colour a status column and show a progress bar, but they have no concept of a schedule. They can't subtract a forecast finish from a baseline finish, because they don't hold a baseline; they can't compute CPI, because they don't hold earned value. You get pretty symbols with nothing schedule-aware underneath.

Sketchedule sits exactly in the gap: it understands baselines, forecasts, progress and earned value like a scheduler, and it renders them as stoplights, pies and symbols like a presentation tool. The computation is local and live — it runs in your browser, off the real dates, with nothing uploaded and no macro to break.

Source of truth, unchanged. A calculated column is a view of your data — a live derivation, not a second copy. It never edits the baseline or the forecast it reads from; those stay put (and, on an imported programme, P6 stays the engine). Change an input and the column recomputes; delete the column and nothing underneath is lost.

Key takeaways

Turn your grid into a status story

Open Sketchedule in a browser — free, no install, nothing uploaded. Add a calculated column and watch the stoplights light up.

← BlogAll articles

Primavera and P6 are trademarks of Oracle Corporation; Microsoft Project is a trademark of Microsoft Corporation. Sketchedule is an independent product and is not affiliated with, endorsed by or sponsored by Oracle or Microsoft. Figures are illustrative, drawn in Sketchedule.