← bryan.dev / writing
Complete Visual Training

Workday — From Zero to Hero

A practical, visual guide that takes you from never having opened Workday to confidently navigating tenants, building reports, writing calculated fields, and extracting data for downstream analytics. Designed for HR Data Analysts and reporting professionals.

10Modules
40+Diagrams & Tables
0 → HeroSkill Path
HCM + FinCoverage
MODULE 01 Beginner

What Is Workday?

In this module: What Workday is · Tenant concept · Architecture · Navigation basics · Common modules (HCM & Finance)

Workday is a cloud-based enterprise software platform that runs Human Capital Management (HCM), Finance, Payroll, and Planning for thousands of organizations worldwide. Unlike older "ERP" systems (SAP, Oracle EBS, PeopleSoft), Workday was built from the ground up as a single object-oriented database, accessed through a web browser, with one unified data model shared across HR and Finance.

The Tenant Concept

Every customer of Workday is given one or more tenants. A tenant is your private, isolated copy of Workday — your data, your configuration, your security. You will typically see three:

Production (PROD)

The live tenant where real employees, real pay, and real transactions happen.

Implementation (IMPL)

A sandbox-like tenant for configuration and design work. Often refreshed from Production.

Sandbox / Preview

Used to test the next Workday release (Workday updates twice per year — R1 in March, R2 in September).

High-Level Architecture

Users Employees Managers HR / Finance Admins / Analysts Access Layer Browser · Mobile App · REST & SOAP APIs · OAuth / SAML SSO Application Modules HCM Financials Payroll Recruiting Adaptive Planning Object-Oriented Data Model (Business Objects) One single database — Worker, Position, Org, Ledger, Cost Center, Worktag, etc.
Figure 1.1 — Everything in Workday eventually reads from or writes to the unified object model at the bottom.

The Workday Modules You'll Encounter

ModuleWhat It DoesCommon Objects
HCM Core HRWorkers, positions, jobs, supervisory orgs, life-cycle events.Worker, Position, Job Profile, Sup Org
HCM CompensationPay components, merit cycles, bonus plans, stock.Compensation Plan, Comp Grade, Plan Assignment
HCM Talent & PerformanceGoals, performance reviews, succession.Performance Review, Goal, Talent Card
HCM RecruitingJob requisitions, candidates, offers.Job Requisition, Candidate, Job Application
HCM Absence & TimePTO, leave, timesheets.Time Off, Absence Case, Time Block
HCM PayrollEarnings, deductions, taxes, pay results.Pay Result, Earning, Deduction
FIN FinancialsGL, AP, AR, journals.Journal, Ledger Account, Company
FIN ProcurementPurchase orders, suppliers, requisitions.Purchase Order, Supplier, Spend Category
FIN ProjectsProject tracking, billing.Project, Project Plan, Project Resource
Shared WorktagsThe tagging system that ties HCM and Finance together.Cost Center, Region, Program, Fund, etc.

Navigation Basics

Workday is driven by three things you'll use every minute:

🔍 The Search Bar

Top of every page. Type a worker, a report name (e.g. "Headcount"), or a task (e.g. "Hire Employee"). Search is your fastest way around.

⋯ Related Actions

The orange/yellow icon next to any object. Click it to see every action you can take on that object (edit, transfer, view history…).

📋 Inbox & Notifications

Inbox = work waiting for you to action. Notifications = informational alerts (e.g., your report finished running).

Pro Tip Anything in Workday that is blue is clickable and will take you to that object's full record. Anything in orange/twinkie icon opens the Related Actions menu.
MODULE 02 Beginner

The Workday Data Model — Business Objects

In this module: What a Business Object is · Instances · The 12 objects you'll meet most · HCM vs Finance objects · Worktags

Workday is object-oriented. Everything — every worker, every position, every cost center, every journal line — is an instance of a Business Object. If you've used Salesforce, think of Business Objects as the equivalent of "tables" — but smarter, because they know how they relate to other objects.

Object vs. Instance

Business Object Worker • Employee ID • Hire Date • Position has many Instance: Jane Doe · ID 10042 · Hired 2021-04-12 Instance: Mark Lee · ID 10043 · Hired 2019-08-01 Instance: Priya Patel · ID 10044 · Hired 2023-01-09
Figure 2.1 — A Business Object is the template (the "class"); each row of data is an Instance.

