A year in, Sarah's company opens a small office in Toronto. Her CEO assumes payroll for the Canadian hires will mean a second system, a second vendor, and a second year-end scramble. Sarah has a better idea: run it on the platform the team already trusts.
The promise that drew her in was "statutory-ready payroll." The question now is whether that holds across a border.
Sarah creates the Canadian company workspace and sets its country to Canada during company setup. That one choice changes what payroll does under the hood — the engine loads the Canada pack instead of the Bangladesh one.
She configures the statutory inputs the same way she always has: contribution rates, tax brackets, and credits live in company settings, not in code. Nothing about a customer's numbers is hardcoded — the pack ships sensible defaults, and the live values are hers to own and update.
She runs October payroll for the Canadian team. For each employee the engine computes:
At year-end, Sarah opens an employee's T4 — Statement of Remuneration Paid. It's assembled automatically from that year's finalized runs; she prints it to PDF for the employee and generates the CRA electronic-filing XML for submission. When someone leaves, the Record of Employment (ROE) preview builds insurable hours and earnings from payroll history, ready to print or e-file to Service Canada.
The same engine, the same audit trail, a second country — continues to the Epilogue.
| Scenario | Behavior | Why |
|---|---|---|
| One engine, country "packs" | Bangladesh and Canada share the run pipeline; only the statutory layer swaps | |
| Statutory values live in settings | Rates, brackets, and ceilings are configuration — never hardcoded | |
| Reprocess-safe integrity | Voids and reprocesses reverse cleanly in either jurisdiction | |
| Full audit trail + RBAC | Who ran what, when — identical governance everywhere |
| Failure | What the user sees | What happens next |
|---|---|---|
| Company not on the Canada pack | T4/ROE pages show "no data" | Set the company country to Canada in setup |
| No finalized runs for the year | Empty T4 / ROE preview | Approve or pay the relevant runs first |
| Statutory config left at defaults | Amounts compute on shipped defaults | Enter the company's own current-year rates and brackets |
| Scenario | Behavior | Why |
|---|---|---|
| Country we haven't verified end-to-end | Runs as Tier-2 configurable — you define components, no statutory-compliance claim | Honesty: we name exactly what's verified |
| Employee with mid-year province change | Province of employment drives provincial tax and the T4 box | CRA expects a slip per province of employment |
| Quebec, or non-monthly Canadian cycles | Out of the current verified scope | We support fewer countries with confidence, not everything loosely |