{"product_id":"earned-value-management","title":"EVM Calculator","description":"\u003cstyle\u003e\n.evm-calculator {\n  --ink: #0f172a;\n  --muted: #475569;\n  --border: #e2e8f0;\n  --surface: #ffffff;\n  --tint: #f8fafc;\n  --primary: #1d4ed8;\n  --accent: #c2410c;\n  --accent-hover: #9a3412;\n  --chart-1: #1e40af;\n  --chart-2: #0d9488;\n  --chart-3: #7c3aed;\n  --chart-4: #be185d;\n  --chart-5: #334155;\n  color: var(--ink);\n  background: var(--tint);\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  padding: 24px;\n  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n  font-size: 15px;\n  line-height: 1.55;\n  max-width: 1200px;\n  margin: 0 auto;\n  overflow-wrap: anywhere;\n}\n.evm-calculator,\n.evm-calculator *,\n.evm-calculator *::before,\n.evm-calculator *::after { box-sizing: border-box; }\n.evm-calculator [class^=\"evm-\"],\n.evm-calculator [class*=\" evm-\"] { min-width: 0; }\n.evm-calculator \u003e *,\n.evm-header \u003e *,\n.evm-toolbar \u003e *,\n.evm-workspace \u003e *,\n.evm-input-grid \u003e *,\n.evm-result-grid \u003e *,\n.evm-chart-cluster \u003e *,\n.evm-legend-row \u003e *,\n.evm-task-row \u003e *,\n.evm-education-grid \u003e * { min-width: 0; }\n.evm-calculator h2,\n.evm-calculator h3,\n.evm-calculator p { margin-top: 0; }\n.evm-calculator h2 { font-size: 24px; line-height: 1.25; font-weight: 700; margin-bottom: 8px; }\n.evm-calculator h3 { font-size: 18px; line-height: 1.35; font-weight: 650; margin-bottom: 12px; }\n.evm-header { display: grid; gap: 16px; margin-bottom: 16px; }\n.evm-header-copy { max-width: 760px; color: var(--muted); margin-bottom: 0; }\n.evm-pills { display: flex; flex-wrap: wrap; gap: 8px; }\n.evm-pill { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 6px 10px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); color: var(--muted); font-size: 13px; font-weight: 500; box-shadow: 0 1px 2px rgba(15,23,42,.06); }\n.evm-pill strong { color: var(--ink); font-variant-numeric: tabular-nums; }\n.evm-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 24px; }\n.evm-button { appearance: none; border: 1px solid var(--border); border-radius: 6px; min-height: 44px; padding: 11px 16px; background: var(--surface); color: var(--ink); font: inherit; font-weight: 650; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 10px; text-decoration: none; box-shadow: 0 1px 2px rgba(15,23,42,.06); }\n.evm-button:hover { box-shadow: 0 2px 5px rgba(15,23,42,.12); }\n.evm-button:focus-visible,\n.evm-input:focus-visible,\n.evm-select:focus-visible,\n.evm-remove:focus-visible,\n.evm-task-name:focus-visible { outline: 3px solid rgba(29,78,216,.35); outline-offset: 2px; }\n.evm-button-primary { background: var(--accent); border-color: var(--accent); color: #ffffff; padding: 12px 18px; white-space: nowrap; }\n.evm-button-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }\n.evm-button-primary:active { transform: translateY(1px); }\n.evm-button-icon { width: 20px; height: 20px; flex: 0 0 auto; }\n.evm-workspace { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr); gap: 24px; align-items: start; margin-bottom: 24px; }\n.evm-panel,\n.evm-card { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 20px; box-shadow: 0 1px 2px rgba(15,23,42,.06); }\n.evm-panel-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px; margin-bottom: 16px; }\n.evm-panel-heading h3 { margin-bottom: 0; }\n.evm-helper { color: var(--muted); font-size: 13px; font-weight: 500; margin: 0; }\n.evm-task-list { display: grid; gap: 12px; }\n.evm-task-card { border: 1px solid var(--border); border-radius: 8px; background: var(--tint); padding: 16px; display: grid; gap: 12px; }\n.evm-task-top { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: end; }\n.evm-field { display: grid; gap: 6px; align-content: start; }\n.evm-label { color: var(--ink); font-size: 14px; font-weight: 600; line-height: 1.35; }\n.evm-input,\n.evm-select,\n.evm-task-name { width: 100%; min-height: 44px; border: 1px solid #cbd5e1; border-radius: 6px; background: var(--surface); color: var(--ink); padding: 10px 12px; font: inherit; font-size: 15px; font-weight: 400; font-variant-numeric: tabular-nums; }\n.evm-input[aria-invalid=\"true\"] { border-color: #b91c1c; }\n.evm-error { min-height: 18px; color: #991b1b; font-size: 13px; font-weight: 500; }\n.evm-input-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }\n.evm-unit-wrap { position: relative; }\n.evm-unit-wrap .evm-input { padding-right: 40px; }\n.evm-unit { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: 13px; font-weight: 650; pointer-events: none; }\n.evm-remove { appearance: none; width: 44px; height: 44px; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); color: #991b1b; cursor: pointer; font: inherit; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }\n.evm-remove:hover { border-color: #fca5a5; background: #fff7f7; }\n.evm-results { display: grid; gap: 16px; }\n.evm-primary-result { border-left: 4px solid var(--primary); background: #eff6ff; border-radius: 6px; padding: 16px; }\n.evm-primary-label { color: var(--muted); font-size: 13px; font-weight: 650; text-transform: uppercase; letter-spacing: .03em; }\n.evm-primary-value { display: block; font-size: 30px; line-height: 1.2; font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; margin-top: 4px; }\n.evm-primary-note { margin: 8px 0 0; color: var(--muted); font-size: 13px; font-weight: 500; }\n.evm-result-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }\n.evm-result-card { border: 1px solid var(--border); border-radius: 8px; padding: 14px; background: var(--surface); }\n.evm-result-label { color: var(--muted); font-size: 13px; font-weight: 600; }\n.evm-result-value { display: block; color: var(--ink); font-size: 20px; line-height: 1.25; font-weight: 700; font-variant-numeric: tabular-nums; margin-top: 4px; }\n.evm-result-sub { display: block; color: var(--muted); font-size: 13px; font-weight: 500; margin-top: 4px; }\n.evm-status { border-radius: 6px; padding: 12px; border: 1px solid var(--border); background: var(--tint); color: var(--ink); font-size: 14px; font-weight: 600; }\n.evm-status-good { border-color: #99f6e4; background: #f0fdfa; color: #115e59; }\n.evm-status-warn { border-color: #fed7aa; background: #fff7ed; color: #9a3412; }\n.evm-status-bad { border-color: #fecaca; background: #fef2f2; color: #991b1b; }\n.evm-section { margin-top: 24px; }\n.evm-section-heading { margin-bottom: 12px; }\n.evm-section-heading p { color: var(--muted); margin-bottom: 0; }\n.evm-chart-card { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 20px; box-shadow: 0 1px 2px rgba(15,23,42,.06); }\n.evm-chart-title { margin-bottom: 4px; }\n.evm-chart-kicker { color: var(--muted); font-size: 13px; font-weight: 500; margin-bottom: 16px; }\n.evm-chart-cluster { display: grid; grid-template-columns: minmax(240px, 320px) minmax(220px, max-content); justify-content: center; align-items: center; gap: 24px; max-width: 760px; margin: 0 auto; }\n.evm-chart-plot { width: 100%; max-width: 320px; margin: 0 auto; }\n.evm-chart-plot-wide { max-width: 760px; }\n.evm-chart-svg { display: block; width: 100%; height: auto; overflow: visible; }\n.evm-donut-track { fill: none; stroke: #e2e8f0; stroke-width: 36; }\n.evm-donut-segment { fill: none; stroke-width: 36; stroke-linecap: butt; transform: rotate(-90deg); transform-origin: 160px 160px; }\n.evm-donut-total { font-size: 24px; font-weight: 700; fill: var(--ink); text-anchor: middle; font-variant-numeric: tabular-nums; }\n.evm-donut-caption { font-size: 18px; font-weight: 600; fill: var(--muted); text-anchor: middle; }\n.evm-legend { display: grid; gap: 10px; align-content: center; }\n.evm-legend-row { display: grid; grid-template-columns: 12px minmax(90px, max-content) max-content max-content; align-items: center; column-gap: 10px; row-gap: 4px; font-size: 13px; color: var(--muted); }\n.evm-swatch { width: 12px; height: 12px; border-radius: 3px; }\n.evm-legend-name { color: var(--ink); font-weight: 600; }\n.evm-legend-value,\n.evm-legend-share { font-variant-numeric: tabular-nums; white-space: nowrap; }\n.evm-chart-caption { margin-top: 16px; border: 1px solid var(--border); border-radius: 6px; padding: 10px 12px; background: var(--tint); color: var(--muted); font-size: 13px; font-weight: 500; }\n.evm-chart-empty { border: 1px dashed #cbd5e1; border-radius: 6px; background: var(--tint); color: var(--muted); padding: 16px; font-size: 13px; font-weight: 600; text-align: center; }\n.evm-safe-stack .evm-chart-cluster { grid-template-columns: 1fr; justify-items: center; row-gap: 16px; }\n.evm-safe-stack .evm-legend { margin-top: 0; }\n.evm-safe-stack .evm-chart-caption { margin-top: 16px; }\n.evm-bar-grid { stroke: #cbd5e1; stroke-width: 1; }\n.evm-bar-axis-label { fill: var(--muted); font-size: 13px; font-weight: 500; }\n.evm-bar-label { fill: var(--ink); font-size: 13px; font-weight: 650; text-anchor: middle; }\n.evm-bar-value { fill: var(--ink); font-size: 13px; font-weight: 650; text-anchor: middle; font-variant-numeric: tabular-nums; }\n.evm-bar { rx: 2px; ry: 2px; }\n.evm-bar-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 18px; margin-top: 16px; }\n.evm-bar-legend-item { display: inline-grid; grid-template-columns: 12px max-content max-content; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; font-weight: 500; }\n.evm-table-card { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 20px; box-shadow: 0 1px 2px rgba(15,23,42,.06); }\n.evm-table-wrap { overflow-x: auto; max-width: 100%; border: 1px solid var(--border); border-radius: 6px; }\n.evm-table { width: 100%; min-width: 980px; border-collapse: collapse; background: var(--surface); font-variant-numeric: tabular-nums; }\n.evm-table th,\n.evm-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); text-align: right; vertical-align: middle; white-space: nowrap; }\n.evm-table th { background: #f1f5f9; color: var(--ink); font-size: 13px; font-weight: 700; }\n.evm-table th:first-child,\n.evm-table td:first-child { text-align: left; }\n.evm-table tbody tr:last-child td { border-bottom: 0; }\n.evm-table tfoot td { background: #f8fafc; font-weight: 700; border-top: 2px solid var(--border); border-bottom: 0; }\n.evm-table-note { margin-top: 16px; border: 1px solid var(--border); border-radius: 6px; padding: 10px 12px; background: var(--tint); color: var(--muted); font-size: 13px; font-weight: 500; }\n.evm-safe-table-stack .evm-table-note { margin-top: 20px; }\n.evm-education { margin-top: 32px; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 24px; }\n.evm-education-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }\n.evm-education-section { min-width: 0; }\n.evm-education-section p,\n.evm-education-section li { color: #334155; }\n.evm-education-section ul { margin: 0 0 16px; padding-left: 20px; }\n.evm-education a { color: #1e40af; text-underline-offset: 2px; }\n.evm-education a:focus-visible { outline: 3px solid rgba(29,78,216,.35); outline-offset: 2px; }\n.evm-formula { border-left: 3px solid var(--primary); padding-left: 12px; color: var(--ink); font-weight: 650; font-variant-numeric: tabular-nums; }\n.evm-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }\n.evm-hidden { display: none !important; }\n@media (max-width: 899px) {\n  .evm-workspace { grid-template-columns: 1fr; }\n}\n@media (max-width: 639px) {\n  .evm-calculator { padding: 16px; }\n  .evm-panel,\n  .evm-card,\n  .evm-chart-card,\n  .evm-table-card,\n  .evm-education { padding: 16px; }\n  .evm-chart-cluster { grid-template-columns: 1fr; justify-items: center; row-gap: 16px; }\n  .evm-legend { width: 100%; justify-content: center; }\n  .evm-legend-row { grid-template-columns: 12px minmax(80px, max-content) max-content max-content; }\n  .evm-education-grid { grid-template-columns: 1fr; gap: 8px; }\n  .evm-chart-caption { margin-top: 16px; }\n}\n@media (max-width: 479px) {\n  .evm-input-grid,\n  .evm-result-grid { grid-template-columns: 1fr; }\n  .evm-toolbar { align-items: stretch; }\n  .evm-button { flex: 1 1 auto; }\n  .evm-button-primary { flex: 1 1 100%; }\n  .evm-task-top { grid-template-columns: minmax(0, 1fr) auto; }\n  .evm-legend-row { grid-template-columns: 12px minmax(0, 1fr) max-content; }\n  .evm-legend-share { grid-column: 2 \/ 4; padding-left: 0; }\n  .evm-bar-legend { justify-content: flex-start; }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"evm-calculator\" data-calculator-root\u003e\n  \u003csection class=\"evm-header\"\u003e\n    \u003cdiv\u003e\n      \u003ch2\u003eEarned Value Management Calculator\u003c\/h2\u003e\n      \u003cp class=\"evm-header-copy\"\u003eCombine task-level schedule, progress, budget, and cost data into a live EVM health report with forecasts, charts, and an Excel-ready audit trail.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"evm-pills\" aria-label=\"Live project summary\"\u003e\n      \u003cspan class=\"evm-pill\"\u003eActive tasks \u003cstrong data-evm-pill=\"tasks\"\u003e3\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"evm-pill\"\u003eBudget at completion \u003cstrong data-evm-pill=\"budget\"\u003e$2,000.00\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"evm-pill\"\u003eCPI \u003cstrong data-evm-pill=\"cpi\"\u003e0.76\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"evm-pill\"\u003eSPI \u003cstrong data-evm-pill=\"spi\"\u003e0.88\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003cdiv class=\"evm-toolbar\" aria-label=\"Calculator actions\"\u003e\n    \u003cbutton class=\"evm-button evm-button-primary\" type=\"button\" data-action=\"download\"\u003e\n      \u003csvg class=\"evm-button-icon\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath fill=\"currentColor\" d=\"M5 2h10l4 4v16H5V2Zm9 2H7v16h10V7h-3V4Zm-5 7h2V7h2v4h2l-3 4-3-4Zm0 6h6v2H9v-2Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003eDownload Excel\u003c\/span\u003e\n    \u003c\/button\u003e\n    \u003cbutton class=\"evm-button\" type=\"button\" data-action=\"reset\"\u003eReset\u003c\/button\u003e\n    \u003cbutton class=\"evm-button\" type=\"button\" data-action=\"add-task\"\u003eAdd task\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"evm-workspace\"\u003e\n    \u003csection class=\"evm-panel\" aria-labelledby=\"evm-input-heading\"\u003e\n      \u003cdiv class=\"evm-panel-heading\"\u003e\n        \u003ch3 id=\"evm-input-heading\"\u003eTask inputs\u003c\/h3\u003e\n        \u003cp class=\"evm-helper\"\u003eEnter progress as percentages and money in U.S. dollars.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"evm-task-list\" data-evm-task-list\u003e\u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"evm-panel evm-results\" aria-labelledby=\"evm-results-heading\"\u003e\n      \u003cdiv class=\"evm-panel-heading\"\u003e\n        \u003ch3 id=\"evm-results-heading\"\u003eLive EVM report\u003c\/h3\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"evm-primary-result\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\n        \u003cspan class=\"evm-primary-label\"\u003eEstimate at completion\u003c\/span\u003e\n        \u003cstrong class=\"evm-primary-value\" data-evm-result=\"eac\"\u003e$2,615.38\u003c\/strong\u003e\n        \u003cp class=\"evm-primary-note\" data-evm-result=\"primary-note\"\u003eAt the current cost efficiency, the project is forecast to finish $615.38 over budget.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"evm-result-grid\"\u003e\n        \u003cdiv class=\"evm-result-card\"\u003e\n\u003cspan class=\"evm-result-label\"\u003ePlanned value (PV)\u003c\/span\u003e\u003cstrong class=\"evm-result-value\" data-evm-result=\"pv\"\u003e$1,475.00\u003c\/strong\u003e\u003cspan class=\"evm-result-sub\"\u003eBudgeted value scheduled\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"evm-result-card\"\u003e\n\u003cspan class=\"evm-result-label\"\u003eEarned value (EV)\u003c\/span\u003e\u003cstrong class=\"evm-result-value\" data-evm-result=\"ev\"\u003e$1,300.00\u003c\/strong\u003e\u003cspan class=\"evm-result-sub\"\u003eBudgeted value completed\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"evm-result-card\"\u003e\n\u003cspan class=\"evm-result-label\"\u003eActual cost (AC)\u003c\/span\u003e\u003cstrong class=\"evm-result-value\" data-evm-result=\"ac\"\u003e$1,700.00\u003c\/strong\u003e\u003cspan class=\"evm-result-sub\"\u003eCost incurred to date\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"evm-result-card\"\u003e\n\u003cspan class=\"evm-result-label\"\u003eEstimate to complete\u003c\/span\u003e\u003cstrong class=\"evm-result-value\" data-evm-result=\"etc\"\u003e$915.38\u003c\/strong\u003e\u003cspan class=\"evm-result-sub\"\u003eForecast remaining cost\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"evm-result-card\"\u003e\n\u003cspan class=\"evm-result-label\"\u003eCost performance index\u003c\/span\u003e\u003cstrong class=\"evm-result-value\" data-evm-result=\"cpi\"\u003e0.76\u003c\/strong\u003e\u003cspan class=\"evm-result-sub\" data-evm-result=\"cpi-note\"\u003eOver budget\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"evm-result-card\"\u003e\n\u003cspan class=\"evm-result-label\"\u003eSchedule performance index\u003c\/span\u003e\u003cstrong class=\"evm-result-value\" data-evm-result=\"spi\"\u003e0.88\u003c\/strong\u003e\u003cspan class=\"evm-result-sub\" data-evm-result=\"spi-note\"\u003eBehind schedule\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"evm-result-card\"\u003e\n\u003cspan class=\"evm-result-label\"\u003eCost variance\u003c\/span\u003e\u003cstrong class=\"evm-result-value\" data-evm-result=\"cv\"\u003e-$400.00\u003c\/strong\u003e\u003cspan class=\"evm-result-sub\" data-evm-result=\"cv-percent\"\u003e-30.77% of earned value\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"evm-result-card\"\u003e\n\u003cspan class=\"evm-result-label\"\u003eSchedule variance\u003c\/span\u003e\u003cstrong class=\"evm-result-value\" data-evm-result=\"sv\"\u003e-$175.00\u003c\/strong\u003e\u003cspan class=\"evm-result-sub\" data-evm-result=\"sv-percent\"\u003e-11.86% of planned value\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"evm-status evm-status-bad\" data-evm-status\u003eProject is over budget and behind schedule.\u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"evm-section\" aria-labelledby=\"evm-breakdown-heading\"\u003e\n    \u003cdiv class=\"evm-section-heading\"\u003e\n      \u003ch3 id=\"evm-breakdown-heading\"\u003eBudget allocation by task\u003c\/h3\u003e\n      \u003cp\u003eSee which work packages carry the greatest share of the approved budget.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"evm-chart-card\" data-evm-chart-card=\"budget\"\u003e\n      \u003cp class=\"evm-chart-kicker\" data-evm-budget-kicker\u003eTotal budget: $2,000.00\u003c\/p\u003e\n      \u003cdiv class=\"evm-chart-empty evm-hidden\" data-evm-budget-empty\u003eEnter task budgets to see the allocation breakdown.\u003c\/div\u003e\n      \u003cdiv class=\"evm-chart-cluster\" data-evm-budget-content\u003e\n        \u003cdiv class=\"evm-chart-plot\"\u003e\n          \u003csvg class=\"evm-chart-svg\" data-evm-budget-svg viewbox=\"0 0 320 320\" role=\"img\" aria-labelledby=\"evm-budget-chart-title evm-budget-chart-desc\"\u003e\n            \u003ctitle id=\"evm-budget-chart-title\"\u003eBudget allocation by task\u003c\/title\u003e\n            \u003cdesc id=\"evm-budget-chart-desc\" data-evm-budget-desc\u003eBudget allocation chart.\u003c\/desc\u003e\n          \u003c\/svg\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"evm-legend\" data-evm-budget-legend aria-label=\"Budget allocation legend\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cp class=\"evm-sr-only\" data-evm-budget-summary\u003e\u003c\/p\u003e\n      \u003cdiv class=\"evm-chart-caption\" data-evm-budget-caption\u003eThe two largest tasks represent most of the baseline budget, so variance in either one will materially affect the project forecast.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"evm-section\" aria-labelledby=\"evm-performance-heading\"\u003e\n    \u003cdiv class=\"evm-section-heading\"\u003e\n      \u003ch3 id=\"evm-performance-heading\"\u003ePerformance value comparison\u003c\/h3\u003e\n      \u003cp\u003eCompare planned value, earned value, and actual cost on the same scale.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"evm-chart-card\" data-evm-chart-card=\"performance\"\u003e\n      \u003cp class=\"evm-chart-kicker\" data-evm-performance-kicker\u003eEV is below PV while AC is above EV.\u003c\/p\u003e\n      \u003cdiv class=\"evm-chart-empty evm-hidden\" data-evm-performance-empty\u003eEnter project values to see the performance chart.\u003c\/div\u003e\n      \u003cdiv data-evm-performance-content\u003e\n        \u003cdiv class=\"evm-chart-plot evm-chart-plot-wide\"\u003e\n          \u003csvg class=\"evm-chart-svg\" data-evm-performance-svg viewbox=\"0 0 700 360\" role=\"img\" aria-labelledby=\"evm-performance-chart-title evm-performance-chart-desc\"\u003e\n            \u003ctitle id=\"evm-performance-chart-title\"\u003ePerformance value comparison\u003c\/title\u003e\n            \u003cdesc id=\"evm-performance-chart-desc\" data-evm-performance-desc\u003eBar chart comparing planned value, earned value, and actual cost.\u003c\/desc\u003e\n          \u003c\/svg\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"evm-bar-legend\" data-evm-performance-legend aria-label=\"Performance value legend\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cp class=\"evm-sr-only\" data-evm-performance-summary\u003e\u003c\/p\u003e\n      \u003cdiv class=\"evm-chart-caption\" data-evm-performance-caption\u003eThe project has produced less value than planned and has spent more than the value earned, signaling both schedule and cost pressure.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"evm-section\" aria-labelledby=\"evm-table-heading\"\u003e\n    \u003cdiv class=\"evm-section-heading\"\u003e\n      \u003ch3 id=\"evm-table-heading\"\u003eTask-level EVM detail\u003c\/h3\u003e\n      \u003cp\u003eEvery row uses the same calculations that feed the summary, charts, and workbook.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"evm-table-card\" data-evm-table-card\u003e\n      \u003cdiv class=\"evm-table-wrap\" data-evm-table-wrap\u003e\n        \u003ctable class=\"evm-table\"\u003e\n          \u003cthead\u003e\u003ctr\u003e\n\u003cth scope=\"col\"\u003eTask\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eScheduled\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eActual\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eBudget\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eCost\u003c\/th\u003e\n\u003cth scope=\"col\"\u003ePV\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eEV\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eCV\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eSV\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n          \u003ctbody data-evm-table-body\u003e\u003c\/tbody\u003e\n          \u003ctfoot data-evm-table-foot\u003e\u003c\/tfoot\u003e\n        \u003c\/table\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"evm-table-note\" data-evm-table-note\u003eCV equals EV minus AC; SV equals EV minus PV. Negative values indicate unfavorable variance.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"evm-education\" aria-labelledby=\"evm-education-heading\"\u003e\n    \u003ch2 id=\"evm-education-heading\"\u003eHow to use and interpret earned value management\u003c\/h2\u003e\n    \u003cdiv class=\"evm-education-grid\"\u003e\n      \u003cdiv class=\"evm-education-section\"\u003e\n        \u003ch3\u003eWhat this calculator estimates\u003c\/h3\u003e\n        \u003cp\u003eEarned value management connects scope, schedule, and cost in one measurement system. Instead of asking only how much money has been spent, it asks how much budgeted work has actually been completed and how much work should have been completed by the same status date. The calculator aggregates task-level data into the three core EVM measures: planned value (PV), earned value (EV), and actual cost (AC). From those values it calculates performance indices, variances, and a forecast of the final project cost.\u003c\/p\u003e\n        \u003cp\u003eThe model is useful for a project review, milestone review, or recurring reporting date. All progress percentages should describe the same status date. The analysis is only as reliable as the underlying baseline, progress measurement method, and cost data. For formal implementation guidance, consult the \u003ca href=\"https:\/\/www.pmi.org\/standards\/earned-value-management\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eProject Management Institute’s EVM standard\u003c\/a\u003e and the \u003ca href=\"https:\/\/www.nasa.gov\/ocfo\/ppc-corner\/evm\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eNASA earned value management resources\u003c\/a\u003e.\u003c\/p\u003e\n\n        \u003ch3\u003eField-by-field input guide\u003c\/h3\u003e\n        \u003cul\u003e\n          \u003cli\u003e\n\u003cstrong\u003eTask name\u003c\/strong\u003e is optional but strongly recommended. Use a work package, deliverable, or control-account name that can be reconciled to your plan. Blank names are labeled automatically in reports and exports.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eScheduled progress\u003c\/strong\u003e is the percentage of the task that should be complete at the status date. It is required for schedule analysis and should remain between 0% and 100%. A higher scheduled percentage increases PV and can reduce SPI if actual progress does not rise with it.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eActual progress\u003c\/strong\u003e is the objectively measured completion percentage. It drives EV. A higher value increases earned value, improves both CPI and SPI, and usually lowers the forecast remaining cost. Avoid subjective “almost done” estimates; use weighted milestones, units complete, or another repeatable rule.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eBudget\u003c\/strong\u003e is the approved total budget for the task, not the amount planned to be spent by today. It is required to calculate PV and EV. Increasing a task budget raises the project’s budget at completion and gives that task more weight in every aggregate metric.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eCosts to date\u003c\/strong\u003e is the actual cost recorded for the task through the same status date. It drives AC and CPI. Include accrued costs when your reporting rules require them; omitting committed or unposted costs can make cost performance look temporarily better than reality.\u003c\/li\u003e\n        \u003c\/ul\u003e\n        \u003cp\u003eAdd as many tasks as needed. Removing a task immediately removes its values from totals, charts, the detail table, and the Excel workbook. Reset clears the example and leaves one neutral row so you can start a fresh project.\u003c\/p\u003e\n\n        \u003ch3\u003eCore formulas\u003c\/h3\u003e\n        \u003cp class=\"evm-formula\"\u003ePV = scheduled progress × task budget\u003c\/p\u003e\n        \u003cp class=\"evm-formula\"\u003eEV = actual progress × task budget\u003c\/p\u003e\n        \u003cp class=\"evm-formula\"\u003eCPI = EV ÷ AC   |   SPI = EV ÷ PV\u003c\/p\u003e\n        \u003cp class=\"evm-formula\"\u003eETC = (BAC − EV) ÷ CPI   |   EAC = AC + ETC\u003c\/p\u003e\n        \u003cp\u003eThe forecast assumes future cost efficiency will resemble current CPI. That is a transparent, common forecasting assumption, but it is not a guarantee. If the remaining work will be performed under materially different conditions, a bottom-up estimate to complete may be more appropriate.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"evm-education-section\"\u003e\n        \u003ch3\u003eHow to read every result\u003c\/h3\u003e\n        \u003cp\u003e\u003cstrong\u003eBudget at completion (BAC)\u003c\/strong\u003e is the sum of all task budgets. \u003cstrong\u003ePV\u003c\/strong\u003e is the budgeted value that should have been completed. \u003cstrong\u003eEV\u003c\/strong\u003e is the budgeted value actually completed. \u003cstrong\u003eAC\u003c\/strong\u003e is what the completed work has cost. When EV is below PV, the project is behind its baseline schedule. When AC is above EV, the project has spent more than the budgeted value of the work produced.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eCPI\u003c\/strong\u003e measures cost efficiency. A CPI above 1.00 indicates favorable cost performance, below 1.00 indicates unfavorable performance, and exactly 1.00 means one dollar of budgeted value is being earned for each dollar spent. \u003cstrong\u003eSPI\u003c\/strong\u003e uses the same interpretation for schedule efficiency. Zero or unavailable indices usually mean the denominator is zero, so there is not yet enough data for a meaningful ratio.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eCost variance (CV)\u003c\/strong\u003e is EV minus AC. Positive is favorable; negative is unfavorable. The displayed cost variance percentage follows the reference convention of dividing CV by EV. \u003cstrong\u003eSchedule variance (SV)\u003c\/strong\u003e is EV minus PV, with its percentage divided by PV. These amounts show the scale of the gap, while CPI and SPI show proportional efficiency.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eEstimate to complete (ETC)\u003c\/strong\u003e is the forecast cost of the remaining budgeted work. \u003cstrong\u003eEstimate at completion (EAC)\u003c\/strong\u003e adds ETC to actual cost and is the primary forecast shown at the top. The difference between BAC and EAC is the expected budget surplus or overrun. A negative forecast variance means the project is expected to exceed its approved baseline.\u003c\/p\u003e\n\n        \u003ch3\u003eCharts and task table\u003c\/h3\u003e\n        \u003cp\u003eThe budget allocation donut shows which tasks dominate the baseline. When more than five budget categories exist, the smallest categories are grouped into “Other” so the chart remains legible. A task with a large budget share deserves proportionally stronger progress validation because even a modest variance can materially alter project-level CPI, SPI, and EAC.\u003c\/p\u003e\n        \u003cp\u003eThe performance bar chart compares PV, EV, and AC using the same currency scale. EV below PV signals schedule pressure. AC above EV signals cost pressure. The strongest condition is EV at or above PV while AC remains at or below EV. The task table provides the audit trail: each row contains the inputs and task-level PV, EV, CV, and SV; the footer cross-foots to the project totals.\u003c\/p\u003e\n\n        \u003ch3\u003eAssumption changes and common mistakes\u003c\/h3\u003e\n        \u003cp\u003eHigher actual progress increases EV and generally improves both indices. Higher costs reduce CPI and raise EAC. Raising scheduled progress without changing actual progress reduces SPI. Increasing a task budget can increase both PV and EV, so the effect depends on the task’s scheduled and actual percentages. Always compare scenarios using the same status date and the same progress-measurement rules.\u003c\/p\u003e\n        \u003cp\u003eCommon mistakes include mixing reporting dates, treating money spent as progress achieved, entering the planned-to-date amount as the total task budget, excluding accruals from AC, and using subjective completion percentages. EVM also cannot replace scope control: if the baseline no longer represents approved work, re-baselining decisions must be governed separately. The \u003ca href=\"https:\/\/www.energy.gov\/projectmanagement\/evms-implementation-guidance\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eU.S. Department of Energy EVMS implementation guidance\u003c\/a\u003e discusses system discipline, while the \u003ca href=\"https:\/\/www.gao.gov\/products\/gao-20-195g\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eGAO Cost Estimating and Assessment Guide\u003c\/a\u003e provides broader context for credible cost baselines and forecasts.\u003c\/p\u003e\n        \u003cp\u003eThis calculator is an analytical aid, not personalized financial, legal, accounting, or contractual advice. Apply your organization’s reporting policy and the governing project-control standard.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909488124147,"sku":"earned-value-management","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/earned-value-management.webp?v=1783935546","url":"https:\/\/financialmodelslab.com\/products\/earned-value-management","provider":"Financial Models Lab","version":"1.0","type":"link"}