Project Cost Variance Agent
Finds the overrun while it is still four weeks away
- 8hard rules
- Things it must never do, enforced in every run
- 5handover rules
- Conditions where it stops and gives the work to a person
- 15output fields
- A structured result, not a paragraph you have to re-read
- ≤8steps per run
- Bounded work: at most 6 tool calls, enforced by the runtime
Read-only by design. This agent has no path to sending, spending, publishing or committing anything. Where that limit is the product, removing it would remove the reason to trust the output.
Overview
Projects fail financially in a predictable way. The cost report says 60% spent and 60% complete and everything looks fine — because "60% complete" was estimated by the person whose performance the number reflects. Percentage complete is the softest figure in project management, and every cost report is built on it.
The hard signals are available much earlier. Committed cost — what has been ordered, not what has been invoiced — is money the project cannot get back, and it routinely exceeds budget while the spend report still looks healthy. Variations instructed but not yet priced are a liability the cost report does not contain at all. Rates that drifted from the tender. Preliminaries burning at a fixed weekly rate against a programme that has slipped, which is the purest form of cost with nothing to show for it.
And the cost report and the programme are separate documents owned by different people. A four-week delay is a programme fact and a cost fact, and nobody joins them until the final account.
This agent joins them. It reports forecast cost at completion from committed and unpriced exposure rather than from spend to date, names which package is driving the variance, and says which findings rest on a firm figure and which on an estimate. It approves nothing and instructs nothing.
Benefits
The overrun found while it is preventable
Rather than confirmed at the final account.
The driving package named
So the intervention is specific rather than a blanket freeze.
A forecast you can report upward
With its soft figures marked as soft.
What it does
Forecasts from committed, not from spent
What has been ordered is money the project cannot get back. It exceeds budget while the spend report still looks healthy.
Counts variations that have no price yet
Instructed and unpriced is a liability the cost report does not contain at all.
Joins the programme to the cost
A four-week slip is a cost fact. Two documents, two owners, joined at the final account and never before.
Prices the preliminaries burn
A fixed weekly cost against a slipped programme — spending with nothing produced for it.
Finds rate drift from tender
Each instance small, the cumulative effect not.
Says which numbers are firm
A forecast built on estimates should say so on every line. Most do not.
What this changes
What this changes about your week
- It takes over
- Joining the cost report to the programme to forecast the real final cost.
- Done today by
- A quantity surveyor, if there is time, which there is not monthly.
- How often
- Monthly, and the overrun is usually confirmed at the final account.
- Typical manual effort
- Committed cost, unpriced variations, rate drift and programme slip all live in different documents.
Why Construction in particular. Cost reports are built on percentage complete — the softest number in project management, estimated by the person it reflects. Committed cost routinely passes budget while spend to date still looks healthy.
Runs unattended
Started by you or by an event, and it finishes on its own. Nothing waits for someone to be at a desk.
The same standard every time
The two-hundredth item is held to the bar the first one was. Consistency is the part people cannot sustain.
It cannot act on its own
Project Cost Variance Agent has no path to sending, spending or committing. That limit is why its output is safe to act on.
How it runs
This agent runs server-side through the PROMIVO runtime. Each run is logged step by step and every tool call is permission-checked before it executes.
- 1InputValidated against the agent input schema
- 2Modelclaude-opus-5 with automatic fallback
- 3Toolssearch_knowledge, extract_structured_data
- 4PermissionsRuns READ actions automatically; anything higher waits for approval
- 5OutputStructured result matching the output schema
- 6LoggingTokens, duration and every step recorded
Demo
Demo dataIllustrative sample output, abridged.
Input
{
"project": "Riverside Block C",
"currency": "USD",
"dataDate": "2026-09-01",
"packages": []
}Output
{
"budget": 8400000,
"drivers": [
{
"cause": "Committed cost is already 118% of the package budget. Spend to date is 71%, which is why the monthly report still reads as healthy.",
"package": "Facade",
"confidence": "firm",
"contribution": 410000
},
{
"cause": "Programme has slipped 9 weeks against a time-related cost of 24,000 a week.",
"package": "Preliminaries",
"confidence": "firm",
"contribution": 216000
}
],
"escalate": true,
"rateDrift": [
"Groundworks labour is being applied 7.2% above tendered rates across 14 valuations."
],
"disclaimer": "A forecast from your own cost and programme records. No variation has been priced, approved or instructed, nobody has been contacted, no statement is made about entitlement to time or money, and every estimated figure is marked as estimated.",
"spentToDate": 4980000,
"contradictions": [
"The cost report shows the facade package at 62% complete. The programme shows the same package at 41%. Both cannot be right, and the forecast changes materially depending on which is."
],
"varianceAmount": 720000,
"committedToDate": 7910000,
"timeRelatedCost": "9 weeks at 24,000 = 216,000. This is cost with nothing produced against it.",
"variancePercent": 8.6,
"escalationReason": "Forecast exceeds budget by 8.6%, committed cost has already passed budget on the facade package, and the cost report and programme contradict each other on its progress.",
"decisionDeadlines": [
"The facade overrun becomes unrecoverable once the remaining 40% is ordered, currently scheduled for 26 September."
],
"unpricedVariations": [
{
"exposure": "Instructed 11 weeks ago and still unpriced. Not present in the cost report in any form.",
"reference": "VO-41",
"instructedOn": "2026-06-18"
}
],
"forecastAtCompletion": 9120000
}Requirements
Integrations
No integrations required.
Before you start
- Budget by package, and committed and invoiced cost against each
- Variations, instructed and priced status
- The programme: planned and actual progress
- Preliminaries and time-related costs, with their weekly rate
- Requires the All-Access plan or higher
Use cases
Monthly cost report review
The second opinion the report never gets.
A project that feels wrong
Whether the instinct is supported, and where.
Before a client cost report
Knowing what you are about to be asked.
Portfolio review
Which projects are drifting, on comparable measures.
Pricing
All-Access
Billed monthly through your PROMIVO subscription. Cancel at any time.
Runs consume your plan allowance for agent executions and tokens. See plan limits
FAQ
Does it replace the quantity surveyor?
No. It reads the same documents faster and joins the cost report to the programme, which nobody has time to do monthly. Every judgement — whether a variation is recoverable, whether a delay is your risk — stays with them.
Does it price variations?
No. It reports that a variation is instructed and unpriced, and its estimated exposure where the record supports one. Pricing a variation is a commercial and contractual judgement.
Does it make a claim?
Never. It has no route to a client, a contractor or a contract administrator, and entitlement is a legal question about a specific form of contract.
Reviews
Reviews open once customers have run this agent.
Need this agent to work differently?
Tell us what to change and our team will scope a customised version for your business.
Customize this agent