Rental yield is one of the most critical metrics for real estate investors. It measures the return on income generated by a property as a percentage of its cost. Unlike capital appreciation, which focuses on the increase in property value over time, yield focuses on the cash flow generated today.
Gross Yield vs. Net Yield
When analyzing investment properties, it is essential to distinguish between Gross Yield and Net Yield:
Gross Yield: This is a quick calculation that looks at the total rental income relative to the property price before deducting any expenses. It is useful for a high-level comparison of different properties.
Net Yield: This provides a more realistic picture of your return. It accounts for operating expenses such as maintenance costs, property management fees, insurance, property taxes, and vacancy periods.
How to Calculate Rental Yield
Our calculator uses the following formulas to determine your investment returns:
A "good" rental yield varies by location and property type. Generally, a net yield between 5% and 8% is considered healthy for residential properties. In high-demand city centers, yields might be lower (3-4%) due to higher property prices, while HMOs (Houses in Multiple Occupation) or properties in developing areas might offer yields upwards of 8-10% to compensate for higher risk.
function calculateRentalYield() {
// 1. Get input values
var priceInput = document.getElementById("propertyPrice").value;
var rentInput = document.getElementById("monthlyRent").value;
var expenseInput = document.getElementById("annualExpenses").value;
var vacancyInput = document.getElementById("vacancyRate").value;
// 2. Parse values to floats
var price = parseFloat(priceInput);
var monthlyRent = parseFloat(rentInput);
var annualExpenses = parseFloat(expenseInput);
var vacancyRate = parseFloat(vacancyInput);
// 3. Validation: Ensure inputs are numbers and valid
if (isNaN(price) || price <= 0) {
alert("Please enter a valid Property Purchase Price.");
return;
}
if (isNaN(monthlyRent) || monthlyRent < 0) {
alert("Please enter a valid Monthly Rental Income.");
return;
}
// Default expenses and vacancy to 0 if empty/NaN, but usually prompts validation
if (isNaN(annualExpenses)) {
annualExpenses = 0;
}
if (isNaN(vacancyRate)) {
vacancyRate = 0;
}
// 4. Calculations
var potentialAnnualRent = monthlyRent * 12;
var grossYield = (potentialAnnualRent / price) * 100;
// Calculate vacancy loss
var vacancyLoss = potentialAnnualRent * (vacancyRate / 100);
// Effective gross income after vacancy
var effectiveGrossIncome = potentialAnnualRent – vacancyLoss;
// Net Operating Income (NOI)
var netOperatingIncome = effectiveGrossIncome – annualExpenses;
var netYield = (netOperatingIncome / price) * 100;
// 5. Display Results
var resultDiv = document.getElementById("results-area");
resultDiv.style.display = "block";
document.getElementById("grossYieldDisplay").innerHTML = grossYield.toFixed(2) + "%";
document.getElementById("netYieldDisplay").innerHTML = netYield.toFixed(2) + "%";
// Formatting currency
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
});
document.getElementById("annualIncomeDisplay").innerHTML = formatter.format(potentialAnnualRent);
document.getElementById("cashFlowDisplay").innerHTML = formatter.format(netOperatingIncome);
}