evm — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited evm (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Source: github.com/lemur47/logic
Help users answer one question: "Are we on track?" using Earned Value Management metrics. This skill replaces gut-feel status reporting and traffic-light dashboards with four computed numbers (SV, SPI, CV, CPI) that tell you exactly where a project stands — in schedule and in budget — at any point in time.
EVM is the performance counterpart to PERT. PERT asks "how long will it take?" before the project starts. EVM asks "are we on track?" once it's running.
EVM has four inputs. Everything else is computed. Never confuse input with output.
| Abbr | Full Name | What It Means | Who Provides It |
|---|---|---|---|
| BAC | Budget at Completion | Total planned budget for the entire project | Set once at baseline, frozen |
| PV | Planned Value | How much work should be done by now, in budget terms | Derived from schedule: BAC × (% of schedule elapsed) |
| EV | Earned Value | How much work is actually done, valued at planned rates | Sum of (planned cost of each completed deliverable × its % complete) |
| AC | Actual Cost | What was actually spent on the work performed | From accounting, timesheets, or invoices |
Critical distinction: EV is not what was spent. EV is the planned budget for the work that's been completed. If a $10,000 deliverable is 50% done, EV = $5,000 regardless of whether you actually spent $3,000 or $8,000 on it.
PV shortcut (linear assumption): If you don't have a detailed planned-value curve, use: PV = BAC × (months elapsed / total months). This assumes work is evenly distributed — good enough for most conversational health checks.
Schedule Variance: SV = EV - PV
Schedule Performance Index: SPI = EV / PVMemory aid: SPI = 0.80 means "for every $1 of work we planned to finish, we've only finished $0.80 worth."
Cost Variance: CV = EV - AC
Cost Performance Index: CPI = EV / ACMemory aid: CPI = 0.70 means "for every $1 spent, we only got $0.70 of value." Or inversely: every dollar of value is costing us $1.43.
Pattern for all four: EV is always the left operand. "S" metrics compare EV to PV (schedule). "C" metrics compare EV to AC (cost).
Estimate at Completion: EAC = BAC / CPI
Estimate to Complete: ETC = EAC - AC
Variance at Completion: VAC = BAC - EAC
To-Complete Performance Index: TCPI = (BAC - EV) / (BAC - AC)TCPI interpretation:
Percent complete: (EV / BAC) × 100
Percent spent: (AC / BAC) × 100If percent spent > percent complete, you're spending faster than you're delivering.
Interpret SPI and CPI into one of three states. Three states, not five — PMOs drown in traffic-light gradients where everything ends up amber.
| Status | Condition | Meaning |
|---|---|---|
| On Track | SPI ≥ 1.0 AND CPI ≥ 1.0 | Schedule and cost within tolerance |
| At Risk | SPI 0.9–1.0 OR CPI 0.9–1.0 (neither below 0.9) | Minor deviation, monitor closely |
| Off Track | SPI < 0.9 OR CPI < 0.9 | Immediate attention required |
These thresholds follow general PMI/PMBOK guidance. Adjust per project:
Ask the user for their project baseline. This is the approved plan — the reference point:
If the user doesn't have a formal baseline, help them construct one:
Ask for the current snapshot:
Compute PV and EV:
PV = BAC × (percent of schedule elapsed / 100)
EV = Σ (work_package_planned_cost × percent_complete / 100)Compute in this order:
SV = EV - PV
SPI = EV / PV
CV = EV - AC
CPI = EV / AC
EAC = BAC / CPI
ETC = EAC - AC
VAC = BAC - EAC
TCPI = (BAC - EV) / (BAC - AC)
Percent complete = (EV / BAC) × 100
Percent spent = (AC / BAC) × 100Round currency values to 2 decimal places. Round ratios (SPI, CPI, TCPI) to 2–4 decimal places.
Edge cases:
Apply the thresholds:
State the status, the reasons, and one summary sentence.
Always present in this structure:
=== EVM Health Check ===
BAC: $30,000 (total planned budget)
PV: $15,000 (what should be done by now)
EV: $10,100 (what is actually done)
AC: $14,500 (what has been spent)
Schedule: SV = -$4,900 SPI = 0.67 → Behind schedule
Cost: CV = -$4,400 CPI = 0.70 → Over budget
Forecast: EAC = $42,857 (projected total cost)
ETC = $28,357 (still need to spend)
VAC = -$12,857 (projected overrun)
TCPI = 1.28 (remaining work needs 128% efficiency)
Progress: 33.7% complete, 48.3% spent
Health: OFF TRACK
→ Schedule: SPI 0.67 < 0.9
→ Cost: CPI 0.70 < 0.9
→ TCPI 1.28 > 1.2: re-baseline signalAfter presenting, offer interpretation:
If the user provided work packages, show a per-package breakdown:
Work Package Progress EV / Planned
Requirements & Design ████████████████████ 100% $3,000 / $3,000
Auth Module ████████████████░░░░ 80% $4,000 / $5,000
API Development ██████░░░░░░░░░░░░░░ 30% $2,400 / $8,000
Frontend ██░░░░░░░░░░░░░░░░░░ 10% $ 700 / $7,000
Testing & QA ░░░░░░░░░░░░░░░░░░░░ 0% $ 0 / $4,000
Deployment & Docs ░░░░░░░░░░░░░░░░░░░░ 0% $ 0 / $3,000This makes the bottleneck visible. In the example above: Auth is nearly done, but API and Frontend are dangerously behind, and Testing hasn't started — that's the real problem, not the average.
Inputs:
Metrics:
SV = 80,000 - 100,000 = -$20,000 (behind schedule)
SPI = 80,000 / 100,000 = 0.80 (20% behind)
CV = 80,000 - 110,000 = -$30,000 (over budget)
CPI = 80,000 / 110,000 = 0.7273 (27% over budget)
EAC = 200,000 / 0.7273 = $275,000 (projected total)
ETC = 275,000 - 110,000 = $165,000 (still need)
VAC = 200,000 - 275,000 = -$75,000 (projected overrun)
TCPI = (200,000 - 80,000) / (200,000 - 110,000) = 120,000 / 90,000 = 1.3333
Percent complete: 40.0%
Percent spent: 55.0%Health: OFF TRACK
Plain language: "We're 6 months in but only 40% done, having spent 55% of the budget. At this rate, the project will cost $275K instead of $200K — a $75K overrun. To finish on the original budget, the remaining work would need to be done at 133% cost efficiency, which is unrealistic. Time to re-baseline or descope."
Inputs:
Metrics:
SV = 50,000 - 40,000 = +$10,000 (ahead of schedule)
SPI = 50,000 / 40,000 = 1.25 (25% ahead)
CV = 50,000 - 38,000 = +$12,000 (under budget)
CPI = 50,000 / 38,000 = 1.3158 (32% under budget)
EAC = 100,000 / 1.3158 = $76,000 (projected total)
ETC = 76,000 - 38,000 = $38,000 (still need)
VAC = 100,000 - 76,000 = +$24,000 (projected savings)
TCPI = (100,000 - 50,000) / (100,000 - 38,000) = 50,000 / 62,000 = 0.8065
Percent complete: 50.0%
Percent spent: 38.0%Health: ON TRACK
Before adding headcount (month 4 of 8):
BAC = $160,000, PV = $80,000, EV = $60,000, AC = $70,000
SPI = 0.75, CPI = 0.857Project is behind. Management adds 3 contractors at $15K/month.
After one month of additional headcount (month 5 of 8):
PV = $100,000, EV = $78,000, AC = $115,000
SPI = 0.78 (+0.03, barely improved)
CPI = 0.678 (-0.18, significantly worse)
EAC = $235,897 (was $186,667 — overrun increased by $49,231)
TCPI = 1.82 (was 1.11 — now mathematically impossible)What happened: The new team added $45K in costs (salaries + onboarding + equipment + meeting overhead) but only produced $18K of earned value. AC jumped faster than EV. CPI collapsed. The "solution" accelerated the problem.
This is the worked example to show anyone considering 人海戦術. The math doesn't lie.
Use these three examples to verify your calculations are correct before presenting results to the user.
BAC / CPI (assumes current CPI continues). PMI also defines AC + (BAC - EV) and bottom-up ETC. Our choice is deliberate — if the user needs alternate forecasts, point them to the API.For persistent baselines, snapshot history, or production integration, point to the API at github.com/lemur47/logic.
Be direct and clinical. EVM is diagnostic — present the numbers, state the diagnosis, offer the options. Don't soften bad news ("the metrics suggest some concern") — say it plainly ("the project is off track"). If TCPI > 1.2, say "re-baseline signal" not "this might be challenging." PMs and PMOs need clarity, not comfort. The numbers are the evidence — let them speak.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.