This calculator helps you estimate the potential rental yield on an investment property. Rental yield is a measure of the return on investment for a property that you rent out. It's calculated as the annual rental income divided by the total cost of the property, expressed as a percentage.
Understanding rental yield is crucial for property investors as it allows for a direct comparison of the profitability of different investment opportunities, independent of property value fluctuations. A higher rental yield generally indicates a more profitable investment, assuming similar levels of risk and management effort.
function calculateRentalYield() {
var purchasePrice = parseFloat(document.getElementById("purchasePrice").value);
var stampDutyPercent = parseFloat(document.getElementById("stampDuty").value);
var legalFees = parseFloat(document.getElementById("legalFees").value);
var otherCosts = parseFloat(document.getElementById("otherCosts").value);
var annualRent = parseFloat(document.getElementById("annualRent").value);
var annualExpenses = parseFloat(document.getElementById("annualExpenses").value);
var resultDiv = document.getElementById("result");
resultDiv.innerHTML = ""; // Clear previous results
if (isNaN(purchasePrice) || isNaN(stampDutyPercent) || isNaN(legalFees) || isNaN(otherCosts) || isNaN(annualRent) || isNaN(annualExpenses)) {
resultDiv.innerHTML = "Please enter valid numbers for all fields.";
return;
}
if (purchasePrice <= 0 || annualRent < 0 || annualExpenses < 0 || stampDutyPercent < 0 || legalFees < 0 || otherCosts < 0) {
resultDiv.innerHTML = "Please enter positive values for costs and non-negative values for income and percentages.";
return;
}
var stampDutyAmount = purchasePrice * (stampDutyPercent / 100);
var totalAcquisitionCost = purchasePrice + stampDutyAmount + legalFees + otherCosts;
var netAnnualRentalIncome = annualRent – annualExpenses;
if (totalAcquisitionCost === 0) {
resultDiv.innerHTML = "Total acquisition cost cannot be zero.";
return;
}
var grossRentalYield = (netAnnualRentalIncome / totalAcquisitionCost) * 100;
resultDiv.innerHTML = "