CompareSG

Does your birth year decide your CPF Retirement Sum?

Yes. Born in 1961, your Full Retirement Sum is $161,000. Born in 1971, it is $220,400. CPF fixes it for life. Pick your birth year to see yours.

1941 to 1972, or 1973 or later. Everything below changes with it.

What is the Full Retirement Sum for people born in 1971?

Fixed by the year you turn 55, and the same for life. From CPF's tables, read 14 Oct 2026.

Full Retirement Sum
$220,400
Basic Retirement Sum
$110,200

Bars are drawn against the latest published Full Retirement Sum, $228,200.

People born in 1971 reach 55 in 2026, and CPF says the sum then stays the same for life.

That is $7,400 more than for people born in 1970 and $7,800 less than for people born in 1972.

If you were born in 1971, your Full Retirement Sum is $220,400 and your Basic Retirement Sum is $110,200.

How does your birth year compare with the others?

Each bar is one step in CPF's table, from the oldest births at the top to the newest at the bottom. A longer bar is a bigger Full Retirement Sum. Yours is marked.

  • Born Jul 1940 to Jun 1941reach 55 Jul 1995 to Jun 1996
    $40,000
  • Born Jul 1941 to Jun 1942reach 55 Jul 1996 to Jun 1997
    $45,000
  • Born Jul 1942 to Jun 1943reach 55 Jul 1997 to Jun 1998
    $50,000
  • Born Jul 1943 to Jun 1944reach 55 Jul 1998 to Jun 1999
    $55,000
  • Born Jul 1944 to Jun 1945reach 55 Jul 1999 to Jun 2000
    $60,000
  • Born Jul 1945 to Jun 1946reach 55 Jul 2000 to Jun 2001
    $65,000
  • Born Jul 1946 to Jun 1947reach 55 Jul 2001 to Jun 2002
    $70,000
  • Born Jul 1947 to Jun 1948reach 55 Jul 2002 to Jun 2003
    $75,000
  • Born Jul 1948 to Jun 1949reach 55 Jul 2003 to Jun 2004
    $80,000
  • Born Jul 1949 to Jun 1950reach 55 Jul 2004 to Jun 2005
    $84,500
  • Born Jul 1950 to Jun 1951reach 55 Jul 2005 to Jun 2006
    $90,000
  • Born Jul 1951 to Jun 1952reach 55 Jul 2006 to Jun 2007
    $94,600
  • Born Jul 1952 to Jun 1953reach 55 Jul 2007 to Jun 2008
    $99,600
  • Born Jul 1953 to Jun 1954reach 55 Jul 2008 to Jun 2009
    $106,000
  • Born Jul 1954 to Jun 1955reach 55 Jul 2009 to Jun 2010
    $117,000
  • Born Jul 1955 to Jun 1956reach 55 Jul 2010 to Jun 2011
    $123,000
  • Born Jul 1956 to Jun 1957reach 55 Jul 2011 to Jun 2012
    $131,000
  • Born Jul 1957 to Jun 1958reach 55 Jul 2012 to Jun 2013
    $139,000
  • Born Jul 1958 to Jun 1959reach 55 Jul 2013 to Jun 2014
    $148,000
  • Born Jul 1959 to Jun 1960reach 55 Jul 2014 to Jun 2015
    $155,000
  • Born Jul 1960 to Dec 1961reach 55 Jul 2015 to Dec 2016
    $161,000
  • Born 1962reach 55 in 2017
    $166,000
  • Born 1963reach 55 in 2018
    $171,000
  • Born 1964reach 55 in 2019
    $176,000
  • Born 1965reach 55 in 2020
    $181,000
  • Born 1966reach 55 in 2021
    $186,000
  • Born 1967reach 55 in 2022
    $192,000
  • Born 1968reach 55 in 2023
    $198,800
  • Born 1969reach 55 in 2024
    $205,800
  • Born 1970reach 55 in 2025
    $213,000
  • Born 1971 Youreach 55 in 2026
    $220,400
  • Born 1972reach 55 in 2027
    $228,200

