Files
Odoo-Modules/fusion_payroll/docs/ENHANCEMENT_PLAN.md
2026-02-22 01:22:18 -05:00

54 KiB
Raw Blame History

Fusion Payroll Canada - QuickBooks-Like Enhancement Plan

Overview

Transform the basic Canadian payroll module into a comprehensive, QuickBooks-like payroll solution for Odoo Enterprise.

Status: 📋 PLANNING PHASE - Collecting requirements before implementation


Table of Contents

  1. Gap Analysis
  2. Employee Profile
  3. Employment Status & ROE
  4. ROE Generation
  5. Tax Withholdings
  6. Base Pay & Compensation
  7. Additional Pay Types
  8. Time Off & Vacation
  9. Deductions & Contributions
  10. Paycheque Entry Form
  11. Pay Stub Report
  12. Payroll Cheque Printing
  13. Payroll Tax Centre
  14. Reports
  15. Implementation Order

Gap Analysis

What QuickBooks Has (That Odoo Lacks)

Feature QuickBooks Odoo Enterprise Gap Priority
Employee Profile Tabs Profile, Paycheque list, Documents, Notes, Permissions Basic form Missing HIGH
Personal Info SIN, Birth date, Gender, Full address Partial ⚠️ Partial HIGH
Employment Status Active/Terminated with ROE codes Basic active/archive Missing HIGH
ROE Reason Codes Full Service Canada codes None Missing HIGH
Tax Withholdings TD1 Fed/Prov, Exemptions Basic Missing HIGH
Payment Method Cheque/Direct deposit Has bank ⚠️ Partial MEDIUM
Base Pay Hourly/Salary/Commission Has wage ⚠️ Partial HIGH
Additional Pay Types Stat Holiday, Custom Not structured Missing HIGH
Time Off Vacation %, Sick pay Separate module ⚠️ Separate MEDIUM
Deductions Health, Retirement, T4 dental Basic Missing MEDIUM
Workers' Comp WCB tracking None Missing LOW
CPP2 (Second CPP) 2024+ additional pension None Missing HIGH
Employer Tax Tracking EI (1.4x), CPP (1:1) Basic Missing HIGH
Paycheque Entry Form Detailed editable form Basic payslip Missing HIGH
Payroll Tax Centre Remittances + Filings dashboard None Missing HIGH
Tax Remittance Tracking Monthly CPP/EI/Tax payments None Missing HIGH
T4 Summary/Slips Year-end tax forms None Missing HIGH
Emergency Contact Full details Not in payroll Missing LOW
Pay Stub Report Detailed with YTD Basic payslip Missing HIGH

Phase 1: Employee Profile

Personal Info Fields

Field Type Required Notes
Legal Name (First, M.I., Last) Char Yes Already in Odoo
Preferred First Name Char No Display name
Email Char Yes Already in Odoo
Home Phone Char No With extension
Work Phone Char No With extension
Mobile Phone Char No
Street Address Char Yes
Address Line 2 Char No
City Char Yes
Province Selection Yes All Canadian provinces
Postal Code Char Yes Format: A1A 1A1
Mailing Address Same as Home Boolean No Checkbox
Birth Date Date Yes
Gender Selection No Male/Female/Other
Social Insurance Number Char Yes 9 digits, masked

Canadian Provinces Selection

PROVINCES = [
    ('AB', 'Alberta'),
    ('BC', 'British Columbia'),
    ('MB', 'Manitoba'),
    ('NB', 'New Brunswick'),
    ('NL', 'Newfoundland and Labrador'),
    ('NS', 'Nova Scotia'),
    ('NT', 'Northwest Territories'),
    ('NU', 'Nunavut'),
    ('ON', 'Ontario'),
    ('PE', 'Prince Edward Island'),
    ('QC', 'Quebec'),
    ('SK', 'Saskatchewan'),
    ('YT', 'Yukon'),
]

Phase 2: Employment Status & ROE

Employment Status

Status Description Triggers
Active Actively working and receiving pay Default for new employees
On Leave Temporary leave (maternity, sick, etc.) Manual change
Terminated Employment has ended Requires ROE code

ROE (Record of Employment) Reason Codes

These are official Service Canada codes required for EI claims:

A - Shortage of Work

Code Description
A00 Shortage of work/End of contract or season
A01 Employer bankruptcy or receivership

B - Strike/Lockout

Code Description
B00 Strike or lockout

D - Illness

Code Description
D00 Illness or injury

E - Quit (Voluntary)

Code Description
E00 Quit
E02 Quit/Follow spouse
E03 Quit/Return to school
E04 Quit/Health Reasons
E05 Quit/Voluntary retirement
E06 Quit/Take another job
E09 Quit/Employer relocation
E10 Quit/Care for a dependent
E11 Quit/To become self-employed

F - Maternity

Code Description
F00 Maternity

G - Retirement

Code Description
G00 Mandatory retirement
G07 Retirement/Approved workforce reduction

H - Work-Sharing

Code Description
H00 Work-Sharing

J - Apprentice

Code Description
J00 Apprentice training

K - Other

Code Description
K00 Other
K12 Other/Change of payroll frequency
K13 Other/Change of ownership
K14 Other/Requested by Employment Insurance
K15 Other/Canadian Forces - Queen's Regulations/Orders
K16 Other/At the employee's request
K17 Other/Change of Service Provider

M - Dismissal

Code Description
M00 Dismissal
M08 Dismissal/Terminated within probationary period

N - Leave

Code Description
N00 Leave of absence

P - Parental

Code Description
P00 Parental

Z - Compassionate Care

Code Description
Z00 Compassionate Care/Family Caregiver

Employment Details Fields

Field Type Required Notes
Status Selection Yes Active/On Leave/Terminated
Last Day of Work Date When terminated Required for ROE
Show in Employee Lists Only Boolean No Keep terminated visible
Reason for Status Change Selection When terminated ROE codes above
Hire Date Date Yes
Pay Schedule Selection Yes Weekly/Bi-Weekly/Semi-Monthly/Monthly
Work Location Many2one Yes Link to work address
Manager Many2one No
Department Many2one No
Job Title Char No
Employee ID Char No Internal employee number
Billing Rate (per hour) Float No For billable employees
Billable by Default Boolean No

ROE Tracking Fields

Field Type Notes
ROE Issued Boolean Checkbox when issued
ROE Issue Date Date When ROE was created
ROE Serial Number Char Service Canada serial

Phase 2B: ROE Generation & Submission

ROE Workflow (from QuickBooks)

When an employee is terminated or goes on leave:

  1. Prompt Dialog:

    • "Do you want to create [Employee]'s Record of Employment?"
    • Reminder: "Make sure you send a Record of Employment (ROE) to Service Canada within [5 days] of the interruption in earnings."
    • Buttons: "Do it later" | "Continue"
  2. ROE Review Screen:

    • Shows official ROE form preview
    • Warning: "This isn't the official ROE"
    • "Review the info and download the ROE in the next step as a BLK file to submit it through ROE Web"
    • Displays deadline: "Make sure to submit this ROE by [Date]"
  3. ROE Ready Screen:

    • Download ROE: "Download it in a BLK format for ROE Web. You can also view a PDF version."
      • Button: "Download BLK" (dropdown with PDF option)
    • Go to ROE Web: "Submit it through ROE Web by [deadline date]"
    • Archive ROE: "After submitting the ROE, archive the ROE for employee. You can view the ROE later in the archive section."

Official ROE Form Fields

Box Field Name Description Source
1 Serial No. Assigned by Service Canada N/A for electronic
2 Serial No. of ROE Amended/Replaced If amending previous ROE Manual entry
3 Employer's Payroll Reference No. Internal reference System generated
4 Employer's Name and Address Company info Company settings
5 CRA Business Number (BN) 15-char format: 808902308RP0001 Company settings
6 Pay Period Type W=Weekly, B=Bi-Weekly, S=Semi-Monthly, M=Monthly Employee pay schedule
7 Postal Code Employer postal code Company settings
8 Social Insurance No. Employee SIN (9 digits) Employee record
9 Employee's Name and Address Full name + address Employee record
10 First Day Worked Hire date Employee record
11 Last Day for Which Paid Last day of pay Termination wizard
12 Final Pay Period Ending Date End date of final pay period Calculated
13 Occupation Job title Employee record
14 Expected Date of Recall If temporary layoff Manual entry
15A Total Insurable Hours Hours worked in insurable period Calculated from payslips
15B Total Insurable Earnings Earnings in insurable period Calculated from payslips
15C Insurable Earnings by Pay Period Up to 53 pay periods Calculated from payslips
16 Reason for Issuing this ROE ROE reason code (A-Z) Termination wizard
17 Other Payments/Benefits Other than regular pay Manual entry
18 Comments Additional notes Manual entry
19 Sick/Maternity/Parental Leave Special payments after last day Manual entry
20 Communication Preferred In English/French Employee preference
21 Telephone No. Contact phone Employee/Company
22 Certification Issuer name and date Current user + date

Pay Period Type Codes

Code Type Pay Periods/Year
W Weekly 52
B Bi-Weekly 26
S Semi-Monthly 24
M Monthly 12

BLK File Format (ROE Web XML)

QuickBooks exports ROE as a .blk file (XML format) for upload to Service Canada's ROE Web:

