Annual pay-equity snapshot
Annual pay-equity snapshot
Swedish law (Diskrimineringslagen 3 kap) requires employers with at least 10 employees to perform an annual, written pay-equity analysis (lönekartläggning). Every other view in the salary-mapping module — classification, group insights, individual analysis, justifications, correction plans, and the EU report — is always recomputed from CURRENT data. That doesn’t satisfy a written-documentation requirement: you can’t later prove what last year’s analysis said if the numbers can keep changing. This page (requires a SuperAdmin to have enabled payEquitySnapshots) solves that by generating a dated snapshot for a calendar year — the actual document that constitutes that year’s pay-equity analysis.
Clicking “Generate for [year]” saves a complete copy of: the classification summary and detailed roles, every justification and correction plan recorded so far, the EU Pay Transparency report (when enabled), and the job-evaluation criteria per equal-work group — exactly as they stood at generation time.
Regeneration is deliberately restricted. Only the CURRENT calendar year’s snapshot can be regenerated (for example, to correct a mistake before the year closes) — every regeneration is recorded in the audit log. A past year’s snapshot is permanently locked once the calendar year has ended: the law requires being able to prove what a past year’s analysis said, which an overwritable record would defeat.
Anonymity is built into the snapshot itself — not just the live view. The classification data captured is always gated against the organization’s minimum group size (minTeamSize): a group or role below the threshold is saved as fully hidden (no numbers at all), and the gendered breakdown is only shown when both genders independently clear the same threshold. This holds even though the live classification view elsewhere in the app doesn’t always enforce that same gate — a saved snapshot is often read much later, once a group’s composition may have changed, so it needs to be protected more strictly than a point-in-time live view.
The page lists every generated year with its generation date, who generated it, and how many employees were included. Click “View” to open a past snapshot in full, or export it as CSV or print/save it as PDF — a standalone, downloadable artifact to archive or produce during a compliance inspection.
Union / employee-representative consultation log. Diskrimineringslagen 3 kap doesn’t just require a written analysis — it also requires the employer to consult the union(s) (or an equivalent employee representative) during the pay-equity mapping process. Each year’s snapshot therefore has its own section for this: record the representative’s name and role, the date of the consultation, what was discussed, and any agreed follow-up actions. The log can be added to throughout the year — it is NOT locked by the same rule as the classification data: a consultation entry documents something that actually happened, not a recomputable analysis result, so new entries can be logged (and a mistaken entry deleted and re-added) even against a past, otherwise permanently locked year. Like the rest of this page, it requires a SuperAdmin to have enabled payEquitySnapshots (the same flag as the rest of the annual snapshot — the consultation log is part of the same feature, not a separate setting).
The “Trend” tab — comparing multiple years. Once at least 2 years have been generated, a Trend tab appears next to the snapshot list. It answers the single most useful question for this compliance obligation: is your unexplained pay gap shrinking or growing over time? The tab shows:
- Org-wide unexplained gap % per year, computed from each year’s already-saved (and already anonymity-redacted) detailed role medians, weighted by headcount per role — plus a direction indicator (“Improving” / “Worsening” / “No change”).
- Per-equal-work-group trend, for years where the EU Pay Transparency report was enabled (requires the separate euPayTransparencyReport flag) — otherwise that year is shown as having no group-level data.
- Correction-plan follow-up: for every justification with a correction plan, whether the employee is still flagged, whether the plan has since been closed, or whether it’s too soon to tell (no later snapshot exists yet) — determined by comparing the Admin-recorded justifications year over year, never by recomputing salary data.
Anonymity holds across years too. A group or role that was hidden in its own year’s snapshot always shows as “Not available for this year” in the Trend tab — never a computed or interpolated number derived from neighbouring years. The Trend tab only ever reads already-existing, already anonymity-redacted per-year data (the same getPayEquitySnapshotAdmin/listPayEquitySnapshotsAdmin the rest of the page uses) and never derives a hidden value by comparing two other years.