---
title: "PTO Calculator"
method: POST
path: "/api/v1/tools/pto-calculator"
tags: ["tools"]
---

# PTO Calculator

`POST /api/v1/tools/pto-calculator`

## Request

- Base URL: `https://toolforte.com`
- URL: `https://toolforte.com/api/v1/tools/pto-calculator`
- Auth: HTTP bearer

Project a paid time off balance: give an accrual rate either as hours per pay period or as days per year, plus the hours in the bank and the hours already booked, and get the accrual per year and per month, the balance after what is planned, twelve months of projected balance, and the balance on a target date. Accrual caps, carry-over deadlines and waiting periods are deliberately not modelled, which the note repeats.

## Request body

- object
  - `mode` string
  - `accrualPerPeriod` number
  - `payFrequency` string
  - `daysPerYear` integer
  - `hoursPerDay` integer
  - `currentBalanceHours` integer
  - `plannedHours` integer
  - `targetDate` string
  - `today` string

## Response `200`

Successful result

- object
  - `ok` boolean
  - `data` object
    - `hoursPerYear` number
    - `daysPerYear` number
    - `hoursPerMonth` number
    - `hoursPerDay` integer
    - `balanceAfterPlanned` integer
    - `daysAfterPlanned` integer
    - `projected` object
      - `date` string
      - `hours` number
      - `days` number
      - `months` number
    - `schedule` object[]
      - `month` string
      - `hours` integer
      - `days` number
    - `note` string

## Other responses

- `400`: Missing or invalid request fields
- `401`: Invalid or missing API key
- `429`: Monthly plan limit reached

---

[API](https://skmtc.dev/toolforte/apis/toolforte-api.md) · [All operations](https://skmtc.dev/toolforte/apis/toolforte-api/llms.txt) · [OpenAPI document](https://skmtc.dev/toolforte/apis/toolforte-api/revisions/4d814d484dfc?raw)
