LOP, Explained: How Attendance-Linked Payroll Actually Computes Loss of Pay
Loss of Pay sounds simple: didn't work, don't get paid. In practice, LOP is where most spreadsheet payrolls quietly break — because it sits at the intersection of attendance, leave policy, calendars, and salary structure, and each contributes an edge case. Here's the full computation, the way a payroll engine has to think about it.
Step 1: What counts as an LOP day?
A day becomes LOP only after every excusing mechanism fails:
- Was it a working day for this employee? (Their location's holiday calendar, their week-off pattern, their shift roster — not the company's generic calendar.)
- Was attendance recorded — or corrected through an approved correction request?
- Was an approved paid leave covering it (casual, earned, sick, comp-off)?
- Was an approved unpaid leave covering it? (Still LOP — but sanctioned LOP, which matters for HR records even though pay math is identical.)
Only an unexcused absence — or sanctioned unpaid leave — survives this funnel as an LOP day. Auto-absent marking (no check-in by the policy window) feeds step 2, but a pending correction request should hold the day out of LOP until decided. Spreadsheets almost never model that hold; payroll engines must.
Step 2: The per-day rate — where the fights start
The classic formula:
LOP deduction = (Monthly Gross ÷ Divisor) × LOP days
Everything controversial lives in the divisor:
| Divisor convention | Effect |
|---|---|
| Calendar days (28/30/31) | Per-day rate varies by month; February absences cost more per day |
| Fixed 30 | Stable rate; slightly over/under-deducts in 31/28-day months |
| Working days in month | “Fairest” but couples the rate to each employee's calendar |
None is universally right — but the policy must be explicit, consistent, and disclosed on the payslip. In VipraGo the divisor is a payroll-policy setting; every payslip line item shows the computation, which is most of what ends payroll disputes.
Step 3: Which components does LOP touch?
Gross isn't one number. A salary structure splits into components — basic, HRA, allowances — and LOP typically prorates the earnings components while statutory deductions recompute on the reduced figures: PF on reduced basic, ESI eligibility on reduced gross, professional tax against its slab. A spreadsheet that deducts LOP from gross but computes PF on full basic is wrong in a way an auditor will eventually notice.
The edge cases that break spreadsheets
- Mid-month joiners/exits: proration of a proration — the divisor question squared.
- Mid-month salary revision: LOP days before and after the effective date deduct at different rates. (How VipraGo handles it.)
- Sandwich rules: if policy counts a weekend between two leave days as leave, LOP can swallow non-working days — intentional for some orgs, a bug for others. Must be a setting, not an accident.
- Late corrections: an absence from March gets excused in April. The engine needs an arrears adjustment in the next run — not a manual credit someone remembers to add.
- Half-day policies: 0.5 LOP units exist; rounding rules must be explicit.
Why attendance-linked beats imported
Most payroll tools import an attendance file: a snapshot, computed elsewhere, reconciled by hand. An attendance-linked engine reads the same live records the attendance module writes — shifts, corrections, approvals, holiday calendars — so LOP is derived, not transcribed. The payroll run shows each LOP day's provenance: which date, why it wasn't excused, what rate applied. When an employee asks "why is my salary short?", the answer is a drill-down, not an investigation.
That, more than speed, is the case for linking the two systems: every deduction carries its own evidence.
See the full payroll guide →