
The PTO Balance Is a Balance Sheet Number
Most teams treat unused leave as an HR statistic. It is a liability that grows with every pay rise, and its movement is one of the least explained lines on the balance sheet.
An accrued paid time off liability is the cost of leave employees have earned but not yet taken, measured at the pay rate expected to apply when it is taken, plus the employer payroll taxes that will be paid with it. It moves for four reasons: leave earned, leave taken, pay rate changes on existing balances, and joiners and leavers. Most accruals are wrong because the third reason is never separately calculated.
- Unused leave is a liability, and it is one of the few that grows without anyone transacting, because a pay rise revalues every hour already banked.
- Split the movement into four components. Earned, taken, revaluation and headcount change explain the whole balance and nothing else does.
- The employer payroll tax on the leave belongs in the accrual too, and it is omitted more often than not.
- Policy detail drives the numbers: carryover caps, expiry, payout on termination and unlimited leave arrangements all change the measurement.
- ChatFin pulls balances and rates from the HR and payroll systems, calculates the movement by component, and drafts the entry and the explanation together.
Ask a controller why the accrued leave balance moved and you will usually get one of two answers. Headcount went up, or people did not take holiday.
Both may be true and neither is a complete explanation, because the balance also moves every time somebody gets a pay rise. Hours banked at last year's rate are now worth more, and that revaluation happens quietly across the whole workforce without a single leave request being filed. In a year with a meaningful salary review, revaluation can be the largest single component of the movement and it appears nowhere in most workpapers.
This page covers how to measure the liability properly, how to decompose its movement so it explains itself, the policy details that change the answer, and how to stop the calculation being a spreadsheet somebody rebuilds each quarter.

What you are actually measuring
The liability is the cost the company would incur if every employee took the leave they have already earned. That means hours banked, valued at the rate expected to apply when the leave is taken, grossed up for the employer payroll taxes that will be paid alongside it.
Three of those elements are routinely mishandled. Hours are often taken from an HR system whose accrual rules differ from the policy actually applied. Rates are often the rate at the time the leave was earned rather than the rate now in force. And the employer tax gross up is frequently left out altogether, which understates the liability by a consistent percentage every period.
| Hours | Earned and unused as at the reporting date, per the leave policy actually in force, not the system default |
| Rate | The rate expected to apply when the leave is taken, which for most policies is the current rate |
| Gross up | Employer payroll taxes and any other employment cost that will be incurred when the leave is paid |
| Scope | Which categories of leave vest or accumulate under the policy, since not all of them do |
| Cap | Carryover limits and expiry rules, which reduce the balance that can ever be taken or paid |
The four components of the movement
A single opening to closing comparison tells you the balance changed. Splitting it into four components tells you why, and makes the review a conversation rather than an interrogation.
Leave earned
Hours accrued in the period at current rates. Broadly predictable from headcount and policy, and the component most people assume is the whole story.
Leave taken
Hours used, valued at the rate they were carried at. Seasonal, and the reason balances usually fall in the months after a holiday period.
Rate revaluation
The effect of pay changes on hours already banked. Invisible in the leave system entirely, and often the largest component in a review year.
Joiners and leavers
Opening balances arriving with new hires and balances paid out or forfeited on termination, both at their own rates.
Present the movement this way and the account explains itself. Present it as a single net number and every reviewer will ask the same question, which is what drove it, and nobody will be able to answer without rebuilding the analysis.

Policy detail that changes the number
The arithmetic is simple. The judgement sits in the policy, and policies vary far more than most accrual models assume, particularly across multiple entities and countries.
The last three are where multi entity groups produce the largest errors, because one policy assumption gets applied to a population that several different policies actually govern.
Why the systems do not give you the answer
Human resources platforms are good at leave. Workday, UKG and BambooHR all track entitlement, accrual rules, requests and balances accurately, and payroll systems hold the pay rates and the tax rates required for the gross up.
The problem is that the liability calculation sits across both, at a point in time, with policy overlays neither system was designed to apply. The HR system reports a balance in hours as at today. It does not value it, does not gross it up, does not apply the carryover cap for accounting purposes, and cannot tell you how much of the movement came from pay rises rather than from behaviour.
That bridging is the actual work, and it repeats every period without changing. It is the same cross system assembly ChatFin performs elsewhere in the close, described in automated close management.