Yours, $220,400, is 5.5 times the first row's $40,000 and $7,800 below the latest published.

How fast has the sum grown?

Four stretches of births, with how much the sum rose across each. Your stretch is marked.

Born Jul 1940 to Jun 1950
+$50,000
from $40,000 to $90,000, in 10 years
2.25 times
Born Jul 1950 to Jun 1960
+$71,000
from $90,000 to $161,000, in 10 years
1.79 times
Born Jul 1960 to Dec 1969
+$52,000
from $161,000 to $213,000, in 9½ years
1.32 times
Born 1970 to 1972 You
+$15,200
from $213,000 to $228,200 so far, in 2 years
1.07 times

Your tile is Born 1970 to 1972: the sum went from $213,000 to $228,200 so far in 2 years.

Does the Enhanced Retirement Sum depend on your birth year?

No. It is one amount for everyone, set at double the current year's Full Retirement Sum.

Enhanced Retirement Sum in 2026
$440,800
Enhanced Retirement Sum in 2027
$456,400

CPF lets members aged 55 and above top up their Retirement Account up to the current Enhanced Retirement Sum, whichever year they were born.

Your own Full Retirement Sum, $220,400, stays the same for life. The Enhanced Retirement Sum moves with the year.

In 2026 the Enhanced Retirement Sum is $440,800 for everyone, which is 2 times the Full Retirement Sum for people born in 1971.

More finds

How many times the first row?
5.5 times
$220,400 against $40,000 for people born from Jul 1940 to Jun 1941, the first row in CPF's table.
How much did it rise at your step?
+$7,400
From $213,000 for people born in 1970 to $220,400, 3.5% more.
What was the biggest jump between two steps?
+$11,000
From $106,000 to $117,000, for people born from Jul 1954 to Jun 1955, 10.4% more.

The short version

CPF's Full Retirement Sum depends on the year you turn 55 and stays the same for life: $161,000 for people born in 1961, $220,400 for people born in 1971 and $228,200 for people born in 1972, the latest published, which is 5.7 times the $40,000 of the first row, for people born from Jul 1940 to Jun 1941. From CPF's tables read on 14 Oct 2026.

The Basic Retirement Sum is half the Full Retirement Sum: $80,500 against $161,000 for people born from Jul 1960 to Dec 1961, and $110,200 against $220,400 for people born in 1971. CPF's tables list the Basic Retirement Sum only for births from Jul 1960.

Until 2016 CPF changed the sum on 1 July each year, so a birth year up to 1960 can fall into two steps, one for January to June and one for July to December. From people born in 1962 it changes on 1 January. People born from Jul 1960 to Dec 1961 share one sum.

The Enhanced Retirement Sum is not tied to your birth year. In 2026 it is $440,800 and in 2027 it is $456,400, double the Full Retirement Sum of the year. CPF has not published a Full Retirement Sum for people born in 1973 or later.

By Ben (opens in a new tab). Updated . Data: CPF Board (its pages and data.gov.sg).

Questions people ask

What is the CPF Full Retirement Sum?

It is the amount that applies for setting aside in your Retirement Account when you reach 55. CPF says it depends on the year you turn 55 and stays the same for life. For people born in 1971 it is $220,400.

What is the Full Retirement Sum if you were born in 1971?

$220,400, and the Basic Retirement Sum is $110,200. People born in 1971 reach 55 in 2026.

What is the Full Retirement Sum if you were born in 1961?

$161,000, the same as for everyone born from Jul 1960 to Dec 1961. The Basic Retirement Sum for them is $80,500.

What is the Full Retirement Sum for people born in 1973 or later?

CPF has not published one. Its tables stop at people born in 1972, who reach 55 in 2027, with $228,200 for the Full Retirement Sum and $114,100 for the Basic.

Does the Full Retirement Sum change after you turn 55?

No. CPF says the amount for your year stays the same for life. What moves is the amount for people who turn 55 later, and the Enhanced Retirement Sum.

How is the Basic Retirement Sum related to the Full?

