88 min read

It was the first week of December, month nine on the Northgate Outpatient Pavilion, and the monthly

Chapter 28 — Cost Control: Budgets, Cost Codes, Tracking, Forecasting, and Knowing If You're Making Money

The Hook: The $210,000 That Told Me Nothing

It was the first week of December, month nine on the Northgate Outpatient Pavilion, and the monthly cost report was open on my screen. The bottom-right cell — the one everybody scrolls to first — said the job was $210,000 under budget.

I have been doing this for twenty-two years. Twenty-two years ago that number would have made my week. Now it made my stomach drop.

Here is why. We had topped out on November 12. The steel was up, the deck was poured to level four, the curtain wall was in fabrication, and the entire back half of the job — mechanical, electrical, drywall, ceilings, flooring, casework, the whole expensive interior — had barely started. At month nine on a nineteen-month job, a favorable variance is not good news. It is a report about work that has not happened yet. A favorable number that early usually means one of two things: you bought the job well, or the report has not caught up with reality.

I walked down the hall to Lorena Vasquez's office. Lorena is our project accountant. She owns the cost codes, the accounts payable coding, the pay applications, and — on a good day — my sanity.

"The report says two-ten under," I said.

"The report says what you told it to say," she said, which is Lorena's way of saying sit down.

We sat down. Two hours, line by line, four hundred and some cost codes on two screens. And the $210,000 came apart in my hands.

About $340,000 of it was real. Six trades had bought out below the estimate — curtain wall, finishes, HVAC, electrical, fire protection, and the elevators. Tomás Reyes had priced that scope conservatively, the market cooperated, and Kestrel's buyout was clean. That money existed. You could touch it.

About $130,000 of it was already gone, in a direction I knew about. Earthwork ran over on export haul. Miscellaneous metals bought high. Masonry bought $22,000 over. Site paving bought $24,000 over. Those were showing correctly on the report — visible, forecast, no surprise. Net of them, the $340,000 became $210,000, and that was the number on my screen.

Then Lorena showed me the two things that were not on the report at all.

$190,000 of self-perform concrete labor was overrunning, and every one of those cost codes was forecast at budget. Three of the four codes were physically complete — footings, foundation walls, slab on grade — and nobody had gone back to re-forecast a code that was "done." The fourth, the elevated deck topping, was 58 percent placed and running 23 percent over on unit cost, and the field engineer had forecast it by multiplying the budget by the percent complete. That method cannot produce an overrun. It is arithmetically incapable of it.

And $60,000 of work had been performed in November and was not in the report in any column. Not in cost to date, not in committed, not anywhere. Cardinal Mechanical had relocated 340 linear feet of overhead medical-gas and hydronic mains in the level-two north bay because our coordination sign-off missed a conflict with a structural brace. We told Sofia Marchetti to do it. She did it. There was no subcontract change, no invoice, and no accrual. Separately, the November temporary heat and hoarding service tickets were signed in the field and riding around in a superintendent's truck.

Add it up honestly and the job was not $210,000 under. It was $40,000 over.

The report was not wrong. Every number in it was accurate. Every column footed. Lorena's coding was immaculate. The report was right and it told me nothing, because a cost report is not a record of what you have spent. It is a forecast of what you will spend, and the forecast is the part that requires a human being to think.

That is this chapter.

🏃 Fast Track: If you already build cost reports, go straight to 28.6 (forecasting cost to complete, including when a trend becomes predictive), 28.7 (percent-complete methods and the bias each one carries), and 28.10 (the ethics of the forecast). Skim 28.2 and 28.3 for the five-place coding rule and the budget-transfer test.

🔬 Deep Dive: The unit-rate arithmetic here rests on the productivity work in Chapter 20 and the estimate structure in Chapter 13. The same five numbers get re-expressed as indices in Chapter 30, and the company-level consequence of every forecast you write lands in Chapter 34. Reference formulas and unit conversions live in Appendix A.


28.1 What Project Controls Are — and What Cost Control Is Not

This chapter opens Part VI, so let me define the territory before we get into cost codes.

Project controls do not control anything. The name is a hundred years old and it is misleading. Project controls are a measurement and forecasting system whose entire purpose is to convert a feeling into a number early enough that a decision is still possible.

Read that again, because every technique in the next seven chapters is a variation on it. Margo Deacon walks the building at 6:30 in the morning and comes back with a feeling: the concrete crew is not moving the way it moved in July. That feeling is real, it is usually correct, and it is worthless in a meeting with a hospital board. Project controls exist to turn Margo's feeling into "the elevated deck topping is running $3.27 per square foot against a $2.67 budget, we are 58 percent placed, and the forecast overrun on that code alone is $60,000" — while there is still 42 percent of the quantity left to fix.

Three questions, asked every month, forever:

  1. Are we going to finish on time? — schedule control, Chapters 29, 30, and 33.
  2. Are we going to make money? — cost control, this chapter, plus 30 and 34.
  3. When something changes, what is it worth and who pays? — Chapters 31, 32, and 33.

All three are forward-looking. Every one of them asks about a future state. That is not a coincidence; it is the definition.

Cost control is not accounting

This is the distinction new project managers get wrong most often, and it causes real damage, so let me draw it hard.

Accounting looks backward and must be right. It records transactions that have occurred. It reconciles to the bank. It produces financial statements a CPA will review, a surety will read, and in some cases a court will examine. Accounting is bound by rules — percentage-of-completion revenue recognition, accrual conventions, audit trails. If accounting is approximately right, it is wrong.

Cost control looks forward and must be timely. Its product is not a record; it is a decision. And a decision has an expiration date. A forecast that is exactly right and arrives on the twentieth of the following month is worth less than a forecast that is within five percent and arrives on Friday, because on Friday you can still change the crew, the sequence, the formwork cycle, or the pour size.

Accounting Cost control
Direction Backward — what happened Forward — what will happen
Standard Accuracy Timeliness, then accuracy
Output A record A decision
Governing question "Is this correct?" "Is this actionable?"
Period Closes monthly, hard Weekly for labor, monthly for everything else
Consequence of error Restatement, audit finding A crew works four more weeks the wrong way
Owner of the number The accountant The project manager

Here is what makes this hard in practice: on most projects these two functions are performed by two people sitting six feet apart, using the same software and the same database. Lorena's job is to be right at month end. My job is to be useful on Friday. Those goals are in genuine, permanent, healthy tension, and the tension sounds like this:

Ray: I need the November concrete number today. Lorena: I don't have the ready-mix invoices. Three weeks of tickets are in Jamal's truck. Ray: Then accrue them off the delivery tickets. Lorena: Accrue them off what tickets? I need something I can defend if Meridian's auditor asks me why the number moved. Ray: Jamal's quantity log. Yards placed times the unit price on the ready-mix purchase order. Lorena: That is an estimate. Ray: It is an estimate that is within two percent, and it is Tuesday. Your invoice is exact and it arrives December 12. Which one helps the crew pouring level four on Thursday?

Lorena is not wrong. Neither am I. The resolution — and it is the resolution on every good job — is that the accrual is documented, sourced, labeled as an accrual, and reversed when the invoice lands. Nobody guesses in secret. That is section 28.5.

💡 Aha moment. The cost report is the only management document on a project that is simultaneously an accounting record and a prediction. That dual nature is why it is so easy to misread and so easy to abuse. When you look at a cost report, always know which of the five columns you are looking at, because two of them are history, one is a set of contracts, and exactly one is somebody's opinion.

🔄 Check your understanding. Your controller tells you the October cost report will be final on November 18 and asks you to stop requesting preliminary numbers. State the problem with waiting, in terms of what a cost report is for.

Answer

By November 18, seven weeks of work have been performed since the start of the October period. Any problem the October report reveals has had seven more weeks to compound, and the crews have had seven more weeks to build in the wrong way at the wrong rate. Cost control's product is a decision, and a decision made on November 18 about October cannot change anything that happened in October or in the first eighteen days of November.

The right answer is not to demand that accounting close faster. It is to run a separate, faster, less exact forward-looking cycle for the costs you can still influence — labor above all — and let accounting close on its own schedule. The two cycles reconcile monthly; they do not have to run at the same speed.


28.2 Cost Codes: The Skeleton Everything Hangs On

A cost code is a numbered bucket that costs go into. That is the whole idea, and it sounds so simple that people skip it, which is how projects end up with a report that cannot answer any question worth asking.

Kestrel's code has three parts:

        03    -    3100    -    L
        ▲          ▲            ▲
        │          │            │
    DIVISION    ACTIVITY     COST TYPE
   CSI Master-  the countable   L = labor
   Format div.  unit of work    M = material
   (2 digits)   (4 digits)      E = equipment
                                S = subcontract
                                O = other / indirect

The division is CSI MasterFormat — 03 Concrete, 05 Metals, 08 Openings, 23 HVAC, 26 Electrical, 31 Earthwork. Using MasterFormat is not a rule; it is a convenience so enormous that fighting it is pointless. Your specifications are organized that way. Subcontractor bids arrive that way. Your estimate (Chapter 13) is built that way. If your cost codes use a different spine, somebody has to translate — and translation is where data goes to die.

The activity is the piece of work. This is where judgment lives, and I will come back to it.

The cost type is the most under-appreciated character in the string. Splitting labor from material from equipment from subcontract is what lets you answer why a code is over. A concrete code that is 12 percent over tells you nothing. A concrete code where labor is 22 percent over, material is on budget, and equipment is 4 percent under tells you the crew is burning hours — a supervision and sequencing problem you can act on this week, not a purchasing problem you cannot.

The Northgate cost-code structure

Here is a real slice of it. This is what Lorena set up before notice to proceed, working from Tomás's estimate.

Code Description Unit Cost type Who codes to it
01-5100-O Temporary heat, hoarding, and weather protection LS/month Other AP, from rental and service tickets
01-5400-E Hoisting — tower crane, personnel hoist, forklifts month Equipment AP, from the rental PO
02-4100-S Selective demolition and existing conditions LS Subcontract Subcontract schedule of values
03-3100-L Spread footings — form, place, finish CY Labor Concrete foreman's daily time card
03-3100-M Spread footings — ready-mix, rebar, embeds, accessories CY Material AP, from delivery tickets
03-3200-L Foundation walls and grade beams — form, place, finish CY Labor Concrete foreman's daily time card
03-3300-L Slab on grade — place, finish, cure SF Labor Concrete foreman's daily time card
03-3500-L Elevated slabs — lightweight topping on metal deck SF Labor Concrete foreman's daily time card
03-3900-E Concrete equipment — forms, pumps, buggies, trowels, shoring CY / SF Equipment Equipment log + rental POs
03-4500-S Architectural precast panels — supply and erect SF Subcontract Subcontract schedule of values
05-1200-S Structural steel — supply, fabricate, erect TON Subcontract Subcontract schedule of values
05-3100-S Metal deck — supply and install SF Subcontract Subcontract schedule of values
06-1000-L Rough carpentry and general trades — labor MH Labor Carpenter foreman's daily time card
08-4400-S Unitized curtain wall — supply and install SF Subcontract Subcontract schedule of values
22-6000-S Medical gas systems — supply and install LS Subcontract Subcontract schedule of values
23-0500-S HVAC — supply and install LS Subcontract Subcontract schedule of values
31-2300-S Mass excavation, backfill, and export CY Subcontract Subcontract schedule of values

