Calculator overview
Inputs and outputs
This summary comes from the calculator's published input and output contract.
Inputs
- Service tiers
-
When omitted Blank
Default 3 rows
About this input
Service tiers per bank: from how many months of service each accrual amount applies. The first tier starts at 0 months.
Column Range or allowed values B1 Months 0 to 600 B1 Amount 0 to 4000 B2 Months 0 to 600 B2 Amount 0 to 4000 B3 Months 0 to 600 B3 Amount 0 to 4000 - Actual usage through
-
When omitted Blank
Unit date Default Not set
About this input
Usage on or before this date counts as already taken and is never scaled. Needed only for the after-actuals assumption.
- Leave banks and policies (required)
-
Default 3 rows
About this input
One row per leave bank (up to 3): how it accrues, resets, caps, carries over and pays out. A blank row is an unused bank.
Column Range or allowed values Bank Name Not declared Accrual Method Hours worked, Pay period, Calendar month, Anniversary year, Annual front-load, Imported postings only Pay Frequency Weekly, Biweekly, Semimonthly Period Anchor End Not declared Reset Basis Calendar, Anniversary Reset Month 1 to 12 Reset Day 1 to 31 Waiting Days 0 to 3660 Balance Cap 0 to 10000 Annual Earning Cap 0 to 10000 Carryover Cap 0 to 10000 Allow Negative Yes, No Negative Floor -10000 to 0 Payout Eligible Yes, No Payout Cap 0 to 10000 Scale By FTE Yes, No FrontLoad First Year Prorated, Full FrontLoad Regrant Yes, No Imported Through Not declared - Annual work hours for salaried pay (required)
-
Unit hours/year Default 2080 Range 1 to 8784
About this input
Hours in a working year, used to turn an annual salary into an hourly value for leave. 2,080 (40 hours for 52 weeks) is an illustration; use your own policy figure.
- Wage increase (required)
-
Unit % Default 0 Range -0.99 to 1
About this input
Raises every hourly valuation rate from the effective date, for example 3% as 0.03. It changes the value of leave and payouts, never the hours.
- Wage increase effective
-
When omitted Blank
Unit date Default Not set
About this input
Date from which the wage increase applies. Leave blank to apply it from the forecast start.
- Usage rate (times scheduled usage) (required)
-
Unit x Default 1 Range 0 to 5
About this input
Multiplies the hours of the usage events chosen by the scheduling assumption. 1 uses them as entered; 1.2 means 20 percent more usage on the same dates.
- Usage scheduling assumption (required)
-
Default All scheduled usage Allowed All scheduled usage, Usage after actuals date
About this input
Which usage the usage rate scales: every scheduled usage event, or only usage dated after the actual-usage date. Dates never move.
- Employees (required)
-
Default 6 rows
About this input
One row per employee (up to 10), with synthetic IDs only: hire and termination dates, pay, and opening balances per bank.
Column Range or allowed values Employee ID Not declared Hire Date Not declared Termination Date Not declared FTE 0 to 1 Hours Per Day 0.01 to 24 Pay Basis Hourly, Salary Hourly Rate 0 to 10000 Annual Salary 0 to 10000000 Opening Rate 0 to 10000 Open B1 -10000 to 10000 Open B2 -10000 to 10000 Open B3 -10000 to 10000 YTD B1 0 to 10000 YTD B2 0 to 10000 YTD B3 0 to 10000 - PTO events
-
When omitted Blank
Default 90 rows
About this input
Up to 200 dated events, sorted by date then event ID: hours worked, imported accrual postings, usage, adjustments, rate changes and separations.
Column Range or allowed values Event ID Not declared Employee ID Not declared Bank 1, 2, 3 Event Date Not declared Event Type Worked hours, Accrual posting, Usage, Adjustment, Rate change, Separation Hours -2080 to 2080 Value 0 to 10000000 - Calculation (required)
-
Default Calculate Allowed Calculate, Scenario grid
About this input
Calculate runs the employee and bank ledger. Scenario grid also runs 121 combinations of usage rate and wage increase, which takes longer.
- Employer burden on leave value
-
When omitted Blank
Unit % Default Not set Range 0 to 1
About this input
Employer taxes and benefits added on top of the leave value, as a share of it. Leave blank to report no burden; 0% reports a burden of zero.
- Grid step: usage rate (required)
-
Unit x Default 0.1 Range 0.01 to 1
About this input
Distance between the 11 usage rates of the scenario grid, which run 5 steps below and above the usage rate.
- Grid step: wage increase (required)
-
Unit % Default 0.01 Range 0.001 to 0.2
About this input
Distance between the 11 wage increases of the scenario grid, which run 5 steps below and above the wage increase.
- Forecast end (required)
-
Unit date Default 2026-12-31
About this input
Last day of the forecast, at most 12 months after the start. Closing balances and the year-end liability are as of the end of this day.
- Forecast start (required)
-
Unit date Default 2026-01-01
About this input
First day of the forecast. Opening balances and earned-this-year figures are as of the end of the day before.
Outputs
- Payout value (cash)
-
Unit $
About this output
Cash paid out at separations during the forecast, in dollars.
- Paid out at separation
-
Unit hours
About this output
Hours paid out at separation, up to each bank payout cap.
- Opening balance
-
Unit hours
About this output
Sum of the opening balances, in hours.
- Accrued, not yet posted at the end
-
Unit hours
About this output
Accrual earned in pay periods still open at the forecast end, before caps. It is not in the closing balance.
- Value of unpaid hours at separation
-
Unit $
About this output
Value of the hours left unpaid at separation, at the rate on the separation date.
- Unpaid at separation
-
Unit hours
About this output
Positive hours left at separation that the payout policy does not pay.
- Negative closing balances (not netted)
-
Unit hours
About this output
Sum of the negative closing balances. They never reduce the leave value of other employees.
- Earned (accrued and imported)
-
Unit hours
About this output
Hours accrued during the forecast, including imported accrual postings, after caps.
- Closing balance
-
Unit hours
About this output
Sum of the closing balances at the forecast end; negative balances are included here and shown separately below.
- Adjustments
-
Unit hours
About this output
Net hours added or removed by adjustment events.
- Of which imported postings
-
Unit hours
About this output
Part of the earned hours that came from imported accrual postings.
- Front-loaded
-
Unit hours
About this output
Hours granted up front at resets or at eligibility, after caps.
- Forfeited at reset
-
Unit hours
About this output
Hours lost at resets because they exceeded the carryover cap.
- Usage not deducted (below the floor)
-
Unit hours
About this output
Requested usage that was not deducted because it would have taken a balance below its allowed floor.
- Status code
-
No unit declared
About this output
The short code of the reason shown in the status line, for example EV-4-MAX for an event row whose date is after the forecast end; OK when nothing applies.
- Workbook self-check
-
No unit declared
About this output
PASS when the internal consistency checks of the model agree; FAIL means the result should not be relied on.
- Reference data version
-
No unit declared
About this output
Reference data used: none, because every policy value in this calculator is entered by you.
- Warning messages
-
No unit declared
About this output
The active warnings, each with its code.
- Warnings Table
-
No unit declared
About this output
Every warning code with how many employee-banks or rows it affects, the first one, and its message.
- Warnings
-
No unit declared
About this output
Number of warnings that apply to this result.
- Model version
-
No unit declared
About this output
Version of the calculation model.
- Of which from hours
-
Unit $
About this output
Part of the change explained by hours, at opening rates.
- Change in leave value
-
Unit $
About this output
Change in leave value from the opening to the closing balance.
- Used
-
Unit hours
About this output
Leave hours taken and deducted from balances.
- Model Status
-
No unit declared
About this output
OK, CHECK with the reason a result needs attention, or NOT VALID with the input to fix.
- Custom assumptions in use
-
No unit declared
About this output
Always true here: every accrual, cap and payout rule is your own policy assumption, never a legal rule.
- Of which from rates
-
Unit $
About this output
Part of the change explained by rate changes and the wage increase.
- Employee rows used
-
No unit declared
About this output
Number of employee rows filled in.
- Employee rows to fix
-
No unit declared
About this output
Number of filled employee rows with a problem to fix.
- First employee row problem
-
No unit declared
About this output
The first problem found in the employee rows, with its row and ID; blank when there is none.
- First event row problem
-
No unit declared
About this output
The first problem found in the event rows, with its row and ID; blank when there is none.
- CB05 Events Check
-
No unit declared
About this output
OK, blank for an unused row, or the first problem in that event row.
- CB05 Event Ledger
-
No unit declared
About this output
For each event row that closes a day of usage or adjustments: the balance after that day, credits since the previous step and any usage not deducted.
- CB05 Employees Check
-
No unit declared
About this output
OK, blank for an unused row, or the first problem in that employee row.
- Burden applied
-
No unit declared
About this output
Yes when a burden rate was entered.
- Totals by leave bank
-
No unit declared
About this output
Totals per leave bank.
- Calculation evaluated
-
No unit declared
About this output
The calculation that produced these results.
- Burden on payouts
-
Unit $
About this output
Employer burden on the cash payouts.
- Burden on the payout-eligible liability
-
Unit $
About this output
Employer burden on the payout-eligible liability.
- Burden on the gross leave value
-
Unit $
About this output
Employer burden on the gross positive leave value.
- Event rows to fix
-
No unit declared
About this output
Number of filled event rows with a problem to fix.
- Payout-eligible modelled liability at the end
-
Unit $
About this output
Value of the closing balances that the payout policy would pay at separation, up to each payout cap.
- Opening leave value
-
Unit $
About this output
Value of the positive opening balances at the opening valuation rates.
- Liability at each month end
-
No unit declared
About this output
Gross positive leave value and payout-eligible liability at each month end and at the forecast end.
- Scenario grid: reasons for blank cells
-
No unit declared
About this output
The reason for each blank cell of the scenario grid, in the same layout: usage rates in the first column, wage steps across.
- Scenario grid: gross positive leave value at the end (rows: usage rate; columns: wage increase)
-
No unit declared
About this output
Gross positive leave value at the forecast end: one row per usage rate (the first column) and one column per wage step, from -5 steps to +5 steps (the wage increases are in the wage axis). Blank where the reasons table explains why.
- CB05 Policy Check
-
No unit declared
About this output
Blank, or the first problem in that bank row.
- Ledger by employee and bank
-
No unit declared
About this output
One row per employee and bank: opening, earned, front-loaded, adjusted, used, forfeited, paid out and closing hours, and their values.
- Scenario grid center
-
Unit $
About this output
Center cell of the scenario grid, which must equal the gross positive leave value of the base case.
- Grid center equals the base case
-
No unit declared
About this output
PASS when the grid center equals the base case to the cent.
- Event rows used
-
No unit declared
About this output
Number of event rows filled in.
- Gross positive leave value at the end
-
Unit $
About this output
Value of every positive closing balance at the closing rate. A modelled estimate, not an accounting certification.
- CB05 Grid Wage Axis
-
No unit declared
About this output
The wage increase step, then the 11 wage increases of the scenario grid columns under their step headings (-5 steps to +5 steps); blank outside Scenario grid mode.
- CB05 Grid Usage Axis
-
No unit declared
About this output
The 11 usage rates of the scenario grid rows, under a Usage rate heading; blank outside Scenario grid mode.
LogicCommons is in beta. If a result, label, or reference looks wrong, tell us here; we read every message.
Methodology
Purpose and model boundary
This calculator follows paid time off for up to 10 employees and up to three leave banks, such as vacation, sick leave and personal days, through a forecast of up to 12 months. For every employee and bank it starts from the opening balance, applies the bank's accrual, resets, caps, carryover, negative floor and payout rules day by day in a fixed order, and posts the leave events you enter: hours worked, imported accrual postings, usage, adjustments, rate changes and separations. The main results are the closing hours and what the leave on the books is worth at the forecast end, both the value of every positive balance and the part the payout rules would pay at separation, with every hour earned, used, forfeited and paid out on the way.
The Scenario grid choice adds an 11 by 11 table of how the closing leave value moves when employees use more or less leave than scheduled and when wages rise by more or less than assumed.
Every figure on this page is computed by the spreadsheet; the page adds nothing to it. Every accrual, cap, carryover and payout rule is your own policy: the calculator holds no state or federal leave rule and never infers a payout requirement from a location. The leave values are modelled estimates, not an accounting certification. The model is educational and is not payroll, accounting, tax or legal advice.
Inputs and units
- Forecast start and end: the forecast runs from the start to the end, inclusive, and is at most 12 months long. Opening balances and earned-this-year figures are as of the end of the day before the start; closing balances and the closing liability are as of the end of the last day.
- Leave banks, one row per bank, up to three, in a fixed position (bank 2 may be unused while bank 3 is used):
- a name and the accrual method: hours worked, pay period, calendar month, anniversary year, annual front-load, or imported postings only;
- for the pay period method, the pay frequency (weekly, biweekly or semimonthly) and, for weekly and biweekly, the end date of any one real pay period of that calendar;
- the reset basis, calendar (with a reset month and day; 29 February is refused) or anniversary of hire;
- the waiting days before an employee is eligible to accrue (0 for none);
- an optional balance cap, annual earning cap and carryover cap, in hours (a blank cap is no cap; a carryover cap of 0 is use it or lose it);
- whether the balance may go negative and, if so, its floor in hours;
- whether a balance is paid out at separation (required, never assumed) and an optional payout cap in hours;
- whether accrual is scaled by FTE; for a front-load bank, whether the first-year grant is prorated or full and whether a tier increase is regranted mid-year;
- optionally, the date through which accrual comes from imported postings, after which the bank generates its own.
- Service tiers, up to 10 per bank: from how many months of service each accrual amount applies, the first at 0 months. The amount is in hours per hour worked, per pay period, per month, per service year, or per reset year, by the bank's method. A tier applies from the hire date's monthly anniversary that many months on.
- Employees, up to 10: a synthetic ID (a capital letter, then up to 15 capital letters or digits), hire date, optional termination date (the last day employed), FTE above 0 to 1, scheduled hours per day, pay basis and either an hourly rate or an annual salary, an optional opening valuation rate, the opening balance of each active bank (required, even if 0, for anyone hired before the start) and optional hours earned so far in the current reset year. The rows can be pasted from a spreadsheet and are put in ID order.
- Annual work hours for salaried pay: turns an annual salary into an hourly value, from 1 to 8,784. 2,080 is an illustration, not a legal figure.
- Leave events, up to 200, each with a synthetic event ID, the employee, the bank where the type needs one, the date inside the forecast, the type and its hours or value: hours worked (0 to 2,080, one day or a whole pay period reported on that date), an accrual posting, usage, a signed adjustment, a rate change (the new hourly rate or annual salary from that date) or a separation. The rows can be pasted and are put in date order, then event-ID order, which is the order the workbook checks.
- Wage increase and its effective date: raises every valuation rate from that date (from the start when blank); it changes values, never hours.
- Employer burden: optional employer taxes and benefits as a share of the leave value. Blank reports no burden; 0% reports a burden of zero.
- Usage rate and usage scheduling assumption: a multiple of the scheduled usage hours, applied to every usage event or only to usage dated after the actual-usage date you give. Dates never move.
- Grid steps: the usage rate step and the wage increase step of the scenario grid.
Hours are hours, money is in US dollars, and rates are percentages.
Governing relationships
Daily order. On each day, for each employee and bank, the workbook applies, in this order: the reset, any rate change (which affects value only), credits, usage, adjustments, the negative floor, and finally the separation payout.
Credits and caps. Every credit, whether accrued, worked-hour, imported or front-loaded, is applied as a capped increment:
applied = min(credit, max(0, balance cap − balance), max(0, annual earning cap − earned this reset year))
so a balance at its cap stops accruing until usage reopens room, and the annual cap counts earned and front-loaded hours in the reset year. Because a run of credits with no usage, adjustment or reset between them gives the same result whether applied day by day or at once, the workbook processes the forecast by events rather than by days, with results identical to a daily calculation.
Accrual methods.
- Hours worked: each hours-worked event earns its hours times the tier rate in force on its date.
- Pay period, calendar month and anniversary year: each eligible day of a period earns the tier amount for that day divided by the period's length, times FTE when the bank scales by it, and the period's accrual is posted on its last day, or on the termination date for a final partial period. A tier change inside a period is therefore prorated by eligible days. Days of a period before the forecast start still count toward that period's posting; days before eligibility do not.
- Annual front-load: the tier amount is granted at each reset, at the tier in force on the reset date. A new employee's first grant falls on the eligibility date, prorated to the rest of the reset year or granted in full as the bank says. A mid-year regrant of a tier increase, prorated to the rest of the reset year, happens only when the bank is set to regrant.
- Imported postings: accrual-posting events credit their hours. A bank either imports through a cutover date, which must be a period end, and generates its own accrual only after it, or uses one source alone, so no accrual is ever counted twice.
Eligibility starts on the hire date plus the waiting days, with no retroactive credit for the waiting period.
Reset. At the start of a reset day (each calendar reset date, or each hire anniversary, which falls on 28 February for a 29 February hire in other years), hours above the carryover cap are forfeited, the earned-this-year counter returns to zero, and then any front-load grant is applied. A negative balance carries over unchanged. With a forecast of at most 12 months, each employee and bank has at most one reset in it.
Negative floor. After the day's usage and adjustments, usage that would take the balance below its floor (0 when negative balances are not allowed) is not deducted and is reported as usage not deducted. An adjustment is applied as entered, and a balance it leaves below the floor is flagged.
Separation. On the termination date, after everything else that day,
paid out = min(max(balance, 0), payout cap) when the bank pays out, otherwise 0
payout value = paid out hours × rate on the termination date
The positive remainder above the payout cap, or the whole positive balance when the bank does not pay out, is recorded separately as unpaid at separation, with its hours and value, and the closing balance becomes 0. A negative balance at separation stays and is flagged; its recovery is not modelled. The effective termination date is the employee's termination date or the date of a single separation event.
Reconciliation. For every employee and bank,
closing = opening + earned + front-loaded + adjustments − used − forfeited − paid out
where forfeited includes both hours lost at a reset and hours unpaid at separation.
Valuation. The valuation rate on a date is the hourly rate, or the salary divided by the annual work hours, replaced by the latest rate change on or before that date, then times 1 plus the wage increase from its effective date. Each employee and bank is valued in cents, rounded half away from zero, and every total is a sum of those posted values:
gross positive leave value = max(closing hours, 0) × closing rate
payout-eligible liability = min(max(closing hours, 0), payout cap) × closing rate, for a bank that pays out
opening value = max(opening hours, 0) × opening valuation rate
hours effect = (max(closing hours, 0) − max(opening hours, 0)) × opening valuation rate
rate effect = (gross positive leave value − opening value) − hours effect
A negative balance is valued at zero and never offsets another employee's leave; the negative closing hours are reported on their own. The burden, when entered, is the burden rate times the gross value, the payout-eligible liability and the payouts.
Scenario grid. Rows set the usage rate from 5 steps below to 5 steps above your usage rate, and columns set the wage increase from 5 steps below to 5 steps above yours. Usage changes hours through the caps, floors and carryover, so each of the 11 usage rates runs its own ledger; wages change only the closing valuation rate. Each cell is the gross positive leave value at the forecast end, and the center cell equals the base case to the cent. A usage rate below 0 or above 5, or a wage increase at or below −100% or above 100%, leaves its cell blank with the reason in the reasons table; nothing is clamped.
Calculation sequence
The spreadsheet first checks the inputs, each bank's policy, the tiers, and each employee and event row, including that the events are in date order, then event-ID order. It then builds each employee and bank's accrual clock, tier dates and reset date, steps through the usage and adjustment days in date order with the credits between them, closes each employee and bank at the forecast end or at separation, values the balances, and takes a snapshot at each month end. In the Scenario grid mode it then runs the 11 usage ledgers and the 121 values. A block of consistency checks confirms that every employee and bank reconciles, that the month-end snapshot at the forecast end equals the closing balance, and that the grid's center equals the base case, before the status is returned.
Outputs and interpretation
The headline shows the hours: the opening balance, hours earned (and the part imported), front-loaded, adjusted, used, usage not deducted, forfeited at a reset, unpaid at separation, paid out and the closing balance, with negative closing balances and accrual still unposted at the end shown separately. It then shows the money: the cash paid out at separations and the value of the hours left unpaid, the opening leave value, the gross positive leave value and the payout-eligible liability at the end, the change in value split into the part from hours and the part from rates, and, when a burden rate is entered, the burden on the gross value, the payout-eligible liability and the payouts.
The ledger by employee and bank gives every flow, the closing balance in hours and in days, the values and the reset date. The event ledger, beside the leave events, shows for each event row that closes a day of usage or adjustments the balance after that day, the credits since the previous such day, any hours forfeited at a reset in between, the hours used and not deducted, and a note on usage that was not deducted. Further tables give the totals by bank, the liability at each month end, and the scenario grid. In the grid, the first column gives each row's usage rate and the column headings count wage steps from −5 to +5, with the wage increase of each step listed beside the grid. A cell without a value is explained in the reasons table, which has the same layout.
Any warnings appear under the results. The model version and the other run details are in the downloaded CSV and JSON files. The Custom assumptions badge is always on, because every policy value is your own. The per-row check tables are returned to the API and MCP, and the first problem they find is named in the status.
Under the default inputs, six employees are followed through 2026 in three banks. Vacation accrues 3.08, 4.62 or 6.15 hours a biweekly pay period by service, scaled by FTE, with a 200-hour cap, 80 hours of carryover at 1 January and payout at separation up to 160 hours. Sick leave accrues 0.0333 hours per hour worked after 90 days, up to 40 hours a year and a 72-hour balance, carries over 40 hours and is not paid out. Personal leave is front-loaded each 1 January, 16 hours or 24 after five years of service, prorated for new hires, may go to −8 hours and is not paid out. Ninety events record monthly hours worked, 20 days of leave, two rate changes and one adjustment. The employees open with 530 hours and close with 827.18: they earn 855.22 hours, receive 117.37 front-loaded, gain 4 by adjustment and use 380. The 1 January reset forfeits 92 hours above the carryover caps. The employee who leaves on 30 September is paid out 127.41 vacation hours, 5,819.21 dollars, while 80 sick and personal hours, worth 3,653.84 dollars, go unpaid at separation. Leave valued at 23,168.15 dollars at the start is worth 30,327.10 dollars at the end, of which 19,995.69 dollars is payout-eligible; of the 7,158.95-dollar change, 6,507.15 comes from hours and 651.80 from rates. Another 7.97 hours have accrued in pay periods still open at the end. The status is OK; the warnings list notes, for information, that accrual stopped at a balance cap, that annual earning caps were reached and that the last periods' accrual is not yet posted. The first chart follows the gross positive leave value and the payout-eligible liability at each month end. The second shows each employee's closing balance in each bank, with negative balances below zero.
Validation and status logic
The workbook returns one status, chosen in this order: NOT VALID, then CHECK, then OK. There is no optimization, so there is no INFEASIBLE state.
- NOT VALID names the first problem it finds, checked in this order: the calculation mode; the forecast start and end, and a forecast longer than 12 months; the annual work hours; the burden rate; the usage rate and the usage scheduling assumption, with the actual-usage date when only later usage is scaled; the wage increase and its effective date; the grid steps in the Scenario grid mode; no active leave bank; the first bank whose policy or tiers fail a rule (a missing method, pay frequency, anchor or reset date, a cap or floor out of range, a blank payout choice, tiers not starting at 0 months or not increasing, or an imported-through date that is not a period end); no employee; the first failing employee row (ID form and uniqueness, dates, FTE, hours, pay basis and rate, a missing opening balance for a pre-start hire); and the first failing event row (ID form and uniqueness, an unknown employee, a missing or inactive bank, a date outside the forecast, before hire or after separation, hours or value that do not fit the type, an accrual posting that would double-count generated accrual, conflicting separations, more than one rate change on a day, or rows out of date and ID order).
NOT VALIDis a refusal, not a numeric answer: every figure is withheld. - CHECK accompanies a computed result that needs the stated review: the workbook's own self-check failed; usage was more than the floor allowed, so the excess was not deducted; an adjustment left a balance below the floor; a balance was negative at separation; earned-this-year was blank where an annual earning cap applies, so 0 was assumed; in the Scenario grid mode no usage event is scaled, so the usage axis has no effect, or some axis values are out of range; or an opening balance is outside the floor-to-cap range.
- OK otherwise.
The warnings list gives each warning's count, the first employee, bank or event it affects, and its message. It also reports, without changing the status, accrual stopped at a balance cap, an annual earning cap reached, and accrual for a period still open at the forecast end.
Assumptions and limitations
- Periodic accrual posts on the last day of its period, or on the termination date for a final partial period; the pay date is not modelled. Accrual for the period still open at the forecast end is not in the closing balance and is reported as unposted hours, before caps.
- One policy applies to each bank for every employee. FTE, hours per day and pay basis stay the same for each employee through the forecast.
- An hours-worked event uses the tier in force on its date, so a tier change inside a reported period is resolved at the report date; one event per worked day gives exact proration.
- Usage beyond the floor is not deducted; an explicit adjustment always is.
- At separation, positive hours the payout rules do not pay are recorded as unpaid and the balance closes at 0; a negative balance is not recovered.
- Calendar resets cannot fall on 29 February.
- Values are posted in cents per employee and bank, half away from zero, and totals are sums of those values. They are a modelled estimate of the leave on the books, not an accounting measurement under any standard.
- The scenario grid scales scheduled usage hours under one of two named assumptions and never moves a date; the wage axis changes values only.
- There is no file import; rows are pasted.
Restrictions and non-computing states
The calculator enforces its numeric and choice limits before it accepts a result. An eleventh employee or a 201st event is refused before calculation, and a paste over capacity is refused with the row count, never truncated. A blank payout choice, a missing opening balance for an employee hired before the start, events out of order and imported postings that overlap generated accrual are refused by the workbook. The scenario grid is left blank outside the Scenario grid mode.
Errors and warnings
A request rejected by the page's input limits is not a computed result. A transport or service failure, a timeout or a cancelled run cannot establish a fresh workbook answer, and the last result stays on the page marked as out of date. Review the workbook's References and Disclaimer, your written leave policies and the wage-payment rules that apply to you before using a result for a real decision.
References
Sources and further reading
Every accrual rate, tier, cap, carryover, floor and payout rule on this page comes from your inputs; the calculator holds no statutory leave rule and never infers one from a location. The public sources below explain how federal rules treat paid leave and its payment, and show a public leave system built on the same ideas. They do not endorse this calculator.
- U.S. Department of Labor, Vacation Leave states that the Fair Labor Standards Act does not require payment for time not worked, such as vacations, and that such benefits are matters of agreement between an employer and an employee, which is why the calculator asks for every bank's rules rather than assuming any (retrieved 2026-10-27).
- U.S. Department of Labor, Last Paycheck explains that federal law does not require a final paycheck immediately and that some states do have final-pay requirements, so check the rules that apply to a separation payout (retrieved 2026-10-27).
- IRS Publication 15 (2026), (Circular E), Employer's Tax Guide, section 7, "Supplemental Wages", explains that vacation pay is subject to withholding as if it were a regular wage payment, and lists payments for accumulated sick leave among supplemental wages (retrieved 2026-10-27).
- U.S. Office of Personnel Management, Fact Sheet: Annual Leave describes a public leave plan that accrues hours each pay period at rates that rise with years of service, with a ceiling on the leave carried into the next year, the same structure as the calculator's service tiers and carryover cap (retrieved 2026-10-27).
- U.S. Bureau of Labor Statistics, Employee Benefits Survey reports the share of workers with access to paid vacation, paid sick leave, paid holidays and paid family leave (retrieved 2026-10-27).
This is an educational model of the leave policies you enter, not payroll, accounting, tax or legal advice. Leave and final-pay laws differ by state and city, and accounting for compensated absences follows its own standards; check a result against your written policies and a qualified professional.
Found a problem, or have an idea?
Tell us if a result looks wrong, a label is unclear, or something is missing. We read every message.