Skip to main content

Chapter 64 — Migrating payroll history

A company rarely starts payroll on a new system with an empty past. Employees ask for last year's slips, tax certificates cover a year that began before the switch, and a provident-fund balance has years of contributions behind it. Migrating that history is a one-time job per employee, done from the old system's figures, and it is worth doing right once: an imported month is a record of what was paid, not a recalculation.

What this chapter covers​

  • 64.1 Salary history import: template, preview, confirm
  • 64.2 The "PF returned" option
  • 64.3 Imported runs and finalising historic runs
  • 64.4 Undoing an import

The concept​

There are two ways to bring history over. Recalculating reruns old months through the new system's rules, and produces figures that almost never match what was actually paid, because rules, rates and attendance were different then. Importing copies what each slip said, line by line, and keeps the net exactly as paid. For history, importing is the honest choice: the record should say what happened, and any difference between the old system's arithmetic and the new one's is a question for the old system.

How Operentra handles it​

  • Payroll › Employee Salaries › Import History opens the importer for one employee at a time: download the CSV template, fill it from the old payslips, upload it, read the preview, confirm.
  • Each row is one month with gross, medical allowance, bonus or overtime, tax, leave deduction, advance, provident fund, net, and optionally the payment date and the bank paid from.
  • The preview marks each row OK, WARN or SKIP: a month that already has a run processed in Operentra, or that this employee already has, is skipped; a net that does not equal the lines is kept as written and flagged.
  • An import writes locked, imported runs with the slip lines, the tax records behind certificates, and provident-fund ledger rows; it creates any past fiscal year it needs.
  • Undo removes everything one import wrote.
  • Who: payroll.manage (Super Admin, Accountant).

Walkthrough​

Northwind's payroll in Operentra starts with September 2025. A new hire's slips from the months before, from the old payroll provider, are the example: one file per employee, months before September 2025, imported and then undone in your trial workspace.

64.1 Salary history import: template, preview, confirm​

Choose the employee; the importer needs them to have a salary assignment (Chapter 52), which it uses as the link for the imported months. Download CSV template gives the columns: Month and Year (separate, so a two-digit year cannot be misread), Gross Salary, Medical Allowance, Bonus/Over Time, Tax Deduction, Leave Deduction, Advance, P. Fund, Net Salary, Payment Date and Bank. Fill one row per month from the old slips; leave a column empty or zero where it does not apply. A deduction the template has no column for, such as US social security, cannot be shown as its own line; leave it out and the net, which is kept as written, still says what was paid.

Import Salary History: pick the employee and the CSV file, download the template, then preview

Upload the file and the preview shows every row with its figures and a badge, and the totals: rows, Will Import, Will Skip, Warnings. SKIP means the month already has a run processed in Operentra, which an import never overwrites, or this employee already has a slip that month. WARN means something to read: the lines do not add up to the net (the net is imported as written), or the bank does not match a company account (it is kept as text). Parse errors list the row and the problem. Confirm Import writes the rows that will import.

64.2 The "PF returned" option​

By default a P. Fund amount is treated as a real provident-fund contribution: it becomes the employee's provident-fund line, a matching employer contribution is recorded, and both go to the employee's PF ledger (Chapter 61), so the balance carries forward. Treat P.Fund as returned is for the other case, a company that deducted it on the slip and then paid it back in cash and holds no balance: the amount becomes an "Other Deduction" line with a note and nothing reaches the ledger. A file with no P. Fund amounts needs neither, and imports in a workspace with no provident fund at all.

64.3 Imported runs and finalising historic runs​

Each imported month becomes a run marked Imported in Payroll › History, already locked, with the employee's entry holding the slip's lines and net. If the month's run already existed as an import, the new entry joins it. Fiscal years before the workspace's first are created as needed, inactive. The slip shows the lines as imported; its attendance counts, where shown, are marked informational, because they did not affect the net. Imported runs cannot be reprocessed. A row with a payment date records that entry as paid; when every entry of an imported run is paid, Finalize Run (Chapter 58) moves it to Disbursed without touching the payment details. Tax certificates (Chapter 63) for those years include the imported tax.

64.4 Undoing an import​

Past Imports for the employee lists each upload with the file name, when, by whom and how many rows were imported and skipped. Undo warns that it will permanently delete that import's salary entries, with their tax records and provident-fund rows, and any imported run left empty; the undo is logged for audit and cannot itself be undone. Use it for a file imported against the wrong employee or with a wrong column, then import the corrected file.

What happens next​

  • Slips (Chapter 59) and certificates (Chapter 63) cover the imported months; reports (Chapter 65) include them.
  • The PF ledger (Chapter 61) carries imported contributions forward into the live fund.

What the employee sees​

Their imported slips in the portal beside the live ones, marked as imported, and tax certificates for the imported years.

Common mistakes​

  1. Recalculating instead of importing. The new rules produce different numbers; import what was paid.
  2. Importing months Operentra already processed. They are skipped; history means before the first run.
  3. Fixing the net to make the lines add up. The net is what was paid; let the warning stand and keep a note.
  4. Choosing "PF returned" for a live fund. The balance never reaches the ledger; leave it off unless the money was paid back.
  5. The wrong employee selected. Undo the import and import again for the right one.
  6. Bank names that do not match. They import as text, not as a link to the account; tidy the names first if the link matters.

Practice​

Use your own trial workspace, not a customer's.

  1. Download the template and fill two months before your first run for one employee.
  2. Upload it and read the preview; change one net so it does not add up, upload again, and read the warning.
  3. Confirm the import; open Payroll › History and the employee's slip for one imported month.
  4. Open the Past Imports list and Undo the import; check that the runs are gone.

Quiz​

1. Why import history rather than recalculate it?

An import records what was actually paid; recalculating with today's rules produces figures that never matched the slips.

2. Which rows does the preview skip?

Months that already have a run processed in Operentra, and months where the employee already has a slip.

3. What happens when the lines do not add up to the net?

The row is flagged with a warning and the net is imported exactly as written.

4. What does "Treat P.Fund as returned" change?

The amount becomes an Other Deduction line with a note instead of a provident-fund contribution, and nothing goes to the PF ledger.

5. What does Undo remove?

That import's salary entries, their tax records and PF rows, and any imported run left empty; the undo itself is logged and final.