curl --request POST \
--url https://sandbox.nmbr.co/services/payroll/calculations/statutory_holiday_pay \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pay_stub_id": "<id>",
"configuration": {
"calculate_entitlement": true,
"calculation_strategy": "provincial_rules_only"
}
}
'{
"object": "statutory_holiday_pay_explanation",
"data": {
"not_applicable_reason": null,
"jurisdiction": "ca_on",
"configuration": {
"calculate_entitlement": true,
"calculation_strategy": "provincial_rules_only",
"override_rule_set": null,
"override_date_basis": null,
"hours": null,
"pay_rate": null
},
"default_rules": [
{
"id": "<id>",
"name": "Regular earnings",
"explanation": "The last 4 weeks of eligible earnings, ending the day before the holiday week begins, divided by 20.",
"earning_date_basis": "before_holiday_week",
"eligible_days_in_range": 28,
"eligible_work_days_in_range": 20,
"eligible_earning_types": [
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "wage",
"label": "Wage",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/wage"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "retroactive_pay",
"label": "Retroactive Pay",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/retroactive_pay"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "retroactive_pay_increase",
"label": "Retroactive Pay Increase",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/retroactive_pay_increase"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "commission",
"label": "Commission (Non-Periodic)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/commission"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "commission_periodic",
"label": "Commission (Periodic)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/commission_periodic"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "bonus_non_discretionary",
"label": "Bonus (Non-Discretionary)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/bonus_non_discretionary"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "bonus_non_taxable",
"label": "Bonus (Non-Taxable)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/bonus_non_taxable"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "statutory_holiday_pay",
"label": "Statutory Holiday Pay",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/statutory_holiday_pay"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_sick",
"label": "Leave (Sick)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_sick"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_general",
"label": "Leave (General)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_general"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_personal",
"label": "Leave (Personal)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_personal"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_bereavement",
"label": "Leave (Bereavement)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_bereavement"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_domestic_and_sexual_violence",
"label": "Leave (Domestic and Sexual Violence)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_domestic_and_sexual_violence"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_paternity",
"label": "Leave (Paternity)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_paternity"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_voting",
"label": "Leave (Voting)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_voting"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_wedding",
"label": "Leave (Wedding)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_wedding"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "vacation_pay",
"label": "Vacation Pay Out",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/vacation_pay"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "vacation_pay_employee_terminated",
"label": "Vacation Pay (Employee Terminated)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/vacation_pay_employee_terminated"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "vacation_pay_time_taken",
"label": "Vacation Pay (Time Taken)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/vacation_pay_time_taken"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "vacation_pay_no_time_taken",
"label": "Vacation Pay (No Time Taken)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/vacation_pay_no_time_taken"
}
}
],
"eligible_allowance_types": [],
"eligible_reimbursement_types": []
}
],
"overridden_rules": null,
"holidays": [
{
"holiday": {
"id": "<id>",
"object": "holiday",
"data": {
"jurisdiction": "ca_on",
"type": "statutory",
"name": "Victoria Day",
"name_translations": {
"en": "Victoria Day",
"fr": "Fête de la Reine"
},
"name_translated": "Victoria Day",
"original_date": "2026-05-18",
"observed_date": "2026-05-18",
"created_at": "2026-01-26T20:16:33.000000Z",
"updated_at": "2026-01-26T20:16:33.000000Z"
},
"links": {
"self": "/holidays/<id>"
}
},
"line_item_id": null,
"amount": 229.57,
"hours": 7.35,
"entitlement": {
"fixed_hours_calculation": null,
"provincial_rules_calculation": [
{
"id": "<id>",
"amount": 229.57,
"hours": 7.35,
"eligible_date_range": {
"start": "2026-04-17",
"end": "2026-05-14"
},
"totals": {
"dated_amount": 0,
"dated_hours": 0,
"undated_amount": 10000,
"undated_hours": 320,
"undated_amount_prorated": 4591.39785,
"undated_hours_prorated": 146.9247312,
"effective_amount": 4591.39785,
"effective_hours": 146.9247312
},
"payroll_summaries": [
{
"payroll": {
"id": "<id>",
"object": "payroll",
"links": {
"self": "/payrolls/<id>"
}
},
"pay_period": {
"start": "2026-05-01",
"end": "2026-05-31"
},
"dated_amount_total": 0,
"dated_hours_total": 0,
"undated_amount_total": 5000,
"undated_hours_total": 160,
"eligible_days_in_pay_period": 14,
"days_in_pay_period": 31,
"undated_coverage_ratio": 0.4516129,
"undated_amount_prorated": 2258.0645,
"undated_hours_prorated": 72.258064,
"effective_amount": 2258.0645,
"effective_hours": 72.258064,
"earlier_holidays_amount": 0,
"earlier_holidays_hours": 0,
"dated_line_items": [],
"undated_line_items": [
{
"id": "<id>",
"object": "earning_line_item",
"title": "Hourly wage",
"amount": 5000,
"hours": 160
}
]
},
{
"payroll": {
"id": "<id>",
"object": "payroll",
"links": {
"self": "/payrolls/<id>"
}
},
"pay_period": {
"start": "2026-04-01",
"end": "2026-04-30"
},
"dated_amount_total": 0,
"dated_hours_total": 0,
"undated_amount_total": 5000,
"undated_hours_total": 160,
"eligible_days_in_pay_period": 14,
"days_in_pay_period": 30,
"undated_coverage_ratio": 0.46666667,
"undated_amount_prorated": 2333.33335,
"undated_hours_prorated": 74.6666672,
"effective_amount": 2333.33335,
"effective_hours": 74.6666672,
"earlier_holidays_amount": 0,
"earlier_holidays_hours": 0,
"dated_line_items": [],
"undated_line_items": [
{
"id": "<id>",
"object": "earning_line_item",
"title": "Hourly wage",
"amount": 5000,
"hours": 160
}
]
}
]
}
],
"chosen_method": "provincial_rules"
}
}
]
}
}Explain statutory holiday pay calculation
Explain how statutory holiday pay would be calculated for the pay stub’s work assignment, optionally overriding which dates are treated as holidays and/or the statutory holiday pay configuration. With no overrides, behaves as a pure explanation of how statutory holiday pay was or will be calculated under the work assignment’s current configuration.
curl --request POST \
--url https://sandbox.nmbr.co/services/payroll/calculations/statutory_holiday_pay \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pay_stub_id": "<id>",
"configuration": {
"calculate_entitlement": true,
"calculation_strategy": "provincial_rules_only"
}
}
'{
"object": "statutory_holiday_pay_explanation",
"data": {
"not_applicable_reason": null,
"jurisdiction": "ca_on",
"configuration": {
"calculate_entitlement": true,
"calculation_strategy": "provincial_rules_only",
"override_rule_set": null,
"override_date_basis": null,
"hours": null,
"pay_rate": null
},
"default_rules": [
{
"id": "<id>",
"name": "Regular earnings",
"explanation": "The last 4 weeks of eligible earnings, ending the day before the holiday week begins, divided by 20.",
"earning_date_basis": "before_holiday_week",
"eligible_days_in_range": 28,
"eligible_work_days_in_range": 20,
"eligible_earning_types": [
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "wage",
"label": "Wage",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/wage"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "retroactive_pay",
"label": "Retroactive Pay",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/retroactive_pay"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "retroactive_pay_increase",
"label": "Retroactive Pay Increase",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/retroactive_pay_increase"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "commission",
"label": "Commission (Non-Periodic)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/commission"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "commission_periodic",
"label": "Commission (Periodic)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/commission_periodic"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "bonus_non_discretionary",
"label": "Bonus (Non-Discretionary)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/bonus_non_discretionary"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "bonus_non_taxable",
"label": "Bonus (Non-Taxable)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/bonus_non_taxable"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "statutory_holiday_pay",
"label": "Statutory Holiday Pay",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/statutory_holiday_pay"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_sick",
"label": "Leave (Sick)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_sick"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_general",
"label": "Leave (General)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_general"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_personal",
"label": "Leave (Personal)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_personal"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_bereavement",
"label": "Leave (Bereavement)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_bereavement"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_domestic_and_sexual_violence",
"label": "Leave (Domestic and Sexual Violence)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_domestic_and_sexual_violence"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_paternity",
"label": "Leave (Paternity)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_paternity"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_voting",
"label": "Leave (Voting)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_voting"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "leave_wedding",
"label": "Leave (Wedding)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/leave_wedding"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "vacation_pay",
"label": "Vacation Pay Out",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/vacation_pay"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "vacation_pay_employee_terminated",
"label": "Vacation Pay (Employee Terminated)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/vacation_pay_employee_terminated"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "vacation_pay_time_taken",
"label": "Vacation Pay (Time Taken)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/vacation_pay_time_taken"
}
},
{
"id": "<id>",
"object": "earning_type",
"data": {
"type": "vacation_pay_no_time_taken",
"label": "Vacation Pay (No Time Taken)",
"supported_payroll_types": {
"regular": true,
"historical": true,
"off_cycle": true
}
},
"links": {
"self": "/earning_types/vacation_pay_no_time_taken"
}
}
],
"eligible_allowance_types": [],
"eligible_reimbursement_types": []
}
],
"overridden_rules": null,
"holidays": [
{
"holiday": {
"id": "<id>",
"object": "holiday",
"data": {
"jurisdiction": "ca_on",
"type": "statutory",
"name": "Victoria Day",
"name_translations": {
"en": "Victoria Day",
"fr": "Fête de la Reine"
},
"name_translated": "Victoria Day",
"original_date": "2026-05-18",
"observed_date": "2026-05-18",
"created_at": "2026-01-26T20:16:33.000000Z",
"updated_at": "2026-01-26T20:16:33.000000Z"
},
"links": {
"self": "/holidays/<id>"
}
},
"line_item_id": null,
"amount": 229.57,
"hours": 7.35,
"entitlement": {
"fixed_hours_calculation": null,
"provincial_rules_calculation": [
{
"id": "<id>",
"amount": 229.57,
"hours": 7.35,
"eligible_date_range": {
"start": "2026-04-17",
"end": "2026-05-14"
},
"totals": {
"dated_amount": 0,
"dated_hours": 0,
"undated_amount": 10000,
"undated_hours": 320,
"undated_amount_prorated": 4591.39785,
"undated_hours_prorated": 146.9247312,
"effective_amount": 4591.39785,
"effective_hours": 146.9247312
},
"payroll_summaries": [
{
"payroll": {
"id": "<id>",
"object": "payroll",
"links": {
"self": "/payrolls/<id>"
}
},
"pay_period": {
"start": "2026-05-01",
"end": "2026-05-31"
},
"dated_amount_total": 0,
"dated_hours_total": 0,
"undated_amount_total": 5000,
"undated_hours_total": 160,
"eligible_days_in_pay_period": 14,
"days_in_pay_period": 31,
"undated_coverage_ratio": 0.4516129,
"undated_amount_prorated": 2258.0645,
"undated_hours_prorated": 72.258064,
"effective_amount": 2258.0645,
"effective_hours": 72.258064,
"earlier_holidays_amount": 0,
"earlier_holidays_hours": 0,
"dated_line_items": [],
"undated_line_items": [
{
"id": "<id>",
"object": "earning_line_item",
"title": "Hourly wage",
"amount": 5000,
"hours": 160
}
]
},
{
"payroll": {
"id": "<id>",
"object": "payroll",
"links": {
"self": "/payrolls/<id>"
}
},
"pay_period": {
"start": "2026-04-01",
"end": "2026-04-30"
},
"dated_amount_total": 0,
"dated_hours_total": 0,
"undated_amount_total": 5000,
"undated_hours_total": 160,
"eligible_days_in_pay_period": 14,
"days_in_pay_period": 30,
"undated_coverage_ratio": 0.46666667,
"undated_amount_prorated": 2333.33335,
"undated_hours_prorated": 74.6666672,
"effective_amount": 2333.33335,
"effective_hours": 74.6666672,
"earlier_holidays_amount": 0,
"earlier_holidays_hours": 0,
"dated_line_items": [],
"undated_line_items": [
{
"id": "<id>",
"object": "earning_line_item",
"title": "Hourly wage",
"amount": 5000,
"hours": 160
}
]
}
]
}
],
"chosen_method": "provincial_rules"
}
}
]
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The pay stub to explain statutory holiday pay for.
Optional array of Y-m-d dates within the pay stub's pay period to treat as statutory holidays. When omitted, the statutory holidays for the work assignment's Province of Work (POW) are used.
Optional override of the work assignment's statutory holiday pay configuration. When omitted, the work assignment's ca_statutory_holiday_pay tax property in effect at the start of the pay period is used.
Hide child attributes
Hide child attributes
hours_only, provincial_rules_only, provincial_rules_or_hours AB, BC, FEDERAL, MB, NB, NL, NS, NT, NU, OC, ON, PE, QC, SK, YT before_holiday_day, before_holiday_pay_period, before_holiday_week x >= 0earliest_effective_from, highest_expected_hours_per_week, highest_expected_weekly_amount, highest_rate, latest_effective_from Response
OK
The unique identifier of the object in Nmbr.
The type of the object in Nmbr ("statutory_holiday_pay_explanation").
Hide child attributes
Hide child attributes
A machine-readable code describing why no entitlement was computed (one of contractor_pay_stub, not_enabled, no_province_of_work, payroll_not_supported). null when entitlement was calculated.
The effective Province of Work (work assignment's POW with any override_rule_set applied) used to look up holidays and provincial rules, in ca_xx format (one of ca_ab, ca_bc, ca_mb, ca_nb, ca_nl, ca_ns, ca_nt, ca_nu, ca_on, ca_pe, ca_qc, ca_sk, ca_yt, or ca_federal). null when no Province of Work could be resolved.
The Statutory Holiday Pay tax property configuration on the work assignment as of the start of the pay period, or the configuration override supplied in the request body. null when neither is present.
The rules defined by the work assignment's own Province of Work (ignoring any override_rule_set). Describes what would apply by default.
Hide child attributes
Hide child attributes
The rule's stable identifier (e.g. regular_earnings, commission). Used to cross-reference per-holiday calculations under holidays[].entitlement.provincial_rules_calculation[].id.
The translated human-readable name of the rule for the request locale.
A prose sentence describing how this rule computes the entitlement (e.g. "The last 4 weeks of eligible earnings, ending the day before the holiday week begins, divided by 20.").
Which calendar boundary the rule's look-back window ends on. One of before_holiday_day, before_holiday_week, or before_holiday_pay_period.
The width of the look-back window in calendar days (e.g. 28 for Ontario's 4-week window).
The divisor used to convert the window's effective earnings into a per-holiday entitlement (e.g. 20 for Ontario).
Earning types that count toward this rule's look-back sum. Earnings of types not listed here are excluded.
Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
Allowance types that count toward this rule's look-back sum. Usually empty.
Reimbursement types that count toward this rule's look-back sum. Usually empty.
Only present when the configuration actually overrides something (either override_rule_set or override_date_basis). Describes the rules that are used in place of the defaults: sourced from the effective POW and with the overridden earning date basis applied to each rule's prose and earning_date_basis field. Each entry has the same shape as default_rules.
One entry per statutory holiday observed in the pay period (or per holiday_dates entry when an override was supplied in the request).
Hide child attributes
Hide child attributes
The Holiday record being calculated against. id and timestamps are null for hypothetical holidays supplied via holiday_dates.
Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
The translation of the name property for the request locale. Computed using the values in name and name_translations and the value of the request's Accept-Language header.
The id of the managed Statutory Holiday Pay earning line item on this pay stub that corresponds to this holiday. null when no managed line item exists yet (e.g. statutory holiday pay isn't enabled on the work assignment, the holiday was supplied as a hypothetical via holiday_dates, or the pay stub belongs to a Contractor).
The dollar entitlement the employee is owed for this holiday, after applying the configuration's strategy. 0 when entitlement isn't being calculated (see not_applicable_reason).
The hours that form the basis of amount, on the same basis as the amount. 0 when entitlement isn't being calculated.
The breakdown of how amount and hours were computed. null when entitlement isn't being calculated for this pay stub.
Hide child attributes
Hide child attributes
The fixed-hours calculation result. Always populated under hours_only and provincial_rules_or_hours strategies; null under provincial_rules_only.
Per-rule results from the provincial calculator. Always populated under provincial_rules_only and provincial_rules_or_hours; null under hours_only. Most provinces have a single regular_earnings rule; Quebec splits earnings and commissions into separate rules.
Hide child attributes
Hide child attributes
The rule's identifier (e.g. regular_earnings). Matches an entry in default_rules / overridden_rules.
The entitlement this rule contributes to the holiday, computed as totals.effective_amount ÷ eligible_work_days_in_range.
The hours basis for this rule's contribution, on the same basis as amount.
The look-back window for this rule, derived from the rule's earning_date_basis and eligible_days_in_range. Inclusive on both ends.
Aggregated totals across every pay period that overlapped the look-back window, before dividing by the rule's eligible_work_days_in_range. dated_* fields sum line items whose earned_on date falls inside the window (included at 100%); undated_* fields sum line items without an earned_on (prorated by each pay period's coverage ratio); effective_* is dated_* plus undated_*_prorated.
Hide child attributes
Hide child attributes
undated_amount after applying each pay period's undated_coverage_ratio. This is the value that contributes to effective_amount.
undated_hours after applying each pay period's undated_coverage_ratio.
The numerator divided by eligible_work_days_in_range to produce the per-holiday amount. Equal to dated_amount + undated_amount_prorated.
The numerator divided by eligible_work_days_in_range to produce the per-holiday hours. Equal to dated_hours + undated_hours_prorated.
The per-payroll breakdown that produced totals. Each entry covers one paid prior payroll (or the current draft payroll) whose pay period overlapped the look-back window.
Hide child attributes
Hide child attributes
The Payroll being summarized.
Hide child attributes
Hide child attributes
The number of calendar days from this pay period that fall inside the rule's eligible_date_range. The numerator of undated_coverage_ratio.
The total number of calendar days in this pay period. The denominator of undated_coverage_ratio.
The fraction of this pay period that overlaps the rule's eligible_date_range. Used to prorate the period's undated line items into the look-back sum.
For cascading provincial rules (e.g. Ontario, where Statutory Holiday Pay itself counts as eligible earnings), the sum of entitlements computed for earlier holidays in the current pay period that fall inside this rule's eligible date range. Always 0 for prior payrolls' summaries. Treated as additional dated earnings.
The hours equivalent of earlier_holidays_amount.
The line items from this pay period's pay stub that have an earned_on date. Each entry's in_range flag indicates whether the earned_on falls inside the rule's eligible_date_range and therefore counted toward dated_amount / dated_hours.
The line items from this pay period's pay stub that have no earned_on date — they're assumed to be spread evenly across the period and contribute to undated_amount / undated_hours after proration by undated_coverage_ratio.
Hide child attributes
Hide child attributes
Which calculator produced the chosen amount. Either provincial_rules or fixed_hours. Under provincial_rules_or_hours this can differ per holiday — the engine picks whichever yields the larger entitlement.

