Skip to main content

Build a Table and Matrix Report

Table and matrix components work as a pair in project control reports: the matrix shows the summary pattern (cost by WBS by period), and the table below it shows the supporting detail rows. This tutorial builds a cost report page using both.


Prerequisites

  • A published blueprint with a cost or quantity section (repeating rows).
  • Fields including: WBS code, Activity name, Planned value, Actual value, Variance, Period date.
  • An approved edition with cost rows entered.

Step 1: Add a new page

  1. Open the output in the Output Designer.
  2. Click + in the page thumbnail panel to add a new page.
  3. Name the page "Cost Detail".
  4. Set page orientation to Landscape for the matrix (wider column set).

Step 2: Add a section header

  1. Insert a Section Header component at the top of the page.
  2. Set the label to "Cost Performance — [Period]" — bind the period field for dynamic text.

Step 3: Add the Matrix component

  1. Insert a Matrix component below the section header.
  2. Bind the source section (cost section).
  3. Configure the matrix structure:
    • Row group: WBS code (groups rows by WBS level).
    • Column group: Period date (creates one column per reporting period).
    • Value: Actual cost (the cell value).
    • Aggregation: Sum.
  4. Enable Row totals column on the right.
  5. Enable Column totals row at the bottom.
  6. Set Expand depth: WBS Level 2 by default (rows collapsed to Level 2 on load).

Step 4: Format the matrix

  1. In the Format panel:
    • Header row background: theme primary colour, white text.
    • Row group indent: 16px per level.
    • Row totals: bold, shaded background.
    • Column totals: bold, border-top.
  2. Set Conditional row formatting: Variance < 0 → amber background on the row.
  3. Set Number format: Currency, 0 decimal places, show negative in red.
  4. Resize columns to fit — most period columns can be narrow (60–80px); the WBS column needs 200px.

Step 5: Add the Table component

  1. Insert a Table component below the matrix.
  2. Bind the same cost section.
  3. Add columns:
    • WBS code (80px)
    • Activity name (200px)
    • Planned value (100px)
    • Actual value (100px)
    • Variance (100px)
    • % Complete (80px)
    • Period date (100px)
  4. Set Sort: WBS code ascending, then Activity name ascending.
  5. Set Column totals row: Sum for Planned, Actual, and Variance columns.

Step 6: Filter both components consistently

Both the matrix and the table should show the same data scope:

  1. In the Table component → Filters tab:
    • Add filter: Period date = current period (bind to the edition period end date field).
  2. Repeat the same filter on the Matrix component.

This ensures the matrix totals match the table totals.


Step 7: Add a slicer (optional)

If the report audience needs to filter by WBS branch:

  1. Insert a Slicer component above the matrix (type: Hierarchy).
  2. Bind to the WBS field in the cost section.
  3. Link both the table and matrix to this slicer in their Filters → Slicer settings.

Now selecting a WBS branch in the slicer filters both components simultaneously.


Step 8: Preview and verify

  1. Click Preview.
  2. Compare the matrix column totals against the table column totals — they should match.
  3. Check that the matrix row group expand/collapse works correctly.
  4. Check that long activity names don't overflow the table column — reduce font size or increase column width.
  5. If the table has many rows, enable Pagination in the table settings (10 or 20 rows per page in the viewer).

Step 9: Publish and generate

  1. Save and Publish the output template.
  2. Open the edition → Generate output.
  3. Preview the generated output.
  4. Export as PDF or Excel.

For Excel export: the matrix and table export as separate sheets. The matrix sheet will have the WBS/period cross-tab structure; the table sheet has flat rows.


Good practices

PracticeWhy
Keep both components filtered to the same scopeMismatched totals undermine trust in the report.
Use matrix for pattern, table for auditThe matrix shows where; the table shows what.
Limit matrix to 6–8 column periodsMore periods than that produces an unreadable wide chart.
Use conditional formatting on negative variancesMakes overruns visible without requiring column-by-column scanning.
Add a totals row to the tableMakes the table auditable against the matrix.