Calculator Tools Calculator Tools
Create

Short Term Rental Calculator

Oct 5, 2023

About this app

A simple and easy-to-use short term rental calculator.

Short Term Rental Cash Flow Estimator Short Term Rental Cash Flow Estimator Gross Monthly Operating Income Monthly Operating Expenses Property Management (%) CapEx (%) Maintenance (%) Booking Fees (%) Supplies Electricity Gas/Propane Water/Sewer Cable/Internet Pest Control HOA Property Taxes Insurance Financing Costs Purchase Price Down Payment Loan Amount Mortgage Term in Years Annual Interest Rate (%) Calculate

Related apps

Put this on your site

Source

                    <html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Short Term Rental Cash Flow Estimator</title>
<meta name="description" content="A simple and easy-to-use short term rental cash flow estimator.">
<meta name="keywords" content="short term rental, cash flow, estimator, property, income, expenses">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

<script type="text/javascript">
try {
document.addEventListener("DOMContentLoaded", function() {
$("#btnCalculate").click(function() {
var grossMonthlyOperatingIncome = parseInt($("#txtGrossMonthlyOperatingIncome").val());
var propertyManagement = parseFloat($("#txtPropertyManagement").val());
var capEx = parseFloat($("#txtCapEx").val());
var maintenance = parseFloat($("#txtMaintenance").val());
var bookingFees = parseFloat($("#txtBookingFees").val());
var supplies = parseInt($("#txtSupplies").val());
var electricity = parseInt($("#txtElectricity").val());
var gasPropane = parseInt($("#txtGasPropane").val());
var waterSewer = parseInt($("#txtWaterSewer").val());
var cableInternet = parseInt($("#txtCableInternet").val());
var pestControl = parseInt($("#txtPestControl").val());
var hoa = parseInt($("#txtHOA").val());
var propertyTaxes = parseInt($("#txtPropertyTaxes").val());
var insurance = parseInt($("#txtInsurance").val());
var purchasePrice = parseInt($("#txtPurchasePrice").val());
var downPayment = parseInt($("#txtDownPayment").val());
var mortgageTerm = parseInt($("#txtMortgageTerm").val());
var annualInterestRate = parseFloat($("#txtAnnualInterestRate").val());

if(isNaN(grossMonthlyOperatingIncome) || isNaN(propertyManagement) || isNaN(capEx) || isNaN(maintenance) || isNaN(bookingFees) || isNaN(supplies) || isNaN(electricity) || isNaN(gasPropane) || isNaN(waterSewer) || isNaN(cableInternet) || isNaN(pestControl) || isNaN(hoa) || isNaN(propertyTaxes) || isNaN(insurance) || isNaN(purchasePrice) || isNaN(downPayment) || isNaN(mortgageTerm) || isNaN(annualInterestRate)) {
alert("Please enter valid numbers!");
return;
}

var monthlyOperatingIncome = grossMonthlyOperatingIncome - (grossMonthlyOperatingIncome * (propertyManagement / 100)) - (grossMonthlyOperatingIncome * (capEx / 100)) - (grossMonthlyOperatingIncome * (maintenance / 100)) - (grossMonthlyOperatingIncome * (bookingFees / 100)) - supplies - electricity - gasPropane - waterSewer - cableInternet - pestControl - hoa - propertyTaxes - insurance;
var annualNOI = monthlyOperatingIncome * 12;
var loanAmount = purchasePrice - downPayment;
var monthlyMortgagePayment = calculateMonthlyMortgagePayment(loanAmount, mortgageTerm, annualInterestRate);
var totalInitialInvestment = purchasePrice + (purchasePrice * (propertyManagement / 100)) + (purchasePrice * (capEx / 100)) + (purchasePrice * (maintenance / 100)) + (purchasePrice * (bookingFees / 100)) + supplies + electricity + gasPropane + waterSewer + cableInternet + pestControl + hoa + propertyTaxes + insurance;
var totalAnnualDebtService = monthlyMortgagePayment * 12;
var totalMonthlyCashFlow = monthlyOperatingIncome - monthlyMortgagePayment;
var totalAnnualCashFlow = totalMonthlyCashFlow * 12;
var cashOnCashReturn = (totalAnnualCashFlow / totalInitialInvestment) * 100;
var capRate = (annualNOI / purchasePrice) * 100;

$("#result").html("Monthly Operating Income: $" + monthlyOperatingIncome.toFixed(2) + "<br/>Annual Net Operating Income (NOI): $" + annualNOI.toFixed(2) + "<br/>Monthly Mortgage Payment (Principal &amp; Interest): $" + monthlyMortgagePayment.toFixed(2) + "<br/>Total Initial Investment: $" + totalInitialInvestment.toFixed(2) + "<br/>Total Annual Debt Service: $" + totalAnnualDebtService.toFixed(2) + "<br/>Total Monthly Cash Flow: $" + totalMonthlyCashFlow.toFixed(2) + "<br/>Total Annual Cash Flow: $" + totalAnnualCashFlow.toFixed(2) + "<br/>Cash on Cash Return: " + cashOnCashReturn.toFixed(2) + "%<br/>Cap Rate: " + capRate.toFixed(2) + "%");
});
});
} catch (error) {
throw error;
}