The 12 Business Objects You Must Know

#Business ObjectWhat It RepresentsKey Fields
1Worker HCMAn employee or contingent worker. The center of HCM.Employee ID, Hire Date, Full Name, Position, Manager
2Position HCMA "seat" in the organization. Can be filled or unfilled.Position ID, Job Profile, Sup Org, Position Status
3Job Profile HCMThe job template (title, family, compensation grade).Job Code, Job Family, Management Level, Comp Grade
4Supervisory Organization HCMThe reporting hierarchy. Every position lives in one.Org ID, Manager, Parent Org, Org Type
5Location SharedPhysical or virtual work location.Location Code, Country, Time Zone, Address
6Compensation Plan HCMSalary, hourly, allowance, bonus, stock plans.Plan ID, Amount, Currency, Frequency
7Job Requisition HCMAn open job posting in Recruiting.Req ID, Hiring Manager, Status, Target Hire Date
8Pay Result HCMThe outcome of a payroll run for a worker.Period, Gross, Net, Earnings, Deductions
9Company FINA legal entity. Used everywhere in Finance.Company ID, Currency, Country
10Cost Center FINWhere costs (including labor) accumulate.Cost Center ID, Hierarchy, Manager
11Ledger Account FINA GL account (assets, liabilities, expenses, revenue).Account Number, Account Type, Posting Rule
12Journal / Journal Line FINA financial transaction posted to the ledger.Journal #, Debit, Credit, Ledger Account, Worktags

Worktags — the Bridge Between HCM and Finance

Worktags are the secret sauce of Workday. A Worktag is a tag (like a hashtag) that gets attached to almost every transaction — an expense, a payroll cost, a journal line. They classify where a cost lives without bloating your GL chart of accounts.

Payroll Cost (a transaction) Cost Center: CC-100 Region: NA-East Program: Project X Fund: Operating Spend Category
Figure 2.2 — A single transaction can carry many Worktags; reports slice by any combination.
Why this matters When you report headcount by Cost Center, region, or business unit, you're really filtering Worker → Position → Worktags. Worktags are why a single dataset can answer both "how many engineers in EMEA?" and "what did EMEA spend on engineering payroll?"
MODULE 03 Intermediate

How Objects Relate — The Core HCM Map

In this module: Worker ↔ Position ↔ Job Profile · Supervisory Org hierarchy · One-to-many vs many-to-one · Effective dating

Understanding object relationships is the single most important skill in Workday reporting. Pick the wrong starting object and you'll either get duplicate rows or miss data. Here is the map you must memorize.

The Core HCM Relationship Map

Supervisory Organization e.g. "Engineering — Platform" Position e.g. "P-1024 Senior Engineer" Worker e.g. "Jane Doe" Job Profile e.g. "ENG-SR Senior Engineer" Location e.g. "London Office" Compensation Plan e.g. "Salary Plan UK" Cost Center (Worktag) e.g. "CC-100 Platform Eng" contains filled by uses works at paid via cost goes to A Worker fills exactly one Position; a Position belongs to one Sup Org; multiple Workers can use the same Job Profile.
Figure 3.1 — The HCM relationship spine. Memorize this — almost every report walks these arrows.

Cardinality — One-to-Many vs Many-to-One

RelationshipCardinalityReporting Impact
Worker → Position1 : 1 (active)One row per worker — clean.
Position → Job ProfileMany : 1Many positions share one profile. Group/filter by profile freely.
Worker → Compensation Plan1 : ManyOne worker can have salary + bonus + stock. If you report from the Plan side you'll get multiple rows per worker.
Worker → Sup Org (via Position)Many : 1Many workers in one org. Used for headcount roll-ups.
Worker → Dependent1 : ManyReporting from Worker = one row; from Dependent = many.
Worker → Pay Result1 : Many (per period)Always pick the right primary object — Worker for headcount, Pay Result for $ totals.
Common Trap If your headcount report suddenly shows 15,000 rows when you have 5,000 workers, you almost certainly chose a multi-instance related field (like Compensation Plan or Dependent) as a primary column. Push it into a Lookup or sub-filter instead.

