PTODesk

Everything PTODesk does

Organised by the thing you are trying to get right, rather than by pricing tier.

The accrual engine

Six methods, not a rules builder. That decision is what keeps setup to an afternoon and support to a few hours a month.

Annual frontload

The whole allowance granted on 1 January or on the hire anniversary.

Per pay period

Weekly, biweekly, semi-monthly or monthly. Semi-monthly produces 24 correct periods a year, which is where most UK and EU-built tools break.

Per hours worked

One hour earned per N worked, with the remainder carried so partial progress is never lost. Required by US statutory sick leave.

Monthly

A fixed amount each calendar month.

Unlimited

No quota tracked, but requests and the calendar still work.

Manual

Balances set by an admin, for policies that defy automation.

Accrual that shows its working

Vacation · semi-monthly

24 periods / year

15 days ÷ 24 pay periods = 0.625 per cheque

1 Jantoday · 9.38 accrued31 Dec

Tenure tiers step up on the service anniversary

0–2 yrs

10 days

3–5 yrs

15 days

6+ yrs

20 days

Getting the edges right

The parts that generate support tickets everywhere else.

Mid-year proration

A June hire gets the correct opening balance with the arithmetic shown in the UI.

Tenure tiers

Ten days for years one and two, fifteen for three to five, twenty after that. Resolved at the accrual date, so the step up happens on the service anniversary.

Carryover and expiry

Cap what carries, and expire the balance after N days if your policy says so.

Configurable weekend

Saturday–Sunday, Friday–Saturday, or any pair. Never hardcoded.

Half days

Morning or afternoon, counted as 0.5 against the right end of the range.

Three distinct balances

Accrued, available and projected are labelled separately, because employees who see a projected total treat it as already earned.

Balances you can audit

Accrued

12.5

+0.63 this period

Available

8.5

4.0 pending

Used

6.0

this year

31 Jul Accrual · semi-monthly +0.63 12.50
19 Jul Usage · 1 day, approved −1.00 11.87
15 Jul Accrual · semi-monthly +0.63 12.87
15 Jun Opening · prorated first year +10.96 10.96

Every number is a sum of ledger entries — nothing stored that can drift.

Where your team already works

Nobody wants another tab open all day.

Slack

Request with a slash command, approve from the message. A decided request never keeps live buttons.

Calendar feed

Standard ICS for Google Calendar, Outlook and Apple Calendar. No account connection, no OAuth prompts.

Email

Approval requests and decisions, sent from a dedicated subdomain with SPF, DKIM and DMARC aligned.

Microsoft Teams

Notifications through an incoming webhook. Notification-only — no approve buttons, and we say so rather than implying otherwise.

Google sign-in

Sign in with a Workspace account; new staff join the right company automatically.

Approve without logging in

#time-off Slack · just now
SM

Sara Malik requested 4 days of vacation

Tue 1 Sep – Fri 4 Sep · “Family trip, back Monday.”

Balance after

8.5 days

Also off

Nobody

Notice given

14 days

Approve Deny

Approved by Ahmed — buttons replaced, balance updated, calendar synced.

Records and reporting

For the person who has to answer to payroll.

Ledger-backed balances

Every number is a sum of immutable entries. Nothing is stored as a running total that can drift.

Pay-period reports

Aligned to your actual cycle, including semi-monthly. The single most repeated complaint in this category.

CSV import

Column mapping and a dry run that reports every row as valid, warning or error before anything is written.

CSV export

Cells starting with = + - or @ are escaped, so an export cannot carry a formula injection into your spreadsheet.

Audit log

Every approval, denial, balance adjustment and policy change, with who and when.

Reports payroll can import

Time off · pay period 17

1–15 Sep
Vacation 58%
Sick 27%
Personal 15%
Export CSV Aligned to your actual pay cycle — including semi-monthly.

What we deliberately do not do

We are not the simplest tool in this category, and we are not trying to be. Several competitors have spent a decade polishing simple and give it away for up to ten users. If your whole requirement is “show me who is off on Friday”, one of them is probably a better fit.

PTODesk is built for the point after that: when accruals have to be right, when someone is hired in June, when you employ people in three states with three different sick-leave denominators, and when payroll needs a report that matches its own cycle.

See it on your own team

Free for five employees. No credit card.

Try for free