Stop running PTO on a spreadsheet that’s wrong by the 15th of the month. Punchwell tracks the leave types you define, accrues paid time off on the schedule you choose, imports your holiday calendar in one click, and lets staff request time off themselves — all inside the WordPress site you already run. Self-hosted, flat-priced, unlimited employees.
Get Punchwell Pro — $99/yr → · See the feature tour →
Per site, not per seat. Unlimited employees. Your data stays on your server.
The spreadsheet doesn’t accrue. Punchwell does.
If you track leave by hand, you know the failure mode: someone asks “how much PTO do I have left?”, and the honest answer is “let me check three places and get back to you.” Carryover at year-end is a guessing game. A new hire’s waiting period gets forgotten. The public-holiday list lives in someone’s head.
Punchwell replaces all of that with one system: leave types you define, an accrual engine that earns the balance for you, a holiday calendar you import once, and a request-and-approve flow that records every change. The balance is always current because the software keeps it current.
Leave types and an approval workflow, set up your way
Define the leave types your business actually uses — vacation, sick, personal, unpaid, whatever you call them — set up your work week, and turn on the approval workflow. Requests come in, a manager approves or declines, and the record updates. No back-and-forth email threads, no lost requests.
- Multiple leave types, each configurable as Paid or Unpaid.
- Work-week setup so weekends and non-working days aren’t counted against a request.
- Approval workflow — requests route to a manager for a decision, and approving paid leave automatically draws down the employee’s PTO balance.
Because employees are just WordPress users, there’s nothing new for your team to learn — they log in where they already do.
PTO accrual that earns the balance for you
This is the part a spreadsheet can never do. Punchwell’s accrual engine tracks paid time off in hours, per leave type, on the schedule that fits how you work.
Choose how PTO accrues:
- Monthly — a fixed number of hours earned each month.
- Per hour worked — PTO accrues in proportion to actual hours on the clock. Ideal for hourly and shift staff, and it ties straight into the attendance Punchwell already records.
- Annual lump-sum grant — the full year’s allotment dropped in at once.
With the guardrails real policies need:
- Caps — set a maximum balance so accrual stops at your limit.
- Carryover — control how much rolls into the next year instead of vanishing or piling up forever.
- Waiting period — new hires accrue but can’t draw until they’ve cleared their probationary window.
Every earn, every draw, and every manual adjustment is written to a running ledger, so the balance isn’t a number you have to trust — it’s a number you can audit line by line. When a manager approves paid leave, the balance draws down automatically.
Honest note: Punchwell calculates and tracks PTO; it doesn’t cut a check. For pay, the payroll export hands the data to your payroll provider — Punchwell never moves money, so there’s no payment-processor or tax-custody risk on your side.
Your holiday calendar, imported in one click
Building a public-holiday list by hand is tedious and easy to get wrong. Punchwell’s holiday calendar gives you three fast ways to fill it — and it computes everything locally, with no internet call:
- Country presets — US, UK, Canada, Australia and more, generated on your server.
- iCal (.ics) upload — bring in a calendar file you already have.
- Paste a list — drop in a plain list of dates and names.
Every import shows a preview before you save: each row is marked New, Duplicate, or Invalid, and duplicates are skipped automatically so you never double up. You review, then commit — nothing changes until you say so.
Employees request time off themselves
Take the “can I take Friday off?” questions off your desk. With the front-end self-service widgets, staff handle their own requests and see their own balances — right on a public page of your site.
- Submit a request (
[hrm_leave_request]) — an employee files a request and can self-cancel a pending one before it’s decided. - See their balance (
[hrm_my_timeoff]) — each person sees their own PTO balances and history. - Approve from one inbox (
[hrm_approvals]) — managers get an office-scoped inbox to approve or decline the requests that belong to them.
Each widget is also a Gutenberg block, so dropping a staff self-service portal onto a page is a few clicks. There’s even a ready-made Staff self-service portal block pattern to start from.
Reminders so a key date never slips
Punchwell’s daily HR reminder digest emails you the dates that matter and surfaces them on an “Upcoming HR dates” dashboard widget — so contract and visa expiries don’t sneak up on you, and a forgotten punch shows up before payroll, not after.
The digest covers birthdays, work anniversaries, probation ends, contract expiries, visa expiries, and missed punches on the last working day. Every category is toggleable, so you only get what’s useful to you.
Built the Punchwell way: self-hosted, flat-priced, yours
Leave and PTO data is some of the most sensitive you keep — who’s out, who’s on probation, whose visa is expiring. With Punchwell it never leaves your server.
- Self-hosted inside the WordPress site you already run — nothing syncs to a vendor cloud.
- No data call-home — the original’s outbound network code was removed and verified; the free version makes no outbound calls at all, and Pro’s only outbound call is license validation (never your data). (The only outside content anywhere in the suite is optional YouTube tutorial embeds and Gravatar avatars.)
- GPL, unlimited employees, no per-seat fee — your hundredth hire costs $0 more.
- PHP 8 / WordPress 7 / MySQL 8 clean, security-audited.
And it pairs with the feature that makes Punchwell worth installing in the first place: a hard-enforced office-IP clock-in lock that refuses an off-site punch server-side, so the attendance your per-hour accrual is built on is real attendance — not a buddy-punched fiction. See how the IP lock works →
FAQ
How does PTO accrual actually work?
You pick a method per leave type — monthly, per hour worked, or an annual lump-sum grant — set in hours, with optional caps, carryover, and a waiting period for new hires. Punchwell earns the balance on that schedule and records every earn, draw, and adjustment to a ledger. When a manager approves paid leave, the balance draws down automatically. The “per hour worked” method ties directly to the attendance Punchwell records, which is ideal for hourly and shift teams.
Which countries’ holidays can I import in one click?
Punchwell ships country presets for the US, UK, Canada, Australia and more, plus iCal (.ics) upload and paste-a-list. Everything is computed locally on your server — no internet call — and you get a preview that marks each row New, Duplicate, or Invalid before anything is saved, with duplicates skipped automatically.
Can employees request time off without logging into the admin?
Yes. The front-end self-service widgets let staff submit requests (with self-cancel of a pending request), check their own balances, and let managers review them in an office-scoped inbox — all on a public page of your site. See employee self-service for the full set.
Does Punchwell pay out PTO or run payroll?
No — and that’s deliberate. Punchwell tracks PTO and calculates leave, then the payroll export hands clean data (CSV, plus SurePayroll and Gusto connectors) to your payroll provider. It exports data; it does not move money, so there’s no payment-processor or tax-custody risk for you.
Where is all this leave and PTO data stored?
In your own WordPress database, on your own server. Employees are WordPress users and the records live in your wp_hrm_* tables. Nothing syncs to a vendor cloud, and there is no data call-home — the free version makes no outbound calls at all (removed and verified), and Pro’s only outbound call is license validation, never your data — which is why privacy-sensitive teams like clinics, dental practices, and agencies choose a self-hosted option.
We’re migrating from the old, abandoned plugin — do our leave records carry over?
Yes. Punchwell is the maintained fork of the same lineage, with the same data model, so your existing leave records migrate in place using a documented SQL script (with a verification pack). Leave-type names survive; yearly entitlements are quick to re-enter under the new PTO settings. See the migration guide — it’s a migration, not a rebuild.
Stop reconciling PTO by hand
Set your leave types, choose an accrual method, import your holidays, and let Punchwell keep the balances current. Free on WordPress.org to start; everything bundled in Pro for one flat annual price.
Get Punchwell Pro — $99/yr → · Start free on WordPress.org →
Per site, never per seat. Unlimited employees. Renewal price locked if you never lapse. GPL, self-hosted, your data stays on your server.
Explore more: Time clock & attendance · Office-IP clock-in lock · Payroll export · Employee self-service · All features
Punchwell is an independent, third-party maintained fork of the GPL-licensed “WP Human Resource Management” plugin. Sturdyhaus is not affiliated with, endorsed by, or sponsored by wpspear, weDevs, or the original author. Product names are referenced descriptively only.