Effective Dating — the Workday Time Machine

Almost every object in Workday is effective-dated. That means Workday stores not just what something is, but when it became that. You can ask "What was the org chart on December 31?" and get a correct answer.

2021-04-12 Hire as Analyst Salary $70K 2023-01-01 Promotion to Sr Analyst Salary $90K 2024-07-01 Transfer to Finance Salary $100K Past Future
Figure 3.2 — Run a report "as of" any date and Workday returns the snapshot at that point in time.
Pro Tip When you create a report, the Effective Date prompt changes the answer dramatically. "Headcount as of today" ≠ "Headcount as of Dec 31". Always confirm with stakeholders which date matters.
MODULE 04 Intermediate

Data Sources — Where Reports Start

In this module: What a Data Source is · Primary vs Related Business Objects · Indexed sources · The 10 data sources you'll use most · Picking the right one

A Data Source is a pre-built query that returns a set of instances of a Business Object, often filtered for performance or security. Every report in Workday starts by choosing a Data Source. Choose well and the rest of the report is easy. Choose poorly and you'll fight the report forever.

Anatomy of a Data Source

Data Source: "All Active Employees" PRIMARY Business Object Worker One row returned per Worker instance BUILT-IN FILTER Active Status = TRUE (applied before you add any of your own) RELATED Business Objects Position · Job Profile Sup Org · Location Comp Plan · Worktags (reachable via dot-walk)
Figure 4.1 — Every Data Source = Primary BO + optional built-in filter + a constellation of Related BOs.

Primary vs. Related Business Objects

The Primary BO determines the grain of your report — what one row represents. Related BOs are reached by "dot-walking" from the primary (e.g., Worker → Primary Position → Job Profile → Job Family).

Primary Business Object

Defines 1 row in the report. Determines security domain. Cannot be changed without rebuilding the report.

Related Business Object

Reached via reference fields. Adds columns but never adds rows (as long as the relationship is single-instance).

The 10 Data Sources You'll Use Most

Data SourcePrimary BOBest For
All WorkersWorkerAnything where you want both employees and contingent workers, active or not.
All Active & Terminated WorkersWorkerAttrition reports, history, year-over-year.
All EmployeesWorkerEmployees only — excludes contingent.
Workers as of a Date (Indexed)WorkerHistorical snapshots. Fast — indexed sources are pre-computed.
All PositionsPositionPosition management — filled, unfilled, freeze status.
All Job RequisitionsJob RequisitionRecruiting pipeline, time-to-fill.
All CompensationComp Plan AssignmentSalary, bonus, stock detail (one row per plan assignment).
All Pay ResultsPay ResultPayroll totals by period.
All Journal LinesJournal LineGL detail — the foundation of Finance reporting.
Worker HistoryWorker EventEvery change ever made to a Worker — hires, transfers, terminations.

Indexed Data Sources — When You Need Speed

If a data source name ends in (Indexed), Workday has pre-computed it. They run dramatically faster but have one rule: any filter you add must use indexed fields. Otherwise the index is bypassed and you lose the speed benefit.

Decision rule Indexed data sources for snapshots and large extracts (BI, dashboards). Standard data sources for ad-hoc filtering on uncommon fields.
MODULE 05 Intermediate

Fields — The Building Blocks of Reports

In this module: Field types · Single vs multi-instance · Reference fields · Related fields (dot-walking) · Required vs optional · Field display options

A Field is one column on a Business Object. When you build a report, you're really just picking which fields of which business object to display, filter, sort, and group by. Workday gives you thousands of fields out of the box.

Field Types

TypeExampleHow It Behaves in Reports
TextFull Name, Employee IDFilter with contains / equals; cannot aggregate.
NumericAnnual Salary, HeadcountCan sum, average, min, max.
CurrencyBase Pay AmountNumeric + ISO currency code; respect currency conversion.
DateHire Date, Termination DateFilter by absolute or relative date; supports date math.
BooleanIs ManagerTrue/False; great for filters and counts.
ReferencePosition, Manager, Cost CenterPoints to another Business Object — you can dot-walk through it.
Multi-Instance ReferenceDependents, Worktags, Comp PlansReturns many values per row. Renders as a comma list unless flattened.

