Modelling the Three Statements
Income-statement lines are flows the ML models can forecast directly. Balance-sheet and cash-flow lines are different: they are connected across time — a balance accumulates its flows, and cash-flow lines are the period-to-period change of balances. Forecasting each line independently would give you statements that don't tie. Galdera instead lets you declare those relationships, and derives the connected lines so that every stock's change equals its flows, every period.
Three ingredients, in order:
1. Mark your stocks
On the Targets page, set the Type toggle to Stock on every balance — PP&E, Inventory, Debt, Cash. This makes quarters and years display the period-end balance rather than a sum. See Flows and stocks.
2. Define cross-period metrics where you need drivers
Ratios that drive reconstruction are ordinary metrics, built with time shapes. A depreciation rate, for instance: D&A ÷ previous-period PP&E. The formula builder's time-shape menu (previous period, trailing sum, year to date…) is what makes these expressible.
3. Assign strategies in the version config
In the version's measure table, give each statement line the strategy that matches how it behaves:
- Flows the business controls or the model can learn — Independent (ML), or ingested plans.
- Flows best explained by a ratio — Dependent (via Metric) on a driver metric.
- Stocks — Roll forward: last actual balance plus signed flow terms.
- Lines that are a formula of other lines — Derived, with previous-period references allowed.
A worked example: PP&E, Capex, and D&A
The classic triangle, using only the pieces above:
| Line | Strategy | Definition |
|---|---|---|
| Capex | Independent | forecast from its own history |
| PP&E (Stock) | Roll forward | last actual + Capex − D&A |
| Depreciation rate (metric) | — | D&A ÷ previous-period PP&E |
| D&A | Dependent (via Metric) | reconstructed from the forecast rate × previous-period PP&E |
The run forecasts capex and the depreciation rate, then walks forward period by period: each month's D&A comes from the rate and last month's PP&E, and PP&E rolls forward with that month's capex and D&A. The result: PP&E's movement equals its flows exactly, so the P&L's depreciation, the balance sheet's asset line, and the cash-flow statement's capex all tie.
The same pattern covers the other statement mechanics — Inventory rolling forward with change-in-inventory, Debt with drawdowns and repayments, interest expense driven by an average-rate metric on previous-period debt.
What articulation guarantees — and what stays yours
The guarantee is per line: every stock you roll forward or derive always equals its own flows, period by period, including after an overlay runs. That is enforced by construction, not something you check by hand.
Galdera does not check that your whole balance sheet balances.
Overlays on a three-statement model
Adjust the drivers, not the derived lines: a capex overlay flows through to PP&E and downstream lines when the overlay runs. Derived and roll-forward lines can't be targeted by overlays directly — an asserted PP&E with unchanged capex would break the very consistency the setup provides. Which lines you keep as drivers is a per-version choice: it is the choice of what's adjustable.
Things the configuration checks for you
- Anchors: a roll-forward stock needs a starting balance in your actuals; the strategy pane shows anchor coverage per slice.
- Direction: a loop where every reference is same-period ("D&A from PP&E, PP&E from D&A, both this month") is rejected at save with the loop named — cross-period loops are fine, that's the mechanism working.
- At least one Independent target must remain — the run needs something for the models to forecast.