<?xml version="1.0" encoding="UTF-8"?>
<ROEHEADER FileVersion="W-2.0" ProductName="Fusion Payroll" SoftwareVendor="Your Company">
  <ROE Issue="D" PrintingLanguage="E">
    <!-- Box 5: CRA Business Number -->
    <B5>808902308RP0001</B5>
    
    <!-- Box 6: Pay Period Type (B=Bi-Weekly) -->
    <B6>B</B6>
    
    <!-- Box 8: Social Insurance Number (no dashes) -->
    <B8>145112736</B8>
    
    <!-- Box 9: Employee Name and Address -->
    <B9>
      <FN>Gurmeet</FN>
      <LN>Kaur</LN>
      <A1>4304 Brandon Gate Drive</A1>
      <A2>Mississauga</A2>
      <A3>ON, CA</A3>
      <PC>L4T3K4</PC>
    </B9>
    
    <!-- Box 10: First Day Worked (YYYY-MM-DD) -->
    <B10>2025-08-04</B10>
    
    <!-- Box 11: Last Day For Which Paid -->
    <B11>2025-12-05</B11>
    
    <!-- Box 12: Final Pay Period Ending Date -->
    <B12>2025-12-05</B12>
    
    <!-- Box 14: Expected Date of Recall -->
    <B14>
      <CD>U</CD>  <!-- U = Unknown/Not applicable -->
    </B14>
    
    <!-- Box 15A: Total Insurable Hours -->
    <B15A>720</B15A>
    
    <!-- Box 15C: Insurable Earnings by Pay Period -->
    <B15C>
      <PP nbr="1"><AMT>1664.00</AMT></PP>
      <PP nbr="2"><AMT>1664.00</AMT></PP>
      <PP nbr="3"><AMT>1664.00</AMT></PP>
      <PP nbr="4"><AMT>1664.00</AMT></PP>
      <PP nbr="5"><AMT>1664.00</AMT></PP>
      <PP nbr="6"><AMT>1664.00</AMT></PP>
      <PP nbr="7"><AMT>1664.00</AMT></PP>
      <PP nbr="8"><AMT>1664.00</AMT></PP>
      <PP nbr="9"><AMT>1664.00</AMT></PP>
      <!-- Up to 53 pay periods -->
    </B15C>
    
    <!-- Box 16: Reason for Issuing ROE -->
    <B16>
      <CD>F</CD>  <!-- F = Maternity -->
      <FN>Gurpreet</FN>  <!-- Contact First Name -->
      <LN>Singh</LN>     <!-- Contact Last Name -->
      <AC>905</AC>       <!-- Area Code -->
      <TEL>4517743</TEL> <!-- Phone Number -->
    </B16>
    
    <!-- Box 20: Language Preference (E=English, F=French) -->
    <B20>E</B20>
  </ROE>
</ROEHEADER>

ROE File Naming Convention

ROEForm_[LastName]_[FirstName]_[Date]_[Sequence].blk

Example: ROEForm_Gurmeet_Kaur_2026-01-01_011.blk

ROE Archive Model

Field Type Notes
employee_id Many2one Employee
roe_date Date Date ROE created
reason_code Selection A-Z codes
first_day_worked Date Box 10
last_day_paid Date Box 11
final_period_end Date Box 12
total_insurable_hours Float Box 15A
total_insurable_earnings Float Box 15B
pay_period_earnings Text JSON of pay period amounts
blk_file Binary Downloaded BLK file
pdf_file Binary PDF version
submitted_to_roe_web Boolean Has been submitted
submission_date Date When submitted
service_canada_serial Char Serial after submission
state Selection draft/ready/submitted/archived

5-Day Deadline Rule

ROE must be submitted to Service Canada within 5 calendar days of:

  • Interruption of earnings (termination, layoff)
  • Employee request
  • First day of leave (maternity, parental, sick)

Phase 3: Tax Withholdings

Federal Withholding

Field Type Default Notes
Federal TD1 Amount Float $15,705 (2024) Basic personal amount
Additional Federal Tax Float $0 Extra tax per pay

Provincial Withholding

Field Type Notes
Province Selection Employee's tax province
Provincial Claim Amount Float Provincial TD1 amount

Tax Exemptions

Field Type Notes
Exempt from CPP Boolean Age 70+, or other exemption
Exempt from EI Boolean Specific exemptions
Exempt from Federal Tax Boolean Non-resident, treaty, etc.

Phase 4: Base Pay & Compensation

Compensation Type

Type Description Fields
Hourly Paid by the hour Rate per hour
Salary Fixed amount per period Annual/period salary
Commission Only Commission-based Commission structure

Base Pay Fields

Field Type Notes
Compensation Type Selection Hourly/Salary/Commission
Rate Float $/hour or annual salary
Account Mapping Many2one GL account for wages
Hours per Day Float Default working hours
Days per Week Float Default working days
Effective Date Date When rate takes effect

Phase 5: Additional Pay Types

Pay Type Categories

Category Examples
Earnings Regular, Overtime, Stat Holiday, Vacation, Bonus
Deductions Garnishment, Union dues, Advances
Employer Contributions Health benefits, RRSP match

Default Pay Types (QuickBooks)

Pay Type Code Calculation Taxable
Regular Pay REG Hourly × Hours Yes
Overtime Pay OT 1.5× Hourly × Hours Yes
Stat Holiday Pay STAT 1.0× Base pay Yes
Stat Pay - Average Daily Wage STAT_AVG Calculated average Yes
Vacation Pay VAC % of earnings Yes
Sick Pay SICK Based on policy Yes
Bonus BONUS Fixed or % Yes

Pay Type Model

Field Type Notes
Name Char Display name
Code Char Unique code
Category Selection Earnings/Deduction/Contribution
Calculation Type Selection Fixed/Percentage/Multiplier/Hourly
Rate/Amount Float Value based on calc type
Taxable Boolean Subject to income tax
Subject to CPP Boolean
Subject to EI Boolean
Account Many2one GL account

Phase 6: Time Off & Vacation

Vacation Policy

Policy Type Description
Paid Out Each Pay Period % of earnings added to each pay
Accrued Hours/days banked for later use

