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