Notice three things.

First, every self-perform code has a unit of measure somebody can actually count. CY of footings. SF of slab. TON of steel. If you cannot state the unit, you cannot compute a unit rate; if you cannot compute a unit rate you cannot forecast; and the code becomes a hole you pour money into and report on by feel.

Second, the "who codes to it" column exists. A code with no identified source of data is decorative.

Third, 06-1000-L is measured in man-hours rather than a physical unit, because "general trades" covers forty small tasks with no common denominator. That is a legitimate choice and it carries a cost: you can see whether you are burning hours faster than planned, but you cannot compute a productivity factor, because there is no denominator. Accept that trade honestly rather than inventing a fake unit.

The discipline that makes or breaks the whole system

Here is the rule that separates a cost system that works from one that generates paper:

The same code structure must be used in five places: the estimate, the control budget, the field time cards, the accounts payable coding, and the schedule of values. If any one of those five diverges, the cost report is fiction.

Walk the chain and you will see why.

Place What it supplies What breaks if it uses different codes
The estimate (Ch 13) The budget's DNA — quantities, unit rates, assumptions You cannot compare actual to estimated unit cost, so you cannot tell whether you are overrunning or the estimate was wrong. You also cannot feed the number back to estimating (28.10).
The control budget The baseline every variance is measured against Every variance is measured against the wrong thing.
Field time cards Labor hours by activity — the only near-real-time data on the job Labor cost lands in the wrong bucket. Your worst code looks fine and an innocent code looks terrible. This is exactly the failure in the hook.
Accounts payable coding Material, equipment, and subcontract invoices The same disease, one month slower and much harder to unwind.
Schedule of values (Ch 32) What you bill the owner, line by line You bill in categories you cannot cost, so you can never compare what you earned to what you spent — which is the whole of Chapter 30.

I once watched a $60 million job run an entire year with a field time card that used the superintendent's own eleven invented codes, because "the accounting codes don't match how we work." At closeout, that job's historical unit costs were unusable. Not slightly off — unusable. Estimating got nothing. Two years of production data on a building type we wanted more of, gone, because nobody spent one afternoon reconciling two lists.

The classic failure: too coarse, or too fine

Almost every bad cost-code structure fails in one of two directions.

Failure Example Why it fails What it costs you
Too coarse A single code 03-0000, "Concrete" A 16 percent labor overrun on footings is invisible inside a $4.2 million bucket that also holds $1.2 million of precast subcontract and $1.3 million of ready-mix. The code reports "on budget" until it is 90 percent spent. | On Northgate, the entire $190,000 concrete labor problem would have been undetectable until the money was gone.
Too fine 03-3111-L, "Spread footings, type F-3, north half, second lift" It is 3:30 p.m., the foreman has fourteen people, and the time card asks him to split the day across eleven codes. He will not do it. He will pick one and move on — or worse, split evenly, which manufactures data that looks precise and is invented. You destroyed your own data and added twenty minutes a day of clerical work for every foreman on the job.

The practical rule I use:

A cost code should be big enough to be worth a foreman's attention and small enough that its work has one countable unit and, ideally, one crew.

Two rules of thumb that operationalize it:

  • A self-perform code should carry at least roughly 200 to 400 man-hours. Below that, noise swamps signal and nobody codes it accurately anyway.
  • A foreman should not need more than about six to ten codes on a normal day. If your structure demands more, it will not survive contact with a job site.

🔍 Why this works. The reason the "too fine" failure is worse than it looks is that it does not announce itself. A too-coarse code is obviously uninformative — you look at it and know you cannot see inside. A too-fine structure produces a report with eleven precise-looking lines, each carrying a number good to the dollar, all of which are one foreman's guess about how to split a day he did not track that way. Precision and accuracy are different things, and a cost system is one of the easiest places in construction to buy the first while destroying the second. When in doubt, go one level coarser than feels right, and add detail only where you are actively managing something.

🔄 Check your understanding. Your self-perform drywall operation has one code, 09-2900-L ("Gypsum board — labor"), budgeted at $840,000 for 412,000 SF. Two months in, it is running 9 percent over. What single change to the code structure would most improve your ability to act on that number, and what does the change cost you?

Answer

Split the code by operation, not by area: framing (LF of stud), hanging (SF), and finishing/taping (SF) are three different crews, three different production rates, and three different failure modes. A 9 percent overrun on the combined code could be a framing layout problem, a hanging problem caused by MEP not being ready above the ceiling, or a finish-level problem — and the fix for each is completely different.

The cost is real: three codes instead of one on every time card, and a foreman who now has to think about which crew he is reporting. It is worth it here, because each split code still carries thousands of man-hours and each has a genuinely countable unit. Splitting by floor instead would double the number of codes without separating any of the three failure modes.


28.3 From Estimate to Control Budget

The estimate is not the budget. The estimate is what you thought the work would cost when you priced it; the budget is what you have committed to manage against. Between them sits buyout, and after them sit approved changes and contingency draws. Keeping those four things straight is the single most common bookkeeping failure I see in young project managers.

There are four versions of the number, and each one exists for a reason:

Version What it is Who owns it When it stops changing
Original budget The estimate as accepted into the contract, reorganized into cost codes Estimating hands it to the project team at the buyout meeting At notice to proceed
Bought budget Original budget with executed subcontract and purchase-order values substituted for estimated values Project manager As each package is bought (Ch 16)
Approved changes Owner change orders and internal contingency transfers posted to codes PM, with the accountant Continuously, until closeout
Current budget Original + approved owner changes + approved contingency transfers Project manager Never; it is the live baseline

The Northgate budget reconciliation

Northgate's guaranteed maximum price is $47,500,000, of which the direct cost of work is $40,000,000. That $40,000,000 is what a cost report actually manages; general conditions, insurance and bonds, contingency, fee, and escalation ride above it as separate lines. Here is where the cost of work stood at the data date of the month-nine report, November 30, Year 1:

Line Amount
Original control budget — direct cost of work, from the GMP $40,000,000
Approved owner change orders #1–#9, cost-of-work portion +$488,000
Approved contingency transfers to date +$712,000
Current control budget — direct cost of work $41,200,000

The nine approved change orders added $515,000 to the guaranteed maximum price: $488,000 of cost of work plus $27,000 of fee, insurance, and bond. The revised GMP is therefore $48,015,000.

The seven contingency transfers look like this. Every one of them names a risk, which is the whole point of Chapter 6:

Transfer Risk that materialized To division Amount
CT-01 Unsuitable soils at the east footings — over-excavate and replace 31 Earthwork $182,000
CT-02 Additional dewatering at the west footing line 31 Earthwork $74,000
CT-03 Steel acceleration — second erection crew and premium time 05 Metals $118,000
CT-04 Steel acceleration — extended hoisting and added supervision 01 General requirements $50,000
CT-05 Deck-edge detailing rework following the acceleration 05 Metals $64,000
CT-06 Curtain-wall anchor embed misplacement — cut, repair, re-set 03 Concrete $58,000
CT-07 Winter protection and temporary heat beyond the allowance 01 General requirements $96,000
CT-08 Unforeseen rock in the storm line trench 33 Utilities $70,000
Total drawn from contingency $712,000

Two of those — CT-03 and CT-04 — are the canonical steel acceleration. The 23-day slip in the anchor-bolt submittal cost us the mill slot, and buying seventeen days back cost $168,000. That number is the same $168,000 you saw in Chapter 14 and will see again in Chapter 29; here it is simply visible from the cost side, posted to two cost codes, where it belongs. Theme 2 in one line: the schedule and the budget are the same conversation.

Original contingency was $1,320,000. Drawn to date, $712,000. Remaining, $608,000.

📊 Diagram (described): contingency drawdown against work complete. Draw two horizontal bars on the same 0-to-100 percent scale. The upper bar is the percentage of the cost of work actually complete; the lower bar is the percentage of construction contingency drawn. On a healthy job, the lower bar never runs ahead of the upper. On Northgate at month nine:

Northgate, month 9 — contingency drawdown vs. work complete

Work complete (cost)  |███████████████                              |  37%
Contingency drawn     |██████████████████████                       |  54%
                      0%        25%        50%        75%        100%
                                     ▲
                          17 points of early drawdown

Thirty-seven percent of the cost of work is complete. Fifty-four percent of the contingency is gone. Chapter 6 told you what to do with that gap: contingency drawdown running ahead of percent complete is the earliest reliable warning a project gives you, because contingency is drawn when identified risks materialize, and risks materializing faster than work completes means your risk register was optimistic. On Northgate the gap was defensible — the soils and the steel acceleration were both front-loaded, one-time events, and I could name every dollar. But defensible is not the same as comfortable, and 17 points is a number I put in front of Nadia Haddad every month from then on.

Budget transfers: bookkeeping or concealment

A budget transfer moves money between cost codes without changing the total. It is a normal, necessary tool, and it is also the easiest way to make a cost report say something untrue. The test is simple and it has one question in it:

Did the work move, or did only the overrun move?

Transfer Legitimate when Concealment when
Between two codes in the same package The work was physically performed under a different code than budgeted — grade beams poured monolithically with footings, so the labor genuinely belongs to 03-3100-L The work did not move. Only the overrun did. You are funding one code's failure with another code's underrun.
From contingency to a code A named risk on the register materialized, is documented, and was approved by whoever owns contingency "Concrete is over, so let's cover it from contingency." An overrun is not a risk event. Poor productivity is not a differing site condition.
From a code back to contingency Scope was deleted, or bought under, and the money is being returned to the reserve Essentially never a problem — this is the honest direction
From a future code to a current one Never, unless the scope itself moved Always. Robbing an unstarted code to cover a started one is the purest form of the lie, because the unstarted code cannot defend itself yet.
Between projects Never. Always. See 28.10.

The tell is timing. Legitimate transfers happen when the work happens and are documented at the time. Concealment transfers happen in the last three days of the month, in a batch, right before the report goes out.

🔄 Check your understanding. Your masonry code is $22,000 over because you bought it over budget. Your elevator code is $12,000 under because you bought it under. Someone suggests transferring $12,000 of budget from elevators to masonry so neither line shows a variance. What is wrong with this, in one sentence?

Answer

Nothing moved except the variance: the masonry work is still going to cost what it costs and the elevator work is still going to cost what it costs, so the transfer changes no dollar on the job — it only deletes two pieces of true information (that you bought masonry badly and elevators well) that your estimating department needs for the next bid and that your project executive needs this month.


28.4 The Five Numbers — and the Northgate Cost Report

Every cost report on earth, in every software package, in every country, is some arrangement of five numbers per cost code. Learn them precisely. Ambiguity here is where most bad cost reporting comes from.