Single-Instance vs Multi-Instance

Single-Instance Field e.g. Worker → Hire Date Jane Doe 2021-04-12 Mark Lee 2019-08-01 → 1 row per Worker. Clean. Multi-Instance Field e.g. Worker → Dependents Jane Doe Tom, Emily Mark Lee (none) → comma list, or duplicates rows if pivoted.
Figure 5.1 — Multi-instance fields are powerful but cause duplication if you don't handle them.

Dot-Walking — Reaching Related Fields

"Dot-walking" is Workday slang for following reference fields. If the primary object is Worker and you want the worker's manager's email, you walk: Worker → Manager → Work Email. In the field picker this looks like "Manager > Work Email".

Pro Tip Dot-walks can go as many hops as you want (Worker → Position → Job Profile → Job Family → Management Level), but every hop costs you a tiny bit of performance. Pick the shortest path.

Two Field Lists You Need to Know

Delivered Fields

Built into Workday by default. Stable across releases. Always prefer these first.

Calculated Fields

Custom fields you (or your team) define. Used when no delivered field gives you what you need. Covered next module.

MODULE 06 Advanced

Calculated Fields — Workday's Power Tool

In this module: What calculated fields are · The 12 function types you'll actually use · Worked examples · Best practices · Where they live

A Calculated Field is a custom field defined by a function. You build them once, then use them in any report, dashboard, integration, or business process. They are the difference between a junior Workday user and a senior one.

The Calculated Field Workflow

1. Pick Business Object (e.g. Worker) 2. Pick Function Type (e.g. Date Diff) 3. Configure Inputs & Output (start/end dates, unit) 4. Use Anywhere Reports · BP · Integrations Field becomes reusable
Figure 6.1 — Define a calculated field once; reuse it everywhere.

The 12 Function Types You Will Actually Use

FunctionWhat It DoesExample Use Case
Date DifferenceDays/months/years between two dates.Tenure = today − hire date.
Date Add / SubtractAdd or subtract a duration from a date.Next review date = last review + 12 months.
Extract Single InstanceFrom a multi-instance field, return ONE based on a rule.Pick the "Primary" Compensation Plan only.
Lookup Related ValueReturn a field value from a related object.Manager's email; Cost Center hierarchy parent.
Concatenate TextStitch multiple text fields together."LastName, FirstName (Employee ID)"
SubstringPull characters from a text field.Country code from Employee ID prefix.
Format Number / Date / TextConvert to a specific display format.Fiscal-year format YYYY-Q#.
Arithmetic Calculation+ − × ÷ on numeric fields.Total comp = base + bonus + stock.
True/False ConditionReturn Yes/No based on a logical test."Is Eligible for Bonus?"
Evaluate ExpressionMulti-branch IF/THEN/ELSE.Tenure band: 0-1 yr, 1-3 yrs, 3-5 yrs, 5+ yrs.
Count Related InstancesCount how many related rows exist.Number of direct reports.
Sum Related InstancesSum a numeric field across related rows.Sum of YTD earnings across pay results.

Worked Example 1 — Tenure in Years

