Your Details
Your age this year (16β100)
OW ceiling: S${{ formatNum(r('owCeiling', 8000)) }}/month
13th-month pay, annual bonus, etc.
Number of months with OW in this year
Monthly Contribution (on OW)
Employee
{{ formatCurrency(r('monthlyContribution', {}).employee) }}
{{ r('employeeRate') }}%
Employer
{{ formatCurrency(r('monthlyContribution', {}).employer) }}
{{ r('employerRate') }}%
Total Monthly
{{ formatCurrency(r('monthlyContribution', {}).total) }}
{{ r('totalRate') }}%
Annual Total
{{ formatCurrency(r('annualTotal', {}).total) }}
OW + AW
OW capped at S${{ formatNum(r('owCeiling')) }}/month (your OW: S${{ formatNum(r('monthlyOW')) }}).
Max monthly CPF: S${{ formatNum(r('maxMonthlyCPF')) }}
({{ r('totalRate') }}% x S${{ formatNum(r('owCeiling')) }} ceiling).
CPF Annual Limit: S${{ formatNum(r('cpfAnnualLimit')) }}.
| Component | Employee | Employer | Total |
|---|---|---|---|
| Monthly on OW (S${{ formatNum(r('cappedOW')) }}) | {{ formatCurrency(r('monthlyContribution', {}).employee) }} | {{ formatCurrency(r('monthlyContribution', {}).employer) }} | {{ formatCurrency(r('monthlyContribution', {}).total) }} |
| Annual on OW ({{ r('monthsWorked') }} months) | {{ formatCurrency(r('annualOWContribution', {}).employee) }} | {{ formatCurrency(r('annualOWContribution', {}).employer) }} | {{ formatCurrency(r('annualOWContribution', {}).total) }} |
| Annual on AW (S${{ formatNum(r('cappedAW')) }}) | {{ formatCurrency(r('awContribution', {}).employee) }} | {{ formatCurrency(r('awContribution', {}).employer) }} | {{ formatCurrency(r('awContribution', {}).total) }} |
| Total Annual CPF | {{ formatCurrency(r('annualTotal', {}).employee) }} | {{ formatCurrency(r('annualTotal', {}).employer) }} | {{ formatCurrency(r('annualTotal', {}).total) }} |
Monthly Allocation
Ordinary Account (OA)
{{ formatCurrency(r('monthlyAllocation', {}).oa) }}
{{ r('oaRate') }}% of wages
{{ r('secondAccountName', 'Special Account') }} ({{ r('secondAccountLabel', 'SA') }})
{{ formatCurrency(r('monthlyAllocation', {}).sa) }}
{{ r('saRate') }}% of wages
MediSave Account (MA)
{{ formatCurrency(r('monthlyAllocation', {}).ma) }}
{{ r('maRate') }}% of wages
Annual Allocation Breakdown
| Source | OA | {{ r('secondAccountLabel', 'SA') }} | MA | Total |
|---|---|---|---|---|
| Monthly on OW | {{ formatCurrency(r('monthlyAllocation', {}).oa) }} | {{ formatCurrency(r('monthlyAllocation', {}).sa) }} | {{ formatCurrency(r('monthlyAllocation', {}).ma) }} | {{ formatCurrency(r('monthlyContribution', {}).total) }} |
| Annual OW ({{ r('monthsWorked') }} mo.) | {{ formatCurrency(safe(r('monthlyAllocation', {}).oa) * r('monthsWorked')) }} | {{ formatCurrency(safe(r('monthlyAllocation', {}).sa) * r('monthsWorked')) }} | {{ formatCurrency(safe(r('monthlyAllocation', {}).ma) * r('monthsWorked')) }} | {{ formatCurrency(r('annualOWContribution', {}).total) }} |
| AW (S${{ formatNum(r('cappedAW')) }}) | {{ formatCurrency(r('awAllocation', {}).oa) }} | {{ formatCurrency(r('awAllocation', {}).sa) }} | {{ formatCurrency(r('awAllocation', {}).ma) }} | {{ formatCurrency(r('awContribution', {}).total) }} |
| Annual Total | {{ formatCurrency(r('annualAllocation', {}).oa) }} | {{ formatCurrency(r('annualAllocation', {}).sa) }} | {{ formatCurrency(r('annualAllocation', {}).ma) }} | {{ formatCurrency(r('annualTotal', {}).total) }} |
At age 55, your Special Account (SA) is closed and a Retirement Account (RA) is created.
Contributions that previously went to SA now go to RA.
Additional Wage Ceiling
1
Monthly OW (capped at ceiling)
S${{ formatNum(numVal(monthlyOW)) }}
β capped at S${{ formatNum(r('owCeiling')) }}
(within ceiling)
2
Total OW subject to CPF for the year
S${{ formatNum(r('cappedOW')) }} x {{ r('monthsWorked') }} months = S${{ formatNum(r('totalOWForYear')) }}
3
Annual salary ceiling
S${{ formatNum(r('annualCeiling', 102000)) }}
4
AW Ceiling = Annual ceiling β Total OW
S${{ formatNum(r('annualCeiling', 102000)) }} β S${{ formatNum(r('totalOWForYear')) }}
= S${{ formatNum(r('awCeiling')) }}
5
Your Additional Wages
S${{ formatNum(numVal(annualAW)) }}
β capped at S${{ formatNum(r('awCeiling')) }}
(within ceiling)
6
CPF on Additional Wages
Employee S${{ formatNum(r('awContribution', {}).employee) }}
+ Employer S${{ formatNum(r('awContribution', {}).employer) }}
= S${{ formatNum(r('awContribution', {}).total) }}
Total OW/yr
{{ formatCurrency(r('totalOWForYear')) }}
AW Ceiling
{{ formatCurrency(r('awCeiling')) }}
AW Subject to CPF
{{ formatCurrency(r('cappedAW')) }}
CPF on AW
{{ formatCurrency(r('awContribution', {}).total) }}
{{ selectedYear }} CPF Rates (SC / 3rd-year+ SPR)
Contribution Rates
| Age Group | Employee | Employer | Total |
|---|---|---|---|
| {{ row.ageLabel }} | {{ row.employee }}% | {{ row.employer }}% | {{ row.total }}% |
Allocation Rates (% of Total Wages)
| Age Group | OA | SA/RA | MA | Total |
|---|---|---|---|---|
| {{ row.ageLabel }} | {{ row.oa }}% | {{ row.sa }}% ({{ row.secondAccountLabel }}) | {{ row.ma }}% | {{ row.total }}% |
This calculator provides estimates for Singapore Citizens and 3rd-year-onwards SPRs.
1st and 2nd-year SPRs have different graduated rates.
For official rates, visit CPF Board β Employer Obligations.
OW ceiling {{ selectedYear }}: S${{ formatNum(r('owCeiling', 8000)) }}/month Β· Annual ceiling: S$102,000
1st and 2nd-year SPRs have different graduated rates.
For official rates, visit CPF Board β Employer Obligations.
OW ceiling {{ selectedYear }}: S${{ formatNum(r('owCeiling', 8000)) }}/month Β· Annual ceiling: S$102,000
© 2026