# Number Precise definition Source Is it fact or judgment?
1 Budget The current control budget: original budget plus approved owner changes plus approved contingency transfers The budget log Fact — a controlled document
2 Committed The value of executed subcontracts and purchase orders, including executed changes to them Contract and PO log Fact — signed agreements
3 Cost to date (actual) Invoices received and payroll posted, plus accruals for work performed but not yet invoiced Accounting ledger + accrual log Mostly fact, with a small judgment component in the accruals
4 Cost to complete The forecast cost of the work remaining. The only number that requires judgment. The project manager's head, disciplined by method Judgment
5 Forecast at completion Cost to date + cost to complete Arithmetic Derived
Variance Budget − forecast at completion. Positive is favorable. Arithmetic Derived

Two of those five are history. One is a stack of signed contracts. One is arithmetic. Exactly one — cost to complete — is somebody's opinion, and it is the one that decides whether the report is useful or decorative.

Why "committed" is the most under-used column

Committed cost is the value of work you have signed for. It matters more than most people realize because it converts a forecast into something close to a certainty.

If you have an executed subcontract with Ironbridge Steel for $6,180,000, your forecast for that code is $6,180,000. Not "probably." Not "if the crews behave." That is a contract. Unless the scope changes, or the subcontractor fails, or you direct extra work, the number will not move. This is a large part of why general contractors subcontract so much work: a subcontract converts a productivity risk you would have to manage into a price you already know. You give up margin and you buy certainty. That is a legitimate, deliberate, and often correct trade — and it is exactly the risk-allocation logic from Chapter 4, applied inside your own company.

The corollary is the diagnostic. Budget minus committed on an unbought code is naked exposure. If month nine shows a $980,000 budget for specialties and equipment with only $412,000 committed, there is $568,000 of scope out there whose price nobody knows, being carried in the forecast at budget because there is nothing else to carry it at. That is not a forecast. That is a wish with a dollar sign in front of it.

🧩 Productive struggle. Before you read the next page: here is a single cost code from a real report. Take three minutes and decide whether this code is in trouble, and what you would need to know to be sure.

Code       Description          Budget      Committed   Cost to date   % complete   Forecast    Variance
09-2900-S  Drywall & ceilings   $1,880,000  $1,880,000  $1,410,000     62%          $1,880,000  $0

What is wrong with this line?

Think first, then open

The code is spending faster than it is producing, and the forecast is not reacting.

Cost to date is $1,410,000 against a committed value of $1,880,000. That is 75 percent of the money spent against 62 percent of the work complete. If the subcontractor is billing on a schedule of values that tracks real progress, those two numbers should be close. A 13-point gap means one of four things:

  1. The subcontractor front-loaded its schedule of values and is billing ahead of production (Ch 32).
  2. Percent complete is being reported optimistically — the "90 percent done" problem (28.7).
  3. There is stored material or a mobilization payment in the cost to date that has not been installed.
  4. The work genuinely is costing more than the subcontract, and change orders are coming.

And the forecast is $1,880,000 — exactly the budget, exactly the committed. Nobody forecast this code. They typed the committed value into the forecast column, which is the correct method for a subcontract only if you have confirmed there are no pending changes and no performance problem. The 13-point gap says you have not confirmed that.

You cannot tell from the line which of the four it is. That is the point: the line does not tell you the answer, it tells you which question to ask. A cost report is a list of questions, not a list of conclusions.

The Northgate cost report, month 9

Here it is — the corrected report Lorena and I rebuilt after that two-hour session. Data date November 30, Year 1. All figures in dollars, direct cost of work only. The Mtd column is the forecasting method used for each code: C = committed cost, U = unit rate, P = percent complete, J = judgment / re-estimate. Those four methods are the subject of 28.6.

Code Description Current budget Committed Cost to date % cpl Cost to complete Forecast at completion Variance Mtd
01-xxxx General requirements — temp facilities, protection, hoisting, cleanup 1,266,000 920,000 612,000 47% 680,000 1,292,000 (26,000) J
02-4100-S Demolition and existing conditions 240,000 240,000 240,000 100% 0 240,000 0 C
03-xx-L Concrete — self-perform labor 1,242,000 1,296,000 90% 136,000 1,432,000 (190,000) U
03-xx-M Concrete — material (ready-mix, rebar, accessories) 1,318,000 1,244,000 1,168,000 89% 150,000 1,318,000 0 U
03-3900-E Concrete — equipment and formwork 458,000 286,000 362,000 79% 96,000 458,000 0 U
03-4500-S Architectural precast panels 1,220,000 1,220,000 305,000 25% 915,000 1,220,000 0 C
04-2000-S Masonry 760,000 782,000 198,000 25% 584,000 782,000 (22,000) C
05-xxxx-S Metals — structural steel, deck, misc. metals 6,602,000 6,640,000 5,180,000 78% 1,460,000 6,640,000 (38,000) C
06-xxxx Rough carpentry and general trades (self-perform) 540,000 120,000 146,000 27% 394,000 540,000 0 J
07-xxxx-S Thermal and moisture — roofing, waterproofing, firestopping 1,180,000 1,180,000 212,000 18% 968,000 1,180,000 0 C
08-xxxx-S Openings — curtain wall, glazing, doors, hardware 4,332,000 4,214,000 842,000 20% 3,372,000 4,214,000 118,000 C
09-xxxx-S Finishes — drywall, ceilings, flooring, paint 4,602,000 4,538,000 96,000 2% 4,442,000 4,538,000 64,000 C
10/11/12-S Specialties, equipment, furnishings 980,000 412,000 0 0% 980,000 980,000 0 P
14-2000-S Conveying — 3 elevators 720,000 708,000 142,000 20% 566,000 708,000 12,000 C
21-1000-S Fire suppression 610,000 592,000 54,000 9% 538,000 592,000 18,000 C
22-xxxx-S Plumbing and medical gas 2,218,000 2,218,000 448,000 20% 1,804,000 2,252,000 (34,000) C
23-xxxx-S HVAC 4,310,000 4,224,000 686,000 16% 3,538,000 4,224,000 86,000 C
26-xxxx-S Electrical 4,006,000 3,964,000 602,000 15% 3,362,000 3,964,000 42,000 C
27/28-S Communications, security, nurse call 946,000 486,000 0 0% 946,000 946,000 0 P
31-xxxx-S Earthwork — excavation, backfill, export, dewatering 1,870,000 1,916,000 1,844,000 96% 72,000 1,916,000 (46,000) C
32-xxxx-S Exterior improvements — paving, curbs, landscape 820,000 844,000 0 0% 844,000 844,000 (24,000) C
33-xxxx-S Site utilities 960,000 960,000 806,000 84% 154,000 960,000 0 C
TOTAL — DIRECT COST OF WORK 41,200,000 37,708,000 15,239,000 37% 26,001,000 41,240,000 (40,000)

Check the arithmetic yourself, because you should never trust a cost report you have not footed: cost to date $15,239,000 plus cost to complete $26,001,000 equals forecast at completion $41,240,000. Current budget $41,200,000 minus forecast $41,240,000 equals ($40,000) — an unfavorable variance. Overall percent complete, measured cost-to-cost, is $15,239,000 ÷ $41,240,000 = 37.0 percent.

Thirty-seven percent complete at month nine of nineteen — that is 48 percent of the contract time. That is not alarming; it is the shape of a building job. The structure is expensive per day and cheap per dollar of the total; the interior is the reverse. Your cost curve is an S, and at month nine you are on the steep part heading up.

The roll-up to the GMP

The cost-of-work report is the engine, but it is not the whole picture. Here is the same data laddered up to the guaranteed maximum price, which is what Nadia and Pri Sethi actually look at:

Line Current budget Forecast at completion Variance
Direct cost of work 41,200,000 41,240,000 (40,000)
General conditions 2,900,000 2,948,000 (48,000)
Insurance and bonds 907,000 907,000 0
Subtotal before contingency 45,007,000 45,095,000 (88,000)
Construction contingency remaining 608,000 520,000
Subtotal 45,615,000 45,615,000 0
CM fee @ 4.0% 1,824,800 1,824,800 0
Escalation allowance 575,200 575,200 0
TOTAL vs. revised GMP $48,015,000 48,015,000 48,015,000 0

The $48,000 general-conditions overrun is a second assistant superintendent we added for the compressed enclosure sequence after the acceleration — again, schedule and budget, same conversation.

Now read the bottom of that table the way a professional reads it. The forecast total equals the GMP. That is not good news; it is the definition of a GMP. What actually moved is the line above it: projected contingency at completion has fallen from $1,320,000 to $520,000. Under Northgate's savings split — 75 percent owner, 25 percent Kestrel — that projects to $390,000 back to Meridian and $130,000 to Kestrel.

And here is the number that made the month-nine autopsy worth two hours of my life. The report as issued would have projected contingency at completion of $770,000, worth $192,500 to Kestrel. The corrected report projects $520,000, worth $130,000. The two hours with Lorena moved Kestrel's projected profit share by $62,500 and, far more importantly, moved the truth by $250,000 while there were still ten months to do something about it.

🚪 Threshold concept: cost-to-complete, not cost-to-date

This is the gateway idea of the entire discipline, and it takes most people a job or two to internalize. Let me draw the before and after as plainly as I can.

Before you understand this, you read a cost report left to right and stop at cost to date. You compare it to the budget. You compute a percentage. You feel good if you have spent less than you budgeted and bad if you have spent more. You say things like "we're at 60 percent of the budget and we're 65 percent done, so we're in good shape." You treat the money already spent as the subject of management.

After you understand this, you read a cost report right to left, and you know that the only column worth arguing about is cost to complete, because:

Everything you have already spent is history. It is not manageable, not recoverable, and not negotiable. The only number on the page that can still be changed is the one in front of you.

Cost to date is a fact about the past. It cannot be improved by any decision you make. Its only management value is as evidence — it tells you what your unit rates really are, which is the raw material for forecasting the part that is still ahead.

Now the sentence that makes this concrete, and the reason it is a threshold rather than a technique:

A job that is 60 percent billed and 75 percent spent is already in trouble — and every figure on the page can look completely fine.

Work that through. If you have billed 60 percent of a $40,000,000 contract, you have earned $24,000,000 of revenue. If you have spent 75 percent of a $36,000,000 cost budget, you have spent $27,000,000. You are $3,000,000 underwater right now, and here is the trap: no single line on the cost report has to show a variance for that to be true. Every code can be forecast at budget. The budget column and the forecast column can be identical on all four hundred lines. The report foots. The report is accurate. The report is also useless, because it is reporting the plan back to you.

The relationship between money spent and work produced is the entire signal. Cost to date on its own is noise. Cost to date divided by work produced is a unit rate, and a unit rate applied to the work remaining is a forecast. That chain — actual cost, over actual quantity, times remaining quantity — is the whole of cost control, and it runs in the direction of the future.

The practical test: if a cost report can be produced without a human being making a judgment, it is not a cost report. It is a spending statement with extra columns.

🔄 Check your understanding. A project manager says: "We're 45 percent complete and we've spent 43 percent of the budget, so we're 2 points ahead." What is wrong with the reasoning, and what would you need to know to evaluate the job?

Answer

Two things are wrong.

First, the comparison is between a physical measure (45 percent complete) and a financial one (43 percent of budget spent), and unless the two are computed on the same basis they are not comparable. If "45 percent complete" is itself derived cost-to-cost, the statement is circular — it is comparing a number to itself.