CPF says the Full Retirement Sum is double the Basic. Its table of Basic Retirement Sums starts with people born from Jul 1960 to Dec 1961, so for earlier births we show only the Full.

Does the Enhanced Retirement Sum depend on your birth year?

No. CPF sets it at double the current year's Full Retirement Sum, so it is $440,800 in 2026 and $456,400 in 2027 for everyone. Members aged 55 and above can top up their Retirement Account up to the current Enhanced Retirement Sum.

Why does your birth month matter if you were born in 1960 or earlier?

Until 2016 CPF changed the sum on 1 July each year, so a birth year up to 1960 falls into two steps. From 1962 it changes on 1 January, and people born from Jul 1960 to Dec 1961 share one sum.

Has the Full Retirement Sum ever stayed the same from one step to the next?

Not between steps. Every step in CPF's table is higher than the one before. The closest to a pause is the step for people born from Jul 1960 to Dec 1961, which lasts 18 months, so everyone reaching 55 from Jul 2015 to Dec 2016 shares $161,000.

How much has the Full Retirement Sum grown?

It is 5.7 times as much for people born in 1972 ($228,200) as for people born from Jul 1940 to Jun 1941 ($40,000). The biggest rise between two steps was $11,000, from $106,000 to $117,000, for people born from Jul 1954 to Jun 1955.

The numbers behind it

Retirement Sums by date of birth (CPF, read 14 Oct 2026)
BornReach 55Full Retirement SumBasic Retirement SumRise from the step beforeRise, in per cent
Jul 1940 to Jun 1941Jul 1995 to Jun 1996$40,000–––
Jul 1941 to Jun 1942Jul 1996 to Jun 1997$45,000–+$5,00012.5%
Jul 1942 to Jun 1943Jul 1997 to Jun 1998$50,000–+$5,00011.1%
Jul 1943 to Jun 1944Jul 1998 to Jun 1999$55,000–+$5,00010.0%
Jul 1944 to Jun 1945Jul 1999 to Jun 2000$60,000–+$5,0009.1%
Jul 1945 to Jun 1946Jul 2000 to Jun 2001$65,000–+$5,0008.3%
Jul 1946 to Jun 1947Jul 2001 to Jun 2002$70,000–+$5,0007.7%
Jul 1947 to Jun 1948Jul 2002 to Jun 2003$75,000–+$5,0007.1%
Jul 1948 to Jun 1949Jul 2003 to Jun 2004$80,000–+$5,0006.7%
Jul 1949 to Jun 1950Jul 2004 to Jun 2005$84,500–+$4,5005.6%
Jul 1950 to Jun 1951Jul 2005 to Jun 2006$90,000–+$5,5006.5%
Jul 1951 to Jun 1952Jul 2006 to Jun 2007$94,600–+$4,6005.1%
Jul 1952 to Jun 1953Jul 2007 to Jun 2008$99,600–+$5,0005.3%
Jul 1953 to Jun 1954Jul 2008 to Jun 2009$106,000–+$6,4006.4%
Jul 1954 to Jun 1955Jul 2009 to Jun 2010$117,000–+$11,00010.4%
Jul 1955 to Jun 1956Jul 2010 to Jun 2011$123,000–+$6,0005.1%
Jul 1956 to Jun 1957Jul 2011 to Jun 2012$131,000–+$8,0006.5%
Jul 1957 to Jun 1958Jul 2012 to Jun 2013$139,000–+$8,0006.1%
Jul 1958 to Jun 1959Jul 2013 to Jun 2014$148,000–+$9,0006.5%
Jul 1959 to Jun 1960Jul 2014 to Jun 2015$155,000–+$7,0004.7%
Jul 1960 to Dec 1961Jul 2015 to Dec 2016$161,000$80,500+$6,0003.9%
19622017$166,000$83,000+$5,0003.1%
19632018$171,000$85,500+$5,0003.0%
19642019$176,000$88,000+$5,0002.9%
19652020$181,000$90,500+$5,0002.8%
19662021$186,000$93,000+$5,0002.8%
19672022$192,000$96,000+$6,0003.2%
19682023$198,800$99,400+$6,8003.5%
19692024$205,800$102,900+$7,0003.5%
19702025$213,000$106,500+$7,2003.5%
19712026$220,400$110,200+$7,4003.5%
19722027$228,200$114,100+$7,8003.5%

