Release notes: Inquiry Pay Equity
This documentation page records the changes made to the SETU Standard for Inquiry Pay Equity across multiple versions. This page provides a chronological overview of updates, improvements, and modifications.
From v1.0 to v2.0
Version 2.0 of the Inquiry Pay Equity specification represents a significant improvement of the standard, addressing over 100 solved issues. This release focuses on three key themes:
- Data consistency - Harmonizing data types and structures across all blocks
- Expressiveness - Adding capabilities to capture complex compensation scenarios
- Traceability - Enabling tracking of data origins and cross-referencing between elements
All the issues are recorded on the SETU GitHub environment: link
Structural changes
| Change | Issues | Migration |
|---|---|---|
amount.value and amount.baseAmount.value changed from string to number | #13, #69 | Convert all numeric strings to actual numbers. E.g., "25" → 25, "150.50" → 150.50 |
id field removed, replaced by versionId | #52, #57 | Use documentId as the primary business identifier. Use versionId for version tracking. |
customer.personContacts changed from object to array. Multiple person contacts can now be specified | #5 | Wrap existing contact in an array: personContacts: {...} → personContacts: [{...}] |
Multiple leave.specialLeave are allowed | #33 | Wrap existing special leave in an array to support multiple leave types |
Multiple leave.WAZO are allowed | #33 | Convert WAZO description field to structured array entries |
sickPay.periode is removed | #79 | Unwrap single time period from array |
sickPay.period[].weekday changed from string to array | #31 | Wrap weekday in array for consistency |
individualChoiceBudget.budgetRate[] renamed to individualChoiceBudget.line[] | #63 | Rename budgetRate to line for consistency with other blocks |
Reference of positionProfile.salaryScale moved to remuneration.salaryScale | #14 | Move salary scales and add positionProfileReference for linking |
schemeAgencyId now required on customer.id, individualChoiceBudget.id, other.id, sickPay.id, sustainableEmployability.id | #26 | |
holidayAllowance.name changed from required to optional | #50 | |
Various line and line.amount fields changed from required to optional | #56, #85 | |
Change ...SalaryIncreaseRate to ...SalaryIncrease | 82 | |
Standardize conditionType values | #1 | Major change please see conditions |
| Possibility to add Occurence as Conditions and as Paydates to indicate for example salary increases | #42 | See conditions |
Add description field to all components | #80 | Description field for complex calculations |
Add Hour/Day unitCode for sustainable employability | #75 | |
Time-for-time available in the other component | #73 | Support for time-for-time arrangements |
Add startSalaryStep under InquiryPayEquity / remuneration / salaryScale / positionProfileReference | #67 | |
Add Holidays under allowance/period/weekday | #66 | Process holidays for allowances |
Add referenceDate to baseDefinitions | #65 | Add valuation date to basis definitions |
Add IKBReference under each line in allowance, holiday allowance, ADV, Paid leave and Sustainability Employability | #36 | Handle missing IKB information |
Add description under holidayAllowance, sickPay, leave, individualChoiceBudget, pension and sustainableEmployability | #84 | |
Standardized supplementaryArrangement to align it with other elements | #87 | |
Added payDateto the allowance element | #89 | |
Added lineId elements to all leave components | #99 | |
interval and salaryScale are made optional to allow non-mappable employees to be shared in the standard | #72 | |
Added contributionSource to each line (and line-like) element | #91 | |
Added coverage with the structure of an amount element to supplementaryArrangements and otherArrangements | #100 |
Code List Changes
| Change | Issues |
|---|---|
Expense/allowance code lists consolidated; EA105 reassigned | #54 |
Base amount unitCode list expanded with clear wage concepts | #9 |
Amount unitCode list expanded with Day | #77 |
| Codelist for offical holidays | #62 |
typeCode for SustainableSociety expanded | #38 |
typeCode for Allowances expanded | #21 |
unitCode for salary increase is expanded with step | #21 |
| Aligned the codelist naming convention and corrected small typos | #88 |
Expanded the allowance type codes with mobility options such as BicycleArrangement | #90 |
Created the Contribution source types codelist to clarify if an element requires payment from the employee or the employer | #91 |
Added SickPay to the codelist Base definitions | #92 |
Functional extensions
Origin Tracking (#8, #74)
A new origin block has been added to all major sections to distinguish between:
- CAO-defined elements (collective labor agreement)
- Client-specific additions or deviations
"origin": {
"type": "CollectiveLabourAgreement" | "CollectiveLabourAgreementExtended" | "CustomLabourAgreement" | "Unknown"
}
Affected blocks: allowance, holidayAllowance, individualChoiceBudget, leave, other, pension, positionProfile, remuneration, sickPay, sustainableEmployability
Base Definitions (#16)
New top-level baseDefinition[] array to explicitly define what components are included in base salary calculations:
"baseDefinition": [{
"baseType": "actualWage",
"remunerationIndicator": true,
"holidayAllowanceIndicator": true,
"paidLeaveDayIndicator": false,
"allAllowancesIndicator": false,
"allowances": [
{ "typeCode": "EA101" },
{ "typeCode": "EA102" }
],
"referenceDate" : {
"occurrenceType":"..",
}
}]
Supplementary Arrangement (#49)
New supplementaryArrangement[] section for RVU (early retirement), generation pact, and other arrangements:
"supplementaryArrangement": [{
"name": "Generatiepact 80-90-100",
"typeCode": "GenerationPact"
}]
Line Identifiers (#60, #22)
New lineId field on line items enables cross-referencing between allowances:
"allowance": [{
"line": [{
"lineId": { "value": "shift-allowance-1" },
"reference": [{
"id": { "value": "base-hourly-rate" }
}]
}]
}]
Proportional Indicators (#48)
New proportional object on amount blocks to indicate pro-rata calculation:
"amount": {
"value": 100,
"unitCode": "euro",
"proportional": {
"partTimePercentage": true,
"employmentDuration": true,
"description": "Pro-rata based on ...."
}
}
Leave Day Value (#46)
New leaveDayValue on individual leave types (ADV, paid leave, special leave, holidays, WAZO) instead of a single global value:
"workingHoursReduction": [{
"amount": { "value": 24, "unitCode": "hour" },
"leaveDayValue": {
"value": 180,
"unitCode": "euro"
}
}]
Expanded Special Leave (#33)
Special leave restructured as an array with full amount specification:
"specialLeave": [{
"name": "Marriage leave",
"amount": {
"value": 2,
"unitCode": "day"
},
"interval": {
"value": "1",
"unitCode": "item"
},
"conditions": [{
"conditionType": ".."
}],
}]
WAZO Leave Support (#33)
New dedicated wazo[] array for maternity/paternity leave arrangements:
"additionalParentalLeave": [{
"name": "Additional birth leave",
"amount": {
"value": 5,
"unitCode": "day"
},
"conditions": [{
"conditionType": "Occurrence",
"occurrenceType": "...",
}]
}]
Work Duration Details (#64, #41)
Expanded workDuration with interval specification:
"workDuration": {
"amount": {
"value": 40,
"unitCode": "hour"
},
"interval": {
"value": 1,
"unitCode": "week"
},
"valuePerWeek": 40
}
Effective date on Salary Increases (#12)
Added effectiveDate to individualSalaryIncrease:
"individualSalaryIncrease": [{
"effectiveDate": {
"occurenceType": "..."
},
"line": { ... }
}]
Improvements
Expanded Unit Codes (#6, #9, #23, #25, #30, #32, #34, #39)
- Added
shift(per dienst) for shift allowances - Added
fourWeeks,quarterto interval codes - Expanded base amount unit codes with clear wage concepts
- Added
hourand percentage options to paid leave - Extended IKB interval options
Salary Scale Improvements (#14)
salaryScalemoved to remuneration for direct linking- Added
currencyfield - Added
positionProfileReferencefor position linking
Pension Clarifications (#15, #16)
- Pension lines can now be distinguished by employer/employee contribution via conditions or naming
- Base definitions allow specifying pension calculation basis
Holiday Processing (#28, #44, #58)
- Added
unitCodeto holiday amounts - Improved pay date flexibility
- Added official holiday code list support
Documentation (#7, #17, #61)
- Improved field descriptions throughout
- Clarified
hourlyWageFactorusage - Better documentation of
relationType
Optional Fields (#37, #53, #56 ,98)
lineandamountfields made optional where appropriate- Supports scenarios where arrangements exist but amounts are not known
Translated Dutch terms to English (#93, #95)
- Numerous Dutch terms such as WGA-hiaat are translated to English terms accompanied with a Dutch translation
- This includes both codelist and elements
Removed Occurence Types from all elements (#101)
- The occurence type is per implemenation of the dynamic occurence element not required in the message model
Bugfix PersonContacts to be in line with other SETU message (#103)
The next changes are made to be aligned with the other SETU messages:
- Cardinality of
communication/phonehas changed from0..1to0..n - Cardinality of
communication/emailhas changed from0..1to0..n - Optional element added under
communication/emailnameduse codeto indicate the usage of the email (e.g., business email or private email)
Added description field under all leave components (#104)
Items On Hold
| Issue | Description | Reason |
|---|---|---|
| #59 | Replacing allowances | Needs further analysis |