Second and more important: percent complete and percent spent tell you about the past. Neither says anything about whether the remaining 55 percent will cost the remaining 57 percent of budget. If the work completed so far was the easy, well-bought, well-sequenced part — foundations and structure — and the remainder is MEP rough-in and finishes in an occupied-site condition, being "2 points ahead" is meaningless.

What you need is the forecast: cost to complete, built from actual unit rates on the self-perform work and committed values on the subcontracted work, with pending changes carried. Then variance = budget − (cost to date + cost to complete). Nothing else answers the question.


28.5 Accruals: Why the Report Lies About Timing

Work performed but not invoiced is the single most common reason a cost report tells the truth about the wrong month.

An accrual is a cost you record in the period the work was performed, before the invoice arrives. It is not a guess in the pejorative sense; it is a sourced estimate that gets reversed and replaced when the real number shows up. Without accruals, your cost report is a record of your mail, not of your job.

Think about the delay chain on a single load of concrete:

  Concrete placed        Ticket signed      Ticket to office     Supplier invoices    Invoice coded
  Nov 18                 Nov 18             Nov 26 (maybe)       Dec 8                Dec 12
     │                      │                    │                    │                   │
     └──────────────────────┴────────────────────┴────────────────────┴───────────────────┘
                             24 days from work to cost report

     The November cost report closes Dec 3. This pour lands in the DECEMBER report.

Twenty-four days is normal. On subcontractor billings it can be worse, because a subcontractor's billing period usually ends before the month does — Ironbridge Steel bills through the 20th, so the last ten days of every month's erection is always unbilled.

Two kinds of accrual, with very different consequences

This distinction matters enormously and almost nobody teaches it.

Type 1 — Timing accruals. Work inside your existing scope and budget, performed but not yet invoiced. Ready-mix delivered November 20–30. Ten days of steel erection. A month of crane rental.

Effect on the report: cost to date goes up; forecast at completion does not move. The work was already in your forecast; you have simply recognized that you have consumed some of it.

So if the forecast does not move, does the accrual matter? Enormously — because cost to date is the numerator of every unit rate you compute. Miss $34,000 of ready-mix on a code where the quantity is already placed, and your material unit rate is understated by $34,000 worth. Then you forecast the remaining quantity at that understated rate, and the error propagates forward across everything left. A timing accrual does not change the forecast directly; it changes the evidence you build the forecast from, which is worse, because it is invisible.

Type 2 — Unrecorded-commitment accruals. Work performed that is not in your committed cost and not in your budget, because nobody wrote it down. Directed extra work with no subcontract change. A verbal instruction to a subcontractor. A pending change you have not priced.

Effect on the report: cost to date goes up AND forecast at completion goes up, dollar for dollar. This is real, new, unbudgeted cost that appeared out of a conversation.

Both of the hook's $60,000 items are Type 2:

Item What happened Code Amount
Cardinal Mechanical — directed relocation 340 LF of overhead med-gas and hydronic mains relocated Nov 20–26 after our coordination sign-off missed a brace conflict. Directed verbally by Kestrel. No subcontract change, no invoice, no accrual. 22-xxxx-S $34,000
Winter protection overrun Temporary heat, hoarding, blankets, and cold-weather admixture supplied through November. Service tickets signed in the field; invoices arrive December 12; the code was already at its transferred budget. 01-5100-O $26,000
Total performed, not invoiced, not in the report $60,000

Notice what the Cardinal item is: a change order that has not been written (Chapter 31 is entirely about the discipline that prevents this). It is also, uncomfortably, Kestrel's cost rather than Meridian's, because the conflict was our coordination miss, not a design change. That is the honest reading and I put it in the report that way.

The accrual discipline

The rule is short:

Accrue from the field's record of what was performed, not from the accounting department's record of what was invoiced.

The mechanics on a well-run job:

  1. A monthly cut-off memo goes to every subcontractor and supplier by the 20th, asking for the value of work performed through month end whether or not it will be invoiced.
  2. The superintendent's quantity report for the period is the source for self-perform accruals: yards placed times the PO unit price, hours worked times the burdened rate.
  3. Every accrual carries a source, a date, an amount, and an initial in an accrual log. It is a document, not a plug.
  4. Every accrual reverses automatically in the following period, so the invoice cannot be counted twice. The single most common accrual error is a double count, and it always shows up as a code that mysteriously jumps and then mysteriously drops.
  5. Field-directed work with no signed change gets accrued at the PM's best estimate on the day it is directed — not when it is priced, not when it is approved. The estimate is documented as an estimate.

Rule 5 is the one people resist, because accruing an unpriced directed change feels like admitting to a cost you have not agreed to. Do it anyway. You directed the work; the cost exists; the only question is whether your report knows about it. And if the amount is genuinely uncertain, accrue the range's midpoint and say so in the narrative.

⚖️ What the contract says. On a cost-reimbursable or guaranteed-maximum-price contract like Northgate's, this is not merely good practice — it is contractual. Standard CM-at-risk agreements (the AIA A133 family, ConsensusDocs equivalents, and most owner-drafted forms) define the "cost of the work" as a reimbursable category with an itemized list of what is in and what is out, and pair it with an owner audit right: the owner or its auditor may examine the contractor's books, cost records, subcontracts, purchase orders, payroll, and supporting documentation for the cost of the work, usually for a stated number of years after final payment.

That has three practical consequences for cost reporting.

  1. The owner is entitled to see the cost of the work, code by code, at the level of the contract's definition. Under an open-book GMP, Pri Sethi can ask for the backup behind any line, and "that's our internal number" is not an answer.
  2. What the owner is not automatically entitled to — and this is where disputes start — is your internal fee build-up, your unallocated corporate overhead, your other projects, your bid strategy, or the portions of your cost structure the contract expressly puts inside the fee. Read the definition of the cost of the work and the fee together, before the first pay application, and know exactly where the line is drawn on your contract. It varies enormously between forms and between owners.
  3. An audit tests your coding, not just your arithmetic. If labor charged to 03-3500-L was actually performed on 01-5100-O, an auditor who samples time cards against daily reports will find it. Under a GMP with a savings split, miscoding is not a clerical matter — it moves money between the owner and you, which is why it gets looked at.

Jurisdictions and contract forms vary, audit windows vary, and public owners often impose statutory record-retention and access requirements on top of the contract. Bring the specific language to your attorney before you assume anything, and never assume the last job's clause is this job's clause.

🔄 Check your understanding. Your November report shows self-perform concrete labor at $1,262,000 cost to date. On December 4 you discover that the last week of November's payroll — 380 man-hours at a burdened $58.00 — was coded to the December period. Does correcting this change your forecast at completion? Explain.

Answer

380 MH × $58.00/MH = $22,040.

Whether the forecast moves depends entirely on your forecasting method.

  • If you forecast that code by unit rate, then yes, indirectly and importantly. Those 380 hours produced quantity that is already in your quantity log, so your actual unit rate was understated by $22,040 spread over the quantity placed. Correcting it raises the rate, and the higher rate applied to the remaining quantity raises the forecast by more than $22,040.
  • If you forecast that code by percent complete × budget, the forecast does not move at all — but that is not reassurance, it is a symptom. That method cannot detect an overrun (see 28.6).
  • If it is a subcontract code forecast at committed value, the timing correction moves cost to date only, and the forecast is unaffected. Correct.

The general principle: a timing accrual on a self-perform code always matters, because it corrupts the evidence. On a subcontracted code it usually does not, because the forecast comes from a contract rather than from the evidence.


28.6 Forecasting Cost to Complete — the Actual Skill

Everything so far has been bookkeeping. This section is the job.

There are four legitimate methods for forecasting cost to complete. A good cost report uses all four, different ones on different codes, and states which one it used on each line. That is what the Mtd column in the Northgate report is for. If your report does not carry that column, add it; the act of having to name a method is itself a discipline, because "I forecast this at budget" stops being invisible.

Method Formula Use it for Reliability Failure mode
Committed cost Forecast = executed subcontract/PO value + executed and pending changes Subcontracted and purchased scope — usually 70–85% of a commercial job Highest — it is a contract Misses pending changes, backcharges, and a subcontractor in distress
Unit rate / productivity Cost to complete = quantity remaining × current actual unit rate Self-perform work with a countable unit High, once enough quantity is installed Applied too early; or the quantity itself grew and nobody noticed
Percent complete Forecast = budget ÷ percent complete, or cost to complete = budget × (1 − % complete) Rough roll-ups, early-stage codes, small codes Low Cannot detect an overrun if you use budget × remaining %; the "90% done" plateau
Judgment / re-estimate Forecast = a fresh estimate of the work remaining, priced from scratch Codes where conditions changed materially, or where history is not predictive As good as the estimator Optimism; and it takes real time, so it gets skipped

Method 1 — Committed cost, for subcontracted work

On Northgate, seventeen of the twenty-two lines in the cost report are forecast this way, and it is the reason a general contractor can predict its cost at all.

The mechanic: forecast at completion = executed subcontract value + executed change orders to that subcontract + pending changes you expect to owe. Cost to complete is that number minus cost to date.

The curtain-wall line makes the point:

  • Budget: $4,332,000 (the estimate, plus a $92,000 owner change for the revised corner detail)
  • Committed: $4,214,000 (the executed subcontract, including the change)
  • Forecast at completion: $4,214,000
  • Variance: $118,000 favorable — that is the buyout savings, and it is real money

Cost to date is $842,000 (20 percent — fabrication and the first units on site) and the crew has not hung a single panel. It does not matter. The price is fixed. This is why contractors subcontract: you trade a slice of margin for the removal of a productivity risk from your forecast. Every dollar you self-perform is a dollar whose cost you must forecast with judgment instead of reading off a contract.

Three ways this method still fails, and how to defend against each:

Failure Defense
Pending changes not carried. You have directed work the subcontract does not cover. The committed value is right and the forecast is wrong. Maintain a pending-change log and carry pending amounts in the forecast at your best estimate, flagged as pending. This is the Cardinal $34,000.
Backcharges you will not recover. You cleaned up after a trade, or repaired damage, and assumed you would deduct it. Only credit a backcharge in the forecast when it is documented, noticed under the subcontract, and realistically collectible. Most backcharges shrink in negotiation.
A subcontractor in distress. If a sub defaults, the replacement price is not the subcontract price. Watch payment applications versus production, lien notices, crew size trends, and supplier calls. A distressed sub is a schedule risk and a forecast risk.

Method 2 — Unit rate, for self-perform work

This is the method that actually requires you to think, and it is where cost control earns its keep.

The formula:

Cost to complete = quantity remaining × current actual unit rate

where current actual unit rate = cost to date ÷ quantity installed to date

The crucial rule, and the one violated most often:

Once you have enough data, use the CURRENT ACTUAL unit rate, not the estimated rate.

The estimated rate was a prediction made before the job existed, by someone who had not met this crew, this weather, this site, or this design. The actual rate is a measurement of this job. When the two disagree, the measurement wins. Every time. A forecast built on the estimated rate is not a forecast — it is a restatement of the estimate, and you already have one of those.

