Timecard CSV reconciliation tool

Compares totals per employee rather than raw lines, ignores leading zeros in IDs, lists duplicate and unreadable rows with their row numbers, and exports the review list as CSV.

In short

A timecard CSV reconciliation tool compares an approved-hours file with a payroll file and lists where they disagree. It matches employees by ID or name, adds up their hours, applies a tolerance, and flags different hours, employees missing from one file, duplicate rows and unreadable rows, so you can review them before payroll closes.

  • Paste or CSV
  • Nothing uploaded
  • Review list as CSV
  • Runs in your browser

Set up once, use every day. Add your company name, logo and details the first time. They are saved in this browser, so next time only the entries are blank. Add this tool to your phone or computer for one-tap access.

Download sample files: File A sample (timesheet) · File B sample (payroll)

Page last updated

How to use the timecard CSV reconciliation tool

  1. Paste each file into its box, or choose a CSV. Press Load sample to see how it works with made-up data.
  2. Confirm the employee, hours and optional date columns, which are detected from the header names.
  3. Choose how to match: by ID or name, per employee or per employee per day, and how many minutes still count as equal.
  4. Read the review list, check the rows it points to, and download it as a CSV for your payroll file.

How are the two files compared?

Each file is read into rows, the employee column is matched by ID or by name (leading zeros ignored, “Last, First” read as “First Last”), and the hours are added up per employee or per employee per day. A difference at or below the tolerance counts as a match. Anything else is listed as different hours, only in file A, only in file B, a duplicate row or an unreadable row. The comparison covers hours only, never pay rates or tax.

For example, the sample timesheet file totals 86.50 hours and the sample payroll file 79.50, a net difference of 7.00 hours. One employee is short by 30 minutes, one by 7.5 hours (a missing day), one appears twice in the timesheet (a duplicate row), one is paid but not in the timesheet and one is in the timesheet but not paid. The names and hours are made up; yours come from the files you load.

Who should use the timecard CSV reconciliation tool

  • Payroll staff checking approved hours against a payroll export before closing the period
  • Managers who want to know why a paycheck does not match a timesheet
  • Small business owners moving hours between a time clock and a payroll provider
  • Anyone who needs a simple discrepancy report to attach to payroll records

Who should not use this

  • Anyone who needs pay rates, taxes or deductions checked; this compares hours only
  • Anyone with .xlsx files and no way to copy or save them as CSV; the tool reads pasted cells and CSV, not workbooks
  • Anyone who wants a verdict on underpayment; a mismatch only means the two files disagree

Limitations

  • Hours only; no rates, taxes or deductions.
  • It does not open .xlsx files; paste the cells or save as CSV.
  • The tables show the first 300 rows; the CSV export has all of them.
  • The hints are possibilities to check, not conclusions.
  • Nothing is uploaded or stored on a server. Clearing your browser data also removes the saved profile.

Compare two timecard or payroll CSV files

Use it as a payroll reconciliation tool: to compare timesheet and payroll hours, as a timecard CSV comparison before you close payroll, or as a payroll CSV comparison when two exports should agree.

  1. Paste each file into its box (or choose a CSV). Press Load sample to see how it works.
  2. Confirm the employee, hours and (optional) date columns. They are detected from the header names.
  3. Choose how to match: by ID or by name, per employee or per employee per day, and how many minutes still count as equal.
  4. Read the review list and download it as CSV.

Sample files for both boxes can be downloaded under the calculator.

How the reconciliation tool works

The tool compares totals, not raw lines, so formatting differences between the two exports do not cause false alarms. Each of these rules is applied before any difference is reported:

  • Matching. IDs are trimmed, compared without regard to capital letters, and leading zeros can be ignored, so 01001 matches 1001. Names are matched as "First Last" even if one file has "Last, First".
  • Adding up. All rows for the same employee (or employee and day) are added together, so daily rows in one file match a weekly total in the other.
  • Hours formats. 8.5, 8:30, 8h 30m and 8.5 hrs are all read.
  • Date matching. Dates in 2026-10-12 or 10/12/2026 form are treated as the same day.
  • Tolerance. A difference at or below your tolerance counts as a match.

What mismatches it detects

The results list separates four kinds of problem, because each has a different fix and a different person to ask. They are:

  • Different hours: both files have the employee but the totals differ. A hint suggests what to check, for example a 30-minute gap that looks like an unpaid break.
  • Only in A / only in B: an employee is missing from one file. If the same person appears once as "only A" and once as "only B", the IDs are probably formatted differently.
  • Duplicate rows: a row identical to an earlier row in the same file, with both row numbers.
  • Unreadable rows: blank IDs, hours that are not numbers, dates that are not dates. They are listed and left out of the totals.

How to prepare your CSV files

