Loan Type |
Loan Priority | 1st Mortgage | 2nd Mortgage | 3rd Mortgage |
Principal |
Down Payment % |
Down Payment $ |
Loan Amount |
Interest Rate % |
Payments/Year |
Total Payments |
Loan Payment |
Closing Costs
Lender and Title Fees |
Prepaid Insurance |
Escrowed Taxes and Insurance |
Inspections |
Appraisal |
Other Costs |
(-) Seller Contributions |
Total Closing Costs |
Cash Out-of-Pocket
Down Payment |
Closing Costs |
Repairs/Make Ready |
Total Cash Out-of-Pocket |
Yearly Expenses
Accounting/Legal: |
Advertising: |
Reserves: |
Association Fees: |
Electricity: |
Insurance: |
Lawn Care: |
Management Fees: |
Payroll: |
Pest Control: |
Property/RE Taxes: |
Repairs: |
Secretarial: |
Security: |
Services: |
Supplies: |
Trash Removal: |
Utilities: |
Water/Sewer: |
Miscellaneous: |
Yearly Expenses: |
Income
Monthly Rental Income: |
Other Operating Income: |
Gross Monthly Income: |
Vacancy Allowance %: |
Operating Income $: |
Annual Property Financials
Gross Income: |
Expense: |
Net Operating Income: |
Monthly Operating Data
Monthly Rents |
Montly Expenses |
Monthly Net Income |
Year One Valuation
Cap Rate (%) |
Unrealized Capital Gains |
Return on Capital Gains (%) |
Cash on Cash Return (%) |
Finkit 3 2 12 – Multi Function Financial Calculator Formula
function calculate(){ var asking_price = Number(jQuery('input[name=asking_price]').val().replace(/,/g,')); var of_unit = Number(jQuery('input[name=of_unit]').val().replace(/,/g,')); var price_per_door = asking_price/of_unit; if (price_per_door && price_per_door != Infinity){ jQuery('input[name=price_per_door]').val(addCommas(price_per_door.toFixed(2))); } //Finacing var principal1 = Number(jQuery('input[name=principal1]').val().replace(/,/g,')); var principal2 = Number(jQuery('input[name=principal2]').val().replace(/,/g,')); var principal3 = Number(jQuery('input[name=principal3]').val().replace(/,/g,')); var down_payment_p1 = Number(jQuery('input[name=down_payment_p1]').val().replace(/,/g,'))/100; var down_payment_p2 = Number(jQuery('input[name=down_payment_p2]').val().replace(/,/g,'))/100; var down_payment_p3 = Number(jQuery('input[name=down_payment_p3]').val().replace(/,/g,'))/100; var down_payment1 = (principal1*down_payment_p1).toFixed(2); var down_payment2 = (principal2*down_payment_p2).toFixed(2); var down_payment3 = (principal3*down_payment_p3).toFixed(2); jQuery('input[name=down_payment1]').val(addCommas(down_payment1)); jQuery('input[name=down_payment2]').val(addCommas(down_payment2)); jQuery('input[name=down_payment3]').val(addCommas(down_payment3)); jQuery('input[name=loan_amount1]').val(addCommas((principal1 - down_payment1).toFixed(2))); jQuery('input[name=loan_amount2]').val(addCommas((principal2 - down_payment2).toFixed(2))); jQuery('input[name=loan_amount3]').val(addCommas((principal3 - down_payment3).toFixed(2))); var interest_rate1 = Number(jQuery('input[name=interest_rate1]').val().replace(/,/g,'))/100; var interest_rate2 = Number(jQuery('input[name=interest_rate2]').val().replace(/,/g,'))/100; var interest_rate3 = Number(jQuery('input[name=interest_rate3]').val().replace(/,/g,'))/100; var loan_amount1 = Number(jQuery('input[name=loan_amount1]').val().replace(/,/g,')); var loan_amount2 = Number(jQuery('input[name=loan_amount2]').val().replace(/,/g,')); var loan_amount3 = Number(jQuery('input[name=loan_amount3]').val().replace(/,/g,')); var payments_year1 = Number(jQuery('input[name=payments_year1]').val().replace(/,/g,')); var payments_year2 = Number(jQuery('input[name=payments_year2]').val().replace(/,/g,')); var payments_year3 = Number(jQuery('input[name=payments_year3]').val().replace(/,/g,')); var total_payment1 = Number(jQuery('input[name=total_payment1]').val().replace(/,/g,')); var total_payment2 = Number(jQuery('input[name=total_payment2]').val().replace(/,/g,')); var total_payment3 = Number(jQuery('input[name=total_payment3]').val().replace(/,/g,')); var loan_payment1 = -ExcelFormulas.PMT(interest_rate1/payments_year1,total_payment1,loan_amount1,0,0).toFixed(2) var loan_payment2 = -ExcelFormulas.PMT(interest_rate2/payments_year2,total_payment2,loan_amount2,0,0).toFixed(2) var loan_payment3 = -ExcelFormulas.PMT(interest_rate3/payments_year3,total_payment3,loan_amount3,0,0).toFixed(2) if (loan_payment1 && loan_payment1 != Infinity){ jQuery('input[name=loan_payment1]').val(addCommas(loan_payment1)); } if (loan_payment2 && loan_payment2 != Infinity){ jQuery('input[name=loan_payment2]').val(addCommas(loan_payment2)); } if (loan_payment3 && loan_payment3 != Infinity){ jQuery('input[name=loan_payment3]').val(addCommas(loan_payment3)); } //End of Financing //Closing Costs var lender_title_fees = Number(jQuery('input[name=lender_title_fees]').val().replace(/,/g,')); var prepaid_insurance = Number(jQuery('input[name=prepaid_insurance]').val().replace(/,/g,')); var escrowed_taxes = Number(jQuery('input[name=escrowed_taxes]').val().replace(/,/g,')); var inspections = Number(jQuery('input[name=inspections]').val().replace(/,/g,')); var appraisal = Number(jQuery('input[name=appraisal]').val().replace(/,/g,')); var other_costs = Number(jQuery('input[name=other_costs]').val().replace(/,/g,')); var seller_contributions = Number(jQuery('input[name=seller_contributions]').val().replace(/,/g,')); var total_closing_costs = (lender_title_fees+prepaid_insurance+escrowed_taxes+inspections+appraisal+other_costs)-seller_contributions; jQuery('input[name=total_closing_costs]').val(addCommas(total_closing_costs)); jQuery('input[name=closing_costs]').val(addCommas(total_closing_costs)); //End of Closing Costs //Cash out of Pocket var down_payment = Number(down_payment1)+Number(down_payment2)+Number(down_payment3); jQuery('input[name=down_payment]').val(addCommas(down_payment)); var repairs_make_ready = Number(jQuery('input[name=repairs_make_ready]').val().replace(/,/g,')); var total_cash_out_of_pocket = down_payment+total_closing_costs+repairs_make_ready; jQuery('input[name=total_cash_out_of_pocket]').val(addCommas(total_cash_out_of_pocket)); //End of Cash out of Pocket //Yearly Expenses var accounting_legal = Number(jQuery('input[name=accounting_legal]').val().replace(/,/g,')); var advertising = Number(jQuery('input[name=advertising]').val().replace(/,/g,')); var reserves = Number(jQuery('input[name=reserves]').val().replace(/,/g,')); var association_fees = Number(jQuery('input[name=association_fees]').val().replace(/,/g,')); var electricity = Number(jQuery('input[name=electricity]').val().replace(/,/g,')); var insurance = Number(jQuery('input[name=insurance]').val().replace(/,/g,')); var lawn_care = Number(jQuery('input[name=lawn_care]').val().replace(/,/g,')); var management_fees = Number(jQuery('input[name=management_fees]').val().replace(/,/g,')); var payroll = Number(jQuery('input[name=payroll]').val().replace(/,/g,')); var pest_control = Number(jQuery('input[name=pest_control]').val().replace(/,/g,')); var property_re_taxes = Number(jQuery('input[name=property_re_taxes]').val().replace(/,/g,')); var repairs = Number(jQuery('input[name=repairs]').val().replace(/,/g,')); var secretarial = Number(jQuery('input[name=secretarial]').val().replace(/,/g,')); var security = Number(jQuery('input[name=security]').val().replace(/,/g,')); var services = Number(jQuery('input[name=services]').val().replace(/,/g,')); var supplies = Number(jQuery('input[name=supplies]').val().replace(/,/g,')); var trash_removal = Number(jQuery('input[name=trash_removal]').val().replace(/,/g,')); var utilities = Number(jQuery('input[name=utilities]').val().replace(/,/g,')); var water_sewer = Number(jQuery('input[name=water_sewer]').val().replace(/,/g,')); var miscellaneous = Number(jQuery('input[name=miscellaneous]').val().replace(/,/g,')); var yearly_expenses = accounting_legal+advertising+reserves+association_fees+electricity+insurance+lawn_care+management_fees+payroll+pest_control+property_re_taxes+repairs+secretarial+security+services+supplies+trash_removal+utilities+water_sewer+miscellaneous; jQuery('input[name=yearly_expenses]').val(addCommas(yearly_expenses)); //End of Yearly Expenses //Income var monthly_rental_income = Number(jQuery('input[name=monthly_rental_income]').val().replace(/,/g,')); var other_operating_income = Number(jQuery('input[name=other_operating_income]').val().replace(/,/g,')); var gross_monthly_income = monthly_rental_income+other_operating_income; jQuery('input[name=gross_monthly_income]').val(addCommas(gross_monthly_income)); var vacancy_allowance = Number(jQuery('input[name=vacancy_allowance]').val().replace(/,/g,'))/100; var operating_income = (gross_monthly_income - (gross_monthly_income*vacancy_allowance)).toFixed(2); var rent_per_door = (operating_income/of_unit).toFixed(2); jQuery('input[name=operating_income]').val(addCommas(operating_income)); if (rent_per_door && rent_per_door != Infinity){ jQuery('input[name=rent_per_door]').val(addCommas(rent_per_door)); } //End of Income //Annual Property Financials var gross_income = Number(operating_income)*12; jQuery('input[name=gross_income]').val(addCommas(gross_income)); jQuery('input[name=expense]').val(addCommas(yearly_expenses)); var net_operating_income = (gross_income - yearly_expenses).toFixed(2); jQuery('input[name=net_operating_income]').val(addCommas(net_operating_income)); //End of Annual Property Financials //Monthly Operating Data var monthly_rents = (gross_income/12).toFixed(2); jQuery('input[name=monthly_rents]').val(addCommas(monthly_rents)); var monthly_expenses = (yearly_expenses/12).toFixed(2); jQuery('input[name=monthly_expenses]').val(addCommas(monthly_expenses)); var monthly_net_income = (monthly_rents - loan_payment1 - monthly_expenses).toFixed(2); jQuery('input[name=monthly_net_income]').val(addCommas(monthly_net_income)); //End of Monthly Operating Data //Year One Valuation var cap_rate = (net_operating_income/asking_price*100).toFixed(0); jQuery('input[name=cap_rate]').val(addCommas(cap_rate)); var after_repairs_market_value = Number(jQuery('input[name=after_repairs_market_value]').val().replace(/,/g,')); var unrealized_capital_gains = after_repairs_market_value - asking_price - repairs_make_ready; jQuery('input[name=unrealized_capital_gains]').val(addCommas(unrealized_capital_gains)); var return_capital_gains = (unrealized_capital_gains/total_cash_out_of_pocket*100).toFixed(0); jQuery('input[name=return_capital_gains]').val(addCommas(return_capital_gains)); var annual_cash_on_cash_return = (net_operating_income/total_cash_out_of_pocket*100).toFixed(0); jQuery('input[name=annual_cash_on_cash_return]').val(addCommas(annual_cash_on_cash_return)); //End of Year One Valuation } function addCommas(x) { var parts = x.toString().split('.'); parts[0] = parts[0].replace(/B(?=(d{3})+(?!d))/g, ','); return parts.join('.'); } jQuery('.MFECalculator input:not([readonly]):not(.no_commas)').keyup(function(){ jQuery(this).val(addCommas(jQuery(this).val().replace(/,/g,').replace(/,/g,'))); }); jQuery('.MFECalculator input:not([readonly]):not(.no_commas)').blur(function(){ calculate(); }); function printContent(el){ jQuery('.MFECalculator input').each(function(index,input){ jQuery(input).attr('value',jQuery(input).val()); }); jQuery('.MFECalculator select option:selected').attr('selected','selected'); var printwindow = window.open(','Calculator'); var printcontent = document.getElementById(el).innerHTML; printwindow.document.write('<html><head><title>http://www.rentalpassiveincome.com</title>'); printwindow.document.write('</head><body