# Why your HR, payroll and attendance data disagree

Published 3 October 2026 by The PayLoom team. https://payloom.in/blog/why-hr-and-payroll-data-disagree

> HR, payroll and attendance data disagree when each system keeps its own copy of the employee list; the fix is a single employee record that every module reads from and writes approved changes back to.

Ask three systems how many people work at the company and you may get three answers. The HR system counts everyone with a contract. Payroll counts everyone paid this month. The attendance system counts everyone with a badge that still works. None of them is wrong on its own terms, and that is the problem.

## Where the copies come from

Each tool needs to know who your employees are, so each keeps a list. The lists start out identical, usually from the same spreadsheet. From then on, every change has to be made in every system, by whoever owns it, at roughly the same time. In practice they are not.

## The mismatches that follow

- A leaver removed from HR but still on the payroll run, or still able to clock in.
- A salary change approved in HR but effective from a different month in payroll.
- A manager change in the org chart that never reaches the leave approval chain, so requests wait in the wrong queue.
- A new joiner who can be paid but has no laptop, because IT never heard about them.
- Reports that disagree, because each one is drawn from a different list.

## Why reconciliation does not fix it

The usual response is a monthly reconciliation: export the lists, compare them in a spreadsheet, and fix the differences. It catches some errors, but only after they have happened, and it has to be repeated every month. The underlying cause, several copies of the same data, is untouched.

## One record, read by every module

The structural fix is to keep one record per person and have everything else read from it. Payroll reads salary, bank details and leave dates from that record. Attendance reads contract hours and site. Leave reads the reporting line to find the approver. When something changes, it changes once, on the record, and every module sees it.

The same idea applies in the other direction. Each module's approved output, such as approved overtime, approved leave and approved expenses, becomes an input to the next one without being re-keyed. Nothing is copied, so nothing can drift.

## Keep history on the record

A single record only works if it remembers what changed. Anything that affects pay should keep the old value, the new value, who changed it and when. That history is what answers the question an auditor or an employee will eventually ask: why was I paid this amount in that month?

## How PayLoom does it

PayLoom is built on this model. People, Org, Attendance, TimeSheet, Leave, Expenses, Payroll, Performance and Assets all read the same employee record, and each hands its approved output to the next. Change a salary once and every payslip, report and approval downstream reflects it.
