Live2024

Real Estate Calculator

Full amortization simulation for real investment decisions

Next.jsTypeScriptPostgreSQLDrizzleRecharts

Full 30-year simulation, open-source calculation engine, used for real investment decisions

Video Demo

I was evaluating real estate investments and every tool I found was either too simplified to trust with real money, or it showed results without enough detail for me to understand where the numbers came from. Vacancy rate, CapEx reserves, annual rent growth, capital improvement classification, the tax implications of a cash-out refinance — none of the free tools handled these correctly. I built what I needed.

The math is harder than it looks

Real estate calculations require a year-by-year simulation where multiple variables compound and interact in specific ways. The order of operations matters: when do you apply depreciation? How do capital improvements affect your cost basis? How does extra principal affect the amortization schedule? How does a cash-out refi change the equity picture going forward? Getting this right required a lot of research and careful testing against known outputs.

The calculation engine is open source because I think other developers would find it useful. It is a clean TypeScript implementation of the full simulation with no dependencies beyond the math itself.

What you can actually configure

Listing price, ARV, down payment, interest rate, rent with annual growth rate, vacancy percentage, extra principal payments, income tax rate, capital gains tax, renovation expenses with capital improvement classification, recurring fees (property tax, insurance, CapEx reserves, each configurable as annual or monthly with fixed or percentage-based annual increases), buying and selling closing costs. You get a full amortization schedule, tables showing key metrics over a 30-year horizon, and charts for ROI, cash flow, equity, and loan balance.

You can save investments to your account, compare multiple properties side by side, and share a specific analysis via URL. I still use it when I am evaluating properties. It has done its job.