Skip to main content

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โ€‹

  1. Open the blueprint โ†’ click Design mode.
  2. Navigate to the EVM section.

Step 2 โ€” Add a CPI computed fieldโ€‹

  1. Click + Add field โ†’ select Computed.
  2. Set:
    • Label: CPI
    • Help text: Cost Performance Index โ€” EV รท AC. Values above 1.0 are favourable.
    • Output type: Number
    • Decimal places: 2
    • Expression:
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โ€‹

  1. + Add field โ†’ Computed.
  2. Set:
    • Label: SPI
    • Output type: Number
    • Decimal places: 2
    • Expression:
IF([PV] = 0, null, [EV] / [PV])

Step 4 โ€” Add a Cost Variance computed fieldโ€‹

  1. + Add field โ†’ Computed.
  2. Set:
    • Label: Cost Variance
    • Output type: Currency
    • Decimal places: 0
    • Expression:
[EV] - [AC]

A positive value means under budget; negative means over budget.

Step 5 โ€” Add a Cost Variance % computed fieldโ€‹

  1. + Add field โ†’ Computed.
  2. Set:
    • Label: Cost Variance %
    • Output type: Percent
    • Decimal places: 1
    • Expression:
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โ€‹

  1. Open the blueprint โ†’ Output Designer โ†’ select the output template.
  2. In the page panel, click + Add page.
  3. Name the page: KPI Summary.
  4. Set page layout to Full width with 20mm margins.

Step 2 โ€” Add a page headerโ€‹

  1. Drag a Text component to the top of the page.
  2. Set text: Project Performance Indicators
  3. Style: Font size 18pt, bold, primary colour.

Step 3 โ€” Add a KPI card row (4-column grid)โ€‹

  1. Drag a Grid layout component onto the page.
  2. Set columns: 4, gap: 16px.
  3. The grid creates 4 equal-width slots.

Step 4 โ€” Configure KPI Card 1: Budget at Completionโ€‹

  1. Drag a KPI Card component into the first grid slot.
  2. Set:
    • Title: Budget at Completion
    • Value source: EVM section โ†’ BAC field
    • Value format: Currency, 0 decimal places
    • Subtitle: Contract budget
  3. Conditional formatting: None โ€” this is a fixed reference value, not performance-rated.

Step 5 โ€” Configure KPI Card 2: Cost Varianceโ€‹

  1. Drag a KPI Card into the second slot.
  2. Set:
    • Title: Cost Variance
    • Value source: EVM section โ†’ Cost Variance (computed field)
    • Value format: Currency with sign (+$450K / -$120K)
    • Subtitle: EV - AC
  3. 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)

Step 6 โ€” Configure KPI Card 3: CPIโ€‹

  1. Drag a KPI Card into the third slot.
  2. Set:
    • Title: CPI
    • Value source: EVM section โ†’ CPI (computed field)
    • Value format: Number, 2 decimal places
    • Subtitle: EV รท AC | Target โ‰ฅ 1.00
  3. 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

Step 7 โ€” Configure KPI Card 4: SPIโ€‹

  1. Drag a KPI Card into the fourth slot.
  2. Set:
    • Title: SPI
    • Value source: EVM section โ†’ SPI (computed field)
    • Value format: Number, 2 decimal places
    • Subtitle: EV รท PV | Target โ‰ฅ 1.00
  3. 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โ€‹

  1. Drag a Text component below the KPI grid.
  2. 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.