Vacation Fields

Field Type Notes
Vacation Policy Selection Payout/Accrued
Vacation Rate Float Default: 4.00%
Vacation Earnings Types Many2many Which pay types earn vacation

Sick Pay

Policy Description
No Sick Pay Policy
X Days per Year Fixed days
Unlimited

Unpaid Time Off

Policy Description
No Unpaid Time Off Policy
Track Hours

Phase 7: Deductions & Contributions

Deduction/Contribution Types

Category Examples
Health Insurance Medical, Dental, Vision
Retirement Plans RRSP, Pension
Taxable Benefits (non-cash) Company car, housing
Other Deductions Garnishment, loans, union dues

T4 Dental Benefits Code (CRA Required)

Code Description
1 No dental benefits
2 Payee only covered
3 Payee, spouse, and dependents
4 Payee and spouse
5 Payee and dependents

Deduction Model

Field Type Notes
Name Char
Code Char
Category Selection Health/Retirement/Taxable/Other
Calculation Selection Fixed/% of Gross
Amount/Rate Float
Pre-Tax Boolean Deducted before tax calc
Has Employer Match Boolean
Employer Match Rate Float % of employee contribution
Max Annual Amount Float Cap per year

Phase 8: Paycheque Entry Form

Paycheque Entry Layout (QuickBooks Style)

This is the detailed view when creating/editing a paycheque:

┌────────────────────────────────────────────────────────────────────────────┐
│  PAY TO                                                       NET PAY      │
│  Gurmeet Kaur                                                 $1,353.47    │
│                                                              Cheque Number │
│  Employee address           Pay date         Pay period       [_________]  │
│  4304 Brandon Gate Drive    12.13.2025       11.22.2025 to 12.05.2025      │
│  Mississauga, ON L4T 3K4                                                   │
│                             Paid from                 Paid by              │
│                             Chequing XXXXX-9595       Cheque ($1,353.47)   │
├────────────────────────────────────────────────────────────────────────────┤
│  ▼ Pay                                                                     │
│  ───────────────────────────────────────────────────────────────────────   │
│  TYPE                           Hours      Rate      Current      YTD      │
│  Regular Pay                    [80.00]    [$20.00]  $1,600.00   $14,080.00│
│  Vacation Pay                                        $64.00      $576.00   │
│  Stat Holiday Pay               [0.00]     $20.00    $0.00       $320.00   │
│  Stat pay - average daily wage                       [$0.00]     $0.00     │
│  ───────────────────────────────────────────────────────────────────────   │
│  Total                                               $1,664.00   $14,976.00│
├────────────────────────────────────────────────────────────────────────────┤
│  ▼ Employee taxes                                                          │
│  ───────────────────────────────────────────────────────────────────────   │
│  TYPE                                                Current      YTD      │
│  Income Tax                                          [$192.24]   $1,730.16 │
│  Employment Insurance                                [$27.29]    $245.61   │
│  Canada Pension Plan                                 [$91.00]    $819.00   │
│  Second Canada Pension Plan                          [$0.00]     $0.00     │
│  ───────────────────────────────────────────────────────────────────────   │
│  Total                                               $310.53     $2,794.77 │
├────────────────────────────────────────────────────────────────────────────┤
│  ▼ Employer taxes                                                          │
│  ───────────────────────────────────────────────────────────────────────   │
│  TYPE                                                Current      YTD      │
│  Employment Insurance Employer                       [$38.21]    $343.89   │
│  Canada Pension Plan Employer                        [$91.00]    $819.00   │
│  Second Canada Pension Plan Employer                 [$0.00]     $0.00     │
│  ───────────────────────────────────────────────────────────────────────   │
│  Total                                               $129.21     $1,162.89 │
├────────────────────────────────────────────────────────────────────────────┤
│  ▼ Time off                                                                │
│  ───────────────────────────────────────────────────────────────────────   │
│         Hours accrued  Hours used  Hours available  Amt accrued  Amt used  │
│  Vacation   0.00         0.00         0.00           $0.00        $0.00    │
├────────────────────────────────────────────────────────────────────────────┤
│  Memo                                                                      │
│  ┌──────────────────────────────────────────────────────────────────────┐  │
│  │                                                                      │  │
│  │                                                                      │  │
│  └──────────────────────────────────────────────────────────────────────┘  │
└────────────────────────────────────────────────────────────────────────────┘

Paycheque Header Fields

Field Type Notes
Employee Many2one Pay To
Net Pay Float Calculated (readonly)
Pay Date Date When payment issued
Pay Period Start Date Period beginning
Pay Period End Date Period ending
Paid From Many2one Bank account
Paid By Selection Cheque/Direct Deposit
Cheque Number Char Optional, for cheques

Pay Section (Earnings Lines)

Field Type Notes
Pay Type Many2one Regular, Vacation, Stat, etc.
Hours Float Editable for hourly pay types
Rate Float $/hour, usually from contract
Current Float Calculated: Hours × Rate
YTD Float Year-to-date running total

Default Pay Types in QuickBooks

