Workday Reports Advanced vs. Matrix vs. Composite Guide

Workday Reports: Advanced vs. Matrix vs. Composite Guide

Learn when to use Advanced, Matrix, or Composite reports with real-world examples and best practices.

You open a reporting request from your CFO:

“I need headcount by department, broken down by location and job level, with month-over-month trends and turnover rates.”

You stare at the request. Should you build an Advanced Report? A Matrix Report? A Composite Report? Or maybe three separate reports?

This is where most Workday professionals get stuck. They know how to build reports technically, but they don’t know which report type to use when. So they default to Advanced Reports for everything, then spend hours manipulating data in Excel to get the view they actually need.

Here’s the truth: choosing the wrong report type doesn’t just waste time. It creates slow, unmaintainable reports that confuse users and break during updates.

This guide teaches you how to choose the right report type for every scenario. You’ll learn what each report type does, when to use it, and how to build it correctly with real-world examples.

The Three Report Types: What They Actually Do

Advanced Reports: The List Builder

What It Is:
An Advanced Report displays data from a single business object as a list of rows. Think of it as a detailed table where each row represents one record.

Structure:

  • One row per record (employee, position, transaction, event)
  • Multiple columns showing different fields
  • Can include filters, prompts, sorting, and grouping
  • Can include subtotals and aggregations

Visual Example:

Employee NameHire DateDepartmentLocationJob TitleAnnual Salary
Sarah Johnson2022-03-15EngineeringSan FranciscoSenior Engineer$125,000
Mike Chen2023-01-10SalesNew YorkAccount Executive$95,000
Emily Davis2021-06-20HRChicagoHR Business Partner$105,000

Best For:

  • Employee lists (active headcount, new hires, terminations)
  • Transaction logs (compensation changes, job changes, time off)
  • Detailed records for audits, integrations, or EIB loads
  • Reports that answer: “Show me all [records] where [criteria]”

Not Good For:

  • Pivoting data across multiple dimensions
  • Showing trends over time periods
  • Combining data from multiple business objects

Matrix Reports: The Pivot Table

What It Is:
Matrix Report summarizes numeric data across rows and columns. It’s Workday’s version of an Excel pivot table or crosstab.

Structure:

  • Rows define one dimension (e.g., Department)
  • Columns define another dimension (e.g., Location or Time Period)
  • Cells show aggregated metrics (count, sum, average)
  • Interactive drilling (click to see detail records)

Visual Example:

Headcount by Department and Location

DepartmentSan FranciscoNew YorkChicagoTotal
Engineering4512865
Sales10381563
HR581225
Total605835153

Best For:

  • Summarizing data across two dimensions
  • Headcount analysis (by org, location, job level)
  • Trend analysis over time (monthly, quarterly, yearly)
  • Financial rollups (cost by department and account)
  • Reports that answer: “Show me [metric] broken down by [dimension 1] and [dimension 2]”

Not Good For:

  • Showing raw transaction details
  • Combining multiple unrelated metrics
  • Reports with more than two grouping dimensions

Composite Reports: The Dashboard Builder

What It Is:
Composite Report combines multiple Matrix Reports into a single unified report. It’s how you build executive dashboards and scorecards.

Structure:

  • Multiple sub-reports (each is a Matrix Report)
  • Each sub-report can have different data sources
  • Aligned by common dimension (department, location, time period)
  • Metrics calculated across sub-reports at the composite level

Visual Example:

HR Scorecard by Department

Sub-Report 1: Headcount Trend

DepartmentJan 2025Feb 2025Mar 2025
Engineering606365
Sales586163

Sub-Report 2: New Hires

DepartmentJan 2025Feb 2025Mar 2025
Engineering543
Sales354

Sub-Report 3: Terminations

DepartmentJan 2025Feb 2025Mar 2025
Engineering211
Sales022

Composite Calculation: Turnover Rate

