Build Status — V6 — Slice 2C (May 2026)
Inherited from V4: Excel Live Model export with formula-driven Calc tab, VLOOKUP-based stamp duty + land tax across 8 states, Goal Seek instructions for RLV and three breakeven solves, full number formatting across all tabs, Investor Hurdle 1/2 inputs wired through to Investor Waterfall.
Inherited from V5:Monthly cashflow engine with per-category distribution curves (point / flat / front- & back-load / S-curve / custom). Drawdown-profiled interest with capitalisation, iterated to convergence per silo. Peak Debt KPI. 5-bucket construction draw curve override.
From V6 Slice 2A:Calendar-aware project schedule (start month + year, derived project duration), program-date inputs (acquisition / construction / rent / sales windows), per-lot sale-date and settlement-date columns, 5-bucket cost & revenue escalation profile with Y5 forward compounding and master ON/OFF switch (escalation distinct from the construction draw curve — escalation grows dollar amounts to a trigger date, the draw curve spreads an already-computed amount across construction months), Project XIRR + Equity XIRR KPI tiles, cashflow tab columns labelled with real month-year strings.
✓ NEW in V6 — Slice 2B: Three additions per the original V6 brief plus two follow-ups Josh requested. (1) Manual cashflow line items — up to 3 ad-hoc entries with label, category, amount, direction, trigger month, for one-off costs or receipts not covered by standard inputs. Outflows feed Total DevEx, inflows feed Total Revenue. Entered as dollars-at-trigger-month, no escalation applied. The monthly-drawdown debt walk picks them up automatically. (2) GST full mode — three-way selector: None / Margin scheme / Full mode. Convention: costs are entered ex-GST, sale prices inc-GST (matches standard developer practice — QS/consultant quotes are ex-GST, retail contract prices are inc-GST). Margin scheme: GST = max(0, (escalated sales − purchase) ÷ 11). Full mode: GST = escalated sales ÷ 11. No ITC reclaim line — GST is implicit in ex-GST cost figures. (3) Sensitivity tornado — new main tab; 7 axes (purchase ±10%, construction ±10%, sale prices ±10%, project rate ±10% relative, weekly rent ±20%, delay ±6 months, contingency 0%/10%); sorted by absolute NPAI swing; lazy-computed only when tab opened; Excel Sensitivity sheet exported alongside. (4) V4 closed-form interest removed — monthly-drawdown with capitalised interest is now the only path. The Excel Calc tab keeps the closed-form formula as a Goal Seek convenience; the React engine no longer offers it. (5) Test suite — 56 deterministic regression tests covering escalation maths, GST modes, manual lines, XIRR, sensitivity, breakevens, stamp duty per state, and end-to-end realistic project. Run via node test_v6.mjs.
Locked sanity numbers (all reproducible from the test suite):
V5-equivalent baseline (zero escalation, all lots @ M24, V5 timing): NPAI $113,811.71, TDC ex-escalation $1,575,000, holding $60,700 over 24 months, peak debt occurs near project end. Reproduces V5's monthly-drawdown number to the cent.
Both profiles [4/4/3/3/2] on baseline + lots @ M24: NPAI $450,099.25. Escalation factors hand-checked: f(M1) = 1.003333, f(M12) = 1.04, f(M24) = 1.0816, f(M26) = 1.087008, f(M72) = 1.193827, f(M120) = 1.193827 × 1.02⁴ — Y5 rate keeps compounding past 5 years.
GST modes (V5 timing, zero profiles, on the same baseline): None → NPAI $113,811.71 (no GST flow). Margin scheme → GST $227,272.73 = (4.5M − 2.0M) ÷ 11, NPAI −$113,461.01. Full mode → GST $409,090.91 = 4.5M ÷ 11, NPAI −$295,279.19. Full mode is the heaviest because there's no land-cost shield as in margin scheme; this matches Australian practice for new residential under standard treatment.
Sensitivity tornado on baseline: Sale Prices is the dominant driver at ±$432k NPAI per ±10% (≈ 5 lots × $900k × 10% × 96% net of commissions). Order: Sale Prices > Purchase Price > Construction > Delay > Contingency > Project Rate > Rent. Rent axis is zero in the default project because rentDuration = 0; tests confirm a non-zero swing once rent is enabled.
Realistic Perth project (rent runs M19→M30, both profiles 4/4/3/3/2, sale dates staggered): NPAI $31,199.88, Project XIRR 7.16%, peak debt < total cost. End-to-end smoke confirms full pipeline works.
✓ NEW in V6 — Slice 2C: Monte Carlo simulation. Multi-axis probabilistic stress test underneath the deterministic tornado on the Sensitivity tab. 500 / 1k / 5k / 10k iteration options; default 1,000 runs in ~250ms. Each iteration samples all seven drivers from independent distributions (triangular for continuous variables, discrete uniform for delay) and runs the engine once. Output: histogram of NPAI distribution, P10/P25/P50/P75/P90 percentiles for NPAI / Annual RoE / Project XIRR, plus two probability tiles — P(NPAI > 0) and P(RoE ≥ strategy hurdle). Deterministic seed (default 42) so same inputs reproduce same output. Distributions are skewed per typical residential development risk shape: construction can run +15% over but only -5% under; delay is 0 to +6 months (no early); contingency draw is 0× to 2× the input figure. Distributions are fully editable via a click-to-expand panel — each axis has an enable/disable checkbox (held at base value when off) and per-axis low/high inputs. A reset-to-defaults button restores the standard residential risk profile. Post-run "Assumed distributions for this run" table flags which axes were sampled vs held at base, so the reader can always see what was assumed. Caveat banner on the panel: P10/P90 reflect analyst assumptions, not market truth.
Deferred beyond Slice 2C:Formula-driven monthly Calc tab in Excel (kept as V4 closed-form for Goal Seek convenience by design — the iterative interest walk doesn't translate cleanly to inline formulas, would require enabling circular-reference iteration which most users don't have on). Foreign buyer surcharges. Off-the-plan / H&L pre-sale timing nuance beyond what saleDate / settlementDate split already enables. Non-creditable GST gross-up on cost cash flow in margin mode (currently user enters cost cash directly; if margin-scheme GST on costs is material, model it via a manual line item). Print/PDF view (two-page summary tab — discussed; can be added in a follow-up slice if needed).