Pay Type Editable Hours Editable Rate Calculation
Regular Pay Yes Yes Hours × Rate
Vacation Pay No No % of earnings
Stat Holiday Pay Yes (default 0) No (from contract) Hours × Rate
Stat pay - average daily wage No No Calculated average

Employee Taxes Section

Tax Type Calculation Notes
Income Tax Complex formula Federal + Provincial
Employment Insurance 1.64% of insurable earnings Max $1,077.48/year (2025)
Canada Pension Plan 5.95% above exemption Max $4,034.10/year (2025)
Second Canada Pension Plan (CPP2) 4% on earnings above first ceiling NEW for 2024+

Employer Taxes Section

Tax Type Calculation Notes
Employment Insurance Employer 1.4× employee EI $38.21 vs $27.29 = 1.4x
Canada Pension Plan Employer 1:1 match Same as employee
Second CPP Employer 1:1 match Same as employee CPP2

Key Insight: Employer EI is 1.4× the employee contribution!

Time Off Section

Field Type Notes
Time Off Type Char Vacation, Sick, etc.
Hours Accrued Float Hours earned this period
Hours Used Float Hours taken this period
Hours Available Float Balance
Amount Accrued Float $ earned
Amount Used Float $ taken
Amount Available Float $ balance

Memo Field

Field Type Notes
Memo Text Internal notes for this paycheque

Calculated Totals

Section Total Field Calculation
Pay Total Current Sum of all earnings
Pay Total YTD Sum of all YTD earnings
Employee Taxes Total Current Sum of all employee taxes
Employee Taxes Total YTD Sum of all YTD employee taxes
Employer Taxes Total Current Sum of all employer taxes
Employer Taxes Total YTD Sum of all YTD employer taxes

Net Pay Calculation

Net Pay = Total Pay - Employee Taxes - Employee Deductions

Where:

  • Total Pay = Regular Pay + Vacation Pay + Stat Pay + Other Earnings
  • Employee Taxes = Income Tax + EI + CPP + CPP2
  • Employee Deductions = Health, RRSP, etc.

Note: Employer taxes are NOT deducted from employee pay (they are employer expense)


Phase 9: Pay Stub Report

Pay Stub Layout (QuickBooks Style)

┌─────────────────────────────────────────────────────────────────┐
│  [EMPLOYER INFO]                              Cheque No.: 677   │
│  Mobility Specialties Inc                                       │
│  Unit 16B, 106 Humber College Blvd                             │
│  Toronto ON M9V 4E4                                             │
│                                                                 │
│                                    Pay Stub Detail              │
│                                    PAY DATE: 12-12-2025         │
│                                    NET PAY: $1,407.15           │
│                                                                 │
│  [EMPLOYEE INFO]                                                │
│  Amandeep Kaur                                                  │
│  3540 Laddie Crescent                                          │
│  Mississauga ON L4T 1N1                                        │
├─────────────────────────────────────────────────────────────────┤
│  EMPLOYER                              PAY PERIOD               │
│  Mobility Specialties Inc              Period Beginning: 24-11-2025
│  Unit 16B, 106 Humber College Blvd     Period Ending: 07-12-2025
│  Toronto ON M9V 4E4                    Pay Date: 12-12-2025     │
│                                        Total Hours: 83.45       │
│  EMPLOYEE                                                       │
│  Amandeep Kaur                                                  │
│  3540 Laddie Crescent                                          │
│  Mississauga ON L4T 1N1                                        │
├─────────────────────────────────────────────────────────────────┤
│  BENEFITS          Accrued    Used    Available                 │
│  Vacation          0.00       0.00    0.00       NET PAY: $1,407.15
├─────────────────────────────────────────────────────────────────┤
│  PAY               Hours   Rate    Current      YTD             │
│  ─────────────────────────────────────────────────────────      │
│  Regular Pay       83.45   20.00   1,669.00     29,624.00       │
│  Vacation Pay      -       -       66.76        1,216.96        │
│  Stat Holiday Pay  -       20.00   0.00         800.00          │
├─────────────────────────────────────────────────────────────────┤
│  DEDUCTIONS                          Current      YTD           │
│  ─────────────────────────────────────────────────────────      │
│  (none in this example)                                         │
├─────────────────────────────────────────────────────────────────┤
│  TAXES                               Current      YTD           │
│  ─────────────────────────────────────────────────────────      │
│  Income Tax                          204.87       3,815.84      │
│  Employment Insurance                28.47        518.93        │
│  Canada Pension Plan                 95.27        1,754.48      │
│  Second Canada Pension Plan          0.00         0.00          │
├─────────────────────────────────────────────────────────────────┤
│  SUMMARY                             Current      YTD           │
│  ─────────────────────────────────────────────────────────      │
│  Total Pay                           $1,735.76    $31,640.96    │
│  Taxes                               $328.61      $6,089.25     │
│  Deductions                          $0.00        $0.00         │
│  ─────────────────────────────────────────────────────────      │
│  Net Pay                             $1,407.15                  │
└─────────────────────────────────────────────────────────────────┘

Pay Stub Data Structure