A dash means CPF's table has no figure: no Basic Retirement Sum is listed for births before Jul 1960, and the first row has no step before it. Rows run from the oldest births to the newest.

Enhanced Retirement Sum (CPF, read 14 Oct 2026)
YearEnhanced Retirement SumFull Retirement Sum that year
2026$440,800$220,400
2027$456,400$228,200
The four stretches of births
BirthsSum at the startSum at the endRiseTimes as muchOver
Born Jul 1940 to Jun 1950$40,000$90,000+$50,0002.2510 years
Born Jul 1950 to Jun 1960$90,000$161,000+$71,0001.7910 years
Born Jul 1960 to Dec 1969$161,000$213,000+$52,0001.329½ years
Born 1970 to 1972$213,000$228,200+$15,2001.072 years

The end of a stretch is the sum for the first births of the next one; the last stretch ends at the latest published sum, for people born in 1972.

The boring bit

Where the information comes from

The Full Retirement Sum by date of birth comes from CPF's table of past Full Retirement Sums (PDF) (opens in a new tab), which starts with people born from 1 Jul 1940, and its page How much is my Full Retirement Sum? (opens in a new tab) (last updated 5 Mar 2026). The same figures from Jul 2003 are on data.gov.sg as Full Retirement Sum (opens in a new tab) (CPF Board, Jul 2003 to Jan 2027, dataset last updated 30 Mar 2026, downloaded 14 Oct 2026). The Basic Retirement Sum comes from CPF's page How much is my Basic Retirement Sum? (opens in a new tab) (last updated 12 Mar 2026). The Enhanced Retirement Sum comes from CPF's page What is the current Enhanced Retirement Sum? (opens in a new tab) (last updated 6 May 2026). The statements that the sum stays the same for life, that the Full Retirement Sum is double the Basic and that the Enhanced Retirement Sum is double the current year's Full Retirement Sum are CPF's own words, not our calculation.

What is not claimed

  • This is not financial advice. CPF decides how its rules apply to you, and amounts and rules can change.
  • We do not show what a retirement sum pays each month, what you may set aside if you own a property, or how top-ups are limited or taxed. CPF has those pages.
  • CPF's Basic Retirement Sum table starts with births from Jul 1960. For earlier births we show none, and we do not assume it was half the Full Retirement Sum.
  • We do not predict the sums for people born in 1973 or later.
  • People born before 1 Jul 1940 are not in CPF's table, so the picker starts at 1941. People born from Jan to Jun 1941 are in the first row.
  • Your own reach-55 date is worked out as your birth year plus 55. It is not a statement about your age today.
  • Nothing here says anything about any person.

Coverage

All 32 rows of CPF's Full Retirement Sum table and all 12 rows of its Basic Retirement Sum table were used. The data.gov.sg dataset has 24 rows, from Jul 2003 to Jan 2027, and all 24 match CPF's table. The 8 oldest rows, for people born from Jul 1940 to Jun 1948, are only in CPF's PDF, which we typed in by hand, so they are the rows with the least checking.

Report an error. Corrections are logged publicly with a date.

How we did it
Pythondata.gov.sgCPF tablesCross-checks
  1. Read CPF's tables. We typed the Full Retirement Sum table (32 rows) and the Basic Retirement Sum table (12 rows) into two files and recorded the date we read them.
  2. Downloaded data.gov.sg's copy. We matched each of its 24 rows to the row of CPF's table with the same date. All matched.
  3. Checked the arithmetic. Wherever CPF lists both, the Full Retirement Sum is double the Basic. The 2026 and 2027 Enhanced Retirement Sums are double the Full Retirement Sums of those years.
  4. Matched birth dates to steps. A birth date belongs to the last row whose date of birth is on or before it, so a birth year up to 1960 can fall into two rows.
  5. Worked out the rises. Each rise in dollars and in per cent (rounded half up to 1 decimal), and the four stretches of births.
Show the code
"""Prep for the CPF Retirement Sums insight (demo).
Reads CPF's two tables (Full and Basic Retirement Sum by date of birth) plus data.gov.sg's copy of the Full Retirement Sum,
checks them against each other, and writes data.json for the page.
Usage: python3 -I prep_cpf.py data_dir out_dir
"""
import csv, json, os, sys
from datetime import date, timedelta
from decimal import Decimal, ROUND_HALF_UP

data_dir, out_dir = sys.argv[1], sys.argv[2]
os.makedirs(out_dir, exist_ok=True)

# Typed from CPF's pages (read 14 Oct 2026): the Enhanced Retirement Sum is set at double the current year's Full Retirement Sum.
ERS = {"2026": 440800, "2027": 456400}
MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]


def d(s):
    y, m, dd = s.split("-")
    return date(int(y), int(m), int(dd))


def half_up(x, places=0):
    q = Decimal(1).scaleb(-places)
    return Decimal(str(x)).quantize(q, rounding=ROUND_HALF_UP)


def mon(dt):
    return MONTHS[dt.month - 1] + " " + str(dt.year)


frs_rows = [(d(r["dob_on_or_after"]), d(r["turn_55_on_or_after"]), int(r["full_retirement_sum"]))
            for r in csv.DictReader(open(os.path.join(data_dir, "cpf_frs_by_birth_date.csv")))]
brs_by_start = {d(r["dob_on_or_after"]): int(r["basic_retirement_sum"])
                for r in csv.DictReader(open(os.path.join(data_dir, "cpf_brs_by_birth_date.csv")))}
dg = {}
for r in csv.DictReader(open(os.path.join(data_dir, "data_gov_sg_full_retirement_sum.csv"))):
    dd, mm, yy = r["effective_from"].split("/")
    dg[date(int(yy), int(mm), int(dd))] = int(r["full_retirement_sum"])

# ---- checks ----
assert [r[0] for r in frs_rows] == sorted(r[0] for r in frs_rows), "rows must be in date order"
assert all(a[2] < b[2] for a, b in zip(frs_rows, frs_rows[1:])), "the sum must rise at every step"
for dob, t55, amt in frs_rows:
    assert t55 == date(dob.year + 55, dob.month, dob.day), "55th birthday date must be dob + 55 years"
matched = 0
for eff, amt in dg.items():
    row = [r for r in frs_rows if r[1] == eff]
    assert row and row[0][2] == amt, ("data.gov.sg row not matched", eff, amt)
    matched += 1
assert matched == len(dg) == 24
for start, amt in brs_by_start.items():
    f = [r for r in frs_rows if r[0] == start]
    assert f and f[0][2] == 2 * amt, ("Full is not double Basic", start)
assert ERS["2026"] == 2 * [r for r in frs_rows if r[0] == date(1971, 1, 1)][0][2]
assert ERS["2027"] == 2 * [r for r in frs_rows if r[0] == date(1972, 1, 1)][0][2]

# ---- rows ----
rows = []
for i, (dob, t55, amt) in enumerate(frs_rows):
    nxt = frs_rows[i + 1][0] if i + 1 < len(frs_rows) else None
    last = (nxt - timedelta(days=1)) if nxt else None
    if nxt is None or (dob.month == 1 and nxt.month == 1 and nxt.year == dob.year + 1):
        label = str(dob.year)
        t55lab = str(t55.year)
    else:
        label = mon(dob) + " to " + mon(last)
        t55e = date(last.year + 55, last.month, last.day)
        t55lab = mon(t55) + " to " + mon(t55e)
    prev = rows[-1]["frs"] if rows else None
    rows.append({
        "i": i, "from": dob.isoformat(), "to": last.isoformat() if last else None,
        "label": label, "t55": t55lab, "t55year": t55.year, "frs": amt, "brs": brs_by_start.get(dob),
        "rise": (amt - prev) if prev else None,
        "risepct": float(half_up((amt / prev - 1) * 100, 1)) if prev else None,
    })

