---
updatedAt: 2026-03-02T15:56:55.000Z
agentTools:
  siteIndex: https://docs.gusto.com/llms.txt
  projectIndex: https://docs.gusto.com/embedded-payroll/llms.txt
---

# Accrual methods

Consult the following tables to determine which fields to include when [creating a time off policy](https://docs.gusto.com/embedded-payroll/reference/post-v1-companies-company_uuid-time_off_policies), depending on your `accrual_method`:

## unlimited

| API field                     | Include? | API requirements                                     |
| :---------------------------- | :------- | :--------------------------------------------------- |
| `accrual_rate`                | ⛔ No     | N/A - no error thrown but value will not be included |
| `accrual_rate_unit`           | ⛔ No     | N/A - no error thrown but value will not be included |
| `accrual_waiting_period_days` | ⛔ No     | Must be `null`                                       |
| `paid_out_on_termination`     | ⛔ No     | Must be `null`                                       |
| `carryover_limit_hours`       | ⛔ No     | Must be `null`                                       |
| `max_accrual_hours_per_year`  | ⛔ No     | Must be `null`                                       |
| `max_hours`                   | ⛔ No     | Must be `null`                                       |
| `policy_reset_date`           | ⛔ No     | N/A                                                  |

## per\_pay\_period

| API field                     | Include? | API requirements                                         |
| :---------------------------- | :------- | :------------------------------------------------------- |
| `accrual_rate`                | ✅ Yes    | **Required**                                             |
| `accrual_rate_unit`           | ⛔ No     | Must be `null`                                           |
| `accrual_waiting_period_days` | ✅ Yes    | Optional                                                 |
| `paid_out_on_termination`     | ✅ Yes    | Optional - If request is `null`, will default to `false` |
|                               |          |                                                          |
| `carryover_limit_hours`       | ✅ Yes    | Optional                                                 |
| `max_accrual_hours_per_year`  | ✅ Yes    | Optional                                                 |
| `max_hours`                   | ✅ Yes    | Optional                                                 |
| `policy_reset_date`           | ✅ Yes    | Optional                                                 |

## per\_calendar\_year

| API field                     | Include? | API requirements                                         |
| :---------------------------- | :------- | :------------------------------------------------------- |
| `accrual_rate`                | ✅ Yes    | **Required**                                             |
| `accrual_rate_unit`           | ⛔ No     | Must be NULL                                             |
| `accrual_waiting_period_days` | ⛔ No     | Must be `0` or `null` or error will be thrown            |
| `paid_out_on_termination`     | ✅ Yes    | Optional - If request is `null`, will default to `false` |
| `carryover_limit_hours`       | ✅ Yes    | Optional                                                 |
| `max_accrual_hours_per_year`  | ⛔ No     | Must be NULL                                             |
| `max_hours`                   | ✅ Yes    | Optional                                                 |
| `policy_reset_date`           | ✅ Yes    | Optional                                                 |

## per\_anniversary\_year

| API field                     | Include? | API requirements                                         |
| :---------------------------- | :------- | :------------------------------------------------------- |
| `accrual_rate`                | ✅ Yes    | **Required**                                             |
| `accrual_rate_unit`           | ⛔ No     | Must be `null`                                           |
| `accrual_waiting_period_days` | ⛔ No     | Must be `0` or `null`                                    |
| `paid_out_on_termination`     | ✅ Yes    | Optional - If request is `null`, will default to `false` |
| `carryover_limit_hours`       | ✅ Yes    | Optional                                                 |
| `max_accrual_hours_per_year`  | ⛔ No     | Must be `null`                                           |
| `max_hours`                   | ✅ Yes    | Optional                                                 |
| `policy_reset_date`           | ⛔ No     | N/A                                                      |

## per\_hour\_worked

| API field                     | Include? | API requirements                                         |
| :---------------------------- | :------- | :------------------------------------------------------- |
| `accrual_rate`                | ✅ Yes    | **Required**                                             |
| `accrual_rate_unit`           | ✅ Yes    | **Required**, must be greater than 0                     |
| `accrual_waiting_period_days` | ✅ Yes    | Optional, `null`, or greater than 0                      |
| `paid_out_on_termination`     | ✅ Yes    | Optional - If request is `null`, will default to `false` |
| `carryover_limit_hours`       | ✅ Yes    | Optional                                                 |
| `max_accrual_hours_per_year`  | ✅ Yes    | Optional                                                 |
| `max_hours`                   | ✅ Yes    | Optional                                                 |
| `policy_reset_date`           | ✅ Yes    | Optional                                                 |

## per\_hour\_worked\_no\_overtime

| API field                     | Include? | API requirements                                         |
| :---------------------------- | :------- | :------------------------------------------------------- |
| `accrual_rate`                | ✅ Yes    | **Required**                                             |
| `accrual_rate_unit`           | ✅ Yes    | **Required**, must be greater than 0                     |
| `accrual_waiting_period_days` | ✅ Yes    | Optional, `null`, or greater than 0                      |
| `paid_out_on_termination`     | ✅ Yes    | Optional - If request is `null`, will default to `false` |
| `carryover_limit_hours`       | ✅ Yes    | Optional                                                 |
| `max_accrual_hours_per_year`  | ✅ Yes    | Optional                                                 |
| `max_hours`                   | ✅ Yes    | Optional                                                 |
| `policy_reset_date`           | ✅ Yes    | Optional                                                 |

## per\_hour\_paid

| API field                     | Include? | API requirements                                         |
| :---------------------------- | :------- | :------------------------------------------------------- |
| `accrual_rate`                | ✅ Yes    | **Required**                                             |
| `accrual_rate_unit`           | ✅ Yes    | **Required**, must be greater than 0                     |
| `accrual_waiting_period_days` | ✅ Yes    | Optional, `null`, or greater than 0                      |
| `paid_out_on_termination`     | ✅ Yes    | Optional - If request is `null`, will default to `false` |
| `carryover_limit_hours`       | ✅ Yes    | Optional                                                 |
| `max_accrual_hours_per_year`  | ✅ Yes    | Optional                                                 |
| `max_hours`                   | ✅ Yes    | Optional                                                 |
| `policy_reset_date`           | ✅ Yes    | Optional                                                 |

## per\_hour\_paid\_no\_overtime

| API field                     | Include? | API requirements                                         |
| :---------------------------- | :------- | :------------------------------------------------------- |
| `accrual_rate`                | ✅ Yes    | **Required**                                             |
| `accrual_rate_unit`           | ✅ Yes    | **Required**, must be greater than 0                     |
| `accrual_waiting_period_days` | ✅ Yes    | Optional, `null`, or greater than 0                      |
| `paid_out_on_termination`     | ✅ Yes    | Optional - If request is `null`, will default to `false` |
| `carryover_limit_hours`       | ✅ Yes    | Optional                                                 |
| `max_accrual_hours_per_year`  | ✅ Yes    | Optional                                                 |
| `max_hours`                   | ✅ Yes    | Optional                                                 |
| `policy_reset_date`           | ✅ Yes    | Optional                                                 |