Rebuilding Payroll History
Already running payroll in Beanflow but missing earlier periods in the year? This guide walks through creating a new company, rebuilding payroll from the correct starting point, and reconciling year-to-date amounts before T4 season.
Last updated August 2026
At a glance
- This guide is for employers who started using Beanflow mid-year after already paying employees elsewhere (another system or a spreadsheet) and need to capture the full year of payroll history.
- You will create a new company, set up pay groups with migration catch-up, import your employees, and re-run payroll period by period beginning with the earliest payroll whose pay date belongs to the target tax year.
- Rebuild earnings from the historical records, then reconcile CPP, EI, and income tax against what was actually deducted before treating YTD and T4 amounts as complete.
- Before starting, read the Switching to Beanflow guide to understand why a clean restart is the recommended approach and how to avoid duplicate YTD/T4.
Before you start
Gather the following from your previous payroll system or spreadsheet before beginning the catch-up process:
- Employee pay records for each pay period you need to catch up — hours worked, pay rates, and any overtime, bonuses, or vacation pay for each employee in each period.
- Historical payroll results — gross pay, CPP, EI, income tax deducted, and net pay for each employee in each period. You will enter the historical earnings inputs into Beanflow and reconcile the recalculated results against those records.
- Your employee list — exported from your current Beanflow company as a CSV. See Employee Import & Export for how to export.
- SINs for each employee. Beanflow can calculate day-to-day payroll without a SIN, but employers are responsible for requesting SINs when employment begins, and Beanflow requires a usable SIN before T4 generation.
Once you have these records ready, the catch-up process follows five stages.
Stage 1 — Create the new company
Create a new company in Beanflow Payroll with your business details (legal name, province, business number). This is the company where you will rebuild the full year of payroll history.
The old company remains untouched — payroll data is isolated per company, so whatever happens in the new company has no effect on the old one.
Stage 2 — Create pay groups with migration catch-up
Create your pay groups under the current rules (for example, bi-weekly full-time or bi-weekly part-time). Use clear, descriptive names.
Setting the catch-up starting period
When you create a pay group, use migration catch-up so the first catch-up payroll has a pay date in the target tax year — or use your real first payroll if you started operating later. The work period for an early-January pay date can begin in the previous calendar year. Run forward in sequence from that starting point.
The starting period depends on your situation:
- If you were already paying employees when the tax year began — include the earliest payroll whose pay date falls between January 1 and December 31 of the target year. That payroll's work period may start in the prior calendar year.
- If you started operating mid-year (e.g. hired your first employee in May) — start from your real first paid payroll. You do not need empty periods before the business had payroll.
For historical corrections, keep the work in the original pay group: do not create a parallel group just to "redo" periods for someone who was already paid. A new pay group can still be appropriate for a future configuration change when the periods do not overlap.
Stage 3 — Import employees & assign pay groups
Import the employee CSV you exported from the old company using Employees → Import. Beanflow validates every row before it creates anyone, so a validation error creates zero employees. After validation passes, creation proceeds row by row and the final result can report create-time failures. See Employee Import & Export for the detailed behavior and retry steps.
After import, for each employee:
- Assign the correct pay group.
- Add SIN and any details not carried over by the CSV, such as vacation balances. Review imported email/address information as well. Beanflow requires a usable SIN before T4 generation.
- Verify the hire date, pay rate, pay frequency, and employment type match the historical setup before you begin the catch-up.
Stage 4 — Run payroll period by period
This is the core of the catch-up process. Starting from the first catch-up period set in Stage 2, run payroll for each period in sequence up to the current period. Do not skip periods — YTD totals depend on every period being run in order.
For each period
- Open the current pay period for the pay group. The system shows the period start, period end, and pay date.
- Enter hours and earnings for each employee in the pay group. For hourly employees, enter regular hours, overtime hours, and any other earnings (vacation pay, bonuses, etc.) that match what you actually paid in that period. For salaried employees, verify the salary amount is correct.
- Review the calculated deductions — CPP, CPP2, EI, and income tax. Beanflow calculates these from the applicable payroll inputs and tax tables. Compare gross pay, deductions, and net pay with the historical payroll records.
- Reconcile every difference before approving. Do not assume a few-cent difference is harmless. T4 CPP, EI, and income-tax boxes report amounts deducted from the employee, so a historical deduction that differs from today's recalculation needs to be understood. Check the hours, pay rate, pay date, TD1 information, and any historical correction or reimbursement. If the difference remains, do not silently substitute the recalculated amount for the amount actually deducted; resolve the historical correction or get payroll support before relying on the rebuilt T4 totals.
- Approve the payroll run. Once approved, the period is locked and YTD totals are updated. The system advances to the next pay period.
- Move to the next period and repeat. Continue until you have run every period up to the current one.
If you have multiple pay groups, complete the catch-up for one group before moving to the next. Within each group, periods must be run in chronological order.
Stage 5 — Verify year-to-date totals
After completing the catch-up, verify that YTD totals in the new company match your records:
- For each employee, reconcile YTD employment income and the CPP, EI, and income tax actually deducted against your historical records. These values feed key T4 boxes, so unexplained differences should be resolved before year-end reporting.
- Check that the number of pay periods run matches what you expect. If you started in January and are bi-weekly, you should have run every bi-weekly period from January to the current date with no gaps.
- Spot-check a few individual paystubs from early, middle, and recent periods to make sure hours, rates, and deductions look correct.
- If any period is missing or incorrect, you can void that run within its pay group and re-run it — but do not create a new pay group to fix it.
What this means for T4
The reason for rebuilding payroll history is to give Beanflow the records needed for year-end reporting. T4 income is reported in the year it was paid, so the catch-up must cover every relevant payroll whose pay date falls in the target year. Missing payroll can leave T4 earnings or deductions incomplete and require correction.
By running every period from your real starting point to the current date, the new company's YTD captures the full picture. When T4 season arrives:
- Verify that every employee has a usable SIN in Beanflow; T4 generation is blocked when a SIN is missing.
- Confirm that employment income and deduction YTD totals reconcile to your final payroll records for the year.
- Generate T4 slips from the new company only after that reconciliation is complete.
See our T4 Year-End Guide for the full T4 preparation checklist.
Common pitfalls to avoid
Skipping periods
Every pay period between your starting point and the current date must be run. If you skip a period — even one where an employee earned nothing — the period sequence breaks and YTD may not accumulate correctly. For periods with no work, enter zero hours and approve the run anyway.
Entering wrong amounts
Use the real hours and earnings from your historical records, not estimates. If Beanflow's calculated deductions do not match what was actually deducted in the previous system, investigate before approving — check pay rates, overtime, pay dates, TD1 information, and any historical correction or reimbursement.
Creating overlapping pay groups
Do not create a second pay group as a way to replay historical periods that were already processed for the employee. Correct a past run by voiding and re-running it in the original group. A new group is appropriate for a future configuration change when its periods do not overlap the history being corrected.
Forgetting SINs
Beanflow can run day-to-day payroll without a SIN, but employers should request SINs when employment begins. Beanflow requires a usable SIN before T4 generation, so add it promptly after import rather than leaving it for year-end.
What about the old company?
The old company remains in your account with its payroll data intact. Since payroll is isolated per company, keeping it has no effect on the new company's YTD or T4 totals. You may remove it from Company profile once you have confirmed the new company's payroll runs are all correct — or simply keep it for reference. It is entirely optional.