Function: Date Difference
Business Object: Worker
Start Date: Worker → Continuous Service Date
End Date: Today (or report's Effective Date)
Output Unit: Years
Output Type: Numeric (1 decimal)

Result for Jane Doe (hired 2021-04-12, today 2026-06-03):
  5.1 years

Worked Example 2 — Tenure Bands (IF/THEN/ELSE)

Function: Evaluate Expression
Business Object: Worker
Return Type: Text

When Tenure (Years) is less than 1       "0–1 yr (New Hire)"
When Tenure (Years) is less than 3       "1–3 yrs"
When Tenure (Years) is less than 5       "3–5 yrs"
When Tenure (Years) is less than 10      "5–10 yrs"
Otherwise                                   "10+ yrs (Tenured)"

Worked Example 3 — Manager Email (Lookup Related Value)

Function: Lookup Related Value
Business Object: Worker
Lookup Field: Manager  (reference field on Worker)
Return Field: Work Email Address

Result: Jane Doe → looks up her manager (Mark Lee) → returns
        mark.lee@company.com

Worked Example 4 — Full Name + ID (Concatenate Text)

Function: Concatenate Text
Business Object: Worker
Inputs:
  1. Worker → Last Name
  2. ", "
  3. Worker → First Name
  4. " ("
  5. Worker → Employee ID
  6. ")"

Result: "Doe, Jane (10042)"

Best Practices

  • Name with a prefix — e.g. "CF_Tenure_Years". Makes them easy to find vs. delivered fields.
  • Reuse, don't rebuild — before creating a new CF, search the tenant. Someone probably built it already.
  • Build on Worker when possible — the most reusable.
  • Avoid nested calculated fields when speed matters — they cascade and slow large reports.
  • Document the purpose in the Description field of every CF you create.
Common Trap Calculated fields use a tenant's delivered field labels. If your tenant renames "Hire Date" to "Original Hire Date", your CF still works — but copy-pasting CF definitions between tenants can break.
MODULE 07 Intermediate

Report Types — Choosing the Right Tool

In this module: The 6 Workday report types · When to use each · Standard vs Custom · Saved Filters · Sharing

Workday gives you six report types. Picking the right type at creation time matters — you can't easily convert between them later.

The Six Report Types

TypeBest ForOutputDifficulty
SimpleQuick lists, one data source, no prompts.Flat tableEasy
AdvancedMost production reports — prompts, sub-filters, charts, sharing.Flat table + chart + drill-downMedium
MatrixPivot-style — count/sum sliced by 1–2 dimensions.Cross-tab + drill-downMedium
CompositeMultiple sub-reports stitched into one (e.g., P&L statement).Stacked sectionsHard
SearchSearchable index for end-users — typeahead from the search bar.Search resultsMedium
TransposedPivot rows ↔ columns when comparing across entities side-by-side.Rotated tableMedium

Decision Tree — Which Type?

What do you need? A list of records (workers, positions…) Counts / totals by dim (headcount by org) Multi-section doc (P&L, dashboards) Need prompts? → Advanced; else Simple Use Matrix 1–2 grouping dims Use Composite stitches sub-reports Most people pick Advanced unless truly throwaway
Figure 7.1 — When in doubt, build Advanced. It scales further than Simple and supports almost anything.

Standard vs Custom Reports

Standard (Delivered)

Shipped by Workday. Cannot be modified directly, but you can Copy Standard Report to Custom and edit the copy. Great starting point.

Custom

Built by you or your team. Fully editable. Must be secured (more on this in Module 10).

MODULE 08 Intermediate

Build Your First Report — Step by Step

Goal: Build "Active Headcount by Cost Center with Tenure Band" — an Advanced report covering data source choice, fields, filters, prompts, sorting, sharing, and output.

The Recipe

  1. Search "Create Custom Report" in the global search bar. Open the task.
  2. Name the report. Use a convention like RPT_HCM_Headcount_by_CostCenter_v1. Future you will thank you.
  3. Report Type: Advanced.
  4. Data Source: "All Active Employees" (Primary BO = Worker, built-in filter = Active = TRUE).
  5. Optional Filter Field: leave blank — we'll add filters in step 7.
  6. Columns tab — add fields in this order:
    • Worker → Employee ID
    • Worker → Full Name
    • Worker → Primary Position → Job Profile → Job Title
    • Worker → Cost Center (via Worktags) → Cost Center Name
    • Worker → Hire Date
    • Calculated Field: CF_Tenure_Years (from Module 6)
    • Calculated Field: CF_Tenure_Band (from Module 6)
  7. Filter tab — add: Cost Center → Cost Center Hierarchy → contains → "EMEA" (just so we focus the test set).
  8. Prompts tab — promote Effective Date and Cost Center to runtime prompts so end-users can re-slice.
  9. Sort tab — sort by Cost Center Name (asc), then Hire Date (desc).
  10. Output tab — enable Excel and CSV. Optionally enable a bar chart on Tenure Band.
  11. Share tab — share with the security group "HR Analysts". Mark "Run as the user who runs the report" for proper row-level security.
  12. Save & Run. If it returns in < 5 seconds for 1,000+ rows, you have a healthy report.

What Each Tab Actually Controls

TabPurposeCommon Mistake
ColumnsThe fields that appear as columns.Adding multi-instance fields here without flattening → duplicate rows.
FilterHard-coded conditions that always apply.Putting end-user choices here instead of in Prompts.
Sub FilterFilters on related multi-instance objects (rare but powerful).Confusing with main Filter — sub-filters apply per row of a related object.
PromptsRuntime questions to the user.Forgetting to mark a prompt as "Required" → empty results.
SortDefault ordering.Sorting on a calculated field → slow on large data sets.
OutputFormats: Excel, CSV, PDF, chart.Enabling everything when only Excel is needed.
ShareWho can run the report.Sharing with "All Users" — security violation.

Run-Time Prompts vs Filters — the Single Most Confused Topic

Filter Hard-coded. Same every run. "Region = EMEA always" Use for: filters that must always apply Prompt Asks the user at runtime. Different every run. "Which region today?" Use for: user-driven slicing
Figure 8.1 — A prompt is just a filter the user fills in at runtime.
MODULE 09 Advanced

Advanced Reporting — Matrix, Composite, Performance

In this module: Matrix reports · Composite reports · Sub-filters & Sub-totals · Conditional formatting · Scheduling · Performance tuning

Matrix Reports — Pivots Inside Workday

A Matrix is a pivot table. You pick one or two grouping fields and one or more measures (count, sum, average). Workday produces a cross-tab plus a drill-down to the underlying detail.

Cost Center ↓ \ Tenure Band → 0–1 yr 1–3 yrs 3–5 yrs 5+ yrs Total CC-100 Platform Eng 8 22 15 9 54 CC-110 Sales EMEA 14 31 12 6 63 CC-200 Finance 3 9 8 11 31 Grand Total 25 62 35 26 148
Figure 9.1 — A Matrix report: Cost Center × Tenure Band, with COUNT(Worker) as the measure.

Composite Reports — When You Need Multiple Sections

A Composite report stitches together several "sub-reports" (each one usually a Matrix) into a single document. Classic use case: a one-page HR Operations Dashboard with sections for Headcount, New Hires, Terminations, Open Reqs, and Cost Center Spend — all in one PDF.

Composite: HR Ops Dashboard Sub-report: Headcount by Org (Matrix on All Active Employees) Sub-report: New Hires MTD (Advanced on Worker History) Sub-report: Terminations MTD (Advanced on Worker History) Sub-report: Open Requisitions (Advanced on Job Requisition)
Figure 9.2 — A single Composite report can present several queries side-by-side on one page.

Sub-Filters & Sub-Totals

Sub-Filter: filters at the related-object level. Example: from Worker, return only those Pay Results where pay period is current quarter (rather than all history). Sub-Totals: on Matrix and grouped Advanced reports, you can add row/column sub-totals, averages, and percent of total.

Performance Tuning Checklist

  • Use an indexed data source if available.
  • Filter early — push your most selective filter to the very top of the Filter tab.
  • Avoid calculated fields in Filter — they prevent index use.
  • Limit dot-walks to ≤ 3 hops where possible.
  • Schedule heavy reports overnight; deliver via Drive or email.
  • Use Report Performance task to inspect long-running reports.
  • Cache wisely — repeat-run reports benefit from server cache; first run is always slower.
When a report is slow Run "Workday Report Performance" as an admin. It tells you which fields, joins, or filters cost the most time.
MODULE 10 Advanced

Security & Extracting Data (to Power BI & Beyond)

In this module: Domain security · Report-specific security · EIB · RaaS · Prism · Power BI patterns

Security in Two Layers

Domain Security

Controls who can see fields on Business Objects. If you don't have access to the "Worker Compensation" domain, no report will show salary — even your own. Granted via Security Groups (e.g., HR Partner, Manager, HR Analyst).

Report-Specific Security

Controls who can run a particular report. Set on the Share tab. Always run as the user — never as a service account — so domain security still applies row-by-row.

Golden Rule Security is enforced at both layers. A user can be shared a report but still see no rows if they lack domain access to the underlying fields. That's a feature, not a bug.

Four Ways to Get Data Out of Workday

MethodBest ForHow It Works
Manual ExportAd-hoc downloads.Run report → Export to Excel/CSV.
EIB (Enterprise Interface Builder)Scheduled inbound/outbound files (SFTP, email, attachment).Wrap a report or web service in an EIB, schedule it.
RaaS (Report as a Service)Real-time data pull from external tools (Power BI, Tableau).Enable "Web Service" on a custom report → unique URL → external tool authenticates and pulls.
Prism Analytics / Data LakeHigh-volume analytics, blending Workday + non-Workday data.Stream BOs into Prism tables; query with the Prism API or Power BI connector.

The RaaS → Power BI Pattern

Workday Custom Advanced Report Enable "Web Service" → unique URL RaaS (REST/XML) Integration System User Dedicated service account Has just-enough domain access OAuth or Basic auth HTTPS pull Power BI Web/JSON source Scheduled refresh Model + DAX + visuals Workday is the system of record · Power BI is the system of insight
Figure 10.1 — The most common Workday → Power BI integration pattern uses a RaaS-enabled Advanced report.

RaaS Setup Checklist

  1. Build the source report as an Advanced report. Avoid Matrix/Composite — they don't expose clean tabular data.
  2. Enable Web Service in the report's Advanced tab. Workday generates a unique URL.
  3. Create an Integration System User (ISU) with a strong password and an Integration System Security Group (ISSG).
  4. Grant the ISSG the minimum domain access needed (data scopes only — not modify rights).
  5. Test the URL in a browser with the ISU credentials — confirm you get XML/JSON.
  6. In Power BI Desktop: Get Data → Web → paste URL + Basic auth. Use Power Query to flatten.
  7. Publish + schedule refresh via an On-Premises Data Gateway or service principal.
Reporting-engineer mindset Treat each Workday report exposed as RaaS like a versioned API. Rename fields with snake_case CFs, never break columns, and document the URL + ISU in a registry.

When to use Prism instead of RaaS

If your dataset is > ~250k rows, refreshes more than hourly, or needs to be blended with non-Workday data (Excel, SQL Server, Salesforce), the right answer is usually Prism Analytics. RaaS is excellent for < 100k row extracts; Prism scales to millions.

★ CHEAT SHEET Quick Reference

One-Page Workday Cheat Sheet

Object → Data Source Map

WorkerAll Workers / All Active Employees
PositionAll Positions
RequisitionAll Job Requisitions
CompAll Compensation
PayAll Pay Results
GLAll Journal Lines

Calculated Field Quick-Pick

TenureDate Difference
Manager emailLookup Related Value
"Lastname, Firstname"Concatenate Text
Tenure bandEvaluate Expression
Headcount = 1 flagTrue/False Condition
# direct reportsCount Related Instances

Report Type Quick-Pick

Throwaway listSimple
Most production reportsAdvanced
Pivot / cross-tabMatrix
Multi-section dashboardComposite
Search-bar typeaheadSearch
Side-by-side compareTransposed

Extract Method Quick-Pick

Ad-hocExport to Excel
Scheduled fileEIB
Live BI pullRaaS
Large analyticsPrism

Glossary

BOBusiness Object — the data model unit (Worker, Position…).
InstanceA single row/record of a Business Object.
TenantYour private copy of Workday (Prod / Impl / Sandbox).
Data SourceThe pre-built query that starts every report.
Primary BOThe object whose instances = one row in the report.
Related BOAn object reachable by dot-walking from the Primary BO.
WorktagA tag attached to transactions (Cost Center, Region, Program…).
Calculated Field (CF)A custom field defined by a function; reusable everywhere.
EIBEnterprise Interface Builder — file-based integration tool.
RaaSReport as a Service — exposes a report as a web service URL.
ISU / ISSGIntegration System User / Security Group — service accounts for integrations.
Effective DateThe "as-of" date Workday uses to return time-correct data.
DomainA security bucket controlling field-level access.
Your 30-day learning plan Week 1: Modules 1–3 (concepts & navigation). Week 2: Modules 4–5 (data sources & fields, build 5 Simple reports). Week 3: Module 6 (build 5 calculated fields, refactor one report to use them). Week 4: Modules 7–10 (build 1 Advanced + 1 Matrix + 1 RaaS extract to Power BI).