Computed Fields KPI Page
This tutorial builds a KPI page for a project performance report using computed fields to calculate Cost Performance Index (CPI), Schedule Performance Index (SPI), and cost variance โ then displays them as KPI cards with conditional formatting.
Goal: A single-page KPI summary with four cards โ Budget at Completion, Cost Variance, CPI, and SPI โ each colour-coded by performance threshold.
Assumed blueprint fields (in a section called "EVM"):
BACโ Currency (Budget at Completion)EVโ Currency (Earned Value)ACโ Currency (Actual Cost)PVโ Currency (Planned Value)
Part 1 โ Blueprint: Add computed fieldsโ
Step 1 โ Open the blueprint in Design modeโ
- Open the blueprint โ click Design mode.
- Navigate to the EVM section.
Step 2 โ Add a CPI computed fieldโ
- Click + Add field โ select Computed.
- Set:
- Label:
CPI - Help text:
Cost Performance Index โ EV รท AC. Values above 1.0 are favourable. - Output type: Number
- Decimal places: 2
- Expression:
- Label:
IF([AC] = 0, null, [EV] / [AC])
The IF guard prevents a divide-by-zero error when no actual cost has been recorded yet.
Step 3 โ Add an SPI computed fieldโ
- + Add field โ Computed.
- Set:
- Label:
SPI - Output type: Number
- Decimal places: 2
- Expression:
- Label:
IF([PV] = 0, null, [EV] / [PV])
Step 4 โ Add a Cost Variance computed fieldโ
- + Add field โ Computed.
- Set:
- Label:
Cost Variance - Output type: Currency
- Decimal places: 0
- Expression:
- Label:
[EV] - [AC]
A positive value means under budget; negative means over budget.
Step 5 โ Add a Cost Variance % computed fieldโ
- + Add field โ Computed.
- Set:
- Label:
Cost Variance % - Output type: Percent
- Decimal places: 1
- Expression:
- Label:
IF([BAC] = 0, null, ([EV] - [AC]) / [BAC])
Step 6 โ Publish the blueprintโ
After adding computed fields, click Publish โ enter a version note: "Added EVM computed fields: CPI, SPI, Cost Variance."
Part 2 โ Output Designer: Build the KPI pageโ
Step 1 โ Add a KPI pageโ
- Open the blueprint โ Output Designer โ select the output template.
- In the page panel, click + Add page.
- Name the page:
KPI Summary. - Set page layout to Full width with 20mm margins.
Step 2 โ Add a page headerโ
- Drag a Text component to the top of the page.
- Set text:
Project Performance Indicators - Style: Font size 18pt, bold, primary colour.
Step 3 โ Add a KPI card row (4-column grid)โ
- Drag a Grid layout component onto the page.
- Set columns: 4, gap: 16px.
- The grid creates 4 equal-width slots.
Step 4 โ Configure KPI Card 1: Budget at Completionโ
- Drag a KPI Card component into the first grid slot.
- Set:
- Title:
Budget at Completion - Value source: EVM section โ
BACfield - Value format: Currency, 0 decimal places
- Subtitle:
Contract budget
- Title:
- Conditional formatting: None โ this is a fixed reference value, not performance-rated.
Step 5 โ Configure KPI Card 2: Cost Varianceโ
- Drag a KPI Card into the second slot.
- Set:
- Title:
Cost Variance - Value source: EVM section โ
Cost Variance(computed field) - Value format: Currency with sign (
+$450K/-$120K) - Subtitle:
EV - AC
- Title:
- Conditional formatting (card background colour):
- Rule 1: If value โฅ 0 โ Background:
#E8F5E9(light green), value text:#2E7D32(dark green) - Rule 2: If value < 0 โ Background:
#FFEBEE(light red), value text:#C62828(dark red)
- Rule 1: If value โฅ 0 โ Background:
Step 6 โ Configure KPI Card 3: CPIโ
- Drag a KPI Card into the third slot.
- Set:
- Title:
CPI - Value source: EVM section โ
CPI(computed field) - Value format: Number, 2 decimal places
- Subtitle:
EV รท AC | Target โฅ 1.00
- Title:
- Conditional formatting (card background):
- Rule 1: If value โฅ 1.0 โ Background:
#E8F5E9, text:#2E7D32 - Rule 2: If value โฅ 0.9 AND value < 1.0 โ Background:
#FFF8E1(light amber), text:#F57F17 - Rule 3: If value < 0.9 โ Background:
#FFEBEE, text:#C62828
- Rule 1: If value โฅ 1.0 โ Background:
Step 7 โ Configure KPI Card 4: SPIโ
- Drag a KPI Card into the fourth slot.
- Set:
- Title:
SPI - Value source: EVM section โ
SPI(computed field) - Value format: Number, 2 decimal places
- Subtitle:
EV รท PV | Target โฅ 1.00
- Title:
- Conditional formatting: Same rules as CPI (โฅ1.0 green, 0.9โ1.0 amber, below 0.9 red).
Part 3 โ Add a supporting metrics rowโ
Below the KPI cards, add a second row with supporting detail KPIs.
EV vs. PV Trend text componentโ
- Drag a Text component below the KPI grid.
- Set text to use report variables (define these in the Variables panel first):
Earned Value: {{var.TotalEV}} of {{var.TotalPV}} planned value earned.
Schedule variance: {{var.TotalEV}} - {{var.TotalPV}} = {{var.ScheduleVariance}}.
Variables to define:
TotalEV=[sections.EVM.EV]TotalPV=[sections.EVM.PV]ScheduleVariance=[sections.EVM.EV] - [sections.EVM.PV]
Part 4 โ Preview and testโ
Test case 1: Favourable performance (CPI > 1.0, SPI > 1.0)โ
Enter test data:
- BAC: $1,000,000
- EV: $500,000
- AC: $450,000
- PV: $480,000
Expected results:
- Cost Variance: +$50,000 โ green card
- CPI: 1.11 โ green card
- SPI: 1.04 โ green card
Test case 2: Mixed performanceโ
- BAC: $1,000,000
- EV: $500,000
- AC: $530,000
- PV: $520,000
Expected results:
- Cost Variance: -$30,000 โ red card
- CPI: 0.94 โ amber card (0.9โ1.0 range)
- SPI: 0.96 โ amber card
Test case 3: No actuals yet (edge case)โ
- BAC: $1,000,000
- EV: $0
- AC: $0
- PV: $0
Expected: CPI and SPI show "โ" (null) โ no division-by-zero error.
Relatedโ
- Advanced Computed Fields โ nested IF, SWITCH, date arithmetic, null-safe patterns
- Blueprint Field Types โ Computed field configuration reference
- Expression Reference โ full function library
- Report Variables โ defining variables for the text component
- Running Aggregates Tutorial โ cumulative cost trend chart