Section Fields
Header Employer name/address, Cheque #, Pay date, Net pay
Employee Name, Address
Pay Period Start date, End date, Pay date, Total hours
Benefits Vacation (Accrued, Used, Available)
Pay Type, Hours, Rate, Current, YTD
Deductions Type, Current, YTD
Taxes Income Tax, EI, CPP, CPP2, Current, YTD
Summary Total Pay, Taxes, Deductions, Net Pay

Phase 9B: Payroll Cheque Printing

Cheque Format

Paper Size: Letter (8.5" × 11")

Layout: Typically 3-part format:

  1. Top Stub - Employee copy (pay stub details)
  2. Middle Cheque - The actual negotiable cheque
  3. Bottom Stub - Employer record copy

Integration with Odoo Enterprise

Odoo Enterprise has base cheque printing functionality in the account module. We need to:

  1. Extend the cheque template for payroll-specific fields
  2. Add pay stub information to the stub portions
  3. Use Odoo's existing cheque number sequence

Cheque Stub Information (to document)

Section Fields
Employee Info Name, Address, Employee ID
Pay Period Start date, End date, Pay date
Earnings Pay types with Hours, Rate, Current, YTD
Deductions Type, Current, YTD
Taxes Federal, Provincial, EI, CPP, CPP2
Summary Gross Pay, Total Deductions, Net Pay
Time Off Vacation balance

Payment Methods

Method Notes
Cheque Physical cheque with stub
Direct Deposit Electronic transfer, still need pay stub

(Awaiting cheque image from user for detailed layout)


Phase 10: Payroll Tax Centre

Overview

The Payroll Tax Centre is a centralized dashboard for managing tax remittances and government filings.

Navigation: Payroll → Payroll Tax

Sub-tabs:

  1. Payments - Tax remittances to CRA
  2. Filings - T4 Summary, T4 Slips, ROEs

10A: Payments Tab (Tax Remittances)

Remittance List Layout

┌────────────────────────────────────────────────────────────────────────────┐
│  Payroll Tax Centre                                                         │
│  [Payments]  [Filings]                                                      │
├────────────────────────────────────────────────────────────────────────────┤
│  ⚠️ There's an urgent problem with your account                            │
│  Please refer to the email we've sent you for more detail.                 │
├────────────────────────────────────────────────────────────────────────────┤
│  [Filter]                                    🖨️ Print  📄 Resources  📋 Payment history
├────────────────────────────────────────────────────────────────────────────┤
│  ACTION NEEDED [35]                                                         │
│                                                                             │
│  ┌─ Federal Taxes ────────────────────────────────────────────────────────┐│
│  │ 01.01.2023  01.31.2023 (Q1)  🔴 Past due   Due 02.15.2023             ││
│  │                                              > $3,188.64  [Pay & file ▼]││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  Canada Pension Plan Employer     $655.90                               ││
│  │  Canada Pension Plan              $655.90                               ││
│  │  Employment Insurance Employer    $276.11                               ││
│  │  Employment Insurance             $197.22                               ││
│  │  Income Tax                       $1,403.51                             ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  Total                            $3,188.64                             ││
│  └────────────────────────────────────────────────────────────────────────┘│
└────────────────────────────────────────────────────────────────────────────┘

Remittance Model

Field Type Notes
Period Start Date Beginning of remittance period
Period End Date End of remittance period
Quarter Char Q1/Q2/Q3/Q4
Due Date Date CRA due date (15th of following month)
Status Selection pending/due/past_due/paid
CPP Employee Float Sum of employee CPP
CPP Employer Float Sum of employer CPP
CPP2 Employee Float Sum of employee CPP2
CPP2 Employer Float Sum of employer CPP2
EI Employee Float Sum of employee EI
EI Employer Float Sum of employer EI (1.4x)
Income Tax Float Sum of income tax withheld
Total Float All amounts combined
Payment Date Date When paid
Payment Reference Char Bank reference

Remittance Breakdown (Expandable)

Line Item Description
Canada Pension Plan Employer Employer portion of CPP
Canada Pension Plan Employee portion of CPP
Employment Insurance Employer Employer EI (1.4× employee)
Employment Insurance Employee EI
Income Tax Federal + Provincial withheld
Total Sum to remit to CRA

Pay & File Actions

Action Description
Pay & file Process payment to CRA
Mark as paid Manual payment recorded

Remittance Due Dates (CRA Rules)

Remitter Type Due Date
Regular (< $25K annual) 15th of month following pay
Threshold 1 ($25K-$99K) 15th of month following pay
Threshold 2 (≥ $100K) 3rd working day after pay
Quarterly 15th of month after quarter

10B: Filings Tab

Filings Dashboard

┌────────────────────────────────────────────────────────────────────────────┐
│  [Payments]  [Filings]                                                      │
├────────────────────────────────────────────────────────────────────────────┤
│   Be sure to select a dental benefits code for each employee             │
│  The CRA needs to know who has access to any dental benefits you offer.    │
│  This info is required to file T4 slips.                                   │
├────────────────────────────────────────────────────────────────────────────┤
│  [Filter]                                    🖨️ Print  📄 Resources  📁 Archive
├────────────────────────────────────────────────────────────────────────────┤
│  ACTION NEEDED                                                              │
│  ┌──────────────────────────────────────────────────────────────────────┐  │
│  │  Woohoo! All caught up.                                              │  │
│  └──────────────────────────────────────────────────────────────────────┘  │
│                                                                             │
│  COMING UP                                                                  │
│  ┌──────────────────────────────────────────────────────────────────────┐  │
│  │ T4 Summary                     Not Due Yet   Due 03.02.2026        │  │
│  │ T4 Summary                                     Manually file [Preview]│  │
│  │ 01.01.2025 - 12.31.2025                                              │  │
│  ├──────────────────────────────────────────────────────────────────────┤  │
│  │ T4 Employer Slips              Not Due Yet   Due 03.02.2026        │  │
│  │ Employer copy of T4 slip(s)                    Manually file with XML│  │
│  │ 01.01.2025 - 12.31.2025                                   [Preview]  │  │
│  └──────────────────────────────────────────────────────────────────────┘  │
│                                                                             │
│  DONE                                                                       │
│  ┌──────────────────────────────────────────────────────────────────────┐  │
│  │  Nothing to see here (yet)!                                          │  │
│  └──────────────────────────────────────────────────────────────────────┘  │
│                                                                             │
│  Filing resources                                                           │
│  📄 Record of employment - These are the ROEs you've created               │
│  📁 Archived forms and filings - Completed tax filings and forms           │
│  📚 All filings resources - Tax filings, Federal tax forms, compliance     │
└────────────────────────────────────────────────────────────────────────────┘

Filing Types

Filing Description Due Date Format
T4 Summary Employer summary of all T4s Last day of February PDF/XML
T4 Employer Slips Individual T4 for each employee Last day of February PDF/XML
ROE Record of Employment 5 days after interruption BLK/PDF

Filing Status

Status Icon Description
Not Due Yet Blue Future filing, preview available
Due Soon ⚠️ Yellow Coming up soon
Past Due 🔴 Red Overdue, action needed
Completed Green Filed and archived

10C: T4 Summary Form

Official CRA T4 Summary (Form T4 SUM)

Box Field Name Description Source
- Year Tax year (e.g., 2025) System
- Employer Account 15-char BN (808902308RP0001) Company settings
- Employer Name/Address Company info Company settings
88 Total T4 slips filed Count of employees Calculated
14 Employment income Total of all Box 14 on T4s Sum from payslips
16 Employees' CPP contributions Total employee CPP Sum from payslips
16A Employees' second CPP (CPP2) Total employee CPP2 Sum from payslips
17 Employees' QPP contributions Quebec only Sum from payslips
17A Employees' second QPP Quebec only Sum from payslips
18 Employees' EI premiums Total employee EI Sum from payslips
19 Employer's EI premiums Total employer EI (1.4x) Sum from payslips
20 RPP contributions Registered Pension Plan Sum from payslips
22 Income tax deducted Federal + Provincial tax Sum from payslips
27 Employer's CPP contributions Total employer CPP Sum from payslips
27A Employer's second CPP Total employer CPP2 Sum from payslips
52 Pension adjustment If applicable Sum from payslips
80 Total deductions 16+16A+27+27A+18+19+22 Calculated
82 Minus: remittances Payments made during year Sum of remittances
- Difference Box 80 - Box 82 Calculated
84 Overpayment If remittances > deductions Calculated
86 Balance due If deductions > remittances Calculated
74 SIN of proprietor For sole proprietors Company settings
76 Person to contact Contact name User
78 Telephone Contact phone User

T4 Summary Example Values (from screenshot)

Box Value
88 5 employees
14 $124,011.68
16 $6,810.02
27 $6,810.02
18 $2,033.81
19 $2,847.35
22 $15,053.84
80 $33,555.04
86 $33,555.04 (balance due)

Electronic Filing Requirement

Mandatory electronic filing if you have more than 5 information returns of the same type.

Filing formats:

  • Internet file transfer (XML)
  • Web Forms (online)

10D: T4 Individual Slips

Each employee receives a T4 slip with their individual amounts.

Box Field
14 Employment income
16 Employee's CPP contributions
16A Employee's CPP2 contributions
17 Employee's QPP (Quebec)
18 Employee's EI premiums
22 Income tax deducted
24 EI insurable earnings
26 CPP/QPP pensionable earnings
44 Union dues
46 Charitable donations
50 RPP or DPSP registration number
52 Pension adjustment
55 Employee's PPIP premiums (Quebec)
56 PPIP insurable earnings

Phase 11: Reports

Employee Reports

Report Description Priority
Pay Stub Individual employee pay stub (PDF) HIGH
Paycheque List List of all paycheques for employee HIGH
YTD Summary Year-to-date earnings and deductions MEDIUM
T4 Slip Individual year-end tax slip HIGH

Employer/Accountant Reports

Report Description Priority
Payroll Register All employees for pay period HIGH
Payroll Summary Summary by department/location MEDIUM
Remittance Summary CPP, EI, Tax amounts to remit HIGH
T4 Summary Year-end employer summary HIGH
T4 Slips (All) All employee T4s HIGH
RL-1 (Quebec) Quebec year-end slip LOW
ROE Report Pending ROE to issue MEDIUM

Implementation Order

