Workday · Core HR · Report
Span of Control
How many people each manager manages, and how many layers sit between the top and the front line. The report is easy; the definition decisions are the work, and they fit in one table.
◆ The definition decisions— four choices, made once in the model, that every span number depends on.
| Decision | The call |
|---|---|
| Who is a manager | Anyone with at least one active direct report on the date, derived from the supervisory organization. Management level from dim_job answers a different question: manager-level workers with zero directs are a finding, not a filter. |
| Who counts as a direct | Active workers on their primary assignment, solid line only. Open positions, workers on extended leave, and dotted-line reports are excluded from the count and flagged separately. |
| Managers of several orgs | One manager leading several supervisory organizations is one manager; their span is the union of all their directs, counted once. |
| Orgs without a manager | Directs in an org with an unfilled manager seat roll to the nearest staffed manager above, and the org is flagged. Silent gaps understate spans and hide vacancies. |
◆ Reading the numbers— the average hides everything; the distribution and the layer signal are the report.
| Signal | What it means |
|---|---|
| The distribution | An average span of 8 can be a healthy shape or three overloaded managers and a tail of tiny teams. Report the buckets: 1 to 2, 3 to 5, 6 to 10, 11 and up. |
| Managers with 1 or 2 directs | The strongest structural signal in the report. A cluster of them usually marks redundant supervisory layers, most often left over from an acquisition or a reorg that never finished. |
| Layers | Levels between the top and the front line, from the flattened org depth. Narrow spans and many layers move together; track both or you see half the picture. |
| Benchmarks per function | A span of 12 can be right for a support team and wrong for a research team. Compare within a function over time, not against one number for the whole company. |
◆ The owned model, and the SQL— spans per manager from the snapshot, then the distribution, one query.
The report reads fct_worker_snapshot and the manager column on dim_org. First spans per manager, then the shape:
-- spans per manager at month-end, then the distribution and the layer signal
WITH spans AS (
SELECT d.month_end_date,
o.manager_key,
COUNT(DISTINCT f.worker_key) AS direct_reports
FROM fct_worker_snapshot f
JOIN dim_date d ON f.date_key = d.date_key AND d.is_month_end
JOIN dim_org o ON f.org_key = o.org_key
WHERE f.worker_type = 'Employee'
AND f.is_primary
AND f.worker_key <> o.manager_key
GROUP BY 1, 2
)
SELECT month_end_date,
COUNT(*) AS managers,
ROUND(AVG(direct_reports), 1) AS avg_span,
SUM(CASE WHEN direct_reports <= 2 THEN 1 ELSE 0 END) AS spans_of_1_or_2
FROM spans
GROUP BY 1
ORDER BY 1
Sample output, same series as the other Core HR reports, 145 workers at April-end and 147 at May-end. Everyone below the top of the tree reports to someone, so the reporting relationships are 144 and 146:
| month_end_date | managers | avg_span | spans_of_1_or_2 |
|---|---|---|---|
| 2026-04-30 | 18 | 8.0 | 3 |
| 2026-05-31 | 18 | 8.1 | 3 |
144 over 18 managers is 8.0; 146 over 18 is 8.1. The three managers with one or two directs are the row a board asks about, and drilling from the number to the names is one join away. Sample values are illustrative, never client data.
Want the org shape on one page?
We build spans, layers, and the vacancy flags from your own org data, reconciled against Workday, and you own every line.
Terms on this page
- span of control
- The number of direct reports a manager has on a date.
- direct report
- An active worker whose primary assignment sits in the manager's org. Solid line.
- dotted line
- A matrix reporting relationship. Tracked separately, never in the primary span.
- layers
- Levels between the top of the tree and the front line, from the flattened org.
- manager-level, zero directs
- A worker at a management level with no reports. A finding for the job architecture, not a manager.
- unfilled manager seat
- An org whose manager position is vacant. Directs roll up; the gap is flagged.
- distribution
- Spans grouped in buckets. The shape the average hides.
- layer signal
- A cluster of managers with one or two directs, usually a leftover supervisory layer.