Variance reports compare actual to budget after the money is spent. That is an explanation, not a decision. By the time a code shows red, the concrete is poured and the invoice is approved.
Forty-one per cent of the variance pool surfaces only at closeout. Most of that was always going to happen — the share a stage-level check could have caught before the commitment is the claim, and it is deliberately small.
The second cost is not in the variance at all. Cost-to-complete on $52.9M of work in process runs 2.4% off, and every decision taken on that number is taken on a figure wrong by more than the margin it is protecting.
The model fires a variance check at the stage that produced it, and attaches every forecast's own error history to the forecast, so a number arrives with its confidence rather than without one.
Visible once the job is finished. Mostly real, and a quarter of it preventable at the stage.
Decisions on a forecast off by more than the margin. The cost is in the decision, not in the error.
Still carrying last year's awarded rate. Priced by the rate-drift model and credited there.
Held against codes with no overrun history. Small, immediate, and nobody asks for it.
The rest of this model — the data sets it runs on, the cause split, the working behind the reference figure and a sample output — goes out by email. Two fields, nothing else.