DepartmentJan 2025Feb 2025Mar 2025
Engineering3.3%1.6%1.5%
Sales0%3.3%3.2%

Best For:

  • Executive dashboards (HR scorecard, Finance KPIs)
  • Multi-metric analysis aligned by common dimension
  • Combining HCM + Finance data
  • Reports that answer: “Show me 4-5 related metrics side-by-side”

Not Good For:

  • Simple lists or single-metric analysis
  • Ad-hoc analysis (too complex for quick requests)
  • Reports without a common aligning dimension

Decision Framework: Which Report Type Should I Use?

Use this flowchart to decide:

Question 1: Do I need multiple related metrics from different data sources?

  • Yes → Use Composite Report
  • No → Go to Question 2

Question 2: Do I need to aggregate/summarize data across dimensions?

  • Yes → Use Matrix Report
  • No → Go to Question 3

Question 3: Do I need a detailed list of records?

  • Yes → Use Advanced Report

Real-World Scenario Examples

Scenario 1: “Show me all employees who were hired in the last 90 days”

Report Type: Advanced Report

Why: You need a list of individual employee records. No aggregation needed.

Data Source: Workers

Columns: Employee Name, Employee ID, Hire Date, Department, Manager, Location

Filter: Hire Date is within the last 90 days


Scenario 2: “Show me headcount by department and location”

Report Type: Matrix Report

Why: You need to aggregate (count employees) across two dimensions (department and location).

Data Source: Workers

Rows: Department (grouping)

Columns: Location (grouping)

Measure: Count of Workers


Scenario 3: “Show me monthly headcount, new hires, terminations, and turnover rate by department”

Report Type: Composite Report

Why: You need multiple related metrics (4 different calculations) aligned by common dimensions (department and month).

Sub-Report 1 (Matrix): Headcount by Department and Month

Sub-Report 2 (Matrix): New Hires by Department and Month

Sub-Report 3 (Matrix): Terminations by Department and Month

Composite Calculation: Turnover Rate = (Terminations ÷ Average Headcount) × 100

Building Your First Advanced Report

Let’s build a practical Advanced Report: New Hires in Last 90 Days

Step 1: Create the Report

  1. Search for Create Custom Report
  2. Report Type: Advanced
  3. Data Source: Workers
  4. Report Name: New Hires – Last 90 Days
  5. Click OK

Step 2: Add Columns

Click Add in the Columns section to add fields:

Column 1: Worker (displays employee name)

Column 2: Employee ID

Column 3: Hire Date

Column 4: Primary Position

Column 5: Worker’s Manager (manager name)

Column 6: Location

Column 7: Cost Center

Column 8: Time Type (Full-Time, Part-Time)

Pro Tip: Rename column labels for clarity. “Worker” → “Employee Name”, “Worker’s Manager” → “Manager”

Step 3: Add Filter

Click Filter tab.

Filter Condition: Hire Date is within the last 90 days

Configuration:

  • Field: Hire Date
  • Operator: Is Within
  • Value: Last 90 days (Workday calculates dynamically)

Alternative: Use Prompt instead of hard-coded filter to let users choose the date range at runtime.

Step 4: Add Sorting

Click Sort tab.

Primary Sort: Hire Date (descending – newest hires first)

Secondary Sort: Worker (ascending – alphabetical within same hire date)

Step 5: Add Grouping (Optional)

Click Sort tab, scroll to Grouping.

Group By: Department

This groups all new hires by their department, with subtotals showing count per department.

Enable: Summarize Detail Rows (checkbox)

Result: Report shows:

  • Engineering: 12 new hires
    • Sarah Johnson – 2025-03-15
    • Mike Chen – 2025-03-10
  • Sales: 8 new hires
    • Emily Davis – 2025-03-20

Step 6: Test and Share

Click OK to save and run the report.

Validate:

  • Do all employees shown have hire dates within last 90 days?
  • Are columns displaying correctly?
  • Is sorting working as expected?