function calculateMonthlyMortgagePayment(loanAmount, mortgageTerm, annualInterestRate) {
var monthlyInterestRate = annualInterestRate / 12 / 100;
var numberOfPayments = mortgageTerm * 12;
var monthlyMortgagePayment = (loanAmount * monthlyInterestRate * Math.pow(1 + monthlyInterestRate, numberOfPayments)) / (Math.pow(1 + monthlyInterestRate, numberOfPayments) - 1);
return monthlyMortgagePayment;
}
</script>

<style>
body {
font-family: 'Montserrat', sans-serif;
background: #f8f9fa;
}
.calculator {
margin-top: 50px;
text-align: center;
}
#result {
margin-top: 20px;
font-size: 20px;
font-weight: bold;
color: #28a745;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<div class="calculator">
<h1>Short Term Rental Cash Flow Estimator</h1>
<h2>Gross Monthly Operating Income</h2>
<input type="number" id="txtGrossMonthlyOperatingIncome" placeholder="Gross Monthly Operating Income ($)" class="form-control" value="6300">
<br/>
<h2>Monthly Operating Expenses</h2>
<h3>Property Management (%)</h3>
<input type="number" id="txtPropertyManagement" placeholder="Property Management (%)" class="form-control" value="0">
<br/>
<h3>CapEx (%)</h3>
<input type="number" id="txtCapEx" placeholder="CapEx (%)" class="form-control" value="5">
<br/>
<h3>Maintenance (%)</h3>
<input type="number" id="txtMaintenance" placeholder="Maintenance (%)" class="form-control" value="3">
<br/>
<h3>Booking Fees (%)</h3>
<input type="number" id="txtBookingFees" placeholder="Booking Fees (%)" class="form-control" value="3">
<br/>
<h3>Supplies</h3>
<input type="number" id="txtSupplies" placeholder="Supplies ($)" class="form-control" value="100">
<br/>
<h3>Electricity</h3>
<input type="number" id="txtElectricity" placeholder="Electricity ($)" class="form-control" value="400">
<br/>
<h3>Gas/Propane</h3>
<input type="number" id="txtGasPropane" placeholder="Gas/Propane ($)" class="form-control" value="50">
<br/>
<h3>Water/Sewer</h3>
<input type="number" id="txtWaterSewer" placeholder="Water/Sewer ($)" class="form-control" value="50">
<br/>
<h3>Cable/Internet</h3>
<input type="number" id="txtCableInternet" placeholder="Cable/Internet ($)" class="form-control" value="150">
<br/>
<h3>Pest Control</h3>
<input type="number" id="txtPestControl" placeholder="Pest Control ($)" class="form-control" value="50">
<br/>
<h3>HOA</h3>
<input type="number" id="txtHOA" placeholder="HOA ($)" class="form-control" value="125">
<br/>
<h3>Property Taxes</h3>
<input type="number" id="txtPropertyTaxes" placeholder="Property Taxes ($)" class="form-control" value="75">
<br/>
<h3>Insurance</h3>
<input type="number" id="txtInsurance" placeholder="Insurance ($)" class="form-control" value="250">
<br/>
<h2>Financing Costs</h2>
<h3>Purchase Price</h3>
<input type="number" id="txtPurchasePrice" placeholder="Purchase Price ($)" class="form-control" value="489900">
<br/>
<h3>Down Payment</h3>
<input type="number" id="txtDownPayment" placeholder="Down Payment ($)" class="form-control" value="97980">
<br/>
<h3>Loan Amount</h3>
<input type="number" id="txtLoanAmount" placeholder="Loan Amount ($)" class="form-control" disabled>
<br/>
<h3>Mortgage Term in Years</h3>
<input type="number" id="txtMortgageTerm" placeholder="Mortgage Term in Years" class="form-control" value="30">
<br/>
<h3>Annual Interest Rate (%)</h3>
<input type="number" id="txtAnnualInterestRate" placeholder="Annual Interest Rate (%)" class="form-control" value="4.75">
<br/>
<button id="btnCalculate" class="btn btn-primary">Calculate</button>
<div id="result"></div>
</div>
</div>
</body>
</html>