Skip to main content

Salary Normalization

Comparing hourly, monthly and yearly paid employees in one view

Written by Nina Wettergren

In short

Sysarb can now compare employees who are paid in different ways — hourly, monthly and yearly — in a single, consistent view. The platform converts every salary to a common basis (this is called normalization) so that figures across the whole organization are directly comparable.

Two things follow from this. First, dashboard views — the Involve portal, the Global and Country overviews — now show combined salary KPIs across all salary types rather than one type at a time. Second, you can run a pay equity audit (PEA) on your whole organization in one chosen salary type, instead of running separate audits for hourly, monthly and yearly paid employees.

What salary normalization does

Different employees are stored with different salary types. An hourly-paid employee has an hourly rate; a monthly-paid employee has a monthly salary; a yearly-paid employee has an annual figure. On their own these numbers cannot be compared or averaged together.

Normalization converts them onto one basis. To do this the platform needs to know, for each employee, two things:

Full-time working hours per month — the monthly hours that count as full time for the employee. This links an hourly rate to a monthly or yearly amount.

Yearly payouts — how many salary payments the employee receives across a year. This links a monthly amount to a yearly amount.

With these two values set, the platform can express any employee’s pay as an hourly, monthly or yearly figure, and combine everyone into one comparable population.

What’s new in the platform

New employee fields

Two fields have been added to the employee record. Both can be set when creating an employment, edited later, imported by file, and brought in through integrations.

Field

What it means

Notes

Full-time working hours per month

The monthly hours that count as full time for this employee.

Positive number. Decimals supported (e.g. 162.5).

Yearly payouts

Number of salary payouts per year for this employee.

Positive number. Decimals supported.

Note on decimals: full-time hours and yearly payouts can be set as decimals, because some countries and agreements require it (for example a 38.5-hour week, or a part-year payout factor).

Areas of the platform affected

The table below lists every area touched by salary normalization and what changed in each. Use it as a checklist of where to expect the new fields and the new behaviour.

Area

What changed

Base registry

Both new fields can be set when creating an employment and edited afterwards. Both are available as filters.

File import & integrations

Both fields can be imported as columns, by file or through integrations.

Involve portal (manager & employee)

Salaries are normalized using each employee’s full-time-equivalent work hours instead of the single default from System settings.

Global overview

The salary-type selector now converts all salaries to the chosen type instead of filtering to one type. KPIs are combined across all salary types.

Country overview

Same conversion behaviour as the Global overview.

Pay equity audit — creation

If a selection contains more than one salary type, you choose which type to run the audit in. Both new fields are available as filters during creation.

Pay equity audit — Organize page

Both fields are shown as columns in the table and in the employment sidebar.

Equal works page

Both fields are shown in the sidebar and available as filters.

Pay equity audit — view

The salary type chosen when the audit was created is shown on the audit.

Analytics module

Both fields are available as filters on the employments and pay-equity-audit data sources.

System settings

Default full-time work hours and yearly payouts. Used wherever an employee has no value of their own.

Behaviour changes you will notice

Involve portal now uses the employee’s own full-time hours

Previously the Involve manager and employee portals normalized salaries using the single default work-hours value from System settings. They now use the full-time-equivalent work-hours value stored on each employee. This gives a more accurate per-employee conversion where full-time hours vary across the organization.

Dashboards convert salary types instead of filtering them out

On the Global and Country overviews, the salary-type selector used to filter the view down to employees of that one type. It now converts every employee’s salary to the selected type. Switching between hourly, monthly and yearly therefore shows the whole population expressed in that basis, not a subset of it.

One audit can cover all salary types

When you start a pay equity audit on a selection that contains more than one salary type, the platform now asks which salary type the analysis should run in. It converts all included employees to that type, so a single audit can cover the whole organization. Inside the audit you can see which salary type was selected when it was created.

How to prepare before 11 June

What happens to your data on 11 June

When the feature is released, your existing employees are migrated into the new format automatically. For any employee that does not already have the new values, the platform applies the current defaults from System settings. The same applies if you do not import a new salary file with the values: those employees are migrated on the defaults.

What you need to do before 11 June

On release, employees without the new values are migrated automatically using the current System settings defaults. So check those defaults (full-time work hours and yearly payouts), and/or import a salary file with the correct per-employee values. Details are in the section “How to prepare” below.

This is the key point

Employees who are missing the required data — full-time-equivalent work hours and yearly payouts — will be migrated using whatever defaults are currently set in System settings. So you have two ways to control what happens: (1) make sure the System settings defaults are correct, because they will be written to every employee missing the data, and/or (2) import a salary file with the correct per-employee values, so those employees are not migrated on the blanket defaults. If the defaults are wrong and you do not import correct values, employees will be normalized on incorrect figures.

The two steps to take

1. Check the defaults in System settings. Confirm the default full-time work hours and default yearly payouts reflect your organization. These are what the platform applies to any employee without a value of their own — including during the migration on 11 June.

