Analytics Catalog/Workday/Compensation Grade & Range
Explore the catalogModulesWorkerJob ProfileEffective datingEnterprise model
Workday · Objects

Compensation Grade & Range

The structure pay is measured against. The grade sets the band, the grade profile localizes it, and the range's min, mid, and max drive compa-ratio, range penetration, and quartiles. Get the range wrong and every pay metric downstream is wrong.

RuleCompare pay to the worker's grade profile range, in the range's own currency and frequencyNeverdivide annual pay by an hourly range, or actual part-time pay by a full-time midpoint. Match currency, frequency, and FTE basis first.
The structure— grade, grade profile, range, and steps, and which one a worker's pay is actually measured against.
PieceWhat it isNote
Compensation gradeThe pay band a job profile or eligibility rule assigns a worker to.Carries a default range when no profiles exist.
Grade profileA localized version of the grade's range: by country, region, or population.One grade, many profiles. The worker's pay is measured against their profile's range, not the grade's.
Pay rangeMinimum, midpoint, maximum, with the range's own currency and frequency.Min, mid, and max drive compa-ratio, range penetration, and quartile calculations.
SegmentsThe range divided into parts, quartiles most commonly.Used for placement reporting: who sits in the first quartile, who in the fourth.
StepsFixed amounts with progression rules, for step-based plans.Union and public-sector structures. Pay is a step, not a point in a range.
Reporting traps— the profile, the midpoint, the currency, the frequency, and the FTE basis. Five ways the same worker gets five ratios.
TrapWhat goes wrong
Grade instead of profileThe same grade carries different ranges per country or population. Pay compared to the grade's default range instead of the worker's profile range produces ratios that are wrong exactly where localization matters.
Midpoint is not the middleWorkday allows a market-based midpoint anywhere between min and max. Compa-ratio measures against mid; range penetration measures against the min-to-max spread. They can rank the same workers differently. Report both; never derive one from the other.
CurrencyThe range carries its own currency. A ratio is only unitless when pay and range share it. Convert pay to the range's currency before dividing, and never aggregate raw pay across currencies.
FrequencyHourly pay against an annual range needs the hours basis to annualize, and the basis is a policy choice. Land the range's frequency and convert deliberately, once, in the model.
FTE basisA half-time worker's actual pay divided by a full-time midpoint reads as badly underpaid. Decide once whether ratios use annualized full-time-equivalent base or actual prorated pay, and state it on the report.
Out of rangeWorkers below min or above max are findings, not errors to hide. Flag them; a cluster below min after a range refresh is the merit-budget conversation.
How we model it: dim_comp_grade— the build SQL, and the finished dimension, three rows that show localization and a range refresh.

One dimension at the grade-profile grain. Ranges live on the profile when profiles exist and on the grade otherwise, so the build lands both and coalesces:

-- ranges come from the profile when one exists, else the grade
SELECT g.grade_id,
       COALESCE(p.profile_id, g.grade_id)     AS range_key,
       COALESCE(p.profile_name, g.grade_name) AS range_name,
       COALESCE(p.currency,  g.currency)      AS currency,
       COALESCE(p.frequency, g.frequency)     AS frequency,
       COALESCE(p.range_min, g.range_min)     AS range_min,
       COALESCE(p.range_mid, g.range_mid)     AS range_mid,
       COALESCE(p.range_max, g.range_max)     AS range_max,
       COALESCE(p.valid_from, g.valid_from)   AS valid_from,
       COALESCE(p.valid_to,   g.valid_to)     AS valid_to
FROM stg_comp_grade g
LEFT JOIN stg_comp_grade_profile p ON p.grade_id = g.grade_id

The finished dimension, sample rows. Grade G07 carries a US and a UK profile, and the US range was refreshed on 2026-03-01: the old row closes, a new row opens, and a January compa-ratio still measures against the January range. Note the US midpoint sits above the arithmetic middle; it is market-set:

grade_idrange_keycurrencyrange_minrange_midrange_maxvalid_fromvalid_to
G07G07-USUSD90,000114,000138,0002024-01-012026-02-28
G07G07-USUSD95,000120,000142,5002026-03-019999-12-31
G07G07-UKGBP72,00090,000108,0002024-01-019999-12-31

Pay facts join the profile row valid on their date, the as-of join from effective dating, and base pay already sits on the worker snapshot in the enterprise model, so compa-ratio is one join away. Sample values are illustrative, never client data.

Want pay metrics measured against the right ranges?
We build the grade dimension with profiles, refresh history, and the currency and FTE rules made explicit, reconciled against Workday, and you own every line.
Talk to us
Terms on this page
compensation grade
The pay band a worker is assigned to, via job profile or eligibility rules.
grade profile
A localized range for one grade: by country, region, or population.
pay range
Min, mid, max, in the range's own currency and frequency.
midpoint
The compa-ratio anchor. Market-set, not necessarily the middle of the range.
compa-ratio
Pay divided by the range midpoint. Unitless only when pay and range match.
range penetration
How far pay sits between min and max: pay minus min, over max minus min.
quartile
One of four range segments, used for placement reporting.
step
A fixed amount with progression rules, in step-based structures.
range refresh
A new effective-dated version of a range. Old ratios keep the old range.
FTE basis
Whether ratios use annualized full-time-equivalent pay or actual prorated pay. One choice, stated.