Earned value without optimism: baselines, evidenced progress and cited narratives
Baselinecast locks baselines, captures attested progress, computes CPI/SPI deterministically, and drafts variance narratives that must cite facts.
Month-end starts the same way on too many mid-market jobs. The schedule export lands from Primavera P6 or Microsoft Project. Cost actuals arrive in a different Excel cut of the WBS. Someone refreshes the Power BI pack that the portfolio office asked for six months ago. Then the fight begins: which percent complete is “right,” who typed it, and why CPI and SPI already disagree with what the job trailer said on Friday.
The pack is due upstairs by noon. Controllers reconcile WBS codes by hand. A superintendent’s optimism becomes the progress column. Variance commentary is written from memory and last month’s language. By the time the report leaves, nobody can name the baseline version the indices were measured against — and everyone knows that if payment or audit asks for provenance, the answer is a shared drive and a shrug.
That is not a dashboard problem. It is a controls problem: no approved baseline lock, progress without evidence, and narratives that float free of the numbers.
The progress column nobody can defend
Practical earned value for mid-market work is not mysterious. Planned Value, Earned Value and Actual Cost. Cost Performance Index and Schedule Performance Index. Enough structure to tell whether the period earned what it spent and whether the work is where the plan said it should be. You do not need full ANSI/EIA-748 ceremony on day one to make those five numbers honest. You do need a rule about where percent complete comes from.
On most jobs that rule is broken. Progress percent is typed. It is negotiated in a Friday call. It is rounded to make the curve look continuous. It is copied from last period with a small uplift “because we poured.” None of that is evil intent. It is the pressure of a monthly pack with incomplete quantity sheets, late cost cuts and a schedule that still carries activities nobody has surveyed. The cost controls lead knows the index will move when the next cost feed lands. The project controls manager knows the SPI will look better if someone bumps three activities by five points. The pack still ships.
Optimism is not a metric. It is a claim without attestation. Until progress is captured against evidence — quantity installed, milestone certificate, survey, or a field fact from the execution system — EV is a story written in a percentage cell.
What the AI demo gets wrong
Vendors have noticed the fight. The pitch is an “AI insights” surface on top of the same P6-plus-Excel stack: charts that explain variance in fluent paragraphs, forecasts that sound decisive, and sometimes a model that fills missing percent complete so the curve never has gaps.
That is exactly what a Cost Controls Lead should reject.
A language model must never invent percent complete. Not as a suggestion that looks like a fact. Not as a “likely” fill that disappears into the EV calculation. Not as a smooth-over for activities with no evidence this period. If progress is ungrounded, the system should mark it ungrounded — visibly — rather than silently complete the curve. Silent fill is how unsupported progress claims reach payment applications and audit binders. Fluent narrative over invented completion is worse than a blank: it launders optimism into something that looks like analysis.
Dashboards that nobody trusts are already common. An AI layer that invents the missing inputs does not create trust. It accelerates the production of a pack that still cannot survive a single “show me the evidence” question from commercial or from the client’s QS.
Practical EVM without the ceremony tax
Mid-market GCs and heavy-civil teams often stall on earned value because the literature starts at full EIA-748 formality: integrated change control boards, formal CAM accountability, complete work-package dictionaries before the first pour. That ceremony has a place on mega-programs. It is the wrong gate for a controls lead who already runs P6, already posts cost, and already owes a monthly pack that executives will use for cash and claims posture.
What they need first is a closed loop for one period:
- A performance measurement baseline that is approved and versioned — the unit of record for the period, not “whichever .xer was open.”
- Progress that enters only through attested capture with provenance.
- PV, EV and AC computed by fixed formula identity from those closed inputs.
- CPI and SPI that recompute the same way every time the same fact pack is loaded.
- Variance text that is allowed to draft only from that closed pack, and that must cite it.
That is practical EVM. It does not pretend the organization has completed a full standards implementation. It does pretend that indices mean something only when baseline, progress and cost are locked to the same period identity.
The approved baseline is the unit of record
Without a named, approved baseline version, every argument about SPI is an argument about which plan you meant. Schedule files drift. Rebaselines happen in meetings and never in the system of record. Cost codes get remapped mid-job. The Power BI model still plots a curve.
The control that matters is simple: period metrics bind to an approved baseline version. Change the baseline, and you approve a new version — you do not silently overwrite the one last month’s pack used. When someone asks “against what?”, the answer is a version identity, not a filename in a mailbox.
That baseline lock is where Baselinecast earns its name. It sits in the Project Controls & EVM family on the Atlas: not as another pretty pack generator, but as the place where the approved baseline version, evidenced progress, deterministic indices and cited period narrative become one artifact. Sibling applications keep their lanes. Crewspan owns field execution and coordination facts. Quantspan owns estimating and take-off. Awardbind owns commercial instruments. Baselinecast does not run the job trailer and does not price the bid. It owns the trusted period pack.
Progress only through evidence
In Baselinecast, progress does not enter as a free-typed optimism column. It enters through ProgressCapture: attested progress with evidence attached — quantity, milestone certificate, survey, or a Crewspan field fact when the execution system supplies one. Who attested, against which activities or control accounts, with what supporting facts — that provenance is part of the record.
The controller’s morning path is concrete: baseline list and approval so the period binds to a frozen version; a progress capture inbox where Crewspan quantity and milestone facts land for accept or reject — never auto-written into EV; actual costs reconciled with native source keys; an EVM tower that shows CPI/SPI with formula identity and source-row links; a variance narrative composer that seals a fact pack before any draft; period packs that freeze metrics, narrative and exports together. Any percent-complete suggestion headed back toward P6 stays advisory until attested as a ProgressCapture. Exports without a PeriodPack id are labelled unofficial so Power BI cannot present a second truth.
If evidence is missing, EV for that slice stays ungrounded and is marked as such. The system does not backfill a model guess so the portfolio chart looks complete. Controllers can see the hole. Commercial can see the hole. That honesty is the point. Unsupported progress claims are reduced at payment and at audit because the pack never pretended the hole was filled.
Models stay out of ProgressCapture’s truth path. They do not propose a percent that becomes EV. They do not “estimate completion from photos” into the index without a human attestation path that leaves evidence on the record. The hammer stays simple: inventing percent complete is a controls failure, whether a person typed it from hope or a model completed it from pattern.
Same fact pack, same numbers
Once the baseline version is fixed and ProgressCapture is closed for the period, PV, EV and AC compute by formula identity. CPI and SPI follow. There is no AI override of the indices. There is no analyst “adjustment” that changes EV without changing the underlying attested progress. Reload the closed inputs; get the same numbers.
That determinism is what makes a period pack defensible. Controllers already know how to calculate earned value. What they lack is a system that refuses to let the narrative and the indices drift apart, and that refuses to let missing progress become invented progress. Formula identity is not a feature for AI people. It is the minimum a Project Controls Manager asks of any tool that will sit between the job and the board.
Narratives that cite or die
The monthly fight is not only about the indices. It is about the paragraph that explains them. Last month’s language gets reused. Someone writes “productivity below plan due to weather and access” without tying it to the activities that actually moved EV, or to the cost codes that moved AC. The pack sounds professional. The audit trail is empty.
Baselinecast’s use of AI is narrow on purpose. From a closed fact pack — baseline deltas, evidenced progress, deterministic indices, and linked field or commercial facts where integrated — the model may draft variance narrative. Controllers edit and approve. Every sentence must cite the fact pack. Uncited sentences are rejected before the pack can close.
That is the opposite of “AI insights.” The model shortens write-up time. It does not invent completion, recompute EV, or paper over ungrounded slices with confident prose. If a claim cannot point at a fact in the pack, it does not ship. Human authority stays on approval; the gate on citation is mechanical.
Freeze the period or keep fighting forever
When the period closes, the pack becomes immutable: approved baseline version, ProgressCapture evidence, computed indices and cited narrative as one PeriodPack. Amendments are a new versioned cycle, not a quiet rewrite of what already went upstairs. Immutability is what turns “time to trusted period pack” from a slogan into an operational metric. You measure how long it took to lock evidence and close — not how long it took to make the charts agree with someone’s preferred story.
The value is concrete for the people who live month-end: shorter path to a pack they will put their name on; fewer unsupported progress claims when payment and audit ask for provenance; indices that still mean the same thing on Tuesday as they did when the pack froze.
What this is not
Baselinecast is not Crewspan. It does not replace the execution cockpit for RFIs, look-aheads and field issues — though Crewspan facts can feed ProgressCapture when the field record is the right evidence. It is not Quantspan. It does not own estimating quantities or bid take-off. It is not a promise that your organization has completed full EIA-748. It is practical earned value for teams that already run schedule and cost tools and need the monthly pack to stop being a negotiation with optimism.
It is also not an AI dashboard bolted onto the same broken progress column. If a product fills percent complete without attestation, or drafts variance text that cannot cite a closed fact pack, it is solving the wrong problem for a Cost Controls Lead.
First cut: one job, one period
Start where the fight is loudest. One active job. One reporting period. Lock an approved baseline version. Run ProgressCapture with attested evidence only — quantity, milestone, survey or Crewspan fact — and leave ungrounded EV marked, not filled. Publish deterministic PV/EV/AC and CPI/SPI from that closed pack. Draft variance narrative only from the pack; reject uncited sentences; freeze an immutable PeriodPack.
Measure time-to-trusted pack and the count of unsupported progress claims that never enter the payment or audit path because they never entered ProgressCapture. Keep estimating in Quantspan and day-to-day execution in Crewspan. Scope the workflow, gates and schedule/cost feeds in a Solution Definition Sprint.
See AEC and built environment, explore Baselinecast on the Atlas, or contact with the period pack your board no longer trusts.