Mastia.Consulting
Service S.02

Financial modelling and model audit

Models built to be operated by someone else, because that is the only test that matters.

The problem with most models

Most financial models are written to be finished rather than used. They work on the day they are delivered, in the hands of the person who built them, for the exact question that was asked. Three months later somebody needs to change one assumption and nobody dares touch the file.

That is a design failure. The modelling was usually fine. A model only its author can operate has failed at the thing it was for.

The test we apply

Before delivery, someone who has never opened the file changes a headline assumption and traces the effect to the outputs, unaided. If they cannot, the model is not finished.

Inside a model

What the work looks like.

An assumption, a formula, a decision. This fictional extract shows how they connect and where we would focus a review.

Explore the figures in the model
Illustrative spreadsheet showing revenue, costs, cash flow and debt in years 6 to 11. Year 8 is highlighted: maintenance of €0.5m reduces DSCR to 1.23x.View the full-size image ↗
Illustrative extract · Years 6–11 of a 15-year model. Fictional data calculated by this website’s model engine.
  1. 01

    Find the assumptions.

    Prices, costs and the contract term make the starting point visible.

  2. 02

    Follow the calculations.

    From revenue to available cash, and from cash to debt service.

  3. 03

    Understand the review.

    Identifying the tight year and its cause helps decide what to examine next.

The work

Where a model engagement starts

01

Build

A model from a blank sheet, sized to the decision rather than to the number of tabs anyone expects to see.

02

Rebuild

An inherited model nobody trusts, rebuilt to the standard, with a reconciliation showing every difference and why it exists.

03

Audit

An independent review of someone else's model, with findings ranked by what they would cost if left alone.

Model audit

What a review looks for

Two lists. The first is spreadsheet integrity, which is where the unbounded risks live. The second is transaction logic, which is where the arguments happen.

Audit coverageIntegrity first, then logic
AreaWhat it looks likeWhy it matters
Row consistencyOne period in a twenty-five-year row differs from its neighboursInvisible and unbounded. The defect most likely to be material and least likely to be found by reading
Structural integrityCircularity, an assumption hard-coded inside a formula, broken linksSilent divergence the moment an assumption changes
ReconciliationBalance sheet balances, cash flow ties to the movement in cashA rounding plug that has become material makes the statements tie for the wrong reason
Coverage definitionsDSCR defined one way on the summary sheet and another in the calculationHeadroom overstated wherever the looser definition is used
IndexationInflation applied off the wrong base yearCompounds silently across the whole term
Sensitivity mechanicsA scenario switch that changes revenue but not the cost baseSensitivities that understate the downside, which is the only direction that matters
Tax and timingLoss carry-forwards, depreciation on book rather than tax life, payment lagsMoves CFADS in the years the covenant is tightest
DegradationOutput degradation compounded on nameplate rather than on prior-year outputUnderstates the decline over a twenty-five-year term
Debt mechanicsSculpting convergence, drawdown logic, day count and stub period at first drawdown, DSRA look-forward windowChanges minimum DSCR at exactly the point the covenant is tested
Solver stalenessAn iteration block solved against inputs that have since changedEvery check row reads pass while the answer is stale

Findings arrive as a ranked list with the effect of each one on the numbers that matter, not as a spreadsheet of every cosmetic inconsistency in the file. The point is to know what to fix first.

Next step

Have it read before it carries the decision

If a real commitment depends on the file and nobody independent has read it, that is usually reason enough.