Let me work the Northgate concrete completely, because this is the $190,000.

The self-perform concrete labor codes, month 9:

Code Description Total qty Unit Budget Budget unit rate Qty to date Cost to date Actual unit rate % cpl Cost to complete Forecast Variance
03-3100-L Spread footings — form, place, finish 1,240 CY 412,000 $332.26 1,240 478,000 $385.48 100% 0 478,000 (66,000)
03-3200-L Foundation walls and grade beams 620 CY 298,000 $480.65 620 339,000 $546.77 100% 0 339,000 (41,000)
03-3300-L Slab on grade — place, finish, cure 33,000 SF 268,000 $8.12 33,000 291,000 $8.82 100% 0 291,000 (23,000)
03-3500-L Elevated slabs — LW topping on deck 99,000 SF 264,000 $2.67 57,420 188,000 $3.27 58% 136,000 324,000 (60,000)
Total self-perform concrete labor 1,242,000 1,296,000 90% 136,000 1,432,000 (190,000)

Walk the fourth line, because it is the only one still in play.

  1. Actual unit rate. $188,000 ÷ 57,420 SF = $3.274/SF, against a budget rate of $264,000 ÷ 99,000 SF = $2.667/SF. The crew is running 22.8 percent over on unit cost.
  2. Quantity remaining. 99,000 − 57,420 = 41,580 SF.
  3. Cost to complete. 41,580 SF × $3.274/SF = $136,138, carried as $136,000.
  4. Forecast at completion. $188,000 + $136,000 = $324,000.
  5. Variance. $264,000 − $324,000 = ($60,000).
  6. What it means for the job. If nothing changes, the last two elevated decks will cost $60,000 more than the estimate carried, and that $60,000 comes out of contingency and therefore out of the shared savings.

Now contrast with the method the field engineer actually used, which was cost to complete = budget × (1 − percent complete): $264,000 × 0.42 = $110,880, giving a forecast of $188,000 + $110,880 = $298,880. Still not $264,000 — so this variant can show an overrun. But the version he actually typed was even simpler: he carried the forecast at the budget, $264,000, and let the cost-to-complete column be the plug. That method cannot produce an overrun. Ever. A forecast that is structurally incapable of delivering bad news is not a forecast.

💰 Money check — the $190,000, forecast to completion.

The four concrete labor codes total $1,242,000 of budget against a $1,432,000 forecast. That is $190,000 over, or 15.3 percent. Where does that $190,000 actually land?

  • Under Northgate's GMP, an overrun on the cost of work is absorbed first by construction contingency. Contingency remaining before this correction was $608,000; after it, the projected unused contingency is $520,000.
  • Unused contingency is split 75 percent to Meridian, 25 percent to Kestrel. So of the $190,000, Kestrel loses $47,500 of profit share and Meridian loses $142,500 of savings it would otherwise have received.
  • But that split only holds while contingency lasts. Once contingency reaches zero, Kestrel eats overruns dollar for dollar, because that is what "guaranteed" means. At month nine we had $608,000 of contingency and ten months of work ahead. That is the real reason the $190,000 mattered: not the $47,500 it cost that month, but that it consumed nearly a third of the cushion protecting us from every remaining risk on the job.

Compare it to Kestrel's fee on this project — $1,824,800. A $190,000 concrete labor overrun on a $1.2 million package is 10.4 percent of the entire fee for a $48 million building. That is the arithmetic of general contracting: the margins are thin enough that one badly-run self-perform package can eat a tenth of the profit on the whole job.

Method 3 — Percent complete, and the "90 percent done" problem

The percent-complete method computes cost to complete as budget × (1 − percent complete). It is fast, it needs no quantity data, and it is right often enough to be dangerous.

It has two failures. The first I just showed: in its lazy form it cannot detect an overrun. The second is the "90 percent done" problem, and every person who has run a job knows it in their bones.

Ask a foreman how far along he is and you will get:

  Week 1  ────────► "20 percent"
  Week 2  ────────► "45 percent"
  Week 3  ────────► "70 percent"
  Week 4  ────────► "85 percent"
  Week 5  ────────► "90 percent"
  Week 6  ────────► "90 percent"
  Week 7  ────────► "about 95"
  Week 8  ────────► "95"
  Week 9  ────────► "we're basically done"
  Week 12 ────────► actually done

That plateau is not dishonesty. It is a real property of construction work: the last 10 percent of almost any activity is the punch, the tie-ins, the odd conditions, the coordination with the trade that had to come first, the two pieces that were fabricated wrong. It routinely consumes 20 to 30 percent of the man-hours. So a percent-complete forecast is systematically optimistic exactly where you most need it not to be — at the end, when there is nothing left to recover with.

Use percent complete for early-stage codes where you have no quantity data yet, for small codes where the effort of a real forecast is not worth it, and for roll-ups. Do not use it for the code that is worrying you.

Method 4 — Judgment / re-estimate

Sometimes the history is simply not predictive, because the conditions changed. The crew changed. The season changed. The sequence changed. The remaining work is different in kind from the completed work — the first two floors of drywall were open and empty; the last two are in an occupied wing with after-hours access and 30-foot material haul.

In that case the honest method is to re-estimate the remaining work from scratch, exactly as you would have estimated it in Chapter 12: quantity × productivity × rate, with the conditions you actually face. On Northgate, 01-xxxx general requirements and 06-xxxx general trades are both forecast by judgment, because neither has a denominator worth trusting.

The discipline: a judgment forecast must be written down as an estimate, with its assumptions, not typed in as a number. If you cannot say what the number assumes, it is not judgment — it is a mood.

When to believe the trend

Here is the question I get more than any other from young project managers: my code is running over, but it's early — do I forecast the overrun or wait?

The honest answer has two conditions, and you need both.

Believe a unit-rate trend when (1) at least 20 to 25 percent of the quantity is installed, and (2) you have at least three consecutive reporting periods pointing the same direction.

Why 20 to 25 percent?

Early unit rates are contaminated by three things that genuinely do improve. Mobilization — the first setup, the first layout, the first delivery, the learning of a site — is a fixed cost spread over a tiny denominator, so it inflates the early rate no matter how good the crew is. The learning curve is real; a crew building the same detail for the tenth time is meaningfully faster than on the first. And small denominators are noisy: at 5 percent installed, one bad day moves the computed rate by an enormous percentage. By 20 to 25 percent, mobilization has been diluted, the learning curve has flattened for most repetitive work, and the denominator is big enough that a single day does not swing it.

Why three periods? Because one period is an event, two is a coincidence, and three is a system. A single bad week has a cause you can usually name — a rainout, a late delivery, a crew pulled to another area. Three consecutive weeks means the production system is producing this rate, and it will keep producing it until you change the system.

And now the trap, which is the real reason I am spending this much space on it:

⚠️ The most expensive psychological error in cost control is assuming the overrun was a one-time event.

It goes like this. Month one: "The footings ran over because of the rain, and because of the soils in the east quadrant. That's behind us." Month two: "We had the crew split between the footings and the grade beams; that's fixed now." Month three: "We're getting into the rhythm." Every one of those statements is plausible, most are partly true, and collectively they cost you the whole job, because each one is an argument for forecasting the remaining work at the estimated rate instead of the actual one.

The discipline is asymmetric and I want you to hold it consciously:

  • To forecast the remaining work at the actual rate, you need no justification. That is the default. The measurement stands.
  • To forecast the remaining work at a better rate than you are achieving, you owe a written, specific, mechanical reason — a named change to the production system, made, with a date. "Jamal added a second finishing crew effective November 8 and split the level-4 pour into two smaller placements" is a reason. "We expect to improve" is not a reason; it is a hope with a number attached.

That asymmetry is the whole ethic of forecasting, and section 28.10 is about what happens when people abandon it.

🔍 Why this works. The reason the actual rate beats the estimated rate as a predictor is not that estimators are bad — Tomás is excellent. It is that the actual rate is a measurement of the entire production system as it really is, including every factor nobody could have priced: this crew's composition, this superintendent's sequencing, this site's material haul, this design's detailing complexity, this subcontractor's cooperation, this month's weather. The estimate priced a typical version of the work. The actual rate measures this version. When you forecast the remaining work at the estimated rate, you are implicitly asserting that all of those factors are about to change at once — which they occasionally do, but only when somebody deliberately changes them.

📋 Try it — forecast a self-perform code

Roll the clock back to the month-four cost report on Northgate — data date June 30, Year 1, with the footings still going. Here is the code:

Item Value
Cost code 03-3100-L — Spread footings: form, place, finish (labor)
Total quantity 1,240 CY
Budget $412,000
Estimate basis 5.73 MH/CY at a blended all-in rate of $58.00/MH (7,105 MH)
Quantity placed to date 719 CY (58.0% of the total)
Cost to date $268,000
Actual man-hours charged to this code 4,652 MH
Actual blended labor rate achieved $57.61/MH
Reporting history The code has run over on unit cost for three consecutive monthly periods

Your tasks:

  • (a) Compute the actual unit rate to date and compare it to the budgeted unit rate.
  • (b) Forecast the cost to complete using the unit-rate method.
  • (c) Compute the forecast at completion and the variance.
  • (d) Decide whether the trend is believable yet, and say why.
  • (e) Name the three things you investigate first, and what you would actually do this week.

Work it before you open the answer. Ten minutes with a calculator.

Worked answer

(a) Actual unit rate to date

Budgeted unit rate = budget ÷ total quantity
                   = $412,000 ÷ 1,240 CY
                   = $332.26 per CY

Actual unit rate   = cost to date ÷ quantity installed to date
                   = $268,000 ÷ 719 CY
                   = $372.74 per CY

The crew is running $40.48/CY over, which is $372.74 ÷ $332.26 = 1.122, or 12.2 percent over on unit cost.

Decompose it — is it hours or rate? This is always the first split, and it comes straight from Chapter 20.

Budgeted productivity  = 5.73 MH/CY
Actual productivity    = 4,652 MH ÷ 719 CY = 6.47 MH/CY

Earned man-hours       = quantity installed × budgeted MH/CY
                       = 719 CY × 5.73 MH/CY = 4,120 MH

Productivity Factor    = earned MH ÷ actual MH
    (PF)               = 4,120 ÷ 4,652 = 0.886

PF = 0.886. The crew earns 88.6 budgeted man-hours for every 100 it burns — it is 12.9 percent less productive than the estimate assumed (1 ÷ 0.886 = 1.129).

Meanwhile the rate is favorable: $57.61 actual against $58.00 budgeted, because there has been less overtime than the estimate carried.

Productivity variance = (actual MH − earned MH) × budgeted rate
                      = (4,652 − 4,120) × $58.00
                      = 532 MH × $58.00 = $30,856 UNFAVORABLE

Rate variance         = (budgeted rate − actual rate) × actual MH
                      = ($58.00 − $57.61) × 4,652
                      = $0.39 × 4,652 = $1,814 FAVORABLE

Net labor variance    = $1,814 − $30,856 = ($29,042) UNFAVORABLE to date

Check it against earned value: 4,120 MH × $58.00 = $238,960 earned versus $268,000 spent = ($29,040). The $2 difference is rounding in the man-hour figures.

This is a productivity problem, not a wage problem. That matters, because the two have completely different fixes: a wage problem is solved in the office and a productivity problem is solved at 6 a.m. in the field.

(b) Cost to complete — unit-rate method

Quantity remaining = 1,240 CY − 719 CY = 521 CY

Cost to complete   = quantity remaining × CURRENT ACTUAL unit rate
                   = 521 CY × $372.74/CY
                   = $194,197,  carried as $194,200

Note what you did not do: you did not use the $332.26 estimated rate. Using it would give 521 × $332.26 = $173,107 and a forecast at completion of $441,107 — which quietly assumes the crew is about to become 12 percent more productive tomorrow, for no stated reason.

(c) Forecast at completion and variance

Forecast at completion = cost to date + cost to complete
                       = $268,000 + $194,200
                       = $462,200

Variance = budget − forecast at completion
         = $412,000 − $462,200
         = ($50,200)  UNFAVORABLE,  12.2% over

What it means for the job: the footing package will finish about $50,200 over budget unless something changes in the production system. Of that, $29,040 has already been spent and cannot be recovered; $21,160 of the damage is still in front of you and is therefore still manageable. That split is the entire reason you did this calculation in June rather than in September.

(d) Is the trend believable?

Yes — comfortably. Both conditions are met and neither is marginal.

  • Quantity installed: 58 percent, far past the 20-to-25 percent threshold. Mobilization is fully diluted, the learning curve on repetitive footings has long since flattened, and 719 CY is a large enough denominator that no single day moves the rate materially.
  • Three consecutive periods in the same direction. That is a system producing a rate, not a bad week.

If this were 12 percent installed after one period, the correct answer would be different: you would flag it, investigate it immediately, and forecast it at the estimated rate with a written note that the code is at risk — because at 12 percent you genuinely do not know yet. The investigation is never premature. Only the forecast can be.

(e) The three things you investigate first

  1. Is it hours or rate? — Already answered: hours. PF is 0.886 with a favorable wage rate. Stop looking at payroll and go look at production.
  2. Is it the crew, the conditions, or the design? Pull the last three weeks of daily reports (Chapter 26) and the time cards, and look for: crew size versus the planned composition; rain and cold days; formwork cycle time and whether forms are being stripped and re-set on plan; rework; the mix of footing sizes actually poured versus the mix the estimate assumed. Twelve small footings take far more man-hours per cubic yard than two large ones, and if the schedule sequenced the small ones first, part of your overrun is a sequencing artifact that will partially self-correct — which is exactly the kind of specific, mechanical reason that justifies forecasting better than actual.
  3. Is the quantity still 1,240 CY? This is the one everyone forgets. If over-excavation and unsuitable soils enlarged footings, the quantity grew and was never re-budgeted. In that case your unit rate may be perfectly fine and your forecast is still wrong, and the fix is a budget transfer from contingency for the added quantity — not a productivity intervention. Check the quantity log against the delivery tickets before you change anything about the crew.

What you do this week:

  • Monday: walk the pour with Jamal Foster before 7 a.m. Not a meeting — a walk. Watch a form set.
  • Monday afternoon: pull the quantity log against the ready-mix tickets and confirm 719 CY.
  • Tuesday: review three weeks of time cards for coding accuracy. Hours charged to the wrong code are the most common cause of a phantom overrun and of a hidden one.
  • Wednesday: with Jamal and Margo, pick one change to the production system and make it — crew composition, form cycle, pour size, or sequence. One change, dated, written down, so that next month you can tell whether it worked.
  • Thursday: re-forecast the code honestly at $462,200 and write the two-sentence variance narrative.
  • Friday: tell Nadia Haddad. In month four, at $50,200, with a plan. Not in month nine, at $66,000, in a report.

For reference, the real Northgate footing code finished at $478,000 — a $66,000 overrun. The month-four forecast of $462,200 would have caught 76 percent of the eventual damage five months early. Nobody made it.


28.7 Percent Complete: Five Ways to Measure It, Five Ways to Be Wrong

Percent complete looks like a fact and is actually a contested estimate. Two competent people can measure the same activity and differ by fifteen points, both honestly. Because percent complete drives the forecast, drives the pay application, and drives earned value in Chapter 30, you need to know which method produced the number in front of you and which direction it leans.

Method How it works Best for Bias it carries
Units installed Quantity installed ÷ total quantity Repetitive self-perform work with a countable unit: CY placed, SF hung, LF of pipe, tons erected Understates early effort. Mobilization, layout, submittals, and first-time setup produce cost with no units. Also assumes every unit costs the same, which is false when sizes or conditions vary.
Cost-to-cost Cost to date ÷ forecast at completion Aggregated codes and roll-ups; the standard basis for revenue recognition (Ch 34) Circular. If the forecast is wrong, the percent is wrong by exactly the same error. Worse: spending money inefficiently makes you look further along, because the numerator grows.
Milestone / weighted steps Credit at defined steps — e.g. shop drawings approved 15%, fabricated 40%, delivered 60%, installed 90%, tested and accepted 100% Fabricated and procured items: structural steel, curtain wall, elevators, switchgear, air handlers Credits money moved to a vendor as progress. A curtain wall at "60% delivered" is 60 percent paid and 0 percent installed. Step weights get set once at buyout and are almost never revisited.
Level of effort Elapsed duration ÷ total duration Supervision, general conditions, temporary facilities, cleanup, quality control Reports progress whether or not anything happened. It cannot signal a problem, ever — by construction it always says you are exactly on plan.
Supervisor's estimate Ask the person running the work Anything with no countable unit: punch, commissioning, complex retrofit, tie-ins Optimism, and anchoring. The "90 percent done" plateau lives here. The number is also anchored on the last number he gave you, so it drifts upward slowly regardless of production.

The practical rules I use:

  • Never let one method be used for everything. A report where every line is cost-to-cost is a report that cannot detect its own errors.
  • On any code you are worried about, get a second method. If units-installed says 58 percent and cost-to-cost says 71 percent, you have found a productivity problem without doing any other work. That gap is the signal.
  • Write the method on the report. If the reader cannot see which method produced the number, the reader cannot know which way it leans.

🔄 Check your understanding. Structural steel is reported at 78 percent complete by the milestone method (fabricated 40%, delivered 60%, erected 90%, connections complete and accepted 100%). Margo says the building is topped out. Sofia Marchetti says she cannot start her hangers on level 2 because the bracing connections are not torqued. Who is right, and what does 78 percent actually mean?

Answer

Everyone is right, which is the problem.

The milestone method is measuring money and procurement, not usability. Topping out means the last piece of steel is set — that is the "erected 90%" milestone. The final 10 percent is the connection completion, bolt-up, torquing, and inspection, and that is the part Sofia needs before she can hang anything.

So 78 percent means the steel package is 78 percent through its milestone weights, which is accurate for cost purposes and nearly useless for coordination purposes. The number Sofia needs is a different number: percent of connections complete and inspected, by area.

This is a general and important point. Percent complete is always percent complete of something, and the cost report's version answers a financial question. Do not let it be used to answer a schedule or readiness question — that is what the constraint log and the look-ahead from Chapter 27 are for.


28.8 Labor Cost Control: The Only Cost You Can Correct While You Are Spending It

Everything I have described so far runs on a monthly cycle. Labor does not, and must not.

Here is the reason, and it is the most important operational point in this chapter:

Labor is the only cost on a construction project that can be corrected while it is being incurred.

Think about the others. A subcontract is priced before the work starts; by the time you see the cost you have already agreed to it. Material is purchased on a PO; the price was set at award. Equipment is rented at a monthly rate fixed in advance. For all of those, the cost-control decision happened in buyout (Chapter 16), and the cost report is a scoreboard.

Labor is different. A crew that is 12 percent unproductive this week can be 4 percent unproductive next week if somebody changes the crew composition, the sequence, the material staging, the form cycle, or the supervision. The money is being spent right now, in front of you, and the rate at which it is spent is a variable you control. That is why labor gets the tightest feedback loop on the job, and why a monthly cost report is far too slow for it.

The weekly labor cycle

   MONDAY            TUESDAY–FRIDAY        FRIDAY p.m.          MONDAY a.m.
   ──────            ──────────────        ───────────          ───────────
   Crew plan     →   Daily time cards  →   Quantity report  →   PF computed
   by code           coded by activity     by foreman           by code
                     (same 6-10 codes)     (units installed)         │
                                                                     ▼
                                                            Variance > 5%?
                                                                     │
                                                       ┌─────────────┴─────────────┐
                                                       │                           │
                                                    NO │                           │ YES
                                                       ▼                           ▼
                                                 Note and move on      Investigate THIS WEEK
                                                                       with the foreman,
                                                                       change one thing,
                                                                       write down what and when

The pieces:

  1. Time cards coded by activity, daily, by the foreman. Not by the office. Not weekly from memory. The foreman knows what his people did; a payroll clerk on Monday does not, and will spread hours evenly across codes, which is how you get the hook's problem.
  2. Quantities installed, reported by the foreman, every week. CY placed, SF hung, LF run. This is the denominator and without it you have nothing. It takes a foreman about four minutes.
  3. Productivity computed weekly by cost code. PF = earned man-hours ÷ actual man-hours, where earned MH = quantity installed × budgeted MH per unit. Wei Chen runs it Monday morning.
  4. Variance investigated this week, not at month end. A 5 percent threshold on any code carrying real hours is a reasonable trigger.

The Northgate elevated-slab code makes the case in numbers. At month nine it was 58 percent placed and $60,000 in the hole. Had the weekly cycle been running properly, the trend would have been visible at roughly 25 percent placed — when about $28,000 of the eventual $60,000 had been spent and $32,000 was still preventable. That is the entire value proposition of a weekly labor loop, and it is why I will trade a great monthly report for a mediocre weekly one every single time.

🏗️ From the field. After the month-nine autopsy, Jamal Foster changed exactly two things on the remaining decks: he split each level's topping into two smaller placements instead of one large one, which cut the premium-time tail on every pour, and he assigned a dedicated three-person finishing crew instead of pulling finishers off the placing crew. The last three decks came in near $2.90/SF against the $3.27 we had been running. It did not make the code whole — the forecast improved from $324,000 to about $309,000, a $15,000 recovery on a $60,000 problem. That ratio is the lesson. By the time you can see a productivity overrun clearly enough to be certain of it, most of the damage is behind you. The money is made by the people who act on a soft signal early, not by the people who act on a hard signal late.

⚠️ Safety alert — cost pressure is a hazard. There is a specific, predictable, and dangerous thing that happens when a project manager discovers a cost overrun and communicates it badly. It sounds like: "We're way over on concrete, we need to make it up."

That sentence has a body count.

Go back to week 34 on Northgate, the north elevation, level 3. Milo Serrano stepped onto a scaffold plank that a different trade had lifted overnight to run conduit and had not re-secured. The plank shifted. He went down onto the platform and caught himself on the top rail. No injury, entirely by luck. Bea Salgado stopped work on that elevation for the day and ran the investigation.

