
Post: The $27K Overpayment: How One HRIS Data Entry Mistake Cost a Manufacturer a Year of Salary
An HR manager at a mid-market manufacturer copied a salary from the ATS into the HRIS during onboarding. The offer letter said $103,000. The HRIS got $130,000. A year later — after $27,000 in overpayment — the error surfaced. When the employer corrected it, the employee quit. The case study below walks through what happened, what would have prevented it, and the three-way reconciliation pattern every HR-of-one should run quarterly.
This is the case study companion to our pillar on fixing broken HR operations. The pillar names this case as the canonical example of data drift between source-of-truth systems. This piece walks through the mechanics.
Summary
- Initial error: Salary entered as $130,000 vs offer letter at $103,000
- Overpayment over 12 months: $27,000
- Discovery: Annual compensation audit (year-one cycle)
- Outcome: Employee resigned upon notification
- Root cause: Manual data entry between systems with no reconciliation check
- Prevention cost: One quarterly reconciliation report
Before / After
| Metric | Before | After |
|---|---|---|
| Source-of-truth reconciliation | None | Quarterly three-way match |
| Comp change validation | Single keystroke | Approval routing + audit log |
| Onboarding data entry | Manual ATS-to-HRIS copy | Make.com integration |
| Comp error discovery time | 12+ months | ≤ 90 days |
| Audit trail on changes | None | Effective-dated history |
Context
The company was a mid-market manufacturer, roughly 350 employees, growing 15% year-over-year. The HR manager — let’s call him David, per the pillar — had been in seat for six months when he hired the employee at the center of this case. The offer letter went out at $103,000 base. The candidate signed the offer letter the next day. David then opened the HRIS new-hire workflow and entered $130,000. Best guess on what happened: he transposed digits, or pulled the number from a different open record, or simply mistyped. No one will ever know for sure. The HRIS accepted the value without comment.
What Happened Next
Payroll started running biweekly checks at the inflated salary. The new hire saw paychecks that matched what he expected for a $130K salary. He had no reason to question them — he had never seen the offer letter again after signing it. The HR manager did not pull the offer letter again either. No automated check compared the offer letter against payroll. The error ran for twelve months.
The discovery happened during an annual compensation audit. A reviewer cross-referenced offer letters against current payroll for everyone hired in the prior year. The discrepancy surfaced. David traced it back to the onboarding workflow and confirmed the error originated at his keystroke.
Approach
The company involved employment counsel before any communication with the employee. Counsel advised on the recovery process, the wage-law implications by state, and the language for the notification letter. The notification went out with a proposed recovery schedule — repayment over twelve months, no interest, with an offer to discuss alternatives.
The employee retained his own counsel within forty-eight hours. Two weeks later he resigned and accepted a position elsewhere. He was within his legal right to challenge the recovery, but he chose to leave instead. The company recovered the overpayment through the final pay and accrued PTO offset that state law allowed.
Implementation of the Fix
The remediation focused on prevention, not recovery. Three changes went into effect within ninety days of the discovery.
First, a quarterly three-way reconciliation: offer letter on file, HRIS effective-dated salary record, and current payroll deduction record. Any discrepancy on any employee surfaces in the report. Make.com handled the integration that pulled the three data sources into a single reconciliation view.
Second, an HRIS configuration change to require manager approval on any compensation entry above a threshold during onboarding. The approval routes to a second pair of eyes before the value commits to the system of record.
Third, an audit log requirement on every compensation field. Every change to a comp field now produces a who-changed-what-when entry retained for seven years.
Results
The reconciliation report ran every quarter for the next eighteen months. It caught two additional small discrepancies — one underpayment of $2,400 and one overpayment of $1,100 — both within their first quarter of occurrence. Both were resolved before they accumulated.
The forward process has held. The cost of the prevention layer was a configuration change and a Make.com integration that took roughly two days of work to implement.
Lessons Learned
The first lesson is the cost asymmetry. A $27,000 overpayment and a destroyed employee relationship were prevented by a quarterly reconciliation report that takes one hour to run. The math on prevention versus cleanup is rarely close.
The second lesson is that single-keystroke entry into a system of record is fragile. Any field that carries dollar value or compliance weight needs a second check — approval routing, automated reconciliation, or both. The HRIS supports it; configure it.
The third lesson is the human cost. The employee was not at fault. The HR manager was not malicious. The system failed both of them. When you build prevention layers, frame them as protecting both sides of the employment relationship — not as policing employees or HR staff.
The fourth lesson is that this kind of error is invisible until someone runs the reconciliation. Most companies have at least one of these lurking in their data right now. The first quarterly reconciliation will find it. The next ones will keep finding nothing — which is the goal.
Next Steps
If you have not run a three-way reconciliation between offer letters, HRIS, and payroll in the last twelve months, that is your next quarter. The pillar walks through the broader audit framework — start there. For the HRIS configuration changes that prevent the next David case, see our list of nine HRIS defaults to change.

