Workday custom reports: a complete beginner's guide.
Six HR analytics reports — Headcount, Pipeline, Comp, DE&I, Recruitment, Productivity — built click-by-click for someone who has never opened Workday, then connected to Power BI.
Most "Workday for analysts" guides assume you know which menu is which. This one doesn't. It walks a first-time user through building six HR analytics reports that feed a senior-partner dashboard — every click, every field name, every place to type. Roughly 30–40 hours of work spread over six to eight weeks.
The six reports we'll build:
- Headcount & Attrition — the foundation
- Talent Pipeline & Flight Risk — who's ready, who's leaving
- Compensation & Cost — the sensitive one
- Diversity, Equity & Inclusion — with cell suppression
- Recruitment & Onboarding — the pipeline
- Productivity (Worker Dimension) — for joining to billing in Power BI
Then we'll connect all six to Power BI through Workday's RaaS web service.
How to read this guide
- Bold text in quotes = what you type or what a button is labelled. Example: type "Create Custom Report".
- Arrows (→) = a menu path. Example: Actions → Web Service → View URLs.
- A green "What you see" box describes the screen you should be looking at.
- A red "Important" box flags something that will break the report or expose sensitive data if ignored.
- A blue "Note" box is helpful context.
Don't skip steps. Don't improvise. Workday rewards precision and punishes guessing.
Section 1 — Workday basics
1.1 Logging in
- Open Chrome or Edge.
- Go to your firm's Workday URL — something like
https://www.myworkday.com/yourfirmname/d/home.htmld. - Sign in with your firm credentials (usually single sign-on).
The Workday home page. Top banner: Workday logo on the left, a search bar in the middle, your profile photo or initials on the right.
1.2 The search bar is your most important tool
In Workday you rarely use menus. Almost every report, task, and screen is reached by typing its name into the search bar.
- Click into the search bar.
- Type a few letters. Workday shows suggestions as you type.
- Click the one you want.
Suggestions are grouped — "Tasks and Reports," "People," "Organisations." Click "More Categories" at the bottom for the rest.
1.3 Terms you must know
- Task — an action. Tasks change data or launch wizards.
- Report — a screen that displays data. Reports don't change anything.
- Primary Business Object (PBO) — the central "thing" your report is about. For HR reports it's usually Worker.
- Data Source — a pre-built collection of records of a PBO. "Workers as of Date" returns every Worker active on a date you pick.
- Field — a single piece of information on the PBO.
- Calculated Field — a custom field you define once and reuse.
- Prompt — a question the user is asked when the report runs.
- Filter — a rule that excludes records.
- Domain — a security bucket. No access to the domain → field is invisible.
- Supervisory Organisation (Sup Org) — Workday's tree of who reports to whom.
- RaaS — turning a report into a web URL so Power BI can pull it.
1.4 The Related Actions menu
Almost every blue, underlined item in Workday has a hidden menu — the Related Actions menu, sometimes called the "twinkie."
- Hover over any blue item.
- A small three-dots-in-a-box icon appears to its right.
- Click it. A menu opens with options like Edit, Web Service, Schedule, Share.
You'll use Related Actions constantly. Whenever a step says "open Related Actions on the report," this is what it means.
Section 2 — Confirm your security access
If you don't have access to a field, it won't appear when you build a report — and you won't be told why. Sort security first.
2.1 Check what you currently have
- Search "My Account" and open the report.
- Scroll to the "Workday Account" section. You'll see your Role-Based and User-Based Security Groups.
- Screenshot the list — you'll need it when asking the Workday Security Admin for missing access.
2.2 Domains you need
Ask the Workday Security Admin to confirm View access on each:
- Worker Data: Public Worker Reports — basic name, job, org info
- Worker Data: Active and Terminated Workers — for attrition
- Worker Data: Current Staffing Information — job profile, level, supervisor
- Compensation Data: Employee Compensation Information — base pay, bonus
- Manage: Headcount — headcount and position data
- Job Information — job profile and grade data
- Worker Data: Personal Information — gender, ethnicity, DOB
- Reports: Custom Reports — ability to create custom reports
- Set Up: Tenant Setup - Reports — ability to create calculated fields
If you don't have "Reports: Custom Reports," stop and get that access before going further. Nothing in this guide works without it.
2.3 Smoke test
- Search "Create Custom Report".
- If a form opens asking for Report Name and Report Type, you're good — click Cancel.
- If you see "You do not have access to this task," contact the Admin.
Section 3 — One-time setup
Do this section once. You'll reuse everything in it across all six reports.
3.1 Create the report folder
- Search "Create Custom Report Folder" and open the task.
- Folder Name: HR Analytics – Partner Dashboard.
- Click the orange OK, then Done.
3.2 Calculated fields you'll reuse everywhere
You'll build six. The pattern is the same every time: search "Create Calculated Field," pick a Function, fill the inputs, save.
CF_Tenure_Years
- Search "Create Calculated Field" → open it.
- Field Name: CF_Tenure_Years.
- Business Object: Worker.
- Function: Date Difference. Click OK.
- Start Date Field: Continuous Service Date (or Hire Date if your firm doesn't use CSD).
- End Date Field: Today.
- Output Format: Years. Click OK, then Done.
CF_Time_In_Role_Months
Same pattern. Field Name: CF_Time_In_Role_Months. Function: Date Difference. Start Date Field: Position Entry Date. End Date Field: Today. Output Format: Months.
CF_Class_Year
Used to group associates by hire-year cohort (Class of 2022, etc.).
- Field Name: CF_Class_Year.
- Business Object: Worker.
- Function: Date to Text. Click OK.
- Source Date Field: Hire Date.
- Format Pattern:
yyyy(four lowercase y's).
CF_Level_Band
Maps each Job Profile to a standard level: Partner / Counsel / Senior Associate / Associate / Paralegal / Business Services.
- Field Name: CF_Level_Band.
- Function: Evaluate Expression. Click OK.
A grid with three columns: Order, Conditions, Return Value.
- Click the + on the left of the grid to add a row.
- Click into the Conditions cell. A condition builder opens.
- Source Field: Job Profile. Operator: in the selection list. Value: select every Job Profile that maps to Partner. Ctrl/Cmd-click for multiple.
- Return Value: Partner.
- Add a row for each remaining level. Each row maps a set of Job Profiles to its Return Value.
- Final row: Conditions = All Other Values, Return Value = Unmapped.
- Click OK → Done.
Order matters. Workday evaluates row 1 first. First match wins. Put the most specific rules at the top.
CF_Practice_Group
Pulls the Practice Group from the Worker's organisations. Assumes your firm has a custom org type called "Practice".
- Field Name: CF_Practice_Group.
- Function: Lookup Related Value. Click OK.
- Source Field: Organizations by Type for Worker.
- Organization Type: Practice (or whatever your firm calls it).
- Return Field: Organization Name.
CF_Regrettable_Flag
- Field Name: CF_Regrettable_Flag.
- Function: Evaluate Expression. Click OK.
- Row 1: Termination Reason in {Better Opportunity, Compensation, Relocation, Resignation – Voluntary} → Regrettable.
- Row 2: Termination Reason in {Performance, Misconduct, Reduction in Force, Retirement, Deceased} → Non-Regrettable.
- Row 3: All Other Values → Not Applicable.
Your firm's exact Termination Reasons will differ. Run the "View Termination Reasons" report first, then map them with HR Leadership's input.
Section 4 — Report 1: Headcount & Attrition
The foundation of the partner dashboard. Headcount by Practice × Level, plus 12-month attrition.
4.1 Start the report
- Search "Create Custom Report" → open it.
A form with Report Name, Report Type, Data Source, Business Object, and a few checkboxes.
- Report Name: HR – Headcount and Attrition.
- Report Type: Advanced.
- Data Source: Workers as of Date.
- Business Object auto-fills to Worker — leave it.
- Check "Optimized for Performance".
- Check "Web Service Enabled" (required for Power BI).
- Click OK.
Report Writer with tabs across the top: Columns, Sort, Filter, Prompts, Output, Share, Advanced, Schedule, History.
4.2 Add columns
Click the Columns tab, then the + to add a row. Repeat for each:
- Worker
- Employee ID
- Job Profile
- CF_Level_Band
- CF_Practice_Group
- Primary Work Location
- Hire Date
- Continuous Service Date
- CF_Tenure_Years
- Termination Date
- Termination Reason
- CF_Regrettable_Flag
- Active Status
- Manager
Drag rows by the grid handle on the left to reorder.
If a calc field doesn't appear in the Field picker, it was saved under a different Business Object, or you don't have the security domain it depends on.
4.3 Add the As-of-Date prompt
- Prompts tab → +.
- Field: Effective As Of Date (or "As Of Date" depending on tenant).
- Required: checked.
- Default Value: type Today and pick the Today function.
4.4 Add filters
- Filter tab → Filter Condition: And.
- + → Field: Active Status, Operator: equal to, Value: Yes.
- + → Field: Termination Date, Operator: greater than or equal to, Value: Today − 365.
- Group the two rows: (Active Status = Yes) OR (Termination Date ≥ Today − 365) using the parenthesis controls.
4.5 Add a Supervisory Org prompt
Back to Prompts → +:
- Field: Supervisory Organization
- Required: unchecked
- Multi-Select: checked
- Include Subordinate Organizations: checked
4.6 Test-run
- Click View (top-right) → Run.
- Leave As-of Date as Today; leave Sup Org blank → OK.
- Spot-check: pick a Partner you know — does their Level Band say Partner?
4.7 Build a Matrix version for Practice × Level
- Search "Create Custom Report".
- Report Name: HR – Headcount Matrix (Practice x Level).
- Report Type: Matrix.
- Same Data Source, Business Object, and checkboxes as 4.1.
- Row Grouping: CF_Practice_Group.
- Column Grouping: CF_Level_Band.
- Summarized Fields: Worker (Count Unique).
- Reuse the filters and prompts from 4.3–4.5.
4.8 Save into the folder
Open the report → Edit → scroll to Save in Folder → pick HR Analytics – Partner Dashboard.
Section 5 — Report 2: Talent Pipeline & Flight Risk
Who's ready for promotion. Who's quietly looking.
5.1 Create the report
- Search "Create Custom Report".
- Report Name: HR – Talent Pipeline and Flight Risk.
- Report Type: Advanced.
- Data Source: All Workers (real-time, slower).
- Business Object: Worker. Optimized for Performance + Web Service Enabled both checked.
5.2 Add columns
Worker, Employee ID, Job Profile, CF_Level_Band, CF_Practice_Group, CF_Class_Year, CF_Tenure_Years, CF_Time_In_Role_Months, Last Promotion Date, Most Recent Performance Review Rating, Manager, Compa-Ratio.
5.3 Build the flight-risk score
Three component calc fields, then sum them:
- CF_Comp_Risk — Evaluate Expression. Compa-Ratio < 0.95 → 2, else 0.
- CF_Stale_Role_Risk — CF_Time_In_Role_Months > 36 AND Last Promotion Date > 36 months ago → 2, else 0.
- CF_Perf_Trend_Risk — Latest Performance Rating < Prior Year Rating → 1, else 0.
Then:
- CF_Flight_Risk_Score — Arithmetic Calculation:
CF_Comp_Risk + CF_Stale_Role_Risk + CF_Perf_Trend_Risk. - CF_Flight_Risk_Bucket — Evaluate Expression: 0–1 = Low, 2–3 = Medium, 4+ = High.
5.4 Filters and prompts
- Filter: Active Status = Yes.
- Filter: CF_Level_Band in {Associate, Senior Associate, Counsel}.
- Prompts: Supervisory Organization (multi-select, include subordinates), CF_Practice_Group (multi-select).
Section 6 — Report 3: Compensation & Cost
This is the most sensitive report in the dashboard. Confirm with HR Leadership and Compliance who can see it before saving. Do not share with the broader analytics team.
6.1 Create the report
- Create Custom Report.
- Report Name: HR – Compensation and Cost (Restricted).
- Report Type: Advanced.
- Data Source: Workers with Compensation.
- Business Object: Worker. Both checkboxes checked.
6.2 Add columns
Worker, Employee ID, CF_Level_Band, CF_Practice_Group, Primary Work Location, Annualized Base Pay, Target Bonus Amount, Last Actual Bonus Amount, Total Annualized Allowance, Total Annualized Salary and Allowances, Compensation Grade, Compensation Grade Profile Midpoint, Compa-Ratio.
6.3 Fully-loaded cost calc field
- Field Name: CF_Fully_Loaded_Cost.
- Function: Arithmetic Calculation.
- Expression:
(Annualized Base Pay + Target Bonus Amount + Total Annualized Allowance) × 1.30.
1.30 is a placeholder for benefits load. Get the real multiplier from Finance — it usually varies by country.
6.4 Filter, prompts, save
Filter: Active Status = Yes. Prompts: Supervisory Organization (optional, multi-select, include subordinates). Save to the folder.
Section 7 — Report 4: DE&I
Personal data (gender, ethnicity) lives under separate privacy rules. Get written sign-off from Legal/Privacy before publishing. Always suppress cells with fewer than five people.
7.1 Representation snapshot
- Create Custom Report.
- Report Name: HR – DEI Representation by Level.
- Report Type: Matrix.
- Data Source: Workers as of Date.
- Row Grouping: CF_Level_Band.
- Column Grouping: Gender.
- Summarized Fields: Worker (Count Unique).
7.2 Add suppression logic
- Calc field CF_Suppressed_Count — Evaluate Expression: if Count Unique Worker < 5 → blank, else the count.
- Replace the Summarized Field with CF_Suppressed_Count.
7.3 Duplicate for ethnicity
Open Related Actions on the report tile → Custom Report → Copy. Rename to HR – DEI Representation by Ethnicity. Change Column Grouping from Gender to Ethnicity.
7.4 Promotion and attrition rate
- HR – DEI Promotion Rate — calc field
(Promotions last 12 months) / (Avg Headcount), grouped by Gender × Level. - HR – DEI Attrition Rate — calc field
(Terminations last 12 months) / (Avg Headcount), grouped by Gender × Level.
Section 8 — Report 5: Recruitment & Onboarding
8.1 Job requisition pipeline
- Create Custom Report.
- Report Name: HR – Recruitment Pipeline.
- Report Type: Advanced.
- Data Source: All Job Requisitions.
- Business Object: Job Requisition. Both checkboxes checked.
Columns: Job Requisition ID, Job Posting Title, Job Profile, Supervisory Organization, Primary Location, Recruiting Start Date, Target Hire Date, Filled Date, Status, Hiring Manager, Primary Recruiter, Number of Candidates, Number of Offers Extended, Number of Offers Accepted.
Calc field CF_Days_To_Fill: Date Difference between Recruiting Start Date and Filled Date in Days.
8.2 Source of hire
- Create Custom Report again.
- Report Name: HR – Source of Hire.
- Report Type: Matrix.
- Data Source: Candidates. Business Object: Candidate.
- Row Grouping: Source.
- Column Grouping: Candidate Stage.
- Summarize: Candidate ID (Count Unique).
Section 9 — Report 6: Productivity (Worker dimension)
Billable hours don't live in Workday — they're in Aderant, Elite 3E, or Intapp. This report just builds the Worker dimension you'll join in Power BI.
- Create Custom Report.
- Report Name: HR – Worker Dimension for Billing Join.
- Report Type: Advanced.
- Data Source: All Workers. Business Object: Worker. Both checkboxes checked.
Columns: Worker, Employee ID, CF_Level_Band, CF_Practice_Group, Primary Work Location, Standard Weekly Hours, Hire Date, Termination Date, Active Status, Manager.
Filter: Active Status = Yes OR Termination Date ≥ Today − 730 days.
In Power BI, join this to the billing system's timekeeper table on Employee ID and calculate Utilisation and Realisation there.
Section 10 — Sharing reports
Reports are private by default. Until you share, only you can run them.
- Open the report. Hover the title → Related Actions.
- Custom Report → Share.
A Share screen with two options: "Share with specific authorized groups and users" and "Share with all authorized users."
- Pick "Share with specific authorized groups and users."
- Authorized Groups: add the security groups (e.g. "Partners," "HR Leadership").
- Authorized Users: named individuals (sparingly).
- OK → Done.
For Compensation and DE&I reports, never pick "Share with all authorized users." Limit to named groups only.
Section 11 — Scheduling
11.1 Schedule a PDF email
- Open the report. Related Actions → Schedule → Schedule a Report.
A wizard with steps: Schedule, Output, Notification, Filter, Prompts.
- Schedule: Recurrence (Weekly, Monday), Run Time (e.g. 06:00), Time Zone.
- Output: Format = PDF, Page Orientation = Landscape.
- Notification: add recipients. Check "Include link to the report."
- Prompts: fill in defaults.
- OK to save.
11.2 Verify it ran
Search "Process Monitor" or "My Scheduled Reports". Find your instance, check status.
Section 12 — Connect each report to Power BI
12.1 Get the OData URL
- Open the report. Hover title → Related Actions → Web Service → View URLs.
A page listing URL formats: WSDL, REST Workday XML, REST Workday JSON, Atom, RSS.
- Right-click REST Workday XML → Copy link address.
12.2 Create the Integration System User
Power BI should authenticate as a service account, not as you.
- Ask the Workday Admin to create an ISU, e.g.
ISU_PBI_HR_Analytics. - Have them assign it to a security group with the same domains you used.
- Have them share each report with that ISU's group.
- Receive the username and password via password manager.
12.3 Pull into Power BI Desktop
- Open Power BI Desktop.
- Get Data → OData feed.
- Paste the REST Workday XML URL → OK.
- Authentication: Basic. Enter ISU credentials → Connect.
- Navigator opens. Check the report → Load.
- Repeat for each of the six reports.
12.4 Refresh schedule in Power BI Service
- Publish to the Power BI Service.
- Dataset → Settings → Scheduled Refresh.
- Enter ISU credentials under Data Source Credentials.
- Schedule: Daily 5 AM for Headcount, Recruitment, Pipeline. Weekly for Comp. Monthly for DE&I.
Section 13 — Common problems
A field is missing from the Field picker. You don't have the security domain that owns it. Ask the Admin which domain owns the field and request access.
The report runs but returns zero rows. A filter is too restrictive. Temporarily delete all filters, run, then add them back one at a time.
The Web Service URL returns Access Denied. The ISU doesn't have the report shared with it, or doesn't have the right domains.
Calculated field doesn't appear in the picker. It was saved with the wrong Business Object.
Matrix cells say "Not Authorized." You're trying to summarise a field you can't read. Pick a different Summarise field.
The report runs too slow. Confirm Optimized for Performance is checked; switch to an indexed data source; add stricter filters early; remove unused calc fields; limit the Sup Org scope when testing.
Appendix A — Build order and effort
| Week | Task | Hours | Risk |
|---|---|---|---|
| 1 | Sections 1–2: basics, security access | 4 | Low |
| 2 | Section 3: folder + six calculated fields | 6 | Medium |
| 3 | Section 4: Headcount & Attrition | 6 | Medium |
| 4 | Section 8: Recruitment | 4 | Low |
| 5 | Section 6: Compensation + Legal review | 6 | High |
| 6 | Section 5: Talent Pipeline + Flight Risk | 8 | High |
| 7 | Section 7: DE&I + Legal sign-off | 6 | High |
| 8 | Sections 9 + 12: Worker dimension + Power BI | 6 | Medium |
Appendix B — Where to click quick reference
| I want to… | Type this into the search bar |
|---|---|
| Build a new report | Create Custom Report |
| Build a new calculated field | Create Calculated Field |
| Create a folder for reports | Create Custom Report Folder |
| Edit an existing report | Edit Custom Report |
| Copy a report | Copy Custom Report |
| See reports I own | My Reports |
| See fields on a Business Object | View Business Object |
| Check my security | My Account |
| Check what security a field needs | View Security for Securable Item |
| Schedule a report | Schedule a Report |
| Check on scheduled reports | Process Monitor |
| Get the Web Service URL | Open report → Related Actions → Web Service → View URLs |
| Share a report | Open report → Related Actions → Custom Report → Share |
Appendix C — Glossary
| Term | Meaning |
|---|---|
| Advanced Report | Most flexible report type. Default for full control. |
| Business Object | The "thing" the report is about. |
| Calculated Field | Custom field you define once, reuse anywhere. |
| Data Source | Pre-built collection of records of a Business Object. |
| Domain | Security bucket containing one or more fields. |
| Evaluate Expression | Calc-field function that maps conditions to return values. |
| Filter | Rule that excludes records. |
| ISU | Integration System User — service account for Power BI etc. |
| Matrix Report | Pivot-style report with Row, Column, Summarised fields. |
| PBO | Primary Business Object — the report's main object. |
| Prompt | Question the report asks when it runs. |
| RaaS | Reports as a Service — turning a report into a URL. |
| Related Actions | The three-dot menu next to every blue item. |
| Sup Org | Supervisory Organisation. |
| Web Service Enabled | Checkbox required for Power BI to pull the report. |
That's the build. The six reports together give the partner one place to see the firm — headcount, who's leaving, who's ready to step up, what people cost, where the diversity funnel leaks, what's in the recruiting pipeline, and how productive everyone is. Done in order, six to eight weeks gets you there.