She found three failures, not one. The competent-person inspection tag was two days stale. A scaffold was modified by a trade that did not erect it, with no re-inspection. And — the finding nobody wanted written down — the crews were running behind after the steel acceleration, and there was an unwritten "make it up" pressure on that elevation.

Finding three is the one this chapter owns. The first two are conditions; the third is the reason the first two were tolerated. A crew under pressure to recover does not decide to be unsafe. It stops stopping. It does not re-tag a scaffold it is standing on because that costs twenty minutes it does not feel it has. Schedule pressure and cost pressure are hazards in exactly the same way an unguarded edge is a hazard, and they are hazards that project managers create, in the office, with sentences.

The professional obligation is specific and it is yours: when you communicate a cost overrun to the field, communicate a change to the production system, never a demand for more output from the same system. "Split the pour and add a finishing crew" is a system change. "We need to make it up" is a hazard. See Chapter 24 — safety is a property of the production system, and the production system is the thing your cost report is measuring.


28.9 Reading the Report: The Monthly Review and the Red-Flag Checklist

The monthly cost review

Once a month, on Northgate, the following people sat in the trailer for ninety minutes:

Who Role What they bring What they are accountable for
Ray Alvarez Project manager The forecast, and the variance narrative Every number in the forecast column
Lorena Vasquez Project accountant Cost to date, committed, accruals, coding exceptions The accuracy and completeness of the actuals
Wei Chen Project controls Percent complete by method, productivity factors, the schedule update The measurement, and the link to the schedule
Margo Deacon General superintendent What is actually happening in the building Whether the percent complete is real
Jamal Foster Self-perform concrete superintendent Crew composition, quantities, production problems The self-perform unit rates
Nadia Haddad VP of Operations The uncomfortable questions Deciding what the company does about it

Margo's presence is not a courtesy. A cost review without the superintendent is a fiction review. The percent-complete numbers come out of the field; if the person who owns the field is not in the room to say "that's not 58 percent, that's more like 50," the report validates itself.

Here is the exchange from the month-nine meeting, more or less verbatim, because it is the exchange:

Nadia: Elevated slab. Your forecast says $324,000 against a $264,000 budget. What changed between last month's report, which said $264,000, and this one? Ray: Nothing changed on the job. What changed is that we forecast it. Nadia: So last month's number was wrong. Ray: Last month's number was the budget with a percent sign in front of it. Yes. It was wrong. Nadia: How long has it been running at $3.27? Ray: Since the second deck. Roughly ten weeks. Nadia: Then I want to know what we are changing, and I want to know the date you change it, and I want next month's report to tell me whether it worked. I do not want a better forecast. I want a different rate.

That is the right response from a project executive, and I want you to notice what is not in it. There is no blame, no "how did you let this happen," and no request to make the number look better. There is a request for a system change with a date and a measurable result. Nadia is doing the one thing an executive can do that a PM cannot: she is making it safe to have told her.

The questions a project executive should ask

Steal these. When Nadia reviews a cost report, this is her list.

  1. Which codes changed forecast since last month, and why? A report where nothing moved is suspicious, not reassuring.
  2. Which codes are forecast exactly at budget, and how many of them are there? If the answer is "most," nobody is forecasting.
  3. What is committed versus budget on the unbought scope, and when does it get bought?
  4. What is your contingency drawdown against percent complete?
  5. What is in the accrual log this month, and what was reversed from last month?
  6. Show me the self-perform productivity factors. Not the dollars — the PFs.
  7. What is the largest single number in the "miscellaneous" or "general" codes, and what is it?
  8. What pending changes are in the forecast, and at what value? And separately: what directed work is not yet in the forecast?
  9. Which subcontractor worries you, and is that worry in the number?
  10. If this job goes badly from here, what is the mechanism? Not "what could go wrong" — what is the specific chain of events, and is it in the forecast?

The cost report red-flag checklist

After twenty-two years, this is how I read a report I have never seen before. I do not start at the total. I look for these seven patterns, in this order.

# Pattern What it usually means What to do
1 Forecast equals budget on most lines Nobody forecast anything. The report is the budget wearing a costume. Ask for the method column. Any line marked "budget" is unforecast.
2 Committed far below budget, late in the job Unbought scope. There is exposure with no price behind it, carried at a number nobody has tested against the market. List every code where budget − committed > 0 after 50 percent complete. That list is your risk register for the rest of the job.
3 Cost to date outrunning percent complete A productivity problem, an optimistic percent complete, or front-loaded subcontractor billing. All three are bad. Get a second measurement method on that code. The gap between the two methods is the size of the problem.
4 Contingency drawdown ahead of percent complete Risks materializing faster than work completes. The earliest warning a job gives. Compare the drawdown to the risk register from Chapter 6. Are these named risks, or is contingency being used as a slush fund for overruns?
5 A code that has not moved in three months Either the work stopped, or costs are being coded somewhere else. The second is far more common and far worse. Walk the work. If the work is happening, find out where the money is going.
6 A large "miscellaneous," "general," or "other" code The cost system's junk drawer. Everything that was hard to code went here, which means it contains your worst problems. Open it. Sample twenty transactions. On a job I inherited, a $310,000 "general conditions — other" code contained $140,000 of self-perform labor that belonged to three trade codes.
7 A round number in the forecast column $50,000 exactly. $200,000 exactly. Real forecasts are ugly — $462,197 rounds to $462,200, not to $460,000. A round number is a placeholder somebody forgot to replace. Ask what it is built from. If the answer is a shrug, it is not a forecast.

Flag 7 sounds trivial. It is the fastest tell I know. A forecast built from quantity × rate produces awkward numbers. A forecast built from a feeling produces numbers ending in three zeros.


28.10 The Report Is Next Year's Estimate — and the Ethics of the Forecast

Closing the loop: your cost report is your estimating database

Here is a thing nobody tells you in your first project-management job, and it changes how you feel about coding discipline.

The cost report does not exist only to manage this job. It exists to produce the historical unit costs that will price the next one.

Go back to Chapter 12 and the line that matters most in it: your own data beats anyone's book. Published cost data — RSMeans and its equivalents — is genuinely useful, and it is a national average adjusted by a city factor. It does not know your crews, your superintendents, your subcontractor relationships, your market, or the way your company sequences a deck pour. Your own historical unit costs do.

But your historical unit costs are only as good as your coding was. And the chain is brutally unforgiving:

   Foreman codes hours accurately
              ↓
   Cost report shows true unit rates
              ↓
   Closeout captures unit costs by code and building type
              ↓
   Estimating database updates
              ↓
   Next bid is priced from reality instead of from a book
              ↓
   You win the right jobs at the right price

Break the chain at the top and every link below it fails silently. Which produces the sentence I want you to carry out of this chapter:

A project that codes its costs sloppily has stolen from its own future. It gets to look fine this month, and it hands the next estimating team nothing — and the next team, working from national averages on a building type your company has already built three times, will bid it wrong in one direction or the other. Too high and you lose work you should have won. Too low and you win work that hurts you.

Northgate's real value to Kestrel is not the fee. It is 132,000 square feet of healthcare production data, priced, coded, and captured, that no competitor has. That asset is created or destroyed by foremen filling out time cards, and by whether the project manager checked them.

The ethics of the forecast

Now the hardest section in this chapter, and one of the most important passages in this book. I am going to be blunt, because the pressure here is enormous and the manipulation is trivially easy.

Cost to complete is a judgment. A judgment you do not believe is a false statement. And unlike most false statements on a construction project, this one is relied upon by people who cannot check it: your CFO, your surety, your bonding agent, your bank, and your owner.

Here are the four techniques. You will encounter all of them. You will be tempted by all of them.

1. Optimistic forecasting. Carrying a forecast at budget when you know the code will overrun, on the theory that you will recover it later.

This is the most common by a wide margin, and it is the most defensible-sounding, because it is almost never a lie about the past. Every number in cost to date is accurate. The manipulation lives entirely in the one judgment column. And the internal story is always the same: I'm going to fix this, so why alarm everyone over a number that won't be true by the time it matters?

Here is the test that cuts through it. Would you write down, today, the specific mechanical change that produces the better number, with a date? If yes, forecast the better number and write the note. If no, you are not forecasting a recovery, you are deferring a disclosure. The difference is not subtle and you always know which one you are doing.

2. Job borrow. Moving cost between codes — or between projects — to smooth a report.

Between codes on the same job, this is the budget-transfer abuse from 28.3 and it is bad. Between projects, it is something else entirely, and I want to be unambiguous: charging one project's cost to another project is fraud. Not aggressive accounting. Not a gray area. It misstates two contracts' cost of work, it misstates the company's work-in-progress schedule, and on a cost-reimbursable or GMP contract it takes money from an owner who is paying the cost of their work.

It also never stays small. It starts as "we'll move these four dumpster invoices to the school job, it has room, and we'll move it back next month." It gets moved back approximately never, because the month in which you would move it back is a month in which some other job needs the room. I have seen a company destroyed by this — not by the dollars, which were under $400,000, but by what the discovery did to a surety's confidence in every number that company had ever submitted.

3. Under-accruing at period end. Simply not recording work that was performed, so the period looks better.

The seductive part is that it feels passive. You are not writing a false number; you are declining to write a true one. But the effect is identical, and it has a nasty property the others do not: it always reverses, and it reverses into a month you did not choose. Every dollar you fail to accrue in November shows up in December, on top of December's own costs, in a report you will have to explain with the added burden of explaining why the previous report was wrong.

4. Front-loading the schedule of values. Loading value into early line items — mobilization, site work, foundations — so that early billings exceed the cost of early work.

This one belongs to Chapter 32, where I will treat it properly, but it belongs here too, because it corrupts the cost report as well as the pay application. A front-loaded SOV makes percent complete measured cost-to-cost look better than it is, which makes the forecast look better than it is, which conceals exactly the pattern in red flag #3. It is also the mechanism by which a job can be simultaneously overbilled and losing money, which is the specific way profitable-looking contractors go broke (Chapter 34).

Where the line is

Let me put it as plainly as I know how.

A forecast is a professional judgment. You are entitled to be wrong. You are not entitled to state a number you do not believe.

Being wrong is fine and normal. Forecasting is genuinely hard, conditions genuinely change, and a project manager who is never wrong is a project manager who is not forecasting early enough to be useful. Nobody in this industry will hold an honest miss against you.

Stating a number you do not believe is different in kind, because of who relies on it. Trace the chain:

   Your cost-to-complete forecast
              ↓
   Project forecast at completion
              ↓
   Estimated gross profit on the job
              ↓
   THE COMPANY'S WIP SCHEDULE  ──────────► revenue and profit recognized this quarter
              ↓                            (percentage-of-completion accounting)
   Financial statements
              ↓
   ┌──────────┴───────────┬─────────────────┐
   ▼                      ▼                 ▼
   Surety's bonding    Bank's line of    Owners' prequalification
   capacity            credit            of your company

That is not an abstraction. Under percentage-of-completion accounting — the standard for construction — the profit your company reports this quarter is computed directly from forecasts written by project managers. A forecast you inflate does not stay on your job. It becomes revenue the company recognized, profit it reported, capacity the surety extended, and work the company bid on the strength of a financial position that was not real. Chapter 34 walks that mechanism in full, and case study 2 in this chapter walks a single project's version of it.

