Optional hotelOps block activates only on Hotel deals. When set, the engine deducts brand fees (royalty + marketing + central reservations), management fees, and FF&E reserves as three separate below-EGI lines, each sized as a percent of EGI per institutional convention. Cherry Street and non-hotel deals stay byte-identical. Closes one of the biggest 'one-shoe-fits-all' items on the Hotel section of /beyond-phase-1; lenders and brand counterparties expect these obligations surfaced rather than buried in generic OpEx.
What shipped, and when.
A day-by-day record of what landed in Underwrite, kept by hand. Page 21 of 23.
Want to verify? The six files the decision depends on are rendered from the live source at /methodology/engine.
Filter by engine, UI, AI, ops, marketing or fixes.
Monte Carlo, Deal Strength composite score, sensitivity curves, break-even cushions, risk-adjusted returns, tenant concentration, hotel ops overlay, GP coinvest sweep, debt sizing optimizer, NOI decomp, a below-NOI leasing-capex parser, and 15 more analytics. The day the memo went from 'pro forma + waterfall' to 'institutional IC packet.'
Optional gpCoinvestPct on the waterfall splits the equity check between LP and GP, then produces standalone IRR / MoIC streams for each. Cherry Street + 10% GP coinvest produces LP IRR 13.91% / 2.24x MoIC and GP IRR 24.83% / 4.19x MoIC against the 15.34% project IRR, the textbook 'promote amplifies GP coinvest' pattern every IC committee expects to see when the sponsor co-invests alongside the LP. Adds a new Inputs panel field and Returns Summary block when coinvest > 0.
New section: side-by-side comparison of project IRR, MoIC, min DSCR, verdict, and Δ IRR vs base across every stress scenario applicable to the current property type. Reads at a glance: a deal that holds verdict PURSUE under recession AND rate spike is more institutionally durable than one that only clears the base case.
Standard IRR implicitly assumes interim distributions compound at the IRR itself, unrealistic for double-digit returns. MIRR uses an explicit reinvestment rate (default: the pref rate, an LP-conservative proxy) and a finance rate (also pref). For Cherry Street's 15.34% IRR with an 8% pref, MIRR lands at 14.40%, a 94-bps gap that surfaces the 'IRR overstates returns when distributions can't compound at the deal rate' effect every IC analyst is taught. New row in the Returns Summary table; canonical locked in regression.
New IC memo section: sweeps the hold period from 3 to 10 years and re-runs the full deterministic DCF at each point (matching debt term to hold so it's a clean comparison). Surfaces project IRR and MoIC at every hold year, flags the IRR-maximizing optimum, and shows the delta from current. Cherry Street's pattern: IRR peaks at a 3-year flip (17.4%) but MoIC compounds from 1.58x at year 3 to 3.20x at year 10. Lets the IC ask 'are we over- or under-holding?' against the deal's own math.
New IC memo section: re-runs the full deterministic DCF at LTV = 0% / 25% / 50% / 60% / 65% / 70% / 75% / 80% and surfaces project IRR, MoIC, min DSCR, lender feasibility (DSCR ≥ 1.25x), and a callout for the optimal feasible LTV with the leverage premium it produces. Cherry Street's current 65% LTV produces 15.3% IRR; the optimal 75% LTV would produce 17.6% (a 731 bps premium over the unlevered 10.3%), so Cherry Street is actually under-levered relative to its own math.
Each tenant lease can now carry a downtimeMonths field, the vacant period between this lease expiring and the next lease commencing at market. Engine applies it at whole-year resolution, zero-renting the rollover year and pushing the re-lease commencement (with its TI/LC and free rent) one year forward. Closes the last item on the office /beyond-phase-1 rent-roll TODO. Typical institutional ranges baked into the AI parser hints: office 6-12mo, retail 3-9mo, industrial 4-8mo.
New section: per-tier hurdle dollars, LP/GP split percentages, and LP/GP dollar share for each of the 4 tiers, plus a totals row. Pro Forma table also gains 'Debt Service' (senior + mezz when present) and 'Equity CF' rows so the IC can read income → debt service → equity flow on one table. Cash-on-Cash row shows per-year equity yield.
New section on the IC memo: 1,000 trials sampling rent growth (±200 bps), exit cap (-50 bps to +100 bps), and vacancy (base to 2× base) from triangular distributions, with the full deterministic DCF re-running on each trial. Output: P10/P25/P50/P75/P90 IRR percentiles, mean, dispersion (stdev), histogram of the distribution, and hit-rate probabilities vs the 15% and 12% thresholds. Seeded Mulberry32 PRNG keeps the trial cloud byte-identical across reloads. Canonical Cherry Street values locked in regression.
Engine fix. Earlier versions folded TI/LC into NOI, which understated DSCR on rent-roll deals: a lender sizing on Y1 DSCR was seeing operating income already net of leasing capex, but institutional capital sources, sponsor models and credit committee memos test DSCR on NOI proper. Pro Forma table now shows Leasing Capex as a separate below-NOI line with 'Cash Flow After Capex' breakout; xlsx PRO_FORMA sheet matches. Cherry Street is byte-identical because it has no rent roll; Pine Tower and rent-roll deals now show institutionally correct, higher DSCR.
- engine
Optional value-add / ground-up overlay. Engine linearly interpolates vacancy from a higher lease-up start rate down to the stabilized rate over leaseUpYears. Residential and commercial curve separately. Validation guards for inverted vacancy curves, lease-up > 5 years, and lease-up exceeding hold period.
Each tenant lease can now carry freeRentMonths (proportional rent abatement at lease commencement) and tiLcPerSF (one-time capex deducted from NOI in each lease-start year, including re-leases on rollover). Engine, validation, IC memo table, Excel TENANT_ROLL sheet all updated.
Add / edit / remove tenants directly in the inputs panel. Each tenant card has 8 fields (name, SF, base rent, escalator, term, start year, free rent, TI/LC). The engine's per-tenant revenue build activates automatically when the first tenant is added.
Office / Retail / Industrial deals can now be modeled tenant-by-tenant. Engine builds year-by-year retail revenue from the per-tenant schedule: each tenant compounds rent at its own escalator while in-term, re-leases at market rate when leases roll mid-hold. Closes the biggest item on /beyond-phase-1.
- marketing
New example deal on /methodology/examples demonstrating the full rent roll feature: 4 tenants, mixed lease terms, escalators, free rent, and TI/LC capex on rollover. Click 'Open in tool' to see the per-tenant editing UI; 'View memo' to see the rent roll table.