Pay Schemes

A pay scheme defines a pay arrangement which is a shared across workers, and which can be centrally modified.

Pay Item Pay Definition Pay Template Pay Scheme

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 types

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:

Pay run behaviour

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:

  1. Claims must be made within 12 weeks of the start date.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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:

  1. Claims must be made within 12 weeks of the start date.

  2. 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.

  3. A claim usually starts when the worker takes planned bereavement leave.

  4. 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.

  5. 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.

  6. Adoption is not supported.

  7. 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:

  1. Claims must be made within 12 weeks of the start date.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. Adoption is not supported.

  7. 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:

  1. Claims must be made within 12 weeks of the start date.

  2. The system automatically disqualifies claims:

    • If Average Weekly Earnings (AWE) fall below the minimum level.

    • If Statutory Maternity Pay (SMP) is in effect and the start is in the Maternity Pay Period (MPP).

    • If Statutory Paternity Pay (SPP) is in effect and the start is in the Paternity Pay Period (PPP).

  3. 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.

  4. If a worker leaves, claims are truncated to the end date.

  5. 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:

  1. For a migrated employee, the Migrated status and Migrated enrol date must be set appropriately.

  2. When an employee is leaving, setting the end date will prevent any automatic enrolment.

  3. 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.

  4. 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:

Pay run behaviour

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.