Three Laws, One Payroll
If you employ anyone in New York State, you're already covered by Labor Law §196-b. But if any of those workers are in New York City, they also have ESSTA (the Earned Safe and Sick Time Act) and the city's Protected Time Off Law (PTOL). If you operate across the Hudson, New Jersey's Earned Sick Leave Act adds a fourth rulebook.
Same employee. Three or four accrual rates, cap thresholds, carryover rules, and documentation triggers — all depending on where they sit and how many people you employ.
This isn't a compliance article. It's a math article. The law is public; the arithmetic is where employers actually get hurt.
The Base Accrual: 1 Hour Per 30 Worked
§196-b mandates 1 hour of sick leave for every 30 hours worked. That's the floor everywhere in New York State.
The math looks trivial: a 40-hour week earns 1.33 hours. A 2,080-hour year earns 69.3 hours.
But that's before caps.
Caps by Employer Size
Here's where the first error creeps in. The cap depends on net income and headcount, and the thresholds are different for NYC vs. the rest of the state:
- Employers with 5 or more employees: up to 40 hours of paid sick leave per year.
- Employers with fewer than 5 employees and net income ≤ $1 million: up to 40 hours of unpaid sick leave per year.
- Employers with fewer than 5 employees and net income > $1 million: up to 40 hours of paid sick leave per year.
Wait — that's the state rule. NYC's ESSTA layers on top: employers with 5+ employees provide up to 40 hours paid, and employers with 1–4 employees provide up to 40 hours unpaid if net income is under $1 million, or 40 hours paid if over.
The numbers look similar. They're not identical in practice, because the documentation and usage rules diverge. ESSTA requires written notice to employees about their sick leave rights. PTOL adds protected time off for school-related events — separate from sick leave, but tracked on the same accrual base in most payroll systems.
The Carryover Trap
§196-b requires that unused sick leave carry over to the following year. But it also allows employers to cap usage at 40 hours per year — meaning the bank can grow, but the employee can only spend 40 hours of it annually.
This is the single most common calculation error we see: employers treating the carryover cap and the usage cap as the same number. They're not.
- Bank cap: none under §196-b (the law says carryover is required; it doesn't limit the bank size).
- Usage cap: 40 hours per calendar year.
- Front-loading alternative: employers may front-load 40 hours at the start of the year and skip accrual tracking entirely — but if the employee doesn't use all 40, the unused portion does not carry over under a front-load model. This is a legitimate trade-off: simpler bookkeeping in exchange for no carryover obligation.
ESSTA's carryover rule is aligned with §196-b here, but employers who front-load under one law and accrue under the other create a reconciliation nightmare.
Front-Loading vs. Accrual: Pick One
The law gives you two compliant paths:
- Accrual: Track hours worked, calculate 1/30, carry over unused balance, cap usage at 40.
- Front-load: Grant 40 hours on January 1, no carryover, no accrual tracking.
Most small employers choose front-loading because the bookkeeping is simpler. Most payroll software defaults to accrual because it's more precise for mid-year hires.
The error: switching methods mid-year without resetting the bank. An employee who accrued 25 hours through June and then gets front-loaded 40 hours on July 1 now has 65 hours — 25 over the cap. The correct approach is to front-load 40 hours minus what they've already accrued, or switch methods only at year boundary.
The Part-Time Employee Problem
Accrual is proportional to hours worked. A part-time employee working 20 hours per week earns 0.67 hours of sick leave per week — 34.7 hours per year.
But the usage cap is still 40 hours. And the carryover requirement still applies. So a part-time employee who never uses sick leave will, over several years, accumulate a bank larger than a full-time employee's annual cap.
This is legal. It's also where most spreadsheet-based tracking falls apart, because the bank grows nonlinearly relative to the annual cap.
Multi-State Employers: The NJ Overlap
New Jersey's Earned Sick Leave Act mandates 1 hour per 30 worked, capped at 40 hours per benefit year — nearly identical to New York's base rule. But NJ defines the benefit year as the employer's chosen 12-month period (not necessarily calendar year), and NJ has no small-employer exemption: all employers, regardless of size, must provide paid sick leave.
An employer with workers in both states who sets a calendar-year benefit year for NY and a fiscal-year benefit year for NJ will have employees at different accrual reset dates. The math is the same; the timing isn't.
Where the Calculator Comes In
sick-leave.saasclaw.ai handles this. It takes employer size, jurisdiction, accrual method (front-load vs. accrual), and employee hours worked, then computes:
- Accrued hours to date
- Annual cap status (including the unpaid/paid distinction for small employers)
- Carryover balance
- Usage remaining in the current year
The async batch calculator processes an entire employee roster in one submission — queue a CSV, get per-employee results back. Sync and async paths run identical calculations, validated by parity tests, so you get the same numbers whether you're checking one employee or five hundred.
For employers juggling NY §196-b, NYC ESSTA, NYC PTOL, and NJ Earned Sick Leave across the same workforce, that's the difference between a spreadsheet that almost works and a system that actually does.
The Audit Risk
The New York Department of Labor has been actively enforcing §196-b since it took effect. Penalties for non-compliance include:
- Reimbursement of sick leave improperly denied
- Penalties per violation
- Potential civil penalties for repeat violations
The most common audit finding isn't "no sick leave policy" — it's "the policy exists but the math is wrong." Accrual rates applied to the wrong hour base, caps calculated at the company level instead of per employee, or carryover balances that don't match the usage cap logic.
If your sick leave tracking lives in a spreadsheet with manual rate calculations, you're carrying audit risk proportional to your headcount. Every row is a potential finding.
Check your numbers at sick-leave.saasclaw.ai — batch or single employee, NY §196-b + ESSTA + PTOL + NJ, accrual or front-loaded.