Calculate your Gross and Net Rental Yields instantly.
Calculation Results
Gross Yield0.00%
Net Yield0.00%
Annual Cash Flow$0.00
What is Rental Yield?
Rental yield is one of the most important metrics for real estate investors. It measures the return on investment (ROI) generated by a rental property over the course of a year, expressed as a percentage of the property's value or cost. Understanding yield helps you compare different investment opportunities to determine which one generates the best passive income relative to its price.
Gross Yield vs. Net Yield
There are two primary ways to calculate rental yield, and understanding the difference is crucial for accurate financial planning:
Gross Rental Yield: This is a simple calculation that looks at total annual rent income divided by the property value. It does not account for expenses. It provides a quick "at a glance" performance metric.
Net Rental Yield: This is the more accurate figure. It subtracts all operating expenses (insurance, management fees, maintenance, vacancy costs) from the rental income before dividing by the total capital invested (purchase price + buying costs).
Real-World Example
Imagine you buy a property for $300,000 with $15,000 in closing costs.
No property is occupied 100% of the time. Tenants move out, and it takes time to clean, repair, and market the property for the next tenant. A standard vacancy rate to factor into your calculations is 5% to 8%. Ignoring this can lead to overestimating your actual cash flow.
What is a Good Rental Yield?
A "good" yield varies by location and strategy. generally:
3-5%: Common in high-appreciation areas (expensive cities). Investors rely more on property value growth than monthly cash flow.
5-8%: Considered a solid return for residential buy-and-hold investments in stable markets.
8%+: Excellent cash flow, often found in lower-cost areas or multi-family properties, though sometimes accompanied by higher risk or maintenance costs.
Use the calculator above to run scenarios with different rents and purchase prices to find the investment that meets your financial goals.
function calculateRentalYield() {
// 1. Get Input Values
var purchasePrice = parseFloat(document.getElementById('purchasePrice').value);
var buyingCosts = parseFloat(document.getElementById('buyingCosts').value);
var monthlyRent = parseFloat(document.getElementById('monthlyRent').value);
var annualExpenses = parseFloat(document.getElementById('annualExpenses').value);
var vacancyRate = parseFloat(document.getElementById('vacancyRate').value);
// 2. Validate Inputs
if (isNaN(purchasePrice) || purchasePrice <= 0) {
alert("Please enter a valid Property Purchase Price.");
return;
}
if (isNaN(monthlyRent) || monthlyRent <= 0) {
alert("Please enter a valid Monthly Rent.");
return;
}
// Default optional fields to 0 if empty
if (isNaN(buyingCosts)) buyingCosts = 0;
if (isNaN(annualExpenses)) annualExpenses = 0;
if (isNaN(vacancyRate)) vacancyRate = 0;
// 3. Perform Calculations
// Total Capital Invested
var totalInvestment = purchasePrice + buyingCosts;
// Gross Annual Income
var annualGrossRent = monthlyRent * 12;
// Gross Yield Formula: (Annual Gross Rent / Purchase Price) * 100
// Note: Usually Gross Yield is based on Price, Net Yield is based on Total Cost.
var grossYield = (annualGrossRent / purchasePrice) * 100;
// Calculate Vacancy Loss
var vacancyLoss = annualGrossRent * (vacancyRate / 100);
// Effective Gross Income
var effectiveGrossIncome = annualGrossRent – vacancyLoss;
// Net Operating Income (NOI)
var netOperatingIncome = effectiveGrossIncome – annualExpenses;
// Net Yield Formula: (NOI / Total Investment) * 100
var netYield = (netOperatingIncome / totalInvestment) * 100;
// 4. Update Display
document.getElementById('grossYieldResult').innerHTML = grossYield.toFixed(2) + "%";
document.getElementById('netYieldResult').innerHTML = netYield.toFixed(2) + "%";
// Formatting Currency for Cash Flow
var cashFlowFormatted = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
minimumFractionDigits: 0
}).format(netOperatingIncome);
document.getElementById('cashFlowResult').innerHTML = cashFlowFormatted + " / yr";
// Show results section
document.getElementById('resultsSection').style.display = "block";
// Scroll to results for better UX on mobile
document.getElementById('resultsSection').scrollIntoView({ behavior: 'smooth' });
}