# ---- the birth-year picker: 1941 to 1972; birth years that straddle two steps are split into Jan-Jun and Jul-Dec ----
def row_for(dt):
    idx = [r["i"] for r in rows if r["from"] <= dt.isoformat()]
    return idx[-1]

years = []
for y in range(1941, 1973):
    a, b = row_for(date(y, 1, 1)), row_for(date(y, 7, 1))
    years.append({"y": y, "h1": a, "h2": b} if a != b else {"y": y, "r": a})

# ---- four decades of births, for the "how fast has it grown" tiles ----
def era_of(r):
    f = r["from"]
    return 0 if f < "1950-07-01" else 1 if f < "1960-07-01" else 2 if f < "1970-01-01" else 3

eras = []
spec = [("Born Jul 1940 to Jun 1950", 0), ("Born Jul 1950 to Jun 1960", 1), ("Born Jul 1960 to Dec 1969", 2), ("Born 1970 to 1972", 3)]
for name, k in spec:
    rr = [r for r in rows if era_of(r) == k]
    first = rr[0]
    nxt = [r for r in rows if era_of(r) == k + 1]
    end = nxt[0] if nxt else rows[-1]
    months = (d(end["from"]).year - d(first["from"]).year) * 12 + d(end["from"]).month - d(first["from"]).month
    eras.append({"k": k, "name": name, "rows": [r["i"] for r in rr], "start_frs": first["frs"], "end_frs": end["frs"],
                 "gain": end["frs"] - first["frs"], "times": float(half_up(end["frs"] / first["frs"], 2)), "months": months,
                 "to_latest": not nxt})

big = max((r for r in rows if r["rise"]), key=lambda r: r["rise"])
assert sum(1 for r in rows if r["rise"] == big["rise"]) == 1
first_frs, latest = rows[0]["frs"], rows[-1]["frs"]
D = {
    "asof": "14 Oct 2026", "n_rows": len(rows), "rows": rows, "years": years, "eras": eras,
    "ers": ERS, "first_frs": first_frs, "latest_frs": latest, "latest_brs": rows[-1]["brs"],
    "times_first": float(half_up(latest / first_frs, 1)), "biggest": {"i": big["i"], "rise": big["rise"], "pct": big["risepct"]},
    "same_sum_row": [r["i"] for r in rows if r["to"] and r["from"] == "1960-07-01"][0],
    "steady_since": [r["i"] for r in rows if r["from"] == "1968-01-01"][0],
    "dg_rows": len(dg), "dg_first": min(dg).isoformat(), "dg_last": max(dg).isoformat(),
}
json.dump(D, open(os.path.join(out_dir, "data.json"), "w"), indent=1)

print("CPF rows", len(rows), "| picker years", len(years), "| data.gov.sg rows matched", matched, "of", len(dg), "(Jul 2003 to Jan 2027)")
print("first", first_frs, "latest", latest, "times", D["times_first"], "| BRS published for", sum(1 for r in rows if r["brs"]), "rows")
print("biggest rise", big["rise"], "at", big["label"], big["risepct"], "%")
for e in eras:
    print(e["name"], e["start_frs"], "->", e["end_frs"], "gain", e["gain"], "times", e["times"], "months", e["months"])
print("split years:", [y["y"] for y in years if "h1" in y][:3], "...", [y["y"] for y in years if "h1" in y][-1], "| single years from", [y["y"] for y in years if "r" in y][0])
for r in rows[-8:]:
    print(r["label"], r["t55"], r["frs"], r["brs"], r["rise"], r["risepct"])

What could make this wrong: a typing slip in the 8 oldest rows (the other 24 are matched to data.gov.sg); CPF changing a published figure; and a reader's birth date falling on a row boundary we read differently from CPF.

Source: CPF Board, Full Retirement Sum, on data.gov.sg, accessed 14 Oct 2026, made available under the terms of the Singapore Open Data Licence. Basic Retirement Sum, Enhanced Retirement Sum and the 8 oldest rows from CPF's own pages.