<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Pay Applications | Construction Metrics</title><link>https://constructionmetrics.com/tag/pay-applications/</link><description>Pay Applications on Construction Metrics</description><language>en-us</language><atom:link href="https://constructionmetrics.com/tag/pay-applications/index.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Mon, 05 Oct 2026 11:39:29 -0400</lastBuildDate><item><title>How to compute SPI and CPI from pay application data, with a $12 million example</title><link>https://constructionmetrics.com/2026/10/05/compute-spi-cpi-from-pay-applications/</link><pubDate>Mon, 05 Oct 2026 11:39:29 -0400</pubDate><guid isPermaLink="true">https://constructionmetrics.com/2026/10/05/compute-spi-cpi-from-pay-applications/</guid><category>Data</category><description>SPI and CPI compare earned value from the pay application to the baseline plan and to job cost. This example works both for a 12-month job at month six.</description><content:encoded>&lt;p&gt;Every month a project manager marks percent complete on each line of the schedule of values, and the owner pays against it. Multiply that percent by the cost budget for the same line and the result is earned value, the budgeted cost of the work in place. Earned value divided by planned value from the baseline schedule is the schedule performance index (SPI). Set against actual cost from the job cost ledger, the same earned value gives the cost performance index (CPI).&lt;/p&gt;
&lt;h2 id="the-definitions"&gt;The definitions&lt;/h2&gt;
&lt;p&gt;Acquipedia, the acquisition glossary published by the Warfighting Acquisition University (WarU), defines CPI as the budgeted cost for work performed (BCWP) divided by the actual cost of work performed (ACWP). It defines SPI as BCWP divided by the budgeted cost for work scheduled (BCWS). In plainer terms, BCWP is earned value, BCWS is planned value, and ACWP is actual cost.&lt;/p&gt;
&lt;p&gt;Both indexes read the same way, and WarU calls any value above 1.0 favorable. WarU puts a CPI of 0.95 in dollar terms: each dollar spent bought 95 cents of work.&lt;/p&gt;
&lt;p&gt;The Department of Energy&amp;rsquo;s Office of Project Management sets a warning line in its January 2020 EVMS and Project Analysis Standard Operating Procedure. DOE analysts treat a cumulative SPI or CPI below 0.95 as an early warning to investigate.&lt;/p&gt;
&lt;h2 id="where-each-input-lives"&gt;Where each input lives&lt;/h2&gt;
&lt;p&gt;A general contractor already has all three inputs in the pay application, the schedule and the job cost report:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Earned value. AIA&amp;rsquo;s instructions for the G703 Continuation Sheet compute percent complete as column G, total completed and stored to date, divided by column C, the scheduled value. For earned value, add only columns D and E, work completed in prior periods and this period, and leave out column F, materials stored on site but not yet installed. Multiply that percent by the line&amp;rsquo;s cost budget.&lt;/li&gt;
&lt;li&gt;Planned value. Spread each line&amp;rsquo;s cost budget across the months of the baseline schedule. A cost-loaded schedule gives this directly. Without one, convert the billing forecast prepared at the start of the job from contract dollars to cost dollars.&lt;/li&gt;
&lt;li&gt;Actual cost. Pull cost to date for each line from the accounting system, with cost codes mapped to the schedule of values.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Using the cost budget keeps all three inputs in cost dollars. That matters when markup sits unevenly across lines, as it does on a front-loaded schedule of values.&lt;/p&gt;
&lt;p&gt;AIA notes that change orders are usually listed separately, on their own G703 or at the end of the schedule. Give each approved change order its own line and its own cost budget, and add it to the budget at completion (BAC), the total cost budget for the job.&lt;/p&gt;
&lt;h2 id="a-worked-example"&gt;A worked example&lt;/h2&gt;
&lt;p&gt;The figures below are an example with round numbers. A general contractor holds a $12.0 million contract with a $10.8 million cost budget, a 10% gross margin, on a 12-month schedule. Six pay applications have gone in.&lt;/p&gt;
&lt;figure class="chart" id="chart-0"&gt;
&lt;figcaption class="chart-head"&gt;&lt;p class="chart-title"&gt;Earned value has trailed the plan since month one&lt;/p&gt;&lt;p class="chart-subtitle"&gt;Cumulative dollars by job month, example job with a $10.8 million cost budget&lt;/p&gt;
&lt;/figcaption&gt;
&lt;div class="chart-view chart-view-wide"&gt;
&lt;svg class="chart-svg" viewBox="0 0 720 340" role="img" aria-labelledby="chart-0-w-title chart-0-w-desc" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;title id="chart-0-w-title"&gt;Earned value has trailed the plan since month one&lt;/title&gt;
&lt;desc id="chart-0-w-desc"&gt;Line chart with 12 points from 1 to 12. Series: Planned value, Earned value, Actual cost. Values range from 340,000 to 10,800,000.&lt;/desc&gt;
&lt;g class="grid"&gt;&lt;line x1="72" x2="616" y1="306.0" y2="306.0"/&gt;&lt;line x1="72" x2="616" y1="210.0" y2="210.0"/&gt;&lt;line x1="72" x2="616" y1="114.0" y2="114.0"/&gt;&lt;line x1="72" x2="616" y1="18.0" y2="18.0"/&gt;
&lt;/g&gt;
&lt;g class="axis"&gt;
&lt;line x1="72" x2="616" y1="306.0" y2="306.0"/&gt;&lt;text x="64" y="309.5" text-anchor="end"&gt;0&lt;/text&gt;&lt;text x="64" y="213.5" text-anchor="end"&gt;5,000,000&lt;/text&gt;&lt;text x="64" y="117.5" text-anchor="end"&gt;10,000,000&lt;/text&gt;&lt;text x="64" y="21.5" text-anchor="end"&gt;15,000,000&lt;/text&gt;&lt;text x="72.0" y="324" text-anchor="start"&gt;1&lt;/text&gt;&lt;text x="170.9" y="324" text-anchor="middle"&gt;3&lt;/text&gt;&lt;text x="269.8" y="324" text-anchor="middle"&gt;5&lt;/text&gt;&lt;text x="368.7" y="324" text-anchor="middle"&gt;7&lt;/text&gt;&lt;text x="467.6" y="324" text-anchor="middle"&gt;9&lt;/text&gt;&lt;text x="616.0" y="324" text-anchor="end"&gt;12&lt;/text&gt;
&lt;/g&gt;
&lt;g class="series s-ctx"&gt;
&lt;path class="line" d="M72.0,299.3 L121.5,288.7 L170.9,274.3 L220.4,256.1 L269.8,228.2 L319.3,198.3 L368.7,173.5 L418.2,152.4 L467.6,134.2 L517.1,119.8 L566.5,107.3 L616.0,98.6"/&gt;
&lt;circle class="end" cx="616.0" cy="98.6" r="4"/&gt;
&lt;circle class="hit" cx="72.0" cy="299.3" r="9"&gt;&lt;title&gt;1: 350,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="121.5" cy="288.7" r="9"&gt;&lt;title&gt;2: 900,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="170.9" cy="274.3" r="9"&gt;&lt;title&gt;3: 1,650,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="220.4" cy="256.1" r="9"&gt;&lt;title&gt;4: 2,600,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="269.8" cy="228.2" r="9"&gt;&lt;title&gt;5: 4,050,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="319.3" cy="198.3" r="9"&gt;&lt;title&gt;6: 5,610,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="368.7" cy="173.5" r="9"&gt;&lt;title&gt;7: 6,900,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="418.2" cy="152.4" r="9"&gt;&lt;title&gt;8: 8,000,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="467.6" cy="134.2" r="9"&gt;&lt;title&gt;9: 8,950,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="517.1" cy="119.8" r="9"&gt;&lt;title&gt;10: 9,700,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="566.5" cy="107.3" r="9"&gt;&lt;title&gt;11: 10,350,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="616.0" cy="98.6" r="9"&gt;&lt;title&gt;12: 10,800,000&lt;/title&gt;&lt;/circle&gt;
&lt;text class="label label-ctx" x="624.0" y="102.6"&gt;Planned value&lt;/text&gt;
&lt;/g&gt;
&lt;g class="series s-emph"&gt;
&lt;path class="line" d="M72.0,299.5 L121.5,289.5 L170.9,276.2 L220.4,259.9 L269.8,236.9 L319.3,211.5"/&gt;
&lt;circle class="end" cx="319.3" cy="211.5" r="4"/&gt;
&lt;circle class="hit" cx="72.0" cy="299.5" r="9"&gt;&lt;title&gt;1: 340,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="121.5" cy="289.5" r="9"&gt;&lt;title&gt;2: 860,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="170.9" cy="276.2" r="9"&gt;&lt;title&gt;3: 1,550,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="220.4" cy="259.9" r="9"&gt;&lt;title&gt;4: 2,400,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="269.8" cy="236.9" r="9"&gt;&lt;title&gt;5: 3,600,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="319.3" cy="211.5" r="9"&gt;&lt;title&gt;6: 4,920,000&lt;/title&gt;&lt;/circle&gt;
&lt;text class="label" x="327.3" y="215.5"&gt;4,920,000&lt;/text&gt;
&lt;text class="label label-name" x="327.3" y="228.5"&gt;Earned value&lt;/text&gt;
&lt;/g&gt;
&lt;g class="series s-ctx"&gt;
&lt;path class="line" d="M72.0,299.4 L121.5,289.1 L170.9,275.3 L220.4,258.0 L269.8,233.4 L319.3,206.0"/&gt;
&lt;circle class="end" cx="319.3" cy="206.0" r="4"/&gt;
&lt;circle class="hit" cx="72.0" cy="299.4" r="9"&gt;&lt;title&gt;1: 345,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="121.5" cy="289.1" r="9"&gt;&lt;title&gt;2: 880,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="170.9" cy="275.3" r="9"&gt;&lt;title&gt;3: 1,600,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="220.4" cy="258.0" r="9"&gt;&lt;title&gt;4: 2,500,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="269.8" cy="233.4" r="9"&gt;&lt;title&gt;5: 3,780,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="319.3" cy="206.0" r="9"&gt;&lt;title&gt;6: 5,210,000&lt;/title&gt;&lt;/circle&gt;
&lt;text class="label label-ctx" x="327.3" y="210.0"&gt;Actual cost&lt;/text&gt;
&lt;/g&gt;
&lt;/svg&gt;
&lt;/div&gt;
&lt;div class="chart-view chart-view-narrow"&gt;
&lt;svg class="chart-svg chart-svg-narrow" viewBox="0 0 360 250" role="img" aria-labelledby="chart-0-n-title chart-0-n-desc" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;title id="chart-0-n-title"&gt;Earned value has trailed the plan since month one&lt;/title&gt;
&lt;desc id="chart-0-n-desc"&gt;Line chart with 12 points from 1 to 12. Series: Planned value, Earned value, Actual cost. Values range from 340,000 to 10,800,000.&lt;/desc&gt;
&lt;g class="grid"&gt;&lt;line x1="50" x2="276" y1="220.0" y2="220.0"/&gt;&lt;line x1="50" x2="276" y1="151.3" y2="151.3"/&gt;&lt;line x1="50" x2="276" y1="82.7" y2="82.7"/&gt;&lt;line x1="50" x2="276" y1="14.0" y2="14.0"/&gt;
&lt;/g&gt;
&lt;g class="axis"&gt;
&lt;line x1="50" x2="276" y1="220.0" y2="220.0"/&gt;&lt;text x="42" y="223.5" text-anchor="end"&gt;0&lt;/text&gt;&lt;text x="42" y="154.8" text-anchor="end"&gt;5M&lt;/text&gt;&lt;text x="42" y="86.2" text-anchor="end"&gt;10M&lt;/text&gt;&lt;text x="42" y="17.5" text-anchor="end"&gt;15M&lt;/text&gt;&lt;text x="50.0" y="237" text-anchor="start"&gt;1&lt;/text&gt;&lt;text x="173.3" y="237" text-anchor="middle"&gt;7&lt;/text&gt;&lt;text x="276.0" y="237" text-anchor="end"&gt;12&lt;/text&gt;
&lt;/g&gt;
&lt;g class="series s-ctx"&gt;
&lt;path class="line" d="M50.0,215.2 L70.5,207.6 L91.1,197.3 L111.6,184.3 L132.2,164.4 L152.7,143.0 L173.3,125.2 L193.8,110.1 L214.4,97.1 L234.9,86.8 L255.5,77.9 L276.0,71.7"/&gt;
&lt;circle class="end" cx="276.0" cy="71.7" r="4"/&gt;
&lt;circle class="hit" cx="50.0" cy="215.2" r="9"&gt;&lt;title&gt;1: 350,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="70.5" cy="207.6" r="9"&gt;&lt;title&gt;2: 900,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="91.1" cy="197.3" r="9"&gt;&lt;title&gt;3: 1,650,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="111.6" cy="184.3" r="9"&gt;&lt;title&gt;4: 2,600,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="132.2" cy="164.4" r="9"&gt;&lt;title&gt;5: 4,050,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="152.7" cy="143.0" r="9"&gt;&lt;title&gt;6: 5,610,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="173.3" cy="125.2" r="9"&gt;&lt;title&gt;7: 6,900,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="193.8" cy="110.1" r="9"&gt;&lt;title&gt;8: 8,000,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="214.4" cy="97.1" r="9"&gt;&lt;title&gt;9: 8,950,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="234.9" cy="86.8" r="9"&gt;&lt;title&gt;10: 9,700,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="255.5" cy="77.9" r="9"&gt;&lt;title&gt;11: 10,350,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="276.0" cy="71.7" r="9"&gt;&lt;title&gt;12: 10,800,000&lt;/title&gt;&lt;/circle&gt;
&lt;text class="label label-ctx" x="284.0" y="75.7"&gt;Planned value&lt;/text&gt;
&lt;/g&gt;
&lt;g class="series s-emph"&gt;
&lt;path class="line" d="M50.0,215.3 L70.5,208.2 L91.1,198.7 L111.6,187.0 L132.2,170.6 L152.7,152.4"/&gt;
&lt;circle class="end" cx="152.7" cy="152.4" r="4"/&gt;
&lt;circle class="hit" cx="50.0" cy="215.3" r="9"&gt;&lt;title&gt;1: 340,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="70.5" cy="208.2" r="9"&gt;&lt;title&gt;2: 860,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="91.1" cy="198.7" r="9"&gt;&lt;title&gt;3: 1,550,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="111.6" cy="187.0" r="9"&gt;&lt;title&gt;4: 2,400,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="132.2" cy="170.6" r="9"&gt;&lt;title&gt;5: 3,600,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="152.7" cy="152.4" r="9"&gt;&lt;title&gt;6: 4,920,000&lt;/title&gt;&lt;/circle&gt;
&lt;text class="label" x="160.7" y="156.4"&gt;4.92M&lt;/text&gt;
&lt;text class="label label-name" x="160.7" y="169.4"&gt;Earned value&lt;/text&gt;
&lt;/g&gt;
&lt;g class="series s-ctx"&gt;
&lt;path class="line" d="M50.0,215.3 L70.5,207.9 L91.1,198.0 L111.6,185.7 L132.2,168.1 L152.7,148.4"/&gt;
&lt;circle class="end" cx="152.7" cy="148.4" r="4"/&gt;
&lt;circle class="hit" cx="50.0" cy="215.3" r="9"&gt;&lt;title&gt;1: 345,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="70.5" cy="207.9" r="9"&gt;&lt;title&gt;2: 880,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="91.1" cy="198.0" r="9"&gt;&lt;title&gt;3: 1,600,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="111.6" cy="185.7" r="9"&gt;&lt;title&gt;4: 2,500,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="132.2" cy="168.1" r="9"&gt;&lt;title&gt;5: 3,780,000&lt;/title&gt;&lt;/circle&gt;&lt;circle class="hit" cx="152.7" cy="148.4" r="9"&gt;&lt;title&gt;6: 5,210,000&lt;/title&gt;&lt;/circle&gt;
&lt;text class="label label-ctx" x="160.7" y="152.4"&gt;Actual cost&lt;/text&gt;
&lt;/g&gt;
&lt;/svg&gt;
&lt;/div&gt;
&lt;figcaption class="chart-foot"&gt;&lt;span class="chart-note"&gt;Example figures. Planned value runs through month 12; earned value and actual cost stop at month 6.&lt;/span&gt; &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;At month six the baseline called for $5.61 million of work. The job has earned $4.92 million and spent $5.21 million, for an SPI of 0.88 and a CPI of 0.94. SPI dropped below DOE&amp;rsquo;s 0.95 line at month three, and CPI crossed it at month six.&lt;/p&gt;
&lt;figure class="table-figure"&gt;
&lt;div class="table-container"&gt;
&lt;table class="table data-table"&gt;
&lt;caption&gt;Example earned value by schedule of values line at month six (illustrative figures)&lt;/caption&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Schedule of values line&lt;/th&gt;&lt;th class="num"&gt;Cost budget&lt;/th&gt;&lt;th class="num"&gt;Planned % complete&lt;/th&gt;&lt;th class="num"&gt;Pay app % complete&lt;/th&gt;&lt;th class="num"&gt;Planned value&lt;/th&gt;&lt;th class="num"&gt;Earned value&lt;/th&gt;&lt;th class="num"&gt;Actual cost&lt;/th&gt;&lt;th class="num"&gt;SPI&lt;/th&gt;&lt;th class="num"&gt;CPI&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;General conditions&lt;/td&gt;&lt;td class="num"&gt;$900,000&lt;/td&gt;&lt;td class="num"&gt;50%&lt;/td&gt;&lt;td class="num"&gt;50%&lt;/td&gt;&lt;td class="num"&gt;$450,000&lt;/td&gt;&lt;td class="num"&gt;$450,000&lt;/td&gt;&lt;td class="num"&gt;$480,000&lt;/td&gt;&lt;td class="num"&gt;1.00&lt;/td&gt;&lt;td class="num"&gt;0.94&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Sitework&lt;/td&gt;&lt;td class="num"&gt;$1,000,000&lt;/td&gt;&lt;td class="num"&gt;100%&lt;/td&gt;&lt;td class="num"&gt;100%&lt;/td&gt;&lt;td class="num"&gt;$1,000,000&lt;/td&gt;&lt;td class="num"&gt;$1,000,000&lt;/td&gt;&lt;td class="num"&gt;$1,060,000&lt;/td&gt;&lt;td class="num"&gt;1.00&lt;/td&gt;&lt;td class="num"&gt;0.94&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Concrete&lt;/td&gt;&lt;td class="num"&gt;$1,800,000&lt;/td&gt;&lt;td class="num"&gt;100%&lt;/td&gt;&lt;td class="num"&gt;95%&lt;/td&gt;&lt;td class="num"&gt;$1,800,000&lt;/td&gt;&lt;td class="num"&gt;$1,710,000&lt;/td&gt;&lt;td class="num"&gt;$1,890,000&lt;/td&gt;&lt;td class="num"&gt;0.95&lt;/td&gt;&lt;td class="num"&gt;0.90&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Structural steel&lt;/td&gt;&lt;td class="num"&gt;$1,500,000&lt;/td&gt;&lt;td class="num"&gt;80%&lt;/td&gt;&lt;td class="num"&gt;60%&lt;/td&gt;&lt;td class="num"&gt;$1,200,000&lt;/td&gt;&lt;td class="num"&gt;$900,000&lt;/td&gt;&lt;td class="num"&gt;$870,000&lt;/td&gt;&lt;td class="num"&gt;0.75&lt;/td&gt;&lt;td class="num"&gt;1.03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Enclosure&lt;/td&gt;&lt;td class="num"&gt;$1,700,000&lt;/td&gt;&lt;td class="num"&gt;30%&lt;/td&gt;&lt;td class="num"&gt;20%&lt;/td&gt;&lt;td class="num"&gt;$510,000&lt;/td&gt;&lt;td class="num"&gt;$340,000&lt;/td&gt;&lt;td class="num"&gt;$350,000&lt;/td&gt;&lt;td class="num"&gt;0.67&lt;/td&gt;&lt;td class="num"&gt;0.97&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;MEP&lt;/td&gt;&lt;td class="num"&gt;$2,600,000&lt;/td&gt;&lt;td class="num"&gt;25%&lt;/td&gt;&lt;td class="num"&gt;20%&lt;/td&gt;&lt;td class="num"&gt;$650,000&lt;/td&gt;&lt;td class="num"&gt;$520,000&lt;/td&gt;&lt;td class="num"&gt;$560,000&lt;/td&gt;&lt;td class="num"&gt;0.80&lt;/td&gt;&lt;td class="num"&gt;0.93&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Interiors&lt;/td&gt;&lt;td class="num"&gt;$1,300,000&lt;/td&gt;&lt;td class="num"&gt;0%&lt;/td&gt;&lt;td class="num"&gt;0%&lt;/td&gt;&lt;td class="num"&gt;$0&lt;/td&gt;&lt;td class="num"&gt;$0&lt;/td&gt;&lt;td class="num"&gt;$0&lt;/td&gt;&lt;td class="num"&gt;&lt;/td&gt;&lt;td class="num"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Total&lt;/td&gt;&lt;td class="num"&gt;$10,800,000&lt;/td&gt;&lt;td class="num"&gt;52%&lt;/td&gt;&lt;td class="num"&gt;46%&lt;/td&gt;&lt;td class="num"&gt;$5,610,000&lt;/td&gt;&lt;td class="num"&gt;$4,920,000&lt;/td&gt;&lt;td class="num"&gt;$5,210,000&lt;/td&gt;&lt;td class="num"&gt;0.88&lt;/td&gt;&lt;td class="num"&gt;0.94&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;The line detail shows where the totals come from. Structural steel sits 20 points behind plan with a CPI of 1.03, so the crew is slow but under budget. Concrete stands at 95% against a plan of 100% and carries the worst CPI on the job, 0.90, with $1.89 million spent against $1.71 million earned. Enclosure has the lowest SPI, 0.67.&lt;/p&gt;
&lt;p&gt;WarU points out that SPI is independent of the critical path. Whether the slow steel moves the finish date is a question for the critical path schedule.&lt;/p&gt;
&lt;h2 id="forecasting-the-final-cost"&gt;Forecasting the final cost&lt;/h2&gt;
&lt;p&gt;WarU&amp;rsquo;s entry on the estimate at completion (EAC) gives one equation for every earned value forecast: actual cost to date plus the remaining budget, BAC minus BCWP, divided by a performance factor. WarU says the cumulative CPI version generally sets the floor of the range, while the composite version, which divides by CPI times SPI, sets the ceiling.&lt;/p&gt;
&lt;figure class="table-figure"&gt;
&lt;div class="table-container"&gt;
&lt;table class="table data-table"&gt;
&lt;caption&gt;Example estimates at completion at month six (illustrative figures)&lt;/caption&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Forecast&lt;/th&gt;&lt;th&gt;Formula&lt;/th&gt;&lt;th class="num"&gt;Estimate at completion&lt;/th&gt;&lt;th class="num"&gt;Gross margin on $12.0M contract&lt;/th&gt;&lt;th class="num"&gt;Gross margin %&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Original cost budget&lt;/td&gt;&lt;td&gt;BAC&lt;/td&gt;&lt;td class="num"&gt;$10,800,000&lt;/td&gt;&lt;td class="num"&gt;$1,200,000&lt;/td&gt;&lt;td class="num"&gt;10.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;CPI method&lt;/td&gt;&lt;td&gt;ACWP &amp;#43; (BAC - BCWP) / CPI&lt;/td&gt;&lt;td class="num"&gt;$11,436,585&lt;/td&gt;&lt;td class="num"&gt;$563,415&lt;/td&gt;&lt;td class="num"&gt;4.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Composite method&lt;/td&gt;&lt;td&gt;ACWP &amp;#43; (BAC - BCWP) / (CPI x SPI)&lt;/td&gt;&lt;td class="num"&gt;$12,309,826&lt;/td&gt;&lt;td class="num"&gt;-$309,826&lt;/td&gt;&lt;td class="num"&gt;-2.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;The CPI method puts the final cost at about $11.44 million, which cuts gross margin from $1.2 million to about $563,000. The composite method also folds in the schedule lag and lands at about $12.31 million, above the contract value. DOE&amp;rsquo;s procedure says these formulas are most accurate between 15% and 95% complete, and the example job is 46% complete by earned value.&lt;/p&gt;
&lt;p&gt;Set both figures next to the project manager&amp;rsquo;s own cost-to-complete on the &lt;a href="https://constructionmetrics.com/2026/09/26/build-work-in-progress-schedule-job-cost/"&gt;WIP schedule&lt;/a&gt;. When the PM&amp;rsquo;s forecast sits below the CPI floor, the job is a candidate for &lt;a href="https://constructionmetrics.com/2026/09/27/measure-gross-margin-fade-portfolio-jobs/"&gt;margin fade&lt;/a&gt; at a later review.&lt;/p&gt;
&lt;h2 id="spi-near-the-end-of-a-job"&gt;SPI near the end of a job&lt;/h2&gt;
&lt;p&gt;WarU notes that SPI equals 1.0 at the end of every contract by definition, because once all planned work is done, BCWP equals BCWS. DOE&amp;rsquo;s procedure says SPI loses its usefulness in the last third of a project, since it returns to 1.0 at completion whether the job finished on time or late. It recommends earned schedule instead: the point in time when the baseline planned to reach today&amp;rsquo;s earned value.&lt;/p&gt;
&lt;p&gt;In the example, the $4.92 million earned falls between planned value at month five ($4.05 million) and month six ($5.61 million). Earned schedule is 5 + (4.92 - 4.05) / (5.61 - 4.05), or 5.56 months. The time-based index, SPI(t), is 5.56 divided by the 6 months elapsed, or 0.93. DOE forecasts duration as the baseline duration divided by SPI(t), which gives about 13 months against the planned 12.&lt;/p&gt;
&lt;p&gt;DOE says earned schedule works best after a project reaches 65% complete, so at 46% this is an early reading. The same procedure warns that both SPI and SPI(t) can be skewed when noncritical work scheduled for later is finished early.&lt;/p&gt;
&lt;aside class="note"&gt;Earned value rests on the percent complete in the pay application. A line billed ahead of the work in place overstates earned value the same way &lt;a href="https://constructionmetrics.com/2017/07/25/construction-accounting-overbilling/"&gt;overbilling&lt;/a&gt; overstates revenue, so check percent complete against installed quantities before computing the indexes.&lt;/aside&gt;
&lt;h2 id="how-to-start-on-your-jobs"&gt;How to start on your jobs&lt;/h2&gt;
&lt;p&gt;Pick one active job past 15% complete. Map each schedule of values line to its cost codes, then take columns D and E from every pay application to date and compute earned value, SPI and CPI for each month. If the baseline schedule has no cost loading, spread each line&amp;rsquo;s budget across its activity dates first.&lt;/p&gt;</content:encoded></item></channel></rss>