Clean input gives a short review list, and messy input gives a long one, so spend a minute on the files first. A few habits make the comparison reliable:

  • One header row, one row per entry, same pay period in both files.
  • Recognised headers include Employee ID, Emp No, Name, Work Date, Hours, Total Hours, Paid Hours. If yours differ, choose the columns from the drop-downs.
  • Excel: copy the cells and paste them, or use File, Save As, CSV.
  • Remove subtotal and total rows first; they would be read as employees.
  • Keep sensitive details out. Employee ID and hours are enough.

Example: approved hours vs payroll export

The sample files give 1 matches, 3 different, 1 only in A and 1 only in B. File A totals 86.50 hours and file B 79.50 (-7.00 net). One employee is short by 30 minutes, one by 7.5 hours (a missing day), one appears twice in file A (a duplicate row), one is paid but not in the timesheet and one is in the timesheet but not paid.

Payroll CSV privacy and data handling

The comparison runs in your browser with JavaScript. The tool's code does not upload your file or send it to a server; there is no account and nothing is saved. You can check this yourself: open your browser's developer tools, choose the Network tab, then load a file and watch that no request carries your data. Two practical cautions: close the tab when you are done on a shared computer, and remember that browser extensions can read any page you have open.

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.

Common questions

How do I compare timesheet hours with payroll hours?

Export both as CSV (or copy the cells from Excel), pick the employee and hours columns in each file, and compare the total per employee for the pay period. Anything that does not match, or appears in only one file, goes on a review list. The tool above does the matching and lists the differences with the rows to look at.

How do I find differences between two CSV files?

A general file-compare shows changed lines but does not know that "0012" and "12" are the same employee or that eight daily rows add up to one weekly total. For payroll, compare the totals per employee (or per employee per day), not the raw lines. That is what this tool does.

How do I reconcile employee hours before payroll?

1) Fix the pay-period dates in both files. 2) Make sure every employee ID uses the same format. 3) Compare hours per employee. 4) Review exceptions: missing people, duplicate rows, differences. 5) Check rounding, breaks and approvals separately. 6) Only then process payroll. The guide linked below has a printable checklist.

What should I check when timesheet hours do not match payroll?

In this order: the pay-period date range, the employee ID or name format, duplicate or missing rows, unpaid break deductions, the rounding rule, hours approved after the export, manual payroll adjustments, and which workweek the hours fall into. Most gaps are one of these.

Can I compare two Excel or CSV timesheets online?

Yes. Save the sheet as CSV, or select the cells in Excel, copy, and paste them into the box: copied cells arrive tab-separated and are read correctly. The tool does not open .xlsx files directly, and comma, tab, semicolon and pipe separators are detected automatically.

How do I find missing employees or duplicate rows in a payroll export?

Missing employees show as "Only in A" or "Only in B". Rows that are completely identical to an earlier row are listed as duplicate rows with their row numbers, and they are counted in the totals so you can see their effect. Check whether they are real before deleting anything.

Is it safe to upload payroll CSV data to an online tool?

With this tool nothing is uploaded: the file is read and compared in your browser and the code makes no network request with your data (you can confirm in the Network tab of your browser's developer tools). That is a statement about this tool only. Many other online tools do send files to a server, so check each one's privacy policy before you use real payroll data. Never paste Social Security numbers or bank details into any comparison tool; employee IDs and hours are enough.

Why do the hours in my timesheet not match my paycheck?

Usually one of: different pay-period dates, an unpaid break or rounding rule, hours approved after the payroll export, a manual adjustment, or an employee entered twice. Paste the timesheet and the payroll export into the tool and it will show which employees differ, by how much, and what to check first.

What is a payroll hours discrepancy report?

A list of every employee whose hours differ between two sources, with the size of the difference and the rows involved. The download from this tool is exactly that: a CSV report you can attach to your payroll file or send to a manager.

Is this a payroll reconciliation spreadsheet alternative?

It does the same job as a payroll hours audit spreadsheet (lookups and subtraction), without building formulas: matching IDs, adding up rows, applying a tolerance and listing exceptions. It is a timesheet data validation tool and payroll file audit tool for hours only; it does not check pay rates, taxes or deductions.

Does a mismatch mean someone was underpaid?

No. A difference only means the two files disagree. The payroll file can be higher (an adjustment, PTO, a retro payment) or lower (an unpaid break, rounding, hours not yet approved), and the cause can be a data problem rather than a pay problem. The hints in the results are possibilities to check, not conclusions.

What tolerance should I use?

Use exact (or 1 minute) if payroll uses the time exactly as recorded. If your employer rounds to 5, 6, 7 or 15 minutes, set the tolerance to that increment. Federal rules allow rounding to the nearest 5 minutes, tenth or quarter hour as long as it averages out over time (29 CFR 785.48), but the rule your employer actually uses is the one to follow.

How long should timesheets and payroll records be kept?

Under the federal wage-and-hour rules, payroll records must be kept at least three years and time cards at least two (29 CFR 516.5 and 516.6). Some states require longer, so check yours.

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.