Concepts

Recurrence: balances that roll forward

A dataseries can refer to its own value in an earlier period — the roll-forward at the heart of budgets, forecasts and three-statement models. In Axmo you write the relationship once and it holds across the whole model.

Almost every financial model has a number that depends on its own past. A cash balance is last month's balance plus this month's flows. A loan's opening balance is last period's closing balance. Retained earnings accumulate. This pattern — this period equals last period plus what changed — is called a roll-forward, and it's the heart of budgets, forecasts, and three-statement models.

In a plain spreadsheet, roll-forwards are copied rather than written. You put the relationship in one cell — this month's balance is last month's, plus this month's flows — and fill it across the row, so the model becomes a chain of near-identical formulas that holds only while nobody inserts a column or deletes a period. Excel 365's SCAN does better, building the column in one formula that survives inserted rows. But make the flows depend on the balance — interest on it, or a floor under it — and both turn circular. That is where a spreadsheet stops.

Writing a roll-forward

In Axmo, you write the roll-forward directly. A dataseries can refer to its own value in the previous period:

Formula
Balance = Balance[Month[-1]] + NetCashFlow

Balance[Month[-1]] means "the Balance one month back." Axmo sees that Balance depends on its own earlier value, recognises the pattern as a valid recurrence, and computes it period by period — January, then February from January's result, and on down the timeline. No circular-reference error, no fragile copy-down.

The opening balance

Every roll-forward has to start somewhere, and Axmo will not decide where for you: with no opening figure the first period has nothing to read, and the whole column comes out null rather than starting from zero. A sequential dimension like Time can carry a boundary element called BEFORE — the position immediately ahead of the first period, which is where an opening balance belongs. Put 1 000 there and January computes from it.

BEFOREJanFebMarApr
NetCashFlow+100+20−35+50
Balance1 0001 1001 1201 0851 135

Richer roll-forwards

You can build richer roll-forwards the same way. An opening and closing balance that reference each other; interest charged on last period's balance; a debt schedule that amortises over time — all of it is just dataseries referring to earlier periods, and to one another. Axmo works out the order to calculate them so the numbers come out right.

A spreadsheet can produce a single rolling balance, several ways. What it cannot do is let the balance take part in its own calculation, or hold that relationship once across every dimension of the model. Power Pivot cannot project one at all — its opening- and closing-balance functions read a balance that is already in your data. That is the difference: you're not describing data you already have, you're building the model that produces it.