← All guides
Property

How to calculate rental yield in Johor Bahru: gross, net and after-tax

Last checked 2026-11-10

A rental yield tells you how much a property earns each year as a percentage of its price. Here is how to calculate it properly, step by step.

Step 1: Gross yield

Gross yield = yearly rent ÷ purchase price × 100. This is the number in most advertisements, and it ignores every cost.

Step 2: List the yearly costs

  • Maintenance fee: floor area × rate per sq ft × 12.
  • Sinking fund: commonly 10% of the maintenance charge.
  • Assessment (cukai taksiran) and quit rent (cukai tanah).
  • Vacancy: months with no tenant.
  • Agent fee, repairs, insurance if you pay them.

Step 3: Net yield

Net yield = (yearly rent − yearly costs) ÷ purchase price × 100.

Step 4: Tax

Malaysia taxes rental income earned in Malaysia. Non-residents pay a flat 30% on net rental income. IRAS says foreign-sourced income received in Singapore by individuals is generally exempt (income through a Singapore partnership is an exception), but confirm with IRAS or a tax adviser.

Worked example (illustrative numbers)

ItemAmount
Purchase priceRM600,000
Rent RM2,500 × 12RM30,000 → gross yield 5.0%
Maintenance 900 sq ft × RM0.35 × 12− RM3,780
Sinking fund (10%)− RM378
Assessment + quit rent− RM680
One month vacant− RM2,500
Net rental incomeRM22,662 → net yield 3.8%
Non-resident tax 30%− RM6,799
After taxRM15,863 → about 2.6%

These numbers are examples, not market data. Loan interest is not included. Check real rents for your exact project and layout.

Lesson: a 5% advertised yield can become under 3% after costs and tax. Always compare net yields, and compare them with the mortgage rate if you are borrowing.

Use the rental yield calculator (tool 5) to try your own numbers. To see current rents, ask for recent tenancy examples in the same project.

Sources

Keep reading

How much extra should you budget when buying in Johor? A RM1 million exampleCan Singaporeans buy property in Johor Bahru? Rules, minimum price and steps (2026)
💬