And now the management half, which is the part that actually matters

I have just spent two pages describing things a project manager can do wrong. Here is the harder truth, and it is aimed at anyone who will ever receive a forecast rather than write one:

The pressure to hide bad news comes almost entirely from how organizations react to it. A company that punishes early honest forecasts is manufacturing its own surprises.

If the reliable consequence of walking into your VP's office in month four and saying "the footings are running 12 percent over and here is my plan" is a difficult forty minutes, a note in your file, and a reputation as the PM who has problems — then you have taught every project manager in the company that the correct move is to carry it at budget and hope. They are not being unethical. They are responding rationally to the incentive you built.

And the incentive is expensive, because of the arithmetic in this chapter: an overrun caught at 25 percent complete is mostly preventable; an overrun caught at 75 percent complete is mostly history. A company that makes bad news costly to deliver is systematically converting manageable problems into unmanageable ones, and then being surprised by them.

Nadia gets this right, and the way she gets it right is small and specific. When a PM brings her a fade early, her first question is never "how did this happen." It is "what are we changing, and when do we know if it worked." She saves the forensics for the lessons-learned session at closeout (Chapter 40), where they are useful, instead of the disclosure meeting, where they only teach people not to disclose.

If you ever run a company, or a division, or a single project team: the honesty of your cost reports is a property of your culture, not of your people. You will get the reports your reaction deserves.

🔄 Check your understanding. Your concrete code is forecasting $50,200 over. Your project executive has said in three consecutive meetings that this job "needs to hold its number." You believe you can recover perhaps $15,000 through a crew change you are making next Monday. What forecast do you carry, and what do you write?

Answer

Carry $462,200 — the full overrun — and write the note.

The crew change has not happened yet and has not been measured. A forecast is a statement about what you believe will happen, and today you believe the code finishes at $462,200 at the current rate. You do not get to spend a recovery you have not yet earned.

What you write alongside it is the part that makes this professional rather than merely honest:

"03-3100-L forecast at $462,200 based on the actual unit rate of $372.74/CY over 719 CY placed and three consecutive periods of consistent data. Effective Monday [date], the crew is being restructured to a dedicated form-setting crew with a separate placing crew, and pour sizes are being increased to reduce the setup-to-placement ratio. If the change performs as expected, the forecast improves by approximately $15,000. That improvement is NOT carried in this forecast and will be reflected only after it is measured in the [next month] report."

That paragraph does four things at once. It gives the executive the true number. It shows you have a plan, which is what he is actually anxious about. It commits you to a measurable test with a date. And it creates a contemporaneous record that you forecast honestly under pressure — which, the one time in your career it matters, will matter a great deal.

If carrying the honest number is career-threatening at your company, that is real information about your company, and it is worth more to you than this one forecast.


Spaced Review

Answer these before you read the restatements. Retrieval before review — the recall is the learning.

From Chapter 20: What is the productivity factor, how is it computed, and what does a PF of 0.85 tell you about man-hours at completion?

Check yourself

PF = earned man-hours ÷ actual man-hours, where earned MH = quantity installed × the budgeted man-hours per unit. A PF above 1.0 means you are beating the estimate; below 1.0 means you are not.

A PF of 0.85 says the crew earns 85 budgeted man-hours for every 100 it burns — it is about 18 percent less productive than planned (1 ÷ 0.85 = 1.176). To forecast man-hours at completion: MH at completion = total budgeted MH ÷ PF. A package budgeted at 7,105 MH running at PF 0.85 forecasts 7,105 ÷ 0.85 = 8,359 MH, or 1,254 hours over. Multiply by the burdened rate and you have your dollar forecast — which is exactly what section 28.6 did, one step at a time.

From Chapter 13: How does the detailed estimate become the control budget, and what has to survive that translation intact?

Check yourself

The estimate is reorganized — not re-priced — into the cost-code structure, and the resulting budget is what every variance in this chapter is measured against. What must survive intact is the code structure itself and the quantities and unit rates behind each line. If the estimate is built at one level of detail and the budget at another, you can never compare an actual unit rate to an estimated one, which means you can never answer the only question that matters: is this code over because we are performing badly, or because it was priced wrong? Those two have completely different fixes, and you cannot distinguish them without a common structure. That is the five-place rule in 28.2.

Deep callback — Chapter 6: What is contingency, what is it not, and why does its drawdown rate function as an early-warning signal?

Check yourself

Contingency is a priced, owned, drawn-down reserve for identified risks on the risk register — not padding, and not a fund for covering poor performance. Every draw should name the risk it answers.

Its drawdown rate is an early warning because of a simple relationship: contingency is consumed when risks materialize, and work is consumed as the job progresses. If risks are materializing faster than work is completing, the register was optimistic and the remaining reserve will not cover the remaining risk. On Northgate at month nine: 54 percent of contingency drawn against 37 percent of work complete — a 17-point gap. That gap was explainable (front-loaded soils and steel acceleration, every dollar named), but it was the number I put in front of Nadia every month afterward. The dangerous version is the one nobody can itemize, because that is contingency being used as a slush fund for overruns — which is red flag #4 in 28.9 and, at bottom, is optimistic forecasting wearing a different hat.


Project Checkpoint: Willow Street Cost Codes and the Month-6 Cost Report

In Chapter 27 you built a six-week look-ahead, a pull plan for the enclosure sequence, a constraint log, and PPC tracking. That gave you the field's forward view. This checkpoint gives you the money's forward view, and the two must agree — a look-ahead that says the masonry crew is behind and a cost report that says masonry is on budget cannot both be right.

Your deliverable has four parts.

1. The cost-code structure. Build it directly from your Chapter 13 detailed estimate for the Willow Street Community Center ($6.8M, 24,000 SF, two stories, wood-framed second floor over structural steel and CMU first floor; full package in Appendix K). Use a division-activity-cost type format. Target 35 to 55 codes — enough to see the job, few enough that a foreman can use it. For every code, state the unit of measure and the source of the data. Then run the five-place test in writing: name, for each of the five places (estimate, budget, time cards, AP coding, schedule of values), how this structure will be used there. Where your Chapter 13 estimate is at a different level of detail than your budget, say so and reconcile it.

2. The budget load. Produce the reconciliation from the estimate to the current control budget: original budget, buyout adjustments (use your Chapter 16 buyout log), approved change orders, approved contingency transfers, current budget. This is a lump-sum contract, not a GMP, so your contingency is internal — money inside your own price, not a line the owner sees. Say in one sentence how that changes who benefits from an underrun.

3. The month-6 cost report. Month 6 of a 425-calendar-day contract. Build it with all five columns plus percent complete and a method column. Rules:

  • Every subcontracted code is forecast at committed value, adjusted for pending changes.
  • Every self-perform code is forecast by unit rate, using the actual rate.
  • State the percent-complete method for each code (units, cost-to-cost, milestone, level of effort, or supervisor's estimate) and be prepared to defend the bias each carries.
  • Include an accrual schedule: at least three accruals, each with a source, a basis, an amount, and the period it reverses in. Make at least one of them a Type 2 — work directed with no signed change.
  • Foot the report. Cost to date + cost to complete = forecast at completion. Budget − forecast = variance. If it does not foot, it is not a cost report.

4. The variance narrative. Half a page, no more. Name the three codes you are worried about and for each one give: the variance, the method that produced it, whether you believe the trend and why, and what you are doing about it — with a date. Then state your contingency drawdown as a percentage against your percent complete, and say what that gap tells you.

Make at least one of your three worry codes a self-perform code where you can compute a productivity factor, and show the PF. Make one of them an unbought code where budget minus committed is your real exposure.

Next chapter you update the Willow Street schedule at the same month-6 data date, analyze the variance, and price the recovery options. Keep this cost report open while you do it. When the recovery options get priced in Chapter 29, the dollars have to land on the cost codes you just built — that is theme 2 made physical, and it is the moment the two halves of project controls become one system.


Chapter Summary

The five numbers, and what each one is:

Number Definition Fact or judgment?
Budget Original + approved owner changes + approved contingency transfers Fact — a controlled document
Committed Executed subcontracts and POs, including executed changes Fact — signed agreements
Cost to date Invoices + payroll + accruals Mostly fact
Cost to complete Forecast cost of the work remaining Judgment — the only one
Forecast at completion Cost to date + cost to complete Derived
Variance Budget − forecast at completion Derived

The four forecasting methods, and when each applies:

Method Use for Rule
Committed cost Subcontracted and purchased scope Forecast = committed + executed changes + pending changes
Unit rate Self-perform work with a countable unit CTC = quantity remaining × current actual unit rate
Percent complete Early-stage codes, small codes, roll-ups Cannot detect an overrun; never use on a code you are worried about
Judgment / re-estimate Codes where conditions changed materially Write the assumptions, or it is not a forecast

The decision framework — reading any cost report in seven moves:

  1. Count the lines where forecast equals budget. If it is most of them, stop; the report is unforecast.
  2. Subtract committed from budget on every code past 50 percent complete. That is your unbought exposure.
  3. Compare cost to date against percent complete, code by code. Gaps are productivity problems, optimistic progress, or front-loaded billing.
  4. Compare contingency drawn against percent complete. A gap is the earliest warning the job gives.
  5. Find any code that has not moved in three months, and go look at the work.
  6. Open the "miscellaneous" code and sample it.
  7. Look for round numbers in the forecast column. They are placeholders.

The things to carry out of this chapter:

  • Cost control is not accounting. Accounting looks backward and must be right; cost control looks forward and must be timely. Same data, same people, different obligations.
  • The cost code must correspond to a unit of work somebody can count, and the same structure must appear in the estimate, the budget, the time cards, the AP coding, and the schedule of values. Break one link and the report is fiction.
  • 🚪 Cost-to-complete, not cost-to-date, tells you whether you are making money. Everything spent is history; the only number that can still be managed is the one in front of you. A job 60 percent billed and 75 percent spent is already in trouble, and every figure on the page can look fine.
  • Accruals are not optional. Work performed but not invoiced is the most common reason a cost report tells the truth about the wrong month — and on self-perform codes it corrupts the unit rates every forecast is built from.
  • Use the current actual unit rate, not the estimated one, once 20–25 percent of the quantity is installed and three periods agree. To forecast better than actual, you owe a written, dated, mechanical reason.
  • Labor gets the tightest loop because it is the only cost you can correct while you are incurring it. Weekly, not monthly.
  • The cost report is next year's estimate. A project that codes sloppily has stolen from its own future.
  • A forecast you do not believe is a false statement, relied upon by your CFO, your surety, and your owner. And the pressure to write one comes from how organizations react to bad news — so if you ever receive forecasts, make honesty cheap.

What's Next

You now have the money's forward view. Chapter 29 builds the other half: updating the CPM schedule with as-built data, analyzing the variance, and pricing recovery options — including the canonical $168,000 that bought seventeen of the twenty-three days Kestrel lost on steel, and the non-monetary bill that came with it. Then Chapter 30 fuses the two into a single arithmetic, because the five numbers you just learned turn out to be three numbers and four indices, and they answer the cost question and the schedule question in the same breath.