How CPP & CPP2 Contributions are Calculated in HRP
GOAL: To provide a wholistic and technical overview of how CPP and CPP2 contributions are calculated within the Pay Engine of HRP.
This framework will explain the reconciliation and calculation for boards looking to inquire about the composition of such generated values.
Overview
Purpose:
This article explains how Ed HRP calculates Canada Pension Plan (CPP) contributions — both CPP1 (Base CPP) and CPP2 (Enhanced CPP) — during payroll processing.
Applies to:
Payroll Administrators, HR Specialists, and Financial Officers managing employee deductions.
Component:
CPP Calculation Engine – integrated within Ed HRP’s Payroll Processing Service.
What Does This Component Do?
When you process payroll, Ed HRP automatically:
- Determines whether each employee is CPP-eligible.
- Calculates CPP1 and CPP2 deductions for employees and matching employer (board) contributions.
- Updates year-to-date (YTD) totals to prevent over-deductions.
- Creates payroll records for reporting and general ledger integration.
Why It Matters
CPP contributions ensure employees contribute to Canada’s national pension program, helping fund retirement, disability, and survivor benefits.
CPP Calculation Overview
Term | Description |
CPP1 (Base CPP) | Standard CPP contribution on income between $3,500 and the Year’s Maximum Pensionable Earnings (YMPE). |
CPP2 (Enhanced CPP) | Additional CPP contribution for higher-income earners on income between the YMPE and the Year’s Additional Maximum Pensionable Earnings (YAMPE). |
Employer Share | The employer (board) matches the employee’s CPP1 and CPP2 contributions dollar-for-dollar. |
Exemption | The first $3,500 of income each year is exempt from CPP. This is prorated for partial-year eligibility. |
When CPP Is Calculated
CPP processing runs automatically in the following payroll types:
- Regular Pay
- Advance Pay
- Debit Pay (Reversals – limited processing)
Each employee is assessed individually per pay period.
Step-by-Step: How CPP and CPP2 Are Calculated
1. Check Employee Eligibility
Ed HRP first checks if the employee qualifies for CPP based on:
- Age (must be between 18 and 70)
- Employment Status (Active)
- Group Settings (CPP enabled)
- Employee-specific setup (CPP deduction allowed)
If ineligible (e.g., under 18, over 70, or exempt), CPP processing is skipped for that pay.
2. Load CPP Configuration and Rates
The system retrieves current-year CPP settings from the board configuration:
- CPP1 rate: 5.95%
- CPP2 rate: 4.00%
- Annual exemption: $3,500
- YMPE: $73,200 (max CPP1 earnings)
- YAMPE: $81,200 (max CPP2 earnings)
These are pulled from the EC_BOARD_DATA table during payroll initialization.
3. Calculate Prorated Exemption
If an employee becomes CPP-eligible mid-year, Ed HRP prorates the $3,500 annual exemption based on eligible days in the year.
Example:
An employee starting July 1 receives 184/365 of the exemption = $1,763.
4. Determine CPP-Eligible Earnings
The system totals all earnings eligible for CPP within the pay period. Certain items (e.g., non-pensionable benefits) are excluded.
5. Retrieve Year-to-Date (YTD) Information
Ed HRP reviews how much the employee has already contributed this year:
- CPP1 and CPP2 YTD deductions
- Total CPP-eligible earnings to date
This ensures no over-deductions beyond annual maximums.
6. Calculate CPP1 (Base CPP)
CPP1 is calculated using:
earnings - YTD exemption : # of calendar days from the first day of the first pay of the calendar year until the end date of this pay period / 364 * 3500 annual exemption).
Example:
(($35,000 + $2,800 – $1,750) × 5.95%) – $1,200 = $146.98
Both employee and employer contribute $146.98 (each)
7. Check for Maximum CPP1 Reached
If the employee has reached the annual CPP1 maximum (approx. $4,358 for 2025), Ed HRP automatically stops further CPP1 deductions.
8. Calculate CPP2 (Enhanced CPP)
Once the employee’s earnings exceed the YMPE ($73,200), CPP2 applies on the portion between the YMPE and the YAMPE ($81,200):
(Earnings between YMPE and YAMPE) × CPP2 rate
Example:
($75,000 – $73,200) × 4% = $72 CPP2 deduction
Employer matches this contribution.
Note: CPP2 currently has no override capability.
This is by design — the CPP2 calculation is fully self-correcting.
If an employee’s earnings fluctuate, Ed HRP automatically reconciles the correct CPP2 contribution based on cumulative year-to-date earnings.
Manual overrides should not be required or applied.
9. Apply Overrides (CPP1 Only)
If a CPP1 override exists in the employee’s configuration: Payroll > Employee > Statutory Deductions screen
- Replace: Use a fixed deduction amount. Ignore (replace) any calculation the system may come up with and use my override only
- Add: Add/subtract an additional adjustment to the system's calculated deduction (i.e. Final deduction = HRP's calculation + this adjustment)
- Factor: Multiplies the calculated amount by a set factor. At this stage, analyzing the source of the mis-calculation is advised, as the self-balancing formula will consider your overrides as well
Overrides apply only to CPP1 and are intended for exceptional payroll cases or prior-year corrections.
10. Generate Payroll and Accounting Records
The system generates:
- Employee deduction records (shown on paystub)
- Employer contribution records (posted to GL)
- CPP gross records (for government reporting)
These records are saved in:
These records are saved in Pay Records, which updates the YTD Records
- EC_EMPLOYEE_PAY_RECORD (per pay)
- EC_EMPLOYEE_YTD_ENTITY (cumulative totals)
11. Handle Debit Pays (Reversals)
If the pay run is a debit/reversal:
- Only CPP earnings records are reversed for audit consistency.
12. Save and Complete
All data is written to the database, completing CPP processing.
The system then continues to other payroll calculations.
Examples
Example 1: Annual Salary $60,000
CPP1 only applies; CPP2 does not.
Description | Rate | Annual |
CPP1 | 5.95% | $3,361.75 |
CPP2 | – | $0.00 |
Example 2: Annual Salary $75,000
CPP1 and CPP2 both apply.
Description | Rate | Annual |
CPP1 | 5.95% | $3,868.50 |
CPP2 | 4.00% | $260.00 |
Employer matches both employee contributions.
Example 3: Annual Salary $100,000 (Exceeded YAMPE Limit)
In this case, the employee’s annual earnings exceed the YAMPE ($81,200).
Once earnings surpass that amount, CPP2 stops accumulating — the contribution maxes out automatically at the annual CPP2 limit.
Description | Rate | Annual |
CPP1 | 5.95% | $3,868.50 |
CPP2 | 4.00% | $396.00 (maximum) |
Explanation:
- CPP1 remains capped at $3,868.50 — calculated on earnings up to the YMPE ($73,200).
- CPP2 reaches its maximum of $396.00 once the employee’s cumulative earnings exceed the YAMPE ($81,200).
- After that point, no further CPP2 contributions are taken for the remainder of the year.
- Employer contributions match the same amounts exactly.
Key takeaway:
Even when an employee earns more than the YAMPE (e.g., $100,000), CPP2 contributions stop once the annual CPP2 limit is reached — Ed HRP enforces this automatically to comply with CRA thresholds.
Key Data Sources in Ed HRP
Table | Purpose |
EC_BOARD_DATA | Stores CPP rates, limits, and GL mapping (Payroll > Board > CPP, EI, EHT, WCB screen.) |
EC_EMPLOYEE_STAT_DEDUCTIONS | Holds employee overrides (CPP1 only) (Payroll > Employee > Stat. Deductions) |
EC_EMPLOYEE_PAY_RECORD | Stores pay-by-pay CPP records (Pay Run screen or Pay Run Debug screen, the pay records are generated.) |
EC_EMPLOYEE_YTD_ENTITY | Tracks year-to-date CPP totals (Payroll > Pay Process > YTD Record Adjustments screen) (Group-wide or employee-specific YTD reports in Payroll > Reporting Menu > Ad Hoc Group or Ad Hoc Employee menus.) |
Common Questions
Q1. What’s the difference between CPP and CPP2?
CPP1 applies to regular pensionable earnings up to the YMPE, while CPP2 applies only earners above that threshold.
Q2. Why can’t CPP2 be overridden?
CPP2 has no override capability because it’s a self-balancing calculation. It automatically adjusts based on actual year-to-date earnings, ensuring compliance and eliminating the need for manual adjustment.
Though CPP is also self balancing, a legacy change that frequently causes data integrity issues allowed for overriding.
Q3. When does CPP2 start?
Once cumulative pensionable earnings exceed the Year’s Maximum Pensionable Earnings (YMPE).
Q4. Can an employee be exempt from CPP?
Yes — if they are under 18, over 70, or their employee group is CPP-exempt.
Q5. Can CPP1 be overridden manually?
Yes — Replace, Add, or Factor overrides can be set under Employee Stat Deductions.
NOTE: CPP1 is a self-balancing formula for the entire calendar year to-date, so analyzing the employee's setup and using the Pay Run Debug tool will help find possible issues causing the mis-calculation of CPP.
Did You Know?
- CPP2 cannot be manually overridden — and doesn’t need to be. It corrects itself automatically through YTD calculations.
- CPP exemptions are prorated for partial-year eligibility.
- Ed HRP automatically enforces annual contribution maximums for compliance.
- Employer and employee CPP contributions always match exactly — no setup required.
- CPP Exemption is pro-rated for partial years (not just partial year-eligibility, but it calculates the YTD exemption every time, for everyone. The formula for the exemption here or at least mentions that it can be seen in the Pay Run Debug tool when you turn the “File” radio button on. Formula is:
(# of calendar days from the first day of the first pay of the calendar year until the end date of this pay period / 364 * 3500 annual exemption).
Summary
CPP processing in Ed HRP is fully automated and compliant with current CRA rules.
It accurately determines eligibility, applies CPP1 and CPP2 rates, handles exemptions and overrides (CPP1 only), and keeps both employee and employer records synchronized.