Property prices by state

Compare actual sale prices across Malaysia. Select a state to explore its property market.

Recorded Transactions509,475
Total Properties35,123
States Covered16

Database-wide totals. Properties are distinct developments, not individual units. States Covered includes federal territories.

Explore states

16 markets with recorded sales

Johor

-10.2%

Price change since first recorded month

Median priceRM 485,000
Median PSFRM 321.59
Transactions
93,790
Districts
10
Areas
115
Lowest sale
RM 13,000
Highest sale
RM 162,000,000
Population
4,224,300
Explore Johor

Kedah

+4.1%

Price change since first recorded month

Median priceRM 288,000
Median PSFRM 163.27
Transactions
27,451
Districts
12
Areas
165
Lowest sale
RM 5,000
Highest sale
RM 22,200,000
Population
2,237,400
Explore Kedah

Kelantan

+35.5%

Price change since first recorded month

Median priceRM 310,000
Median PSFRM 111.83
Transactions
7,511
Districts
10
Areas
259
Lowest sale
RM 12,000
Highest sale
RM 5,500,000
Population
1,925,300
Explore Kelantan

Kuala Lumpur

-11.4%

Price change since first recorded month

Median priceRM 650,000
Median PSFRM 576.98
Transactions
41,622
Districts
1
Areas
9
Lowest sale
RM 15,000
Highest sale
RM 408,000,000
Population
2,082,300
Explore Kuala Lumpur

Labuan

+273.0%

Price change since first recorded month

Median priceRM 450,000
Median PSFRM 216.35
Transactions
451
Districts
1
Areas
19
Lowest sale
RM 90,000
Highest sale
RM 9,900,000
Population
101,100
Explore Labuan

Melaka

+21.7%

Price change since first recorded month

Median priceRM 300,000
Median PSFRM 181.43
Transactions
22,377
Districts
3
Areas
94
Lowest sale
RM 15,000
Highest sale
RM 17,500,000
Population
1,057,400
Explore Melaka

Price change since first recorded month

Median priceRM 355,000
Median PSFRM 207.60
Transactions
28,997
Districts
7
Areas
140
Lowest sale
RM 17,000
Highest sale
RM 38,000,000
Population
1,248,500
Explore Negeri Sembilan

Pahang

+23.3%

Price change since first recorded month

Median priceRM 289,000
Median PSFRM 165.67
Transactions
20,716
Districts
13
Areas
98
Lowest sale
RM 12,000
Highest sale
RM 12,000,000
Population
1,686,400
Explore Pahang

Perak

+34.8%

Price change since first recorded month

Median priceRM 280,000
Median PSFRM 176.26
Transactions
47,632
Districts
13
Areas
149
Lowest sale
RM 20,000
Highest sale
RM 25,500,000
Population
2,578,100
Explore Perak

Perlis

+8.8%

Price change since first recorded month

Median priceRM 280,000
Median PSFRM 146.52
Transactions
2,330
Districts
1
Areas
23
Lowest sale
RM 16,000
Highest sale
RM 4,000,000
Population
297,300
Explore Perlis

Pulau Pinang

-15.9%

Price change since first recorded month

Median priceRM 410,000
Median PSFRM 356.61
Transactions
39,561
Districts
5
Areas
50
Lowest sale
RM 13,000
Highest sale
RM 80,000,000
Population
1,808,300
Explore Pulau Pinang

Putrajaya

+187.0%

Price change since first recorded month

Median priceRM 714,000
Median PSFRM 531.31
Transactions
877
Districts
1
Areas
1
Lowest sale
RM 175,000
Highest sale
RM 9,500,000
Population
121,400
Explore Putrajaya

Sabah

-11.8%

Price change since first recorded month

Median priceRM 400,000
Median PSFRM 283.96
Transactions
9,473
Districts
24
Areas
24
Lowest sale
RM 17,000
Highest sale
RM 32,718,000
Population
3,766,800
Explore Sabah

Sarawak

-10.9%

Price change since first recorded month

Median priceRM 410,000
Median PSFRM 193.27
Transactions
14,455
Districts
13
Areas
13
Lowest sale
RM 18,000
Highest sale
RM 21,000,000
Population
2,539,800
Explore Sarawak

Selangor

+5.3%

Price change since first recorded month

Median priceRM 495,000
Median PSFRM 366.43
Transactions
141,433
Districts
9
Areas
198
Lowest sale
RM 11,000
Highest sale
RM 558,800,000
Population
7,454,300
Explore Selangor

Terengganu

+377.9%

Price change since first recorded month

Median priceRM 326,000
Median PSFRM 119.77
Transactions
10,799
Districts
8
Areas
89
Lowest sale
RM 12,000
Highest sale
RM 10,500,000
Population
1,260,900
Explore Terengganu

How to read these figures

Medians use all positive recorded prices in the stated period, without removing outliers. PSF is calculated per transaction using land/parcel area in square feet, falling back to main floor area when land area is unavailable. Records without a usable price or area do not contribute to the respective median.

Capital gain/loss compares the first and latest recorded month's median price. It measures changes in the mix of properties sold, not the return on a specific property. A single priced month is reported as not available. Blank district, area and scheme names are excluded from named counts and rankings. District rankings retain state identity; area rankings retain district identity and combine case-only area-name variants.

State assignments use the existing district/area mapping and may need verification. Areas represent administrative sub-districts. Date ranges use the recorded month and year; undated records remain in overall totals but not dated trends. Analytics are cached for up to five minutes and refreshed when the database file changes.