2. Set the correct per-employee values where they differ from the default. For employees whose full-time hours or yearly payouts differ from the default — for example different collective agreements, contract types or countries — set the values on the employee record or include them in a salary file import so they are not migrated on the defaults.

The values are validated as positive numbers and accept decimals.

How normalization is calculated

The platform converts between bases using the two employee values. In plain terms:

Conversion

Uses

Hourly ↔ Monthly

Full-time working hours per month (the monthly full-time hours for that employee).

Monthly ↔ Yearly

Yearly payouts (the number of payments across the year).

Hourly ↔ Yearly

Both values, applied in sequence.

For example, an hourly rate is scaled up to a monthly figure using the employee’s full-time hours, and a monthly figure is scaled up to a yearly figure using the employee’s number of yearly payouts. The same factors are used in reverse to go the other way.

Because each employee can have different full-time hours and a different number of payouts, the conversion factor is not the same for everyone. That is correct and intended — but it has one consequence worth understanding, covered in the appendix.

Frequently asked questions

Do I have to re-run my existing audits?

No. Existing audits are unaffected. The new behaviour applies to dashboards going forward and to new audits you create.

What happens if an employee has no full-time hours or yearly payouts set?

The platform falls back to the relevant default from System settings. This is why checking those defaults before 11 June is the most important preparation step.

Can I still look at a single salary type on its own?

Yes. Selecting a salary type now expresses the whole population in that basis; you are still choosing the basis you want to see. You can filter by the new fields where filtering is available.

Why did a pay gap change when I switched between hourly, monthly and yearly?

This can happen and is mathematically expected when full-time hours or yearly payouts differ between the groups being compared. It is not an error. The appendix explains why, with a worked example.

Are decimals really supported for full-time hours?

Yes. Both full-time-equivalent work hours and yearly payouts accept decimal values.

Appendix: why the same pay gap can look different in hourly, monthly and yearly terms

This section explains, with a small example, why a pay gap measured in monthly terms can differ from the same gap measured in hourly or yearly terms. The short answer: a pay gap compares group averages, and normalization rescales each person’s salary by a factor that can differ from person to person. When that factor differs systematically between the groups being compared, the gap changes with the basis you choose.

The principle

A pay gap is the difference between the average pay of two groups, expressed as a percentage. Normalization converts each employee’s salary using their own factor — full-time hours for hourly conversions, yearly payouts for yearly conversions. The key fact is this:

The gap stays exactly the same across bases only when the conversion factor is identical for everyone in the comparison. When the factor differs between the two groups on average, the gap shifts when you change basis — and can even change direction.

This is because the average of converted salaries is not simply the average salary multiplied by one shared factor — each salary is divided or multiplied by its own. Mathematically, the average of the ratios is not the same as the ratio of the averages.

A worked example

Take four employees doing equal work, all stored as monthly salaries. The two groups have different full-time-hours definitions (for example, different collective agreements):

Employee

Monthly salary

Full-time hours / month

Yearly payouts

Group A — 1

40,000

165

12

Group A — 2

40,000

165

12

Group B — 1

40,000

150

12

Group B — 2

38,000

150

12

Converting each employee to an hourly rate (monthly ÷ full-time hours) and to a yearly figure (monthly × yearly payouts), then comparing the group averages, gives:

Basis

Group A avg

Group B avg

Gap (A vs B)

Monthly

40,000

39,000

+2.5%

Hourly

242.42

260.00

−7.25%

Yearly (×12)

480,000

468,000

+2.5%

Read across the table: in monthly terms Group A is paid 2.5% more. In hourly terms Group B is ahead by 7.25% — the gap reverses. Nothing about anyone’s pay changed; only the basis did. Group B’s lower full-time-hours definition (150 vs 165) means their hourly rate is relatively higher, so the comparison looks different per hour than per month.

The yearly figure, by contrast, is identical to the monthly result (+2.5%). That is because every employee here has the same number of yearly payouts (12). A conversion factor that is the same for everyone leaves the gap unchanged.

Yearly payouts work the same way

The same logic applies to yearly payouts. If two groups have the same monthly salary but one group receives an extra payout across the year (say 13 payouts instead of 12), the monthly gap is 0% while the yearly gap is not — because the yearly conversion factor now differs between the groups.

What to take from this

• Differences between bases are expected whenever full-time hours or yearly payouts vary between the groups being compared. They do not indicate a data or calculation error.

• Choose the basis that matches the question. For statutory reporting that asks for an hourly figure, use hourly; for an annual comparison, use yearly.

• If a gap looks surprising on one basis, check whether the underlying full-time hours or yearly payouts differ between the groups — that difference is usually the explanation.

• Accurate full-time-hours and yearly-payout values are what make every basis trustworthy, which is why the preparation step matters.

Questions about this update? Contact your Sysarb advisor or our support team.

Did this answer your question?