Ready Move Vs Under Construction Property

Ready-to-Move vs Under-Construction — Property Comparison & EMI + Rental Calculator

Compare Ready-to-Move vs Under-Construction

Enter prices, loan details and expected monthly rent. Select years to possession for under-construction and we'll calculate EMIs, total interest, rental income and give a simple verdict.

Inputs

Down payment percent of property price (e.g., 20)
Assumptions: EMI for under-construction starts at possession (common simplified assumption). You can change values above to reflect alternative real-world schedules.

Results

Click Calculate & Compare to see EMIs, interest and verdict here.
Tip: This is a simplified financial comparison tool for quick decisions. For legal/tax advice and bank-rate specific calculations consult a financial advisor or your lender.
'; }); function runCalc(){ const priceRTM = Number(document.getElementById('price_rtm').value) || 0; const priceUC = Number(document.getElementById('price_uc').value) || 0; const downPct = Number(document.getElementById('down_pct').value)/100.0 || 0; const annualRate = Number(document.getElementById('rate').value) || 0; const tenureYears = Number(document.getElementById('tenure_years').value) || 0; const posYears = Number(document.getElementById('pos_years').value) || 0; const monthlyRent = Number(document.getElementById('monthly_rent').value) || 0; const rentWhileWait = Number(document.getElementById('rent_while_wait').value) || 0; const downRTM = priceRTM * downPct; const loanRTM = Math.max(0, priceRTM - downRTM); const loanUC = Math.max(0, priceUC - (priceUC * downPct)); const emiRTM = calcEMI(loanRTM, annualRate, tenureYears); const emiUC = calcEMI(loanUC, annualRate, tenureYears); const monthsPoss = Math.round(posYears*12); const monthsConsiderRTM = Math.min(emiRTM.months, monthsPoss); function interestPaidFirstN(principal, annualRatePct, years, firstNmonths){ if(firstNmonths<=0) return 0; let monthlyRate = (annualRatePct/100)/12.0; let n = Math.round(years*12); if(monthlyRate === 0){ return 0; } let pow = Math.pow(1+monthlyRate, n); let emi = principal * monthlyRate * pow / (pow - 1); let balance = principal; let totalInterest = 0; for(let m=1;m<=firstNmonths;m++){ let interest = balance * monthlyRate; let principalPaid = emi - interest; balance = balance - principalPaid; totalInterest += interest; if(balance <= 0) break; } return totalInterest; } const interestRTM_firstPeriod = interestPaidFirstN(loanRTM, annualRate, tenureYears, monthsConsiderRTM); const interestUC_firstPeriod = 0; const rentIncomeRTM_period = monthlyRent * monthsPoss; const rentPaidUC_period = rentWhileWait * monthsPoss; const totalInterestRTM = emiRTM.totalInterest; const totalInterestUC = emiUC.totalInterest; const netCostRTM = totalInterestRTM - rentIncomeRTM_period; const netCostUC = totalInterestUC + rentPaidUC_period; const emiRTM_month = emiRTM.emi; const emiUC_month = emiUC.emi; let html = ''; html += '

Loan & EMI summary

'; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += '
Ready-to-MoveUnder-Construction
Property price'+money(priceRTM)+''+money(priceUC)+'
Down payment'+money(downRTM)+''+money(priceUC*downPct)+'
Loan principal'+money(loanRTM)+''+money(loanUC)+'
EMI (monthly)'+money(Math.round(emiRTM_month))+''+money(Math.round(emiUC_month))+'
Loan tenure (years)'+tenureYears+''+tenureYears+'
Total interest (entire tenure)'+money(Math.round(totalInterestRTM))+''+money(Math.round(totalInterestUC))+'
'; html += '

During the waiting / possession period ('+posYears+' years)

'; html += ''; html += ''; html += ''; html += ''; html += '
Interest paid in this period'+money(Math.round(interestRTM_firstPeriod))+''+money(Math.round(interestUC_firstPeriod))+'
Rental income received'+money(Math.round(rentIncomeRTM_period))+''+money(0)+'
Rent you pay while waiting'+money(0)+''+money(Math.round(rentPaidUC_period))+'
'; html += '

Net cost comparison (lower is better)

'; html += ''; html += ''; html += '
Net cost (Total interest - Rental income + Rent paid while waiting)'+money(Math.round(netCostRTM))+''+money(Math.round(netCostUC))+'
'; html += '
'; if(netCostRTM === netCostUC){ html += 'Both options have essentially the same net cost based on the inputs.'; }else if(netCostRTM < netCostUC){ html += 'Ready-to-Move looks financially better: immediate rental income reduces net cost.'; }else{ html += 'Under-Construction looks financially better: even after waiting rent, total interest+cost is lower.'; } html += '
'; document.getElementById('resultsArea').innerHTML = html; }