Share the Report:

  1. Click Share icon
  2. Select users or security groups
  3. Grant View permission
  4. Save

Building Your First Matrix Report

Let’s build: Headcount by Department and Location

Step 1: Create the Report

  1. Search for Create Custom Report
  2. Report Type: Matrix
  3. Data Source: Workers
  4. Report Name: Headcount by Department and Location
  5. Click OK

Step 2: Configure Rows

Rows Axis: Department (Supervisory Organization)

This defines what appears down the left side of your matrix.

Row Field: Organization > Name (displays department names)

Sort: Ascending (alphabetical order)

Step 3: Configure Columns

Columns Axis: Location

This defines what appears across the top of your matrix.

Column Field: Location > Name (displays location names like “San Francisco”, “New York”)

Sort: Ascending (alphabetical order)

Step 4: Configure Measure

Measure: What you’re counting or summing in each cell.

Metric: Count of Workers

Aggregation Method: Count (default for counting records)

Alternative measures:

  • Sum of Annual Salary (for compensation analysis)
  • Average of Tenure (for tenure analysis)

Step 5: Add Filter (Optional)

Click Filter tab.

Filter: Worker Status = Active

This excludes terminated employees from the headcount.

Step 6: Enable Drilling

Drilling lets users click a cell to see the detail records.

Configuration: Enabled by default in Matrix Reports

How It Works:
User clicks cell showing “45 employees in Engineering – San Francisco”
→ Workday displays list of those 45 employees with details

Step 7: Add Prompts (Optional)

Prompts let users filter the report at runtime.

Add Prompt: As of Date

Use Case: Users can run the report “as of December 31, 2024” to see historical headcount.

Configuration:

  1. Click Prompts tab
  2. Add As of Date prompt
  3. Default value: Today (report defaults to current headcount)
  4. Users can override to see historical data

Step 8: Test and Visualize

Click OK to save and run.

Validate:

  • Do row totals match expected headcount per department?
  • Do column totals match expected headcount per location?
  • Does grand total match total active headcount?

Add Chart Visualization:

  1. Click Add Chart
  2. Chart Type: Stacked Bar Chart
  3. X-Axis: Department
  4. Y-Axis: Headcount
  5. Stack By: Location (different colors for each location)

Result: Visual chart showing headcount distribution across departments and locations.

Building Your First Composite Report

Let’s build: HR Monthly Scorecard (Headcount, Hires, Terms, Turnover)

Step 1: Build the Matrix Sub-Reports First

You need to create each Matrix Report separately before combining them.

Sub-Report 1: Monthly Headcount by Department

  1. Create Matrix Report
  2. Data Source: Workers (Snapshot-based for historical data)
  3. Rows: Department
  4. Columns: Month (from Period Reporting Calendar)
  5. Measure: Count of Workers
  6. Filter: Worker Status = Active (at snapshot date)
  7. Save As: Headcount by Department – Monthly

Sub-Report 2: New Hires by Department and Month

  1. Create Matrix Report
  2. Data Source: Hire Employee Event
  3. Rows: Position > Organization (Department)
  4. Columns: Event Date > Month
  5. Measure: Count of Events
  6. Save As: New Hires by Department – Monthly

Sub-Report 3: Terminations by Department and Month

  1. Create Matrix Report
  2. Data Source: Terminate Employee Event
  3. Rows: Position > Organization (Department)
  4. Columns: Event Date > Month
  5. Measure: Count of Events
  6. Save As: Terminations by Department – Monthly

Step 2: Create the Composite Report

  1. Search for Create Custom Report
  2. Report Type: Composite
  3. Report Name: HR Monthly Scorecard
  4. Click OK

Step 3: Add Sub-Reports

Click Add Sub-Report for each Matrix Report you created.

Sub-Report 1: Headcount by Department – Monthly

Sub-Report 2: New Hires by Department – Monthly

Sub-Report 3: Terminations by Department – Monthly

Step 4: Align Sub-Reports

Alignment ensures data from different sub-reports lines up correctly.

Align By:

  • Rows: Department (common dimension across all sub-reports)
  • Columns: Month (common time dimension)

Result: All three metrics display side-by-side for each department and month.

Step 5: Add Composite Calculations

Composite Calculations perform math across sub-reports.

Calculation: Turnover Rate

Formula: (Terminations ÷ Average Headcount) × 100

Configuration:

  1. Click Add Calculation
  2. Calculation Name: Turnover Rate
  3. Formula Type: Custom
  4. Formula:text(Sub-Report[Terminations].Measure / ((Sub-Report[Headcount].Measure + Sub-Report[Headcount].Measure.PriorPeriod) / 2)) * 100

What This Does:

  • Divides terminations by average headcount (current month + prior month ÷ 2)
  • Multiplies by 100 to get percentage
  • Displays as new row in the composite report

Calculation: Net Headcount Change

Formula: Hires – Terminations

Configuration:

textSub-Report[New Hires].Measure - Sub-Report[Terminations].Measure

Step 6: Format the Report

Add Section Headers:

  • Section 1: Headcount Metrics
  • Section 2: Movement Metrics
  • Section 3: Turnover Analysis

Conditional Formatting:

  • Turnover Rate > 5%: Red (concerning)
  • Turnover Rate 3-5%: Yellow (monitor)
  • Turnover Rate < 3%: Green (healthy)

Number Formatting:

  • Headcount: Whole numbers (no decimals)
  • Turnover Rate: One decimal place with % symbol (e.g., 3.2%)

Step 7: Test and Validate

Run the composite report.

Validation Checks:

  • Do headcount numbers match your HRIS records?
  • Do new hires + terminations align with HR transaction logs?
  • Does turnover calculation make sense? (formula working correctly?)
  • Are all departments showing data? (check for alignment issues)

Common Issues:

  • Misaligned departments: Sub-reports use different organization hierarchies. Standardize to Supervisory Organizations.
  • Missing time periods: One sub-report has data for January, another doesn’t. Add zero-value handling.

Advanced Techniques: Calculated Fields

Calculated Fields let you create custom formulas and logic within reports.

When to Use Calculated Fields

Scenario 1: Custom Tenure Calculation

Need: Show employee tenure in “Years.Months” format (e.g., 3.5 years = 3 years, 6 months)

Advanced Report Column: Tenure (Calculated Field)

Formula:

textDATEDIFF(Hire Date, Today, "years") + "." + MOD(DATEDIFF(Hire Date, Today, "months"), 12)

Result: Employee hired March 1, 2022 shows “3.9” (3 years, 9 months as of Dec 2025)

Scenario 2: Compensation Ratio (Compa-Ratio)

Need: Compare employee salary to midpoint of their pay grade

Matrix Report Measure: Compa-Ratio (Calculated Field)

Formula:

text(Annual Salary / Compensation Grade Midpoint) * 100

Result: Employee earning $90K in grade with $100K midpoint shows 90% (below midpoint)

Scenario 3: Conditional Text Labels

Need: Tag employees as “New Hire”, “Tenured”, or “Long-Term” based on tenure

Advanced Report Column: Tenure Category (Calculated Field)

Formula:

textIF(Tenure < 1, "New Hire",
   IF(Tenure >= 1 AND Tenure < 5, "Tenured",
      "Long-Term"))

Result:

  • Employee with 6 months tenure: “New Hire”
  • Employee with 3 years tenure: “Tenured”
  • Employee with 8 years tenure: “Long-Term”

