Inflation-Protected Real Estate Investment Planner
Inflation-Protected Real Estate Investment Analysis
Enter all details and click "Analyze Investment" to see projections.
CRITICAL NOTES & DISCLAIMERS:
- ILLUSTRATIVE ESTIMATES ONLY: This calculator provides simplified financial projections based on your inputs and assumptions. Actual market conditions, returns, expenses, and tax implications can vary significantly.
- AVERAGE RATES ASSUMED: Investment returns, inflation, appreciation, and rent/expense increases are modeled as constant annual averages. Real-world performance is volatile. Sequence of returns risk is not modeled.
- TAXES NOT FULLY MODELED: This tool does not calculate income tax on rental profits or capital gains tax upon sale. These can significantly impact net returns.
- SIMPLIFIED EXPENSES: Does not account for all potential capital expenditures (e.g., roof replacement) beyond regular maintenance unless factored into your inputs.
- NOT FINANCIAL ADVICE: This tool is for informational and educational purposes only. It does NOT constitute investment, financial, legal, or tax advice. You MUST consult with qualified professionals before making any investment decisions.
Total Return on Initial Outlay (Nominal, Pre-tax): ${formatCurrency(totalNominalReturnOnOutlay)} (${simpleNominalRoi.toFixed(1)}%)
Total Return on Initial Outlay (Real, Pre-tax, in today's dollars): ${formatCurrency(totalRealReturnOnOutlay)} (${simpleRealRoi.toFixed(1)}%)
`; notesContainerEl.style.display = 'block'; downloadPdfBtn.style.display = 'block'; } function formatCurrency(value) { return `$${(value || 0).toLocaleString(undefined, {minimumFractionDigits:0, maximumFractionDigits:0})}`; } downloadPdfBtn?.addEventListener('click', function () { const { jsPDF } = window.jspdf; const pdfOutputArea = document.getElementById('iprePdfOutputArea'); if (!pdfOutputArea || summaryMetricsEl.innerHTML.includes("Enter all details")) { alert('Please analyze the investment first before downloading PDF.'); return; } document.getElementById('iprepNotesContainer').style.display = 'block'; document.getElementById('iprepInputSummaryForPdf').style.display = 'block'; html2canvas(pdfOutputArea, { scale: 1.1, useCORS: true, backgroundColor: '#ffffff', windowWidth: pdfOutputArea.scrollWidth, windowHeight: pdfOutputArea.scrollHeight }) .then(canvas => { const imgData = canvas.toDataURL('image/jpeg', 0.85); const pdf = new jsPDF({ orientation: 'landscape', unit: 'pt', format: 'a3' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const pdfHeight = pdf.internal.pageSize.getHeight(); const margin = 25; let contentWidth = pdfWidth - 2 * margin; let contentHeight = pdfHeight - 2 * margin; const canvasWidth = canvas.width; const canvasHeight = canvas.height; let imgWidth = canvasWidth; let imgHeight = canvasHeight; let ratio = imgWidth / imgHeight; if (imgWidth > contentWidth) { imgWidth = contentWidth; imgHeight = imgWidth / ratio; } if (imgHeight > contentHeight) { imgHeight = contentHeight; imgWidth = imgHeight * ratio; } const x = (pdfWidth - imgWidth) / 2; const y = (pdfHeight - imgHeight) / 2; pdf.addImage(imgData, 'JPEG', x, y, imgWidth, imgHeight, undefined, 'MEDIUM'); pdf.save('Inflation_Protected_RE_Analysis.pdf'); }) .catch(err => { console.error("Error generating PDF:", err); alert("Error generating PDF. See console for details."); }); }); function escapeHtml(unsafe) { if (typeof unsafe !== 'string') return unsafe === undefined || unsafe === null ? '' : String(unsafe); return unsafe.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'"); } switchTab('generalTab'); });