Deterministic engine, no LLM in the math path
The AI layer is deliberately bounded. It can translate broker material into structured input fields with source quotes. Once those fields are set, the math path is pure TypeScript arithmetic. That means an analyst can review the formulas, rerun the same deal, and see identical output.
Pro forma construction
Revenue and expenses are built year by year. Vacancy is applied to gross potential income, property management and reserves scale with EGI, and each line compounds from the Year 1 assumption.
Sources and uses
Closing costs and origination fees are explicit. Debt is sized against purchase price, while the equity check funds the gap between total uses and loan proceeds.
Debt schedule
The base loan is a fixed-rate amortizing mortgage with a balloon at term. Optional mezzanine and refinance overlays are modeled separately, then rolled into blended DSCR and exit payoff logic.
Exit value
Exit value is based on forward NOI, not the trailing sale-year number. That reflects how buyers price the asset: they are underwriting next year's income.
Equity waterfall
The waterfall distributes operating cash and exit cash through return of capital, preferred return, catch-up tiers, and promote. Losing deals do not receive phantom preferred return.
IRR computation
Project IRR is solved from the equity cash-flow stream. The solver uses Newton-Raphson with a bracketing fallback so distressed and healthy deals both converge.
Returns decomposition
Underwrite separates the return story into yield, appreciation, leverage premium, equity buildup, paydown, and sponsor economics. Two identical IRRs can have very different risk profiles.
Sensitivity analysis
The sensitivity suite reruns the full engine under changed assumptions: tornado bars, exit-cap and rent-growth heat tables, hold-period curves, vacancy curves, rate curves, DSCR stress, and Monte Carlo.
Validation guards
Validation guards cover critical input errors, property-type-aware operating bands, lender thresholds, and cross-field consistency risks such as stacked leverage, refinance dependency, and double-growth bets.
Verdict and grade
The pursue/pass verdict is intentionally simple: clear the return threshold and maintain minimum lender safety. The grade is broader, scoring returns, MoIC, DSCR, leverage, cap arbitrage, and LP share.
What does and does not leave your browser
The engine runs client-side. Saved deals live in browser local storage. Share links encode deal data into the URL. The parser is the exception: if enabled, pasted source text is sent for extraction, then returned with source quotes.
Confidential Mode disables AI parsing and share flows for sensitive material while keeping manual underwriting fully usable.
Model boundaries
Underwrite is explicit about what the current engine does not model. Highly bespoke tax structures, unusual credit agreements, custom partnership terms, and enterprise data feeds still belong in analyst, counsel, or firm-specific review.
Read the model-boundary documentWorked example: Cherry Street
Cherry Street is the canonical regression anchor. It is the deal we use to detect engine drift because the numbers are broad enough to exercise operating build, debt service, exit value, waterfall, verdict, and memo output.