Creating a Calculated Field

  1. From your Custom Report editor, click Columns tab
  2. Click Add > Calculated Field
  3. Field Name: Tenure Category
  4. Field Type: Text (or Number, Date, depending on formula output)
  5. Formula: Enter your formula using Workday formula syntax
  6. Available Functions:
    • DATEDIFF (date arithmetic)
    • IF/THEN/ELSE (conditional logic)
    • SUM, AVG, COUNT (aggregations – Matrix only)
    • CONCAT (text concatenation)
    • ROUND, CEILING, FLOOR (number formatting)
  7. Click Validate to check formula syntax
  8. Click OK to save

Report Performance Optimization

Why Report Performance Matters

Slow reports frustrate users, time out during scheduled runs, and consume system resources.

Performance Best Practices

1. Filter Early, Filter Often

Bad: Pull all 50,000 workers, then filter in Excel

Good: Filter to active workers in last 6 months (reduces dataset to 2,000 records)

How:

  • Add Worker Status = Active filter
  • Add date range filters (Hire Date, As of Date)
  • Use Prompts to let users narrow scope

2. Limit Columns in Advanced Reports

Bad: Include 40 fields “just in case”

Good: Include only fields users actually need (10-15 columns max)

Why: Each column adds processing time and data retrieval overhead.

3. Use Summarize Detail Rows in Advanced Reports

Scenario: You need totals by department, not every individual employee.

Solution: Enable Summarize Detail Rows in Sort tab

Result: Report aggregates data automatically (like a Matrix), runs faster than full detail list.

4. Avoid Cross-Business Object Relationships When Possible

Bad: Advanced Report pulling from Workers + Positions + Compensation + Benefits (4 objects)

Good: Use Matrix Report with single business object, or Composite to separate concerns

Why: Cross-object joins slow down queries significantly.

5. Schedule Large Reports to Run Off-Hours

Scenario: Monthly headcount report with 3 years of historical data (slow)

Solution:

  1. Navigate to Edit Custom Report
  2. Configure Schedule
  3. Run at 2:00 AM when system load is low
  4. Deliver via email or save to shared folder

6. Use Data Sources Wisely

For Historical Trending: Use Snapshot-based Data Sources (Workers – Snapshot) instead of live Workers object

Why: Snapshots are pre-aggregated and optimized for time-series analysis.


Common Mistakes and How to Avoid Them

Mistake 1: Using Advanced Report When Matrix Is Better

Scenario: Request is “Show me headcount by department”

What People Do: Build Advanced Report listing all employees, export to Excel, create pivot table

What They Should Do: Build Matrix Report with Department as Row, Count of Workers as Measure

Impact: 10 minutes in Excel becomes 30 seconds in Workday.

Mistake 2: Too Many Calculated Fields in One Report

Problem: Report has 15 calculated fields with nested IF statements and cross-field references.

Impact: Report takes 5 minutes to run, times out in production.

Solution:

  • Move complex calculations to Business Object Calculated Fields (reusable across reports)
  • Simplify formulas (break complex logic into multiple simpler fields)
  • Use Composite Reports to separate calculations across sub-reports

Mistake 3: Not Sharing Reports with Appropriate Security

Problem: You built a great report, but users can’t find it or don’t have permission to run it.

Solution:

  • Share report with Security Groups (not individual users)
  • Grant appropriate permissions:
    • View: Users can run and view results
    • Modify: Users can edit the report definition (usually admins only)
  • Add report to relevant Dashboard or Report Category for discoverability

Mistake 4: Hard-Coding Filters Instead of Using Prompts

Problem: Report filters to “Hire Date between Jan 1, 2025 and March 31, 2025” (hard-coded)

Impact: Report is useful for Q1 2025 only. Next quarter, you have to edit and update the report.

Solution: Use Prompts

  • Add Start Date prompt
  • Add End Date prompt
  • Users can run report for any date range without editing definition

Mistake 5: No Testing with Large Data Sets

Problem: Report works great in test tenant with 100 employees. In production with 50,000 employees, it times out.

Solution:

  • Test in Sandbox with production-like data volumes
  • Run performance checks before deploying
  • Add filters to limit data scope if needed

