Pay Schemes¶
A pay scheme defines a pay arrangement which is a shared across workers, and which can be centrally modified.
A worker is enabled for a pay scheme using a Pay Item, based on a main Pay Definition, and which allows worker-specific values to be set in the usual way. The difference is that the main Pay Definition refers to a scheme by name.
Pay schemes are specialised Pay Definitions, and each is configured using key-value pairs:
{
"key1": "a string value",
"key2": 3.5,
...
"foo": [1, 2, 3, 9],
"bar": {
"xyz": 1,
"abc": "fff"
}
}
Note that there is no Pay Item corresponding to the scheme Pay Definition; this also means that any key values set by the scheme can be changed subsequently and conveniently in one place.
paiyroll® uses schemes to describe the shared details of pay arrangements in various areas:
Scheme type |
Usage |
|---|---|
Holidays. |
Settings for absences where the start and end dates are known at the time of booking. |
Sickness and other non-holiday absences. |
Settings for absences where the start date is known at the time of booking, but the end date is not. |
OnDemand |
Settings for limits and charges (such as how often on-demand may be used). |
Pensions |
Settings for pension provider (such as scheme reference identifiers), and scheme limits and settings (such as the company contribution percentage). |
Salary |
Settings for salary calculations. |
Timesheets |
Configures the timesheets to be used (such as setting the granularity for time-of-attendance to 30-minutes, or the number of rates for piece-based timesheets to 3). |
Schemes are described using key-value pairs. The keys and possible values in each case are described below.
Holiday schemes¶
Holiday schemes are for booking time off. To use a Holiday scheme, create a Pay Definition based on the required Pay Template and a Workflow Definition to manage the booking process.
Note that the system prevents overlapping holiday bookings.
Universal Holiday¶
Each worker’s holiday pay item has the following inputs:
- <implicit>
Start/end dates etc. from booking workflow.
- Annual entitlement
The number of days holiday per year. The system automatically adjusts for employment start and end dates.
- Per diem
The value of a holiday day used when buying or selling holidays. If zero, is defaulted from any annual salary Pay Item / 226 at current date. Note that some asymmetry arises if N days are sold at per_diem X and later bought back at salary Y.
- Holidayable earnings
Earnings subject to holiday pay.
- Buy or sell
Set to a positive number to buy holiday, negative number to sell. Has precedence over carry over when the year-end/leave date is reached. Validated on holiday sale against sell_limit (negative) or holiday buy against buy_limit (positive).
- Scheme
Holiday entitlement scheme definition.
- Migrated balance
Use after import. The state entitlement_ytd will be updated with this value. After the next payrun, this input will be cleared to ‘-‘.
This is how the pay item operates for different pay run types:
Behaviour |
Scheduled |
Custom |
On-demand |
|---|---|---|---|
End date for which holiday entitlement is earned. |
End of pay period. |
Actual_t. |
Not used. |
Balancing payment for new-holiday-year (in first pay run of holiday year). |
Yes. |
Yes. |
No. |
Balancing payment for leaver (in first pay run with ending date after pay period start). |
Yes. |
Yes. |
No. |
Accumulate holidays taken, and buy-or-sell. |
Yes. |
Yes. |
Yes. |
Balance “Paid off on” date for new-holiday-year or leaver. |
End of pay period. |
Actual_t. |
Not changed. |
Holidayable earnings pay-out |
Yes. |
No. |
No. |
Universal AbsenceScheme¶
AbsenceScheme has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
- reset_date
The day and month after which, on the next pay run, the holiday scheme is reset.
- working_pattern
How pay is remunerated using one of 4 values:
- fixed
Fixed pay and fixed hours (default with no holiday pay).
- variable
Variable pay (regular overtime, commission or bonuses) (including holiday pay).
- shift
Shift work with fixed hours, full or part-time.
- no
No fixed hours (casual work, zero-hours contract, irregular) contracts.
- carry_limit
Limit on the number of days allowed to be carried over when the holiday scheme is reset.
- buy_limit
Limit on the number of days allowed to be bought each year.
- sell_limit
Limit on the number of days allowed to be sold each year.
- average_formula
Specifies the formula used to calculate average holiday pay:
- all
All pay periods are averaged in the calculation (default)
- only_paid_w1
Only averages weeks that were paid regardless of pay frequency. Weekly pay is used directly for ‘w1’ schedules and weekly timesheets specify pay each week for all other schedules. If timesheets are missing, pay will be attributed to the final week of the schedule, which may not lead to the desired result.
Note: Monthly (m1, m3, m12) schedules must have a whole number of weeks in the pay period (end on the same weekday) for this option to operate. Otherwise the default ‘all’ formula will be used.
- average_period_weeks
The period over which to average (default and maximum are 52).
- max_history_weeks
The maximum history to maintain and look back over (default and maximum are 104).
The clazz must be selected from:
paiyroll.pay.Universal.absence.holiday.AbsenceScheme
Example:
{
"clazz": "paiyroll.pay.Universal.absence.holiday.AbsenceScheme",
"working_pattern": "fixed",
"reset_date": "2019-02-01",
"carry_limit": 5,
"buy_limit": 5,
"sell_limit": 5
}
Workflows¶
The pay item requires a Workflow Definition based on paiyroll.flows.holiday.HolidayFlow.
Sickness and other non-holiday absences¶
Sickness schemes are for claiming pay due to illness and other non-holiday absences (for example, statutory maternity pay). To use a Sickness scheme, create a Pay Definition based on the required Pay Template and a Workflow Definition to manage the claim process.
Note that the system prevents overlapping sickness claims. Since sickness claims are typically started before the end is known, in practice this means that one claim must be ended before another can be started.
GB SMP¶
Statutory Maternity Pay. Each worker’s pay item specifies:
- <implicit>
Start/end dates etc. from claim workflow.
- Override
Set to use the manual override.
- Override value
Manual override of calculated value. No entitlement tracking is performed.
- AWE
Average weekly earnings.
- Scheme
The scheme.
See the SMP eligibility rules and SMP guidance. Note:
Claims must be made within 12 weeks of the start date.
The system automatically disqualifies claims:
If Average Weekly Earnings (AWE) fall below the minimum level.
If the 26 week rule for Qualifying Week (QW) is not met for the current employment.
A claim usually starts when the worker takes planned maternity leave. If the leave starts unexpectedly (e.g. if the baby is born early, or if the worker is off work for a pregnancy-related illness in the 4 weeks before the week that the baby is due), delete the original claim and create a new claim with the new start date.
When a claim is ended, SMP is paid in complete weeks. The claim end must be set based on the reason for the end of the claim:
Claim endings¶ Ending reason
SMP claim end setting
SMP ending week
Worker leaves.
Set employment end date. Do not end SMP claim.
If the Maternity Pay Period (MPP) has already started, you will have to continue paying SMP by manually enabling pay-after-end payments. See TBD for more information on the procedures for leavers.
Previous.
Worker is taken into legal custody.
Set SMP claim end to day before custody begins.
Previous.
Keep In Touch (KIT) day limit exceeded.
Set SMP claim end to day before KIT limit is exceeded.
Previous.
Worker dies.
Set SMP claim end to end of SMP week on or following date of death.
Given.
Even after an SMP claim has ended, the worker is not eligible for SSP until after the MPP is over. If the worker falls ill during the MPP, a new claim for SMP, based on the original pregnancy, must be made instead.
When entitlement to benefit ends, any Salary pay item will automatically resume (even if the claim is not ended by setting and approving an end date). The Salary can be zeroed to prevent overpayment if the worker is not expected to return.
Backdated pay rises are not supported.
GB SMPScheme¶
SMP has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
The clazz must be selected from:
paiyroll.pay.GB.absence.SMPScheme
Example:
{
"clazz": "paiyroll.pay.GB.absence.SMPScheme",
}
Workflows¶
The pay item requires a Workflow Definition based on paiyroll.flows.sickness.SicknessFlow.
GB SPBP¶
Statutory Parental Bereavement Pay. Each worker’s pay item specifies:
- <implicit>
Start/end dates etc. from claim workflow.
- Override
Set to use the manual override.
- Override value
Manual override of calculated value. No entitlement tracking is performed.
- AWE
Average weekly earnings.
- Scheme
The scheme.
See Statutory Parental Bereavement Pay and Leave and Manually calculate SPBP. Note:
Claims must be made within 12 weeks of the start date.
The system automatically disqualifies claims:
If Average Weekly Earnings (AWE) fall below the minimum level.
If the 26 week rule for Relevant Week (RW) is not met for the current employment.
A claim usually starts when the worker takes planned bereavement leave.
When a claim is ended, SPBP is paid in complete weeks. The claim end must be set based on the reason for the end of the claim:
Claim endings¶ Ending reason
SPBP claim end setting
SPBP ending week
Worker leaves.
Set employment end date. Set SPBP claim end to the end date.
Previous.
Worker is taken into legal custody.
Set SPBP claim end to day before custody begins.
Previous.
Worker dies.
Set SPBP claim end to end of SPBP week on or following date of death.
Given.
When entitlement to benefit ends, any Salary pay item will automatically resume (even if the claim is not ended by setting and approving an end date). The Salary can be zeroed to prevent overpayment if the worker is not expected to return.
Adoption is not supported.
Backdated pay rises are not supported.
GB SPBPScheme¶
SPBP has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
The clazz must be selected from:
paiyroll.pay.GB.absence.SPBPScheme
Example:
{
"clazz": "paiyroll.pay.GB.absence.SPBPScheme",
}
Workflows¶
The pay item requires a Workflow Definition based on paiyroll.flows.sickness.SicknessFlow.
GB SPP¶
Statutory Paternity Pay. Each worker’s pay item specifies:
- <implicit>
Start/end dates etc. from claim workflow.
- Override
Set to use the manual override.
- Override value
Manual override of calculated value. No entitlement tracking is performed.
- AWE
Average weekly earnings.
- Scheme
The scheme.
See the SPP eligibility rules and SPP guidance. Note:
Claims must be made within 12 weeks of the start date.
The system automatically disqualifies claims:
If Average Weekly Earnings (AWE) fall below the minimum level.
If the 26 week rule for Qualifying Week (QW) is not met for the current employment.
A claim usually starts when the worker takes planned paternity leave. If the leave starts unexpectedly (e.g. if the baby is born early), delete the original claim and create a new claim with the new start date.
When a claim is ended, SPP is paid in complete weeks. The claim end must be set based on the reason for the end of the claim:
Claim endings¶ Ending reason
SPP claim end setting
SPP ending week
Worker leaves.
Set employment end date. Set SPP claim end to the end date.
Previous.
Worker is taken into legal custody.
Set SPP claim end to day before custody begins.
Previous.
Worker dies.
Set SPP claim end to end of SPP week on or following date of death.
Given.
When entitlement to benefit ends, any Salary pay item will automatically resume (even if the claim is not ended by setting and approving an end date). The Salary can be zeroed to prevent overpayment if the worker is not expected to return.
Adoption is not supported.
Backdated pay rises are not supported.
GB SPPScheme¶
SPP has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
The clazz must be selected from:
paiyroll.pay.GB.absence.SPPScheme
Example:
{
"clazz": "paiyroll.pay.GB.absence.SPPScheme",
}
Workflows¶
The pay item requires a Workflow Definition based on paiyroll.flows.sickness.SicknessFlow.
GB SSP¶
Statutory Sick Pay. Each worker’s pay item specifies:
- <implicit>
Start/end dates etc. from booking workflow.
- AWE
Average weekly earnings.
- Scheme
The scheme.
Both qualifying and non-qualifying claims can be recorded. Note:
Claims must be made within 12 weeks of the start date.
The system automatically disqualifies claims:
When entitlement to benefit ends, any Salary pay item will automatically resume (even if the claim is not ended by setting and approving an end date). The Salary can be zeroed to prevent overpayment if the worker is not expected to return.
If a worker leaves, claims are truncated to the end date.
SSP is not payable after a worker dies. In this event, mark them as having left on the date the event.
GB SSPScheme¶
SSP has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
The clazz must be selected from:
paiyroll.pay.GB.absence.SSPScheme
Example:
{
"clazz": "paiyroll.pay.GB.absence.SSPScheme",
}
Workflows¶
The pay item requires a Workflow Definition based on paiyroll.flows.sickness.SicknessFlow.
OnDemand schemes¶
OnDemand schemes are for booking time off. To use the OnDemand scheme, create a Pay Definition based on the required Pay Template.
Universal OnDemand pay¶
Each worker’s pay item specifies:
- Available pay
How much pay is available?
- Scheme
On-Demand scheme definition.
Notes:
The following Pay Templates include specific support for OnDemand:
Universal Holiday
Universal Salary
GB PAYE
GB NIC
GB AE
GB Termination
GB SMP, SPBP, SPP, SSP
GB Attachments. Care must be taken when configuring OnDemand for a worker who has attachments configured too. See GB Attachment of Earnings (Garnishes) for details.
Universal OnDemandScheme¶
OnDemandScheme has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
- processed_on
Except on frozen days, requests are processed:
every_day
working_days
- deadline
After this UTC hour, processing may be delayed, subject to processed_on.
- max_withdrawals
Absolute limit of withdrawals between pay dates.
- free_withdrawals
Withdrawals between pay dates that are free to the employee (i.e. don’t incur withdrawal_fee).
- withdrawal_fee
Per-withdrawal charge to Employee after free_withdrawals.
- payment_eta
An indication of how long after being processed payment should arrive in the Employee’s account.
- max_value
A value limit on any request. Full available pay if zero.
- max_percentage
A percentage limit on any request. Not used if 100.
The clazz must be selected from:
paiyroll.pay.Universal.ondemand.OnDemandScheme
Pension schemes¶
Pension schemes are for managing pension contributions. To use a Pension scheme, create a Pay Definition based on the required Pay Template.
GB AE¶
Auto Enrolment. Each worker’s pay item specifies:
- No tax relief
tax relief: Normally False, but can be set if the worker is not eligible for tax relief.
- Overseas national awaiting NI
national awaiting NI: Overseas national awaiting their NI (used by NEST or other report submissions only).
- Qualifying Earnings
Earnings: Qualifying Earnings used as the basis for AE.
- Worker %
%: Worker % contribution between 0 and 100.
- Scheme
Name of the Scheme used for AE.
- Migrated status
status: Status, e.g. Auto enrolled for migrated employees.
- Refund reference
reference: Set to the reference provided by the pension provider to enable a refund.
- Opt-out date
date: Opt-out date provided by the pension provider. Only enter if within 1 calendar month. Invalid notices can extend the opt-out period to 6 weeks.
- Migrated enrol date
enrol date: Enrol date, set for imported workers, but can be set if joining a scheme. Otherwise None.
- Opt-in date
date: Opt-in date if a worker asks to opt-in. Otherwise None.
Notes:
For a migrated employee, the Migrated status and Migrated enrol date must be set appropriately.
When an employee is leaving, setting the end date will prevent any automatic enrolment.
On the third anniversary of your staging date, the AE Pay Item will automatically assess workers who are not enrolled and automatically enrol them if applicable.
You must not process a refund for a worker unless notified by the pension provider.
If notified by the pension provider that a refund is due, set the refund reference on the AE Pay Item for the worker concerned. The amounts due to the worker and the Company are calculated automatically. In any case, no refund will be issued if the opt-out date is more than 12 weeks from the enrol date.
Scheme Settings¶
The scheme settings for Auto Enrolment have some common elements:
- prp_alignment
Pay Reference Periods (PRPs) are aligned are aligned to tax or calendar periods:
- tax
Means the HMRC tax calendar (default).
- calendar
Means the normal pay period used on the schedule.
- duties_start
The postponement approach when duties for AE start:
- none
No postponement (default).
- maximum
Maximum postponement of 3 months.
- next_prp
Postpone to the start of the next PRP.
- latest_prp
Postpone to the start of the latest allowable PRP.
- employment_start
The postponement approach for the first day of employment. See above for the allowed values.
- eligible_jobholder
The postponement approach when a worker triggers as an eligible jobholder. See above for the allowed values.
- company_contribution
The company contribution percentage.
- group
Names a group of workers.
Examples:
{
"prp_alignment": "tax",
"eligible jobholder": "maximum",
"employment start": "maximum",
"duties start": "maximum",
"company_contribution": "3"
}
{
"prp_alignment": "calendar",
"eligible jobholder": "latest_prp",
"employment start": "latest_prp",
"duties start": "latest_prp",
"company_contribution": "3.1"
}
{
"eligible jobholder": "maximum",
"employment start": "latest_prp",
"duties start": "none",
"company_contribution": "3.75"
}
GB NESTPensionScheme¶
NEST Auto Enrolment has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
- name
The name of the scheme.
- reference
A reference for the scheme.
- type
Either “net_pay” or “relief_at_source”.
- prp_alignment
The Pay Reference Period (PRP) is aligned to tax weeks/months or calendar pay schedule.
- duties_start
Postponement from duties start
- employment_start
Postponement from employment start
- eligible_jobholder
Postponement from eligible jobholder
- company_contribution
Percentage company contribution
- group
The groupname.
- payment_source
The NEST payment source.
Example:
{
"clazz": "paiyroll.pay.GB.pension.NESTPensionScheme",
"name": "NEST Auto Enrolment",
"reference": "EMP123456789",
"type": "relief_at_source",
"eligible jobholder": "maximum",
"employment start": "maximum",
"duties start": "maximum",
"group": "C2",
"payment_source": "NW1"
}
GB PeoplesPensionScheme¶
The People’s Pension Auto Enrolment has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
- name
The name of the scheme.
- reference
A reference for the scheme.
- type
Either “net_pay” or “relief_at_source”.
- prp_alignment
The Pay Reference Period (PRP) is aligned to tax weeks/months or calendar pay schedule.
- duties_start
Postponement from duties start
- employment_start
Postponement from employment start
- eligible_jobholder
Postponement from eligible jobholder
- company_contribution
Percentage company contribution
- group
The groupname.
- contribution_basis
The basis of contributions.
Example:
{
"clazz": "paiyroll.pay.GB.pension.PensionPensionScheme",
"name": "Workshop weekly",
"reference": "EMP123456789",
"type": "relief_at_source",
"contribution_basis": "banded"
}
Note that The People’s Pension requires that all schemes for a given Company use the same “type”.
GB SmartPensionScheme¶
Smart Pension Auto Enrolment has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
- name
The name of the scheme.
- reference
A reference for the scheme.
- type
Either “net_pay” or “relief_at_source”.
- prp_alignment
The Pay Reference Period (PRP) is aligned to tax weeks/months or calendar pay schedule.
- duties_start
Postponement from duties start
- employment_start
Postponement from employment start
- eligible_jobholder
Postponement from eligible jobholder
- company_contribution
Percentage company contribution
- group
The groupname.
- contribution_basis
The basis of contributions.
Example:
{
"clazz": "paiyroll.pay.GB.pension.SmartPensionScheme",
"name": "SmartPension Auto Enrolment",
"reference": "12011089",
"type": "net_pay",
"contribution_basis": "unbanded",
"eligible jobholder": "maximum",
"employment start": "latest_prp",
"duties start": "next_prp",
"group": "abc"
}
Universal Pension contribution¶
Contributory scheme with employer match. Each worker’s pay item specifies:
- Pensionable pay
Basis of pension.
- Worker %
The percentage paid by the worker.
- Company %
The base percentage paid by the employer.
- Maximum match %
How much of Worker % will the employer match?
- Lower
Earnings below the lower limit contribute zero.
- Upper
Earnings above are ignored.
- Scheme
Pension scheme definition.
GB PensionScheme¶
Contributory scheme has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
- name
The name of the scheme.
- reference
A reference for the scheme.
- type
Either “net_pay” or “relief_at_source”.
Example:
{
"clazz": "paiyroll.pay.GB.pension.PensionScheme",
"name": "Prudence Co 1",
"reference": "999/1/123",
}
Salary schemes¶
Salary schemes are for annual salary. To use the Salary scheme, create a Pay Definition based on the required Pay Template.
Universal Salary¶
Implementation of annual salary. The value here can also be used to derive a default per-diem value for Holiday buy/sell calculations. Each worker’s pay item specifies:
- Base Salary
Annual salary.
- Absence days
Any absence days remunerated elsewhere (e.g. as holiday or sickness) and not paid by this opcode.
- Scheme
Salary scheme definition.
The salary calculation operates in two modes, one for a whole pay period and another for fractional pay periods.
Whole pay periods. Applies when pay is due for a complete pay period. The Base Salary is divided into equals parts for each pay period. Note that for month-based pay periods, the result is the same even for months of different lengths.
Fractional pay periods. Applies when:
A new starter has a start date not aligned to the start of a pay period.
A leaver has an end date not aligned to the end of a pay period.
Custom or On-demand pay runs are used, and for any subsequent Scheduled pay run.
A period of absence is involved.
The Base Salary is divided into a per-diem value using the per_diem_basis specified by the Salary scheme, and this is multiplied by the days worked (which is also calculated using the per_diem_basis).
This is how the pay item operates for different pay run types:
Behaviour |
Scheduled |
Custom |
On-demand |
|---|---|---|---|
End date for which salary is due. |
End of pay period. |
Actual_t. |
Actual_t. |
“Paid till” date. |
End of pay period. |
Actual_t. |
Not set. |
Universal SalaryScheme¶
SalaryScheme has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
- per_diem_basis
Convert annual salary to a per_diem based on:
365_days
working_days
- annual_hours
The number of annual hours worked each year.
The clazz must be selected from:
paiyroll.pay.Universal.salary.SalaryScheme
Example:
{
"clazz": "paiyroll.pay.Universal.salary.SalaryScheme",
"per_diem_basis": "working_days"
}
Timesheet schemes¶
Timesheets provide for reporting of pay by time-of-attendance and by piece:
Time-of-attendance-based timesheets support traditional clock-in-clock-out style recording of hours, days or weeks.
Piece-based timesheets support daily or weekly reporting of piece rate work. They can also be used for recording hours when the actual clock-in-clock-out times are not needed.
All timesheet schemes allow for upto 3 rates of pay, each defined by a setting describing nests as follows:
- normal
Non-overtime rate nest.
- weekend
Overtime rate nest for weekends.
- holiday
Overtime rate nest for holidays.
Each nest describes a span of time for which a percentage applies:
(start, end, percentage, [nest...])
and includes further nests which (recursively) divide a row in the timesheet into periods of time:
- start
When the period begins.
- end
When the period ends.
- percentage
Multipler of pay rate. Default is 100.
- nest
A list of periods whose start and end are nested within the current period.
For each period, the pay rate is multiplied by the percentage. For example:
{
"normal": [
#
# 2.0x normal pay from 00:00-24:00.
#
{"percent": 200, "start": 0, "end": 24, "nests": [
#
# 1.5x normal pay from 06:00-21:00.
#
{"percent": 150, "start": 6, "end": 21, "nests": [
#
# Percent defaults to 100 for 09:00-12:00 and 13:00-18:00.
#
{"start": 9, "end": 12},
{"start": 13, "end": 18},
]},
]},
],
"weekend": None, # Same as normal.
"holiday": [
{"percent": 200}, # 2.0x normal pay.
],
}
See the individual schemes for details.
Universal Time-of-Attendance-based timesheets¶
Each worker’s pay item specifies:
- Timesheet expired
Need a new timesheet.
- Work rate
The rate of pay for normal work.
- Holiday rate
The rate for holiday pay.
- Scheme
Timesheet scheme definition.
To create a time-of-attendance-based Timesheet scheme, create a Pay Definition based on the required Pay Template for Hourly, Daily or Weekly schemes. The clazz of an attendance-based Timesheet schemes determines all the other settings.
Universal HourlyScheme¶
HourlyScheme has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
- period
The timesheet period (w1, m1 etc).
- normal
Non-overtime rate “nest”s.
- weekend
Overtime rate “nest”s for weekends.
- holiday
Overtime rate “nest”s for holidays.
- moments_per_unit
Each unit is 1 hour which is divided to configure the desired granularity:
1 for 60 minute
2 for 30 minute
4 for 15 minute
6 for 10 minute
12 for 5 minute
60 for 1 minute
The clazz must be selected from:
paiyroll.pay.Universal.timesheet.time.HourlyScheme
Universal DailyScheme¶
DailyScheme has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
- period
The timesheet period (w1, m1 etc).
- normal
Non-overtime rate “nest”s.
- weekend
Overtime rate “nest”s for weekends.
- holiday
Overtime rate “nest”s for holidays.
- moments_per_unit
Each unit is 1 day which is divided to configure the desired granularity:
1 (day)
2 (half-day)
- hours_per_day
Hours per day in the workers contract.
The clazz must be selected from:
paiyroll.pay.Universal.timesheet.time.DailyScheme
Universal WeeklyScheme¶
WeeklyScheme has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
- period
The timesheet period (w1, m1 etc).
- normal
Non-overtime rate “nest”s.
- weekend
Overtime rate “nest”s for weekends.
- holiday
Overtime rate “nest”s for holidays.
- moments_per_unit
Each unit is 1 week. This cannot be divided so this must be set to 1.
- hours_per_week
Hours per week in the workers contract.
The clazz must be selected from:
paiyroll.pay.Universal.timesheet.time.WeeklyScheme
Workflows¶
The pay item requires a Workflow Definition based on paiyroll.flows.timesheet.TimesheetFlow.
Universal Piece-based timesheets¶
Each worker’s pay item specifies:
- Timesheet expired
Need a new timesheet.
- Piece rate 1
The rates of pay for each piece. Only rates will be used/displayed.
- Piece rate 2
See rate1.
- Piece rate 3
See rate1.
- Scheme
Timesheet scheme definition.
To create a piece-based Timesheet scheme, create a Pay Definition based on the required Pay Template for Daily or Weekly schemes. All the piece-based Timesheet schemes support upto 3 piece-based rates. The clazz of a piece-based Timesheet schemes determines all the other settings.
Universal DailyScheme¶
DailyScheme has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
- period
The timesheet period (w1, m1 etc).
- rates
How many of rate1…rateN are in use?
- places
The granularity with which pieces are counted, as powers of 10, from -2 to +2.
- average_rate
Benchmark average rate of pieces completed per hour.
- normal
Non-overtime rate “nest”s.
- weekend
Overtime rate “nest”s for weekends.
- holiday
Overtime rate “nest”s for holidays.
The clazz must be selected from:
paiyroll.pay.Universal.timesheet.piece.DailyScheme
Example:
{
"clazz": "paiyroll.pay.Universal.timesheet.piece.DailyScheme",
"period": "w1",
"rates": 1,
"normal": [{"percent": 100}],
"weekend": null,
"holiday": [{"percent": 200}]
}
Universal WeeklyScheme¶
WeeklyScheme has the following scheme settings:
- clazz
Scheme class. Determines the remaining settings.
- period
The timesheet period (w1, m1 etc).
- rates
How many of rate1…rateN are in use?
- places
The granularity with which pieces are counted, as powers of 10, from -2 to +2.
- average_rate
Benchmark average rate of pieces completed per hour.
- normal
Non-overtime rate “nest”s.
- weekend
Overtime rate “nest”s for weekends.
- holiday
Overtime rate “nest”s for holidays.
The clazz must be selected from:
paiyroll.pay.Universal.timesheet.piece.WeeklyScheme
Workflows¶
The pay item requires a Workflow Definition based on paiyroll.flows.timesheet.TimesheetFlow.