Job Profile
The canonical definition of the work: what the job is, which family it belongs to, what level it sits at, whether it is exempt. Positions reference it, workers hold positions, and every job-architecture report rolls up through it.
◆ The job architecture— four layers, from the grouping down to the seat.
| Layer | What it is | Example |
|---|---|---|
| Job Family Group | The broadest grouping of related families. | Technology |
| Job Family | A set of related profiles, the career track. | Data Engineering |
| Job Profile | The job definition itself: level, exempt status, attributes. The reporting grain of the architecture. | Senior Data Engineer |
| Position | One seat, defined by a profile, held by a worker. Carries the business title. | Senior Data Engineer, Platform team |
Count profiles when the question is about the architecture, positions when it is about seats, workers when it is about people. The three counts differ, and mixing them is a common source of disagreeing dashboards.
◆ What the profile carries— the attributes that drive level reporting, compliance, and pay.
| Attribute | What it drives |
|---|---|
| Management level | Individual contributor versus management tiers. The right axis for span-of-control and level-mix reporting; business titles are not. |
| Exempt status | Overtime eligibility. Drives time-tracking scope and pay compliance. |
| Pay rate type | Salaried or hourly. Decides how cost is calculated from the pay basis. |
| Compensation defaults | Profiles map to compensation grades, the starting point for range and compa-ratio analysis. |
| Job classifications | Regulatory categories attached to the profile for compliance reporting. |
◆ Reporting traps— titles that drift, reclassifications that rewrite level history, and the three counts.
| Trap | What goes wrong |
|---|---|
| Business title | The title lives on the position and is edited locally. It drifts from the profile name, inflates over time, and produces fifty variants of one job. Group by profile, family, or level; show the title as a label only. |
| Reclassification | Job-architecture cleanups move profiles between families and change levels, effective-dated. A current-state-only dimension rewrites last year's level mix. Keep the history; the sample rows below show how. |
| Profile without incumbents | Profiles exist with zero workers in them. Architecture reports include them; headcount reports must not. |
| Level names differ per tenant | Management levels are configured, not universal. Define the level order once in dim_job and sort by it, not alphabetically. |
◆ How we model it: dim_job— the build SQL, and the finished dimension, three rows that show the history technique.
One dimension, the architecture flattened onto the profile, with validity dates carried through:
-- stg_ tables landed from the job architecture, effective-dated
SELECT jp.job_profile_id,
jp.job_profile_name,
jf.job_family_name AS job_family,
jfg.job_family_group_name AS job_family_group,
jp.management_level,
jp.exempt_status,
jp.valid_from, jp.valid_to
FROM stg_job_profile jp
JOIN stg_job_family jf ON jp.job_family_id = jf.job_family_id
JOIN stg_job_family_group jfg ON jf.job_family_group_id = jfg.job_family_group_id
The finished dimension, sample rows. On 2026-07-01 an architecture cleanup moved Senior Data Engineer into the new Data Platform family: the old row closes, a new row opens, and last year's family mix still reports against the family that was true then.
| job_profile_id | profile | job_family | family_group | level | exempt | valid_from | valid_to |
|---|---|---|---|---|---|---|---|
| JP_0042 | Senior Data Engineer | Data Engineering | Technology | P4 · IC | Yes | 2024-01-01 | 2026-06-30 |
| JP_0042 | Senior Data Engineer | Data Platform | Technology | P4 · IC | Yes | 2026-07-01 | 9999-12-31 |
| JP_0087 | Engineering Manager | Data Platform | Technology | M3 · Mgmt | Yes | 2024-01-01 | 9999-12-31 |
Facts join the row valid on their date, the as-of join from effective dating, and every people fact shares this one dimension. See the enterprise model. Sample values are illustrative, never client data.
- job profile
- The canonical definition of a job: level, exempt status, attributes.
- job family
- A set of related profiles, the career track.
- job family group
- The broadest grouping of families.
- position
- One seat, defined by a profile, held by a worker.
- business title
- The display title on a position. Editable, drifts, not a reporting axis.
- management level
- The configured IC and management tiers. Tenant-specific names.
- exempt status
- Overtime eligibility, carried on the profile.
- reclassification
- An effective-dated change moving a profile between families or levels.
- dim_job
- The job dimension: architecture flattened onto the profile, with history.
- as-of join
- Joining a fact to the dimension row valid on the fact's date.