01

One number cannot describe the outcome

Remaining cost, schedule, billing and contract exposure change together. The model may therefore need to estimate remaining EAC, time to a margin breach, the type of breach and the uncertainty around each forecast.

The operator needs to know which outcomes are plausible, which assumptions drive them and when the opportunity to intervene closes.

02

Give each model a defined job

Hierarchical models can share evidence across related projects without treating them as identical. Survival and competing-risk models represent timing and different failure modes. Boosted trees or sequence models can capture nonlinear operating signals. An ensemble is warranted only when a fixed comparison shows that it improves the decision after calibration and constraints.

A sophisticated name proves nothing. A candidate model earns influence only if it improves the predeclared decision measure on records it has not seen.

03

Carry uncertainty into the choice

Optimisation should retain the uncertainty in the forecast. Depending on the decision, that may require conservative bounds, scenario comparison, abstention or a recommendation to gather more evidence.

The practical test is whether the model changes the selected intervention or capacity allocation in representative cases while every hard constraint still holds.

Sources

References

scikit-survival documentationStan user guide: survival models