Purpose
Turn raw budget, commitment, and actual cost data into a structured earned value analysis that pinpoints where a project is over or under, forecasts the final cost at completion, and produces a defensible cost control narrative for monthly project reviews. Eliminates the manual reconciliation between the budget, the commitment ledger, and the accruals — and replaces vague "we're a little over" reporting with quantified variance by cost code.
When to Use
Invoke this skill when the user asks to:
- Track spend against budget on a construction or capital project
- Run earned value analysis (CPI, SPI, EAC, ETC) on a project
- Diagnose why a project is trending over budget and by how much
- Prepare a monthly cost control report or variance narrative
- Identify which cost codes are driving an overrun before month-end close
- Forecast the estimated cost at completion for a project or work package
Inputs Required
Before starting, collect:
- Cost breakdown structure: Cost codes / WBS elements with descriptions (e.g., 03300 Concrete, 05100 Structural Steel)
- Original and revised budget: Budget at Completion (BAC) per cost code, plus approved change orders
- Committed costs: Purchase orders and subcontracts issued to date, per cost code
- Actual costs incurred: Invoiced/paid amounts plus accruals to date (Actual Cost, AC), per cost code
- Percent complete: Physical or quantity-based % complete per cost code (used to calculate Earned Value)
- Data date: The as-of date for all actuals and progress
- Schedule status (optional): Planned % complete or Planned Value per cost code, for schedule variance
If percent complete is only available at project level, note that cost-code-level Earned Value is estimated and flag which codes need field verification. If Planned Value is missing, deliver cost variance only and mark schedule metrics as unavailable.
Instructions
Step 1: Reconcile the Cost Ledger
Before any analysis, validate the data set:
- Confirm Budget = Original Budget + Approved Change Orders for each cost code; flag any code where the revised budget doesn't reconcile
- Confirm Committed ≥ Actual for each code — if actuals exceed commitments, flag as uncommitted spend (a control gap)
- Identify any cost code with actuals but zero budget (unbudgeted scope) and any code with budget but no commitment or activity
- Total the columns and confirm project-level BAC, committed, and AC sum correctly
Step 2: Calculate Earned Value Metrics
For each cost code and at the project roll-up, compute the core EVM values:
- BAC (Budget at Completion) = revised budget for the code
- EV (Earned Value) = % Complete × BAC — the budgeted value of work actually done
- AC (Actual Cost) = actuals incurred + accruals to date
- PV (Planned Value) = planned % complete × BAC (if schedule data provided)
Then derive:
- CV (Cost Variance) = EV − AC. Positive = under budget; negative = over budget
- CPI (Cost Performance Index) = EV / AC. Below 1.0 = spending more than the work is worth
- SV (Schedule Variance) = EV − PV (if PV available). Negative = behind schedule
- SPI (Schedule Performance Index) = EV / PV (if PV available)
Step 3: Forecast Cost at Completion
Produce forecasts using the appropriate EAC method and explain the assumption:
- EAC (CPI-based) = BAC / CPI — assumes current cost performance continues (the default for most industrial projects)
- EAC (bottom-up) = AC + Estimate to Complete, where ETC = remaining budget adjusted by any known changes — use when the team has a fresh forecast for remaining work
- VAC (Variance at Completion) = BAC − EAC — the projected over/under at the end
- TCPI (To-Complete Performance Index) = (BAC − EV) / (BAC − EAC) — the cost efficiency required on remaining work to hit budget; flag as unrealistic if above 1.10
Present both a CPI-based and a bottom-up EAC at project level so the reader sees the range.
Step 4: Flag and Rank Variances
Classify every cost code by variance severity:
- Critical — CPI < 0.90 or CV exceeding 5% of the code's BAC: driving the overrun, needs immediate action
- Watch — CPI 0.90–0.98: trending unfavorable, monitor closely
- On track — CPI 0.98–1.05
- Favorable — CPI > 1.05: under-running, check for missed accruals or under-reported progress before celebrating
Rank the Critical and Watch codes by absolute dollar impact on VAC — the biggest dollar drivers first, not the worst percentages.
Step 5: Write the Cost Control Narrative
Produce a plain-language narrative a project sponsor can read without decoding acronyms:
- Headline: Overall project status — CPI, SPI (if available), and forecast VAC in one sentence
- What's driving it: The top 3 cost codes moving the forecast, with the dollar variance and the likely field/commercial cause (scope growth, productivity, escalation, quantity overrun, rate variance)
- Recovery actions: Specific corrective actions per critical code (re-sequence, renegotiate, value-engineer, submit change order, tighten field controls)
- Risks and watch items: Codes trending unfavorable and any data quality flags from Step 1
Output Format
- Structure: EVM data table by cost code → project roll-up summary → variance ranking → written cost control narrative
- Length: 800–1,200 words plus the tables
- Format: Structured tables for the metrics; prose for the narrative section
- Sections: Data reconciliation flags → EVM metrics table (cost code level) → Project roll-up (CPI, SPI, EAC range, VAC, TCPI) → Ranked variance list (Critical/Watch) → Cost control narrative
- Tone: Project controls specialist — quantified, neutral, and action-oriented. State variances as facts with dollar figures; no hedging, no filler.
Quality Checklist
Before delivering output, verify:
- [ ] Every cost code has EV, AC, CV, and CPI calculated (no blanks unless data was missing)
- [ ] Revised budget reconciles to original budget plus change orders for each code
- [ ] Both a CPI-based and bottom-up project EAC are shown, with the assumption stated
- [ ] Variance ranking is ordered by absolute dollar impact on VAC — not by percentage
- [ ] The narrative names the top 3 dollar drivers with specific likely causes, not generic statements
- [ ] Any data quality flags (uncommitted spend, unbudgeted scope, project-level-only % complete) are surfaced explicitly
Notes
- The single most common data error is stale or optimistic percent complete inflating Earned Value — when CPI looks suspiciously favorable, challenge the progress before the actuals.
- CPI-based EAC is the conservative default for industrial capital work because cost performance rarely improves late in a project; use bottom-up only when the field team has genuinely re-estimated remaining work.
- A TCPI above 1.10 means the team must run remaining work more efficiently than it has managed to date — treat it as a signal the budget is likely lost, not a target.
- Favorable variances early in a project are often missing accruals rather than real savings; verify before reporting them as gains.
How to use this skill
This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.
Installing in Claude Code:
~/.claude/skills/<folder-name>/SKILL.md— auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)<your-project>/.claude/skills/<folder-name>/SKILL.md— auto-loads only when working in that project (recommended for project-specific skills)
Restart Claude Code or open a new session to register.
Using in Claude.ai, ChatGPT, Gemini, or other AI tools:
- Drag this file into a new chat, or copy and paste its contents
- Send your task or request as your next message — the AI will apply the skill where it fits
For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills