Page last updated
How to use the duplicate timecard entry checker
- Choose the layout of your data: date with start and end, start and end date-times, or one row per punch.
- Paste the rows or load a CSV, and confirm the columns. Results appear as you type.
- Tick the fields that must match for an exact duplicate, and set the near-duplicate window in minutes.
- Review each flagged row at its source, correct it there, re-export, and run the check again until it is clean.
How does the checker flag a row?
Entries are grouped by employee. Two entries are exact duplicates when every field you tick matches, possible duplicates when their start and end fall within a few minutes of each other, and overlaps when each starts before the other ends, with an end earlier than its start read as the next day. Back-to-back entries and split shifts are not flagged. Punch lists are sorted by time and must alternate IN and OUT.
For example, the shifts sample has 12 entries for 6 employees. The checker finds 1 exact duplicate, 1 possible duplicate (8:00-16:00 and 8:02-16:01), 1 entry inside another and 2 that overlap, including an overnight shift that runs into the next morning. It leaves a split shift and separate shifts alone, and reports 18.47 hours that would be counted twice if every row were paid. The names and times are made up; yours come from what you load.
Who should use the duplicate timecard entry checker
- Payroll staff cleaning timekeeping data before a pay run
- Managers who suspect an import ran twice or a punch was added by two people
- Anyone who wants to see how many hours would be paid twice
Who should not use this
- Anyone who wants overtime or pay calculated; this finds data errors, not pay
- Anyone who needs rounding, break policy or rate checks
- Anyone expecting the checker to decide what is true; it flags rows and you decide
Limitations
- It does not read .xlsx files; paste the cells or save as CSV.
- Entries for different pay codes may need a different layout than the one the checker assumes.
- It cannot tell a legitimate overlap, such as paid on-call time, from an error.
- Do not delete a row only because it was flagged.
- Nothing is uploaded or stored on a server. Clearing your browser data also removes the saved profile.
Check a timesheet for duplicate entries
Use it as a duplicate timesheet entry checker, to detect duplicate time entries and overlapping employee shifts in a pasted table or CSV. Choose the layout of your data, confirm the columns, and the results appear as you type. Try the sample (sample files can be downloaded under the calculator).
- Three layouts: date + start + end, start and end date-time, or one row per punch.
- Works with pasted Excel cells or a CSV.
- Row numbers match your data, so you can find each row.
Detect duplicate punches and overlapping shifts
The checker looks for four different kinds of problem in a timesheet or a list of clock punches, and it labels each flagged row with the reason:
- Exact duplicates: same employee, same chosen fields.
- Overlaps: the same employee's times intersect, with the overlap in minutes, including shifts that cross midnight.
- Possible duplicates: start and end within a few minutes of each other.
- Punch problems: repeated, missing, zero-length and very long.
Exact duplicates vs possible conflicts
| Case | Example | Flagged? |
|---|---|---|
| Exact duplicate | 08:00-16:30 entered twice | Yes, exact |
| Possible duplicate | 08:00-16:00 and 08:02-16:01 | Yes, if the window is on |
| Overlap | 08:00-12:00 and 11:00-15:00 | Yes, 60 minutes |
| Inside another entry | 08:00-16:00 and 10:00-11:00 | Yes |
| Back-to-back | 08:00-12:00 and 12:00-16:00 | No |
| Split shift | 08:00-12:00 and 13:00-17:00 | No |
How the checker flags rows
Entries are grouped by employee (names are compared without regard to capital letters). An end time earlier than the start is read as the next day, so 22:00-06:00 works. Any pair whose time ranges intersect is checked against the rules in the table above. It also adds up the hours that would be counted twice if every row were paid.
Example of a duplicate shift
The shift sample has 12 entries for 6 employees. The checker finds 1 exact duplicate (Ana Ruiz, 8:00-16:30 entered twice), 1 possible duplicate (Eli Moss, 8:00-16:00 and 8:02-16:01), 1 entry inside another (Fay Lund) and 2 overlap (Dev Patel's overnight shift runs into the next morning's entry), and correctly leaves alone Ben Cole's separate shifts and Cara Doyle's split shift. 18.47 hours would be counted twice if every row were paid.
Fixing timecard errors before payroll
- Look at the original source (clock, app, schedule) for each flagged row.
- If an entry is truly a repeat, remove or void it in the source system rather than editing the export.
- If hours really were worked in both entries, correct the times so they no longer overlap.
- Ask the employee or manager when it is unclear. Never change a time record without a note of who changed it and why.
- Re-export and run the checker again until it is clean.
Sources and review
Reviewed on 25 Oct 2026 against the published sources below. Rules and prices change, so check the current position before you rely on a figure.
- 29 CFR Part 516: Records to be kept by employers (516.5 and 516.6)
- U.S. Department of Labor: Overtime pay
Common questions
How do I find duplicate entries in a timesheet?
What causes duplicate timecard entries?
How do I check if two shifts overlap?
How do I find duplicate rows in Excel?
Can two shifts overlap on a timesheet?
How do I detect duplicate clock-in or clock-out punches?
How do I clean timekeeping data before payroll?
Is this a timecard anomaly checker?
What is duplicate punch detection?
How do I identify overlapping clock in and clock out times?
Does the checker flag split shifts?
Can I choose what counts as a duplicate?
Is it safe to upload payroll CSV data to an online tool?
Guides that explain the rules
Related tools
This tool produces a document from the information you type. It does not give legal, tax or accounting advice, and it does not check that your figures or rates are right. See the disclaimer. Found a mistake? Report an error in a calculation.