Real-World Report Examples

Example 1: Compensation Analysis Report (Advanced)

Business Need: HR needs list of all employees with compensation below market midpoint for their pay grade.

Report Type: Advanced Report

Data Source: Workers

Columns:

  • Employee Name
  • Employee ID
  • Job Profile
  • Compensation Grade
  • Annual Salary
  • Compensation Grade Midpoint (reference field)
  • Compa-Ratio (calculated: Salary ÷ Midpoint × 100)
  • Variance from Midpoint (calculated: Salary – Midpoint)

Filter:

  • Worker Status = Active
  • Compa-Ratio < 90% (below market)

Sorting: Compa-Ratio ascending (lowest paid first)

Use Case: Annual compensation review to identify underpaid employees.

Example 2: Termination Trend Analysis (Matrix)

Business Need: Leadership wants to see termination trends over the past 12 months by department.

Report Type: Matrix Report

Data Source: Terminate Employee Event

Rows: Organization (Department)

Columns: Event Date > Month

Measure: Count of Terminations

Filter: Event Date is within the last 12 months

Chart: Line chart showing termination trend by department

Use Case: Monthly leadership review to identify retention issues.

Example 3: Executive HR Dashboard (Composite)

Business Need: CEO wants single-page HR scorecard showing headcount, hiring, turnover, and diversity metrics.

Report Type: Composite Report

Sub-Reports:

1. Headcount Trend (Matrix)

  • Rows: Time Period (Month)
  • Measure: Count of Active Workers

2. Hiring by Source (Matrix)

  • Rows: Recruiting Source
  • Measure: Count of Hires

3. Turnover Rate (Matrix)

  • Rows: Department
  • Columns: Month
  • Measure: Termination Count
  • Composite Calculation: Turnover % = (Terms ÷ Avg Headcount) × 100

4. Diversity Metrics (Matrix)

  • Rows: Gender
  • Columns: Job Level
  • Measure: Count of Workers

Alignment: By Time Period (Month)

Use Case: Monthly executive briefing, CEO board presentation.

Your Report Type Cheat Sheet

QuestionReport TypeExample
Need a list of individual records?Advanced“Show me all new hires in Q1”
Need to aggregate across 1-2 dimensions?Matrix“Headcount by dept and location”
Need to combine multiple metrics?Composite“HR scorecard: headcount, hires, terms, turnover”
Need detailed transaction history?Advanced“All compensation changes in 2024”
Need trend analysis over time?Matrix“Monthly hiring trend by department”
Need pivot table / crosstab?Matrix“Average salary by job level and location”
Need executive dashboard with 4-5 KPIs?Composite“Finance scorecard: budget, actuals, variance, forecast”
Need to export for integration/EIB?Advanced“All active workers with full demographic data”
Need drillable interactive analysis?Matrix“Headcount by org (click to see employees)”

What You’ve Learned

You now understand:

✅ The three core Workday report types and when to use each

✅ How to build Advanced Reports for detailed lists and transaction logs

✅ How to build Matrix Reports for aggregations, pivots, and trends

✅ How to build Composite Reports for multi-metric dashboards

✅ How to use Calculated Fields for custom formulas and logic

✅ Performance optimization techniques to keep reports fast

✅ Common mistakes to avoid and best practices to follow

The difference between a junior and senior Workday professional isn’t knowing how to build reports—it’s knowing which report type to build for each business need.

Choose wisely. Build efficiently. Deliver insights, not just data.

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Prev
Workday Onboarding Checklist Setup: A Practical Guide
Workday Onboarding Checklist Setup

Workday Onboarding Checklist Setup: A Practical Guide

Build onboarding experiences that new hires actually love

Next
Connecting Workday Financials, End to End
Connecting Workday Financials

Connecting Workday Financials, End to End

Learn how to connect Workday Financials to ERPs, banks and payroll using proven

You May Also Like