Zovo PTO Accrual Calculator
Server Details
PTO balance and accrual ledger
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Score is being calculated.
Available Tools
2 toolscalculate_pto_balanceCalculate PTO balanceRead-onlyIdempotentInspect
Use this when someone asks how much PTO they have, wants a PTO accrual calculator or vacation accrual calculator, or needs an employee's PTO, vacation or sick leave balance from an accrual policy. Give the accrual rule as accrual_amount + accrual_unit (hours, days, weeks) + accrual_per (year, month, week, pay_period, hour_worked), e.g. 2 weeks a year = 2, weeks, year; 1 hour per 30 worked = 0.0333, hours, hour_worked; use accrual_rate text only as a fallback. Takes the policy (per hour worked like 1 h per 30, hours per pay period with weekly/biweekly/semimonthly/monthly pay, or a yearly amount front-loaded or accrued evenly), tenure tiers, hire date, max balance, annual cap, carryover limit and reset date, waiting period, hours worked, and time taken (dates, hours or ranges; future dates are planned). Returns the balance as of a date (default today, US Eastern), available hours, a dated ledger with accrued, used, capped and forfeited hours, upcoming accruals, a year-end projection with hours to use before the reset, and PDF, Excel and CSV files. Does not give legal advice, check state law compliance, compute PTO payout in money, or connect to payroll. For several employees use calculate_team_pto_balances.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Optional US state, e.g. CA, for an informational note on state paid sick leave accrual rules. | |
| pay_date | No | Any real payday for weekly or biweekly pay, e.g. 2026-01-09, so accruals land on the right Fridays. Default: the first Friday on or after the ledger start. | |
| hire_date | No | Hire (start) date, e.g. 2024-03-04. Used for tenure tiers, the waiting period and the first partial pay period. | |
| as_of_date | No | Date to report the balance on, e.g. 2026-10-26. Default: today in US Eastern time. | |
| first_year | No | For annual_front_loaded: prorated (default, first grant prorated by days left in the year) or full. | |
| hours_used | No | Total PTO hours used without dates, e.g. 40 for "I used 40 hours this year". Subtracted on the as-of date. Use time_taken when dates are known. | |
| reset_date | No | When the accrual year resets (carryover is applied), e.g. "01-01" (default January 1), "July 1", or "anniversary" (hire anniversary), or "none". | |
| time_taken | No | PTO used or planned, as a list [{"date":"2026-03-02","hours":8}] or text "2026-03-02 8h, 2026-07-06 to 2026-07-10, Dec 24 4h". Future dates count as planned time off in the projection. | |
| accrual_per | No | How often accrual_amount is earned: year, month, week, pay_period, or hour_worked. Required for hours; days or weeks without it are read as per year. | |
| annual_days | No | Days of PTO per year, e.g. 15. Converted with hours_per_day (default 8). | |
| max_balance | No | Maximum balance (accrual stops at this cap until hours are used), in hours, e.g. 240, or "30 days". | |
| accrual_rate | No | Fallback only, when you cannot fill accrual_amount/accrual_unit/accrual_per: the rule as text with a number, unit and period, e.g. "1 per 30", "4.62 hours per paycheck", "15 days a year". Hours without a period are refused. | |
| accrual_unit | No | Unit of accrual_amount: hours (default), days, or weeks (weeks = days_per_week x hours_per_day). | |
| annual_hours | No | Hours of PTO per year, e.g. 120. Use instead of annual_days. | |
| hours_worked | No | Actual hours worked per pay period for per_hour_worked, e.g. [{"date":"2026-01-09","hours":72}] or "2026-01-09: 72, 2026-01-23: 80". Periods not listed use the standard hours. | |
| tenure_tiers | No | Tenure tiers (years of service), as text "0-2: 10 days, 3-5: 15 days, 6+: 20 days" or a list [{"from_year":0,"annual_days":10},{"from_year":3,"annual_days":15}]. "years 3-5" starts at the 3rd work anniversary. | |
| days_per_week | No | Workdays per week, default 5. Converts weeks of PTO to hours. | |
| employee_name | No | Optional name for the ledger header, e.g. Dana Kim. | |
| hours_per_day | No | Hours in one PTO day, default 8, e.g. 7.5. | |
| pay_frequency | No | Pay schedule: weekly, biweekly (default, every two weeks), semimonthly (15th and last day), or monthly. | |
| accrual_amount | No | Preferred way to give the rule: the amount earned, e.g. 15 (with accrual_unit days, accrual_per year), 4.62 (hours per pay_period) or 0.0333 (hours per hour_worked). | |
| accrual_method | No | How PTO is earned: per_hour_worked (e.g. 1 h per 30 h worked), per_pay_period (fixed hours each paycheck, e.g. 4.62 h), annual_front_loaded (whole year granted at once on the reset date), annual_accrued_per_period (yearly amount, e.g. 15 days, spread evenly over pay periods). Optional: inferred from the other fields. | |
| hours_per_week | No | Standard hours per week, default 40, e.g. 30 for part time. Used when hours worked are not given. | |
| waiting_period | No | Waiting period after hire before PTO can be used, e.g. "90 days" or "3 months". | |
| carryover_limit | No | Hours that may roll over at the reset date, e.g. 40. 0 = use it or lose it. Leave out for unlimited rollover. | |
| starting_balance | No | Known balance on starting_balance_date, in hours, e.g. 32.5 (from a pay stub), or "4 days". | |
| annual_accrual_cap | No | Most hours that can be earned in one accrual year, e.g. 48. | |
| waiting_period_rule | No | accrue_but_locked (default: hours accrue from hire but cannot be used until the waiting period ends) or no_accrual (nothing accrues during the waiting period). | |
| starting_balance_date | No | Date of the starting balance, e.g. 2026-01-01. Default: the start of the current accrual year (or the hire date if later). | |
| hours_worked_per_period | No | Hours worked in each pay period, for per_hour_worked when it differs from the standard (40 h/week), e.g. 64. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| tier | Yes | |
| as_of | Yes | |
| notes | Yes | |
| policy | Yes | |
| employee | Yes | |
| upcoming | Yes | |
| warnings | Yes | |
| downloads | Yes | |
| projection | Yes | |
| as_of_label | Yes | |
| assumptions | Yes | |
| as_of_source | Yes | |
| balance_days | Yes | |
| ledger_start | Yes | |
| year_to_date | Yes | |
| balance_hours | Yes | |
| ledger_preview | Yes | |
| available_hours | Yes | |
| ledger_rows_total | Yes |
calculate_team_pto_balancesCalculate team PTO balancesRead-onlyIdempotentInspect
Use this when an owner or HR person wants PTO balances for a team: one PTO, vacation or sick leave balance per employee from one accrual policy (accrual_amount + accrual_unit + accrual_per, e.g. 15, days, year) and a list of employees (typed, pasted CSV, or an attached CSV/Excel file with name, hire date, starting balance, hours used). Applies the same policy options as calculate_pto_balance (per hour worked, per pay period, annual front-loaded or accrued, tenure tiers, caps, carryover and reset, waiting period). Returns each person's balance, hours used this year, year-end projection and hours at risk at the reset, team totals, and PDF, Excel (with each person's ledger) and CSV files. Does not give legal advice, process payroll, or compute PTO payout in money. For one person's dated ledger use calculate_pto_balance.
| Name | Required | Description | Default |
|---|---|---|---|
| pay_date | No | Any real payday for weekly or biweekly pay, e.g. 2026-01-09, so accruals land on the right Fridays. Default: the first Friday on or after the ledger start. | |
| employees | No | The team: a list of employees, or CSV text with a header such as "name,hire_date,starting_balance,used_hours" and one row per person. Up to 500. | |
| hire_date | No | Hire (start) date, e.g. 2024-03-04. Used for tenure tiers, the waiting period and the first partial pay period. | |
| as_of_date | No | Date to report the balance on, e.g. 2026-10-26. Default: today in US Eastern time. | |
| first_year | No | For annual_front_loaded: prorated (default, first grant prorated by days left in the year) or full. | |
| reset_date | No | When the accrual year resets (carryover is applied), e.g. "01-01" (default January 1), "July 1", or "anniversary" (hire anniversary), or "none". | |
| accrual_per | No | How often accrual_amount is earned: year, month, week, pay_period, or hour_worked. Required for hours; days or weeks without it are read as per year. | |
| annual_days | No | Days of PTO per year, e.g. 15. Converted with hours_per_day (default 8). | |
| max_balance | No | Maximum balance (accrual stops at this cap until hours are used), in hours, e.g. 240, or "30 days". | |
| accrual_rate | No | Fallback only, when you cannot fill accrual_amount/accrual_unit/accrual_per: the rule as text with a number, unit and period, e.g. "1 per 30", "4.62 hours per paycheck", "15 days a year". Hours without a period are refused. | |
| accrual_unit | No | Unit of accrual_amount: hours (default), days, or weeks (weeks = days_per_week x hours_per_day). | |
| annual_hours | No | Hours of PTO per year, e.g. 120. Use instead of annual_days. | |
| hours_worked | No | Actual hours worked per pay period for per_hour_worked, e.g. [{"date":"2026-01-09","hours":72}] or "2026-01-09: 72, 2026-01-23: 80". Periods not listed use the standard hours. | |
| tenure_tiers | No | Tenure tiers (years of service), as text "0-2: 10 days, 3-5: 15 days, 6+: 20 days" or a list [{"from_year":0,"annual_days":10},{"from_year":3,"annual_days":15}]. "years 3-5" starts at the 3rd work anniversary. | |
| days_per_week | No | Workdays per week, default 5. Converts weeks of PTO to hours. | |
| hours_per_day | No | Hours in one PTO day, default 8, e.g. 7.5. | |
| pay_frequency | No | Pay schedule: weekly, biweekly (default, every two weeks), semimonthly (15th and last day), or monthly. | |
| accrual_amount | No | Preferred way to give the rule: the amount earned, e.g. 15 (with accrual_unit days, accrual_per year), 4.62 (hours per pay_period) or 0.0333 (hours per hour_worked). | |
| accrual_method | No | How PTO is earned: per_hour_worked (e.g. 1 h per 30 h worked), per_pay_period (fixed hours each paycheck, e.g. 4.62 h), annual_front_loaded (whole year granted at once on the reset date), annual_accrued_per_period (yearly amount, e.g. 15 days, spread evenly over pay periods). Optional: inferred from the other fields. | |
| employees_file | No | Optional CSV or Excel (.xlsx) file of employees with columns like name, hire date, starting balance, hours used, e.g. team-pto.csv. | |
| hours_per_week | No | Standard hours per week, default 40, e.g. 30 for part time. Used when hours worked are not given. | |
| waiting_period | No | Waiting period after hire before PTO can be used, e.g. "90 days" or "3 months". | |
| carryover_limit | No | Hours that may roll over at the reset date, e.g. 40. 0 = use it or lose it. Leave out for unlimited rollover. | |
| starting_balance | No | Known balance on starting_balance_date, in hours, e.g. 32.5 (from a pay stub), or "4 days". | |
| annual_accrual_cap | No | Most hours that can be earned in one accrual year, e.g. 48. | |
| waiting_period_rule | No | accrue_but_locked (default: hours accrue from hire but cannot be used until the waiting period ends) or no_accrual (nothing accrues during the waiting period). | |
| starting_balance_date | No | Date of the starting balance, e.g. 2026-01-01. Default: the start of the current accrual year (or the hire date if later). | |
| hours_worked_per_period | No | Hours worked in each pay period, for per_hour_worked when it differs from the standard (40 h/week), e.g. 64. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| as_of | Yes | |
| notes | Yes | |
| policy | Yes | |
| totals | Yes | |
| warnings | Yes | |
| downloads | Yes | |
| employees | Yes | |
| reset_date | Yes | |
| as_of_label | Yes | |
| assumptions | Yes | |
| source_file | Yes | |
| as_of_source | Yes | |
| employees_total | Yes | |
| projection_through | Yes |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
calculate_pto_balance - First observed
calculate_team_pto_balances
Related MCP Connectors
Mileage log and reimbursement
Track and manage employee time off with quick balance lookups and streamlined applications. Find t…
Travel allowance worksheets
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables trades and field service work to be tracked per job: logging labor hours at worker rates and materials used, keeping running totals in integer cents per currency, and moving each job through a status machine from open to invoiced or archived. It also produces daily or weekly summaries of hours and value, and renders a printable card with a signature line for client sign-off.1155 npmMIT
- AlicenseAqualityCmaintenanceEnables an AI assistant to read Portuguese invoices and receipts, file them by tax year, and book them into an Excel or Google Sheets workbook. It works out the boxes of the quarterly IVA return, tracks IRS and Segurança Social totals, and reports what documents are still missing.16MIT
- AlicenseAqualityBmaintenanceUseHourly is a free, open-source timesheet for freelancers. Log your day in seconds, then turn the hours into a PDF invoice. Its remote MCP server gives any AI assistant 30 tools to log and edit time, run timers, manage clients and projects, create invoices and read annual reports. It uses Streamable HTTP with bearer tokens that can be read-only or read-write, set to expire, and are revoked on a p30MIT
- AlicenseAqualityBmaintenanceLogs deductible driving trips, manages effective-dated mileage rates, computes per-category summaries, and exports CSV for accountants, all locally with no network calls.951 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.