Skip to content

Variance Reporting

Variance reporting is the explanation layer between planned cost and realized cost.

  • Where did the budget move?
  • Which systems or subsystems changed?
  • Which costs exceeded expectations?
  • Was the cause market, design, logic, execution, or decision?

Variance is reported dually:

Type Meaning
Provisional All entries — including unsubstantiated ones
Substantiated Only entries backed by a document, or by both an invoice number and a supplier

There is no hard block on unsubstantiated entries. They contribute to provisional variance totals but are clearly distinguished from substantiated amounts. The same evidence rule applies across cost control: unsubstantiated entries never count toward commitment consumption or cancellation guards, only toward display and variance totals. See Actual Costs.

A Variance Finding is a human-attributed explanation for a delta between budgeted and actual cost, linked to a specific cost group. Each finding includes:

  • Cause code — one of five enforced values: PRICE, QUANTITY, SCOPE, EXECUTION, DECISION
  • Note — optional free-text explanation. When AI-drafted, Darwin guards the language: it rejects overspend wording when the actuals are below the baseline and underspend wording when they are above it
  • Source entity — optional link to the entity believed responsible (module, material, labor, or expense)
  • Budget snapshot — budgeted, actual, and substantiated amounts are frozen at finding creation time so later edits cannot rewrite the finding’s story
Open → InLearning → Resolved
Status Meaning
Open Finding exists; no work request created yet
InLearning An active work request is linked to the finding
Resolved Resolution outcome and timestamp are set
Outcome Meaning
MODULE_UPDATED The relevant module was updated
ASSUMPTION_DOCUMENTED An estimating assumption was recorded or corrected
PRICING_PRACTICE_CHANGED Pricing approach was adjusted
ACCEPTED_VARIANCE Variance is accepted as a legitimate outcome

The Learning Queue surface provides a dedicated view of variance findings organized by status: Open, InLearning, and Resolved. Findings can be escalated into governed work requests with Category == Learning for assigned follow-up.

With commitments, variance can be drilled down as:

  1. Baseline → Commitment — procurement variance (did we buy at the planned price?)
  2. Commitment → Actual — execution variance (did final costs match the commitment?)
  3. Baseline → Actual — total project variance

Resolved findings feed per-module learning history: each module records its cause and outcome counts, and a learning-accuracy score shows how well its estimated contribution matched actual costs over time. Only substantiated actual costs are used for accuracy — unsupported entries make a data point ineligible, so substantiating actuals is what keeps the learning signal trustworthy.

Variance reporting is learning, not just control. When used well, it improves future module quality, pricing decisions, assumptions, and project planning discipline. Variance findings flow into the learning loop, connecting execution reality back to reusable cost logic.