Pay Schedules
A pay schedule is a combination of the following two items:
- A pay period: the date range for which work is actually completed by the employees.
- A check date: when the employees receive payment. For weekly or biweekly payrolls, the check date will always fall on the same day of the week. For twice per month or monthly payrolls, the check date will not fall on consistent days. If it falls on a weekend, it will be pushed to the closest business day before the check date.
Determined by the employer, the pay schedule provides a regular cadence for tracking work and allows employees to plan their own finances around when they will receive payment.
Be sure to check state laws to know what schedule is right for your customers.
Timing mechanisms to keep in mind
ACH processing timeline
ACH (automated clearing house) is the national standard for transferring money through US banking. It is important to note that there is a delay between when a payroll is submitted and when the employees will be paid in accordance with that standard.
- Four business day rule - The designated processing time is four business days. This means that payroll must be submitted four business days prior to the check date in order to ensure employees are paid on time.
- Expedited two business day rule - Gusto offers expedited payroll to qualifying companies which allows them to submit payroll only two business days prior to the check date in order to ensure employees are paid on time.
Bank Holidays
Since the ACH processing timeline is calculated off business days, we must also make sure to consider bank holidays since funds wonβt move on those days. Any time a bank holiday falls within the two or four day processing window, payroll must be submitted one business day earlier. Bank holidays are already factored into pay schedules, so if a bank holiday interrupts the standard 2-day processing timeline, the payroll deadline will already be adjusted to account for this. The Federal Reserve lists all bank holidays a few years in advance.
Gustoβs internal cutoff time
Gustoβs requires that payroll be submitted by 4 pm PST each business day in order to begin processing that day, which allows us time to actually process all payrolls on our platform. If payroll is submitted after that deadline, it will not be initiated until the following business day, which will push the check date back one business day.
Arrears vs non-arrears
- Arrears simply means there is a delay between the check date and the end of the pay period. This most typically applies to employers with hourly employees, allowing a buffer to obtain hours worked before submitting the payroll.
- Non-arrears means the employees are paid on or before the end of the pay period, which most typically applies to salaried employees since payroll will need to be submitted prior to the end of the pay period, in accordance with the ACH standards.
Remember, payroll will always need to be submitted two or four days prior to the check date! You will want to tie the submission date of payroll to the check date. If an employer misses the deadline, the check date will need to be adjusted back for each business day late. That being said, if an employer submits a payroll early, it should not be initiated until two or four business days prior, meaning the employees will still be paid on the designated check date.
Creating and managing pay schedules
Partners can create and update multiple pay schedules through the API and Flow. Check out our guides on creating a pay schedules and managing pay schedules via API and Flow for more information.
How the next pay period dates are calculated
Take this example of a semimonthly (twice a month) pay schedule, but the logic is the same for monthly pay schedules:
curl --request POST \
--url https://api.gusto-demo.com/v1/companies/company_id/pay_schedules \
--header 'X-Gusto-API-Version: 2024-04-01' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"frequency": "Twice per month",
"anchor_pay_date": "2020-05-15",
"anchor_end_of_pay_period": "2020-05-08",
"day_1": 15,
"day_2": 31
}
'
With a response like this:
{
"uuid": "f2a69c38-e2f9-4e31-b5c5-4754fc60a052",
"frequency": "Twice per month",
"anchor_pay_date": "2020-05-15",
"anchor_end_of_pay_period": "2020-05-08",
"day_1": 15,
"day_2": 31,
"name": "Engineering",
"custom_name": "A new semimonthly pay schedule",
"auto_pilot": false,
"active": true
}
This table walks through how the dates for the following period are calculated:
Next pay period values | How they're calculated | Example |
---|---|---|
start_date | previous pay period's end_date + 1 day | 2020-05-09 (2020-05-08 + 1 day) |
end_date | next check_date - pay lag (pay lag is the anchor_pay_date - anchor_end_of_pay_period ) | 2020-05-24 (2020-05-31 - 7) |
check_date | requested check date or first business day before check date if not business day | 2020-05-31 |
Additionally, if the date is not in the month, the date will be adjusted to the closest date in that month.
- For example, say you you set semimonthly pay dates (
day_1
andday_2
) to 15 and 30 respectively. but February only has 28 days, it will adjust the check date to the closest day in the month: February 28 instead of February 30.
Updated 6 days ago