Priority 1 - Foundation (Must Have)

  1. Employee Profile Enhancement (Personal Info)
  2. Employment Status & ROE Codes
  3. ROE Generation & BLK File Export NEW
  4. Tax Withholdings (TD1)
  5. Base Pay Configuration

Priority 2 - Core Payroll (Must Have)

  1. Pay Schedules (Weekly, Bi-Weekly, Semi-Monthly, Monthly)
  2. Additional Pay Types (Stat Holiday, Overtime)
  3. Vacation Pay (% payout)
  4. CPP2 (Second Canada Pension Plan)

Priority 3 - Reporting (Must Have)

  1. Enhanced Pay Stub Report
  2. Paycheque Entry Form (detailed view)
  3. Payroll Cheque Printing

Priority 4 - Tax Centre & Compliance (Must Have)

  1. Payroll Tax Centre Dashboard NEW
  2. Tax Remittance Tracking (Payments tab)
  3. T4 Summary Generation (with PDF field positioning system)
  4. T4 Individual Slips (with PDF field positioning system)
  5. Remittance Due Date Alerts
  6. PDF Field Positioning System - Dynamic configuration for T4/T4A PDF text overlay (see docs/PDF_FIELD_POSITIONING.md)

Priority 5 - Advanced Features (Nice to Have)

  1. Deductions & Contributions
  2. RL-1 Reports (Quebec)
  3. Workers' Comp Integration
  4. Direct Deposit Files

Questions & Decisions Needed

Answered

Pending

  1. Pay Schedules: Which ones do you need? (Weekly/Bi-Weekly/Semi-Monthly/Monthly)
  2. Provinces: Just Ontario or all provinces?
  3. Vacation: Payout each period (4%) or accrued?
  4. Deductions: What specific deductions do you offer?
  5. Reports: Which reports are most critical?
  6. Multi-company: Do you have multiple employers?
  7. Integration: Need bank file export? Which banks?

Notes from User

(Add notes from discussions here)

  • QuickBooks screenshots provided for reference
  • ROE codes from QuickBooks captured (all Service Canada codes)
  • Pay stub format from QuickBooks captured
  • User wants comprehensive implementation like QuickBooks
  • ROE Generation: QuickBooks generates official ROE form, exports as BLK file for ROE Web submission
  • 5-day deadline: System should remind about 5-day submission deadline
  • ROE Archive: Keep historical ROE records with BLK and PDF files
  • Paycheque Entry: Detailed form with collapsible sections (Pay, Employee taxes, Employer taxes, Time off)
  • CPP2: Second Canada Pension Plan introduced 2024, separate line item
  • Employer EI: 1.4× employee contribution (key calculation!)
  • Employer CPP/CPP2: 1:1 match with employee
  • Time Off Tracking: Tracks both hours AND dollar amounts (accrued/used/available)
  • Cheque Printing: Letter size payroll cheques - Odoo Enterprise has base cheque printing to extend
  • Payroll Tax Centre: Central dashboard for tax remittances and government filings
  • Remittance Breakdown: CPP (employee+employer), EI (employee+employer 1.4x), Income Tax
  • Due Dates: Remittances due 15th of following month (regular remitters)
  • T4 Summary: All CRA boxes documented (88, 14, 16, 16A, 18, 19, 22, 27, 27A, 80, 82, 84, 86)
  • T4 Filing Deadline: Last day of February following tax year
  • Electronic Filing: Mandatory if >5 returns (XML or Web Forms)
  • Dental Benefits Alert: CRA requires T4 dental code for each employee
  • PDF Field Positioning: Implemented dynamic field positioning system for T4/T4A PDF generation using flattened templates and ReportLab text overlay. Users can configure field positions, font sizes, and font names through UI. See docs/PDF_FIELD_POSITIONING.md for full documentation.

Version History

Date Changes
2024-12-31 Initial plan created
2024-12-31 Added ROE codes from QuickBooks screenshots
2024-12-31 Added Pay Stub layout from QuickBooks
2024-12-31 Added Employment Details fields
2024-12-31 Added ROE Generation workflow & BLK file format (Phase 2B)
2024-12-31 Added ROE form fields (all 22 boxes)
2024-12-31 Added ROE Archive model structure
2024-12-31 Added Paycheque Entry Form (Phase 8) - detailed layout
2024-12-31 Added Employee Taxes breakdown (Income Tax, EI, CPP, CPP2)
2024-12-31 Added Employer Taxes (EI=1.4x employee, CPP=1:1 match)
2024-12-31 Added Time Off tracking (hours + amounts)
2024-12-31 Added Payroll Cheque Printing section (Phase 9B) - extends Odoo Enterprise base
2024-12-31 Added Payroll Tax Centre (Phase 10) - Payments & Filings tabs
2024-12-31 Added Tax Remittance tracking with CPP/EI/Income Tax breakdown
2024-12-31 Added T4 Summary form with all CRA box numbers (88, 14, 16, 18, 19, 22, etc.)
2024-12-31 Added T4 Individual Slips structure
2024-12-31 Added Filing deadlines and electronic filing requirements
2025-01-XX IMPLEMENTED: PDF Field Positioning System - Dynamic configuration interface for T4/T4A PDF text overlay positions. See docs/PDF_FIELD_POSITIONING.md for details