The number starts in HR
PTO accrual depends on balances, policies and pay rates held in HR and payroll systems, none of which were built to produce a balance sheet figure.
The AgentCFO podcast noted that data quality remains a problem for almost every CFO, largely because the data starts outside the accounting and finance teams.
Agree a monthly extract from HR and payroll with a named owner, and reconcile it to the liability before close.
What a reviewer should be able to see
A leave accrual that passes review quickly has a small number of features, and most workpapers have none of them.
| Movement by component | Earned, taken, revaluation and headcount change, each with its own figure |
| Population reconciliation | Employee count at the start and end, tied to payroll headcount, so nobody is missing |
| Rate evidence | The rate source and effective date used, with the revaluation effect shown separately |
| Policy mapping | Which policy applied to which population, particularly across entities and countries |
| Cap and expiry effect | Hours excluded from the accrual because of caps or expiry, stated rather than implied |
The population reconciliation is the cheapest control and the most frequently omitted. A leaver whose balance was never removed, or a joiner whose opening balance never arrived, will sit in the account indefinitely and is close to impossible to find once a few periods have passed.
How ChatFin builds and explains the accrual
ChatFin reads the leave balance report and the payroll register as documents or exports, so it does not depend on a direct integration with whichever HR platform you run. It matches employees across both, applies the policy rules you configure, and values the balance at the current rate with the employer tax gross up applied.
The analytics agent then produces the movement split into the four components, including the revaluation effect that no source system reports. The conversational finance AI layer lets a controller ask why the balance moved and receive the decomposition rather than a number, and the pattern recognition agent flags employees whose balances behave unusually, which is where leaver and joiner errors surface.
| Document processing | Reads leave balance reports and payroll registers from HR and payroll systems |
| Reconciliation agent | Matches the employee population across HR, payroll and the prior period accrual |
| Analytics agent | Splits the movement into earned, taken, revaluation and headcount change |
| Pattern recognition | Flags leavers with balances remaining and joiners with no opening balance recorded |
| Governed write back | Prepares the accrual entry with the schedule attached, for a person to approve |
The entry is never posted on its own. ChatFin prepares it with the supporting movement schedule and routes it through the approval chain you already use in your ERP, which means the workpaper exists at the moment of posting rather than being reconstructed for the audit.

Rebuilding the accrual once, properly
If the current model is an inherited spreadsheet, rebuild it at a period end rather than trying to correct it in place.
Pin the policy population
List every leave policy in force and which employees each one covers. In multi entity groups this step usually finds a population being accrued under the wrong rules.
Reconcile the population
Tie the employee list in the leave system to payroll headcount. Resolve every difference before valuing anything.
Value at current rates with gross up
Apply current rates and the employer tax percentage, and note the gross up separately so it is visible.
Restate the prior period on the same basis
You need one comparable prior figure to produce a meaningful four component movement in the first period.
The fourth step is worth the extra effort. Without a comparable prior figure the first movement analysis is meaningless, and teams often discover the restatement itself is the finding worth reporting.
A pay rise revalues every hour already banked. The liability grows across the whole workforce without a single leave request being filed.
ChatFin
Frequently Asked Questions
How do you calculate an accrued PTO liability?
Take the hours each employee has earned and not yet taken as at the reporting date, value them at the pay rate expected to apply when the leave is taken, and add the employer payroll taxes that will be incurred when it is paid. Then apply the policy overlays: exclude hours above a carryover cap that can never be taken or paid, and reflect any enforceable expiry. The result is the liability rather than the leave balance.
Why does the vacation accrual move when nobody takes leave?
Because pay rate changes revalue hours that were already banked. If salaries rise, the cost of the leave already earned rises with them, and the entire workforce is revalued at once without any leave transaction occurring. In a year with a significant salary review this revaluation can be the largest single component of the movement, which is why it should be calculated and presented separately rather than netted into the total.
Should employer payroll taxes be included in the PTO accrual?
Yes, where those taxes will be incurred when the leave is paid. Omitting the gross up understates the liability by a consistent percentage every period, and it is one of the more common findings when a leave accrual is examined for the first time. The gross up should be shown as a separate element of the calculation so a reviewer can see it was applied.
Can ChatFin calculate the accrual without integrating our HR system?
Yes. ChatFin reads leave balance reports and payroll registers as documents or exports, so it works with whichever HR and payroll platforms you use without requiring a direct integration. It matches the employee population across both, applies your policy rules, produces the movement split by component, and prepares the journal entry with the supporting schedule for approval.
This article is general information for finance and accounting teams. It is not accounting, tax or legal advice. Confirm the treatment of your own facts with your auditors and advisers.
See ChatFin build your leave accrual with the movement decomposed.
ChatFin reads your leave balance report and payroll register, matches the population, values the balance at current rates with the employer tax gross up, and applies your carryover and expiry rules.
The movement is split into earned, taken, revaluation and headcount change, and the entry is prepared with the schedule attached for a person to approve before posting.
Book a DemoBring a leave balance report and a payroll register.
ChatFin will produce the valued liability with the employer tax gross up and show the movement split into its four components, including the revaluation effect.