Six frames. One real model.
What the deliverable actually looks like. Twenty-five tabs, forty-four thousand formulas, every cell traceable — for a fictional Singapore marketing agency built to specification.
Your model uses the same architecture, populated with your numbers. Same scenario engine, same checks register, same tie-out discipline. Different categories, different benchmarks, different story.
The model, before it runs a single number.
Title page, version, FY end, model start, term, denomination. The metadata that determines what every other tab assumes — set once, threaded through 25 tabs.
One page. Twelve months condensed.
YTD revenue, gross margin, EBITDA, cash. Four charts plus an auto-generated narrative that rewrites itself when scenarios or assumptions change. The five-second read the founder opens on Monday.
Thirty-six months. All three scenarios on one chart.
Revenue, gross margin, cost composition, cash trajectory, scenario cash, scenario EBITDA. Trends rows 159-161 bypass the active scenario so Base, Upside and Downside all render side-by-side regardless of toggle state.
One switch. Every downstream cell.
Scenarios!H8 sets the active scenario (1, 2 or 3). Cols J/K/L hold sensitivity values per driver row. Col I muxes via INDEX. Drivers consume the resolved value — downstream formulas stay clean. Forty-four thousand cells respond to one switch.
Where drivers become statements.
FS_M is the seven-thousand-formula aggregation hub: monthly P&L → BS → CF in one tab. Drivers never reference statements; statements never reference drivers. One-way dependency graph, every cell traceable.
The reason you trust the rest of the model.
Balance sheet ties to zero. Cash reconciles. Unmapped revenue and COGS = 0. Every error check returns 0 or the model is broken — and the Checks tab tells you which one and why. No silent errors.
Same architecture. Your numbers.
Two to three weeks. Pay-on-acceptance — you see it live before you transfer. The 90 days after that are when I sit alongside you running the model against real decisions.
→See the underlying spec
Tab inventory25 tabs in fixed order: Overview · Snapshot · Trends · Time · HIS · Budget · Rev_Exp · Capacity · WC · Assets · Capital · Corp_Tax · IS_Map · BS_Map · FS_M · FS_A · FS_12 · Summary · DashM · DashA · SU · Ratios · Scenarios · Lookups · Checks.
Module wiringDrivers never reference statements; statements never reference drivers. One-way dependency graph: input → driver → mapping → FS_M aggregation → output.
Scenario architectureSingle switch at Scenarios!H8 mux'd via INDEX(J:L, 1, $H$8). Sensitivity values live in cols J/K/L (Base/Upside/Downside); col I resolves the active value. Drivers consume col I — downstream stays clean.