Calculate Net Operating Income

Net Operating Income (NOI) Calculator

Revenue

Operating Expenses

Gross Operating Income (GOI): $0.00
Total Operating Expenses: $0.00
Net Operating Income (NOI): $0.00

What is Net Operating Income (NOI)?

Net Operating Income (NOI) is a fundamental metric used in real estate investment analysis to determine the profitability of income-generating properties. It represents all revenue from the property minus all reasonably necessary operating expenses. Critically, NOI is a "pre-tax" figure that excludes principal and interest payments on loans, capital expenditures, depreciation, and amortization.

The NOI Formula

NOI = (Gross Potential Income + Other Income – Vacancy & Credit Losses) – Operating Expenses

Operating Expenses Included in NOI

  • Property Taxes: Annual assessments by the local government.
  • Insurance: Premiums for property and liability coverage.
  • Management Fees: Costs for professional property management services.
  • Maintenance and Repairs: Routine costs to keep the property in habitable condition.
  • Utilities: Water, sewer, trash, and common area electricity (if paid by the owner).
  • Landscaping & Snow Removal: Exterior maintenance costs.

What is NOT Included?

A common mistake is including Debt Service (mortgage payments) in the NOI calculation. NOI is property-specific, not owner-specific. By excluding debt, investors can compare different properties regardless of how they are financed. Other exclusions include Income Taxes and Capital Expenditures (large, one-time renovations like a new roof).

Real-World Example Calculation

Imagine a 4-unit apartment building where each unit rents for $2,000/month:

  1. Potential Rental Income: $2,000 x 4 x 12 = $96,000
  2. Laundry Income: $1,000
  3. Vacancy (5%): $97,000 * 0.05 = $4,850
  4. Gross Operating Income: $96,000 + $1,000 – $4,850 = $92,150
  5. Operating Expenses: Taxes ($8,000) + Insurance ($2,000) + Repairs ($5,000) + Utilities ($3,000) = $18,000
  6. NOI: $92,150 – $18,000 = $74,150
function calculateNOI() { // Get Revenue Inputs var potentialIncome = parseFloat(document.getElementById('potentialIncome').value) || 0; var otherIncome = parseFloat(document.getElementById('otherIncome').value) || 0; var vacancyRate = parseFloat(document.getElementById('vacancyRate').value) || 0; // Get Expense Inputs var propertyTaxes = parseFloat(document.getElementById('propertyTaxes').value) || 0; var insurance = parseFloat(document.getElementById('insurance').value) || 0; var maintenance = parseFloat(document.getElementById('maintenance').value) || 0; var mgmtFees = parseFloat(document.getElementById('mgmtFees').value) || 0; var utilities = parseFloat(document.getElementById('utilities').value) || 0; // Perform Logic var totalPotential = potentialIncome + otherIncome; var vacancyAmount = totalPotential * (vacancyRate / 100); var effectiveGrossIncome = totalPotential – vacancyAmount; var totalExpenses = propertyTaxes + insurance + maintenance + mgmtFees + utilities; var netOperatingIncome = effectiveGrossIncome – totalExpenses; // Display Results document.getElementById('results-area').style.display = 'block'; document.getElementById('resGOI').innerHTML = '$' + effectiveGrossIncome.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('resExp').innerHTML = '$' + totalExpenses.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('resNOI').innerHTML = '$' + netOperatingIncome.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); // Smooth scroll to result document.getElementById('results-area').scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment