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 fieldComputed.
  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 fieldComputed.
  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 fieldComputed.
  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.