Summary

The pre-calculation of a project is an assumption and the post-calculation a fact, and at many manufacturing companies we see, the two only meet when the final invoice has already gone out. In the worked example in this article, a machine quoted at 2,400 hours takes 2,870, which drops the contribution margin from 17.8 to 9.0 percent; the 470 extra hours sit in four items, each with a different cause and a different owner. If you track the post-calculation per project type and per work package, you see in week 12 what would otherwise only appear on the invoice in week 26, and you know which mark-up belongs in the next quote.

In May, the managing director of a machine builder with 45 employees receives the post-calculation of a packaging line delivered in March. The quote assumed 2,400 hours. The time registration counts 2,870. Material costs came out as estimated, the customer is satisfied and has paid. On paper this was a €428,000 project with €76,000 contribution margin. After the post-calculation, €38,400 of that was left, and after the 13 percent indirect costs the company has to carry per project, the bottom line shows a loss of €17,240.

Two months earlier, the same company had delivered a comparable line, for the same customer group, with the same fitters, and that one came in 30 hours under the estimate. The director looks for the explanation with the project manager and with the work planner who prepared the quote, and finds part of the explanation with both.

The answer lies in the deviation between pre-calculation and post-calculation, per work package and per project type. If you only compare the total per project, you do not see the cause of that deviation.

Why the pre-calculation is too low before the project starts

Kahneman and Tversky (1977) described in a technical report for the US Department of Defense (not peer reviewed; included in 1982 in the book Judgment under Uncertainty) why people systematically underestimate how long a task will take. They build the estimate from the characteristics of the case itself, and ignore what they know about the outcomes of comparable cases. Kahneman and Tversky call this the planning fallacy. Buehler, Griffin and Ross (1994) tested this in the Journal of Personality and Social Psychology (peer reviewed) with students who had to plan their own thesis: 29.7 percent finished within the time they had predicted themselves. As soon as the participants were asked to link their earlier experiences explicitly to the new prediction, the optimistic bias disappeared.

A work planner estimating a packaging line does what those students did. He goes through the design, counts the operations, estimates the assembly and adds it up. That is an estimate from the inside. What he does not do is put the last four lines of this type side by side and look at what percentage they overran. Flyvbjerg (2006) worked out in the Project Management Journal (peer reviewed) the remedy Kahneman and Tversky proposed, under the name reference class forecasting. You choose a class of comparable completed projects and determine the distribution of their outcomes. The new project then gets its place in that distribution. Besides the unconscious optimistic bias, Flyvbjerg also names a deliberate one: an estimate is kept low to win the project over a competitor. At the machine builders we see, these are often the same person and the same quote.

At machine builders and engineering firms we see that the outcomes of earlier projects are recorded somewhere, in the post-calculations, but that nobody puts them together per project type before the next quote goes out. The work planner knows from experience that new designs overrun. By what percentage, he does not know.

At those companies, the hourly rate is rarely the problem. We did not find a rate figure for machine building itself. The closest is the VvDN Marktmonitor over het tweede kwartaal van 2026 (market report of the Dutch association of staffing secondment firms, Vereniging van Detacheerders Nederland, discussed by trade outlet ZiPconomy in August 2026): the average sales rate of secondment firms rose by 4.5 percent to €81.02 per hour, while revenue in the engineering discipline fell by 2.9 percent.

Why the deviation only becomes visible at the invoice

Little (2006) analysed in IEEE Software (peer-reviewed trade journal) 106 software projects at a single company and found that the actual duration was a median of 1.8 times the estimate. The relative uncertainty about the remaining work stayed virtually the same throughout those projects. So the estimate does not get better by itself as the project progresses. It only gets better when someone puts the work that is finished next to the work that was planned. For a machine builder this means: a project that looks on schedule in week 12 because 1,450 of the 2,400 hours have been booked is just as uncertain in week 12 as in week 1, unless you know what work was done for those 1,450 hours.

Then there is the time registration itself. Te Braak, Van Tienoven, Minnen and Glorieux (2023) showed in Sociological Methodology (peer reviewed), based on 8,535 online time diaries of Belgian teachers, that the quality of recorded time starts to decline just a few hours after the activity, much earlier than previous research assumed. A fitter who fills in Monday's hours on Friday afternoon reconstructs them from memory. At the end of the month that memory is gone and it becomes an estimate. In both cases the hours end up on the project that first comes to mind, and that is the project he worked on longest or that got the most attention. That hours end up on the wrong project is our own observation at companies where registration happens per week or per month; we have found no research that measures this specifically for project organisations.

The post-calculation itself also contributes to the problem, because it is usually one figure per project: quoted hours against booked hours. That figure says the project overran by 470 hours. In which work package that happened, and why, it does not say.

Worked example: from 2,400 to 2,870 hours

In this worked example, the company builds a packaging line to customer specification. The pre-calculation: 2,400 hours at a sales rate of €105, €252,000, plus €160,000 of materials and subcontracted work with a 10 percent mark-up, €176,000. Sales price €428,000. The internal cost price per hour, wage costs and direct workshop costs per productive hour, is €80. The estimated cost price is therefore 2,400 times 80 is €192,000 plus €160,000 materials, together €352,000, and the contribution margin €76,000, 17.8 percent of the price. The company needs 13 percent contribution per project to cover indirect costs: engineering not tied to a project, sales, work planning, office. On this quote €20,360 is left after that.

The post-calculation: 2,870 hours, 470 more than estimated. At €80 that is €37,600 of extra cost. The contribution margin drops to €38,400, 9.0 percent. After the 13 percent indirect costs, €55,640, the result of this project is minus €17,240. Materials came out at the estimated €160,000; how a steel price rise between quote and purchase undermines the same calculation on the materials side is explained in Why a machine builder with fixed prices loses its margin to a steel price rise between quote and purchase.

After delivery, the project manager traced the 470 hours using the timesheets, the customer's change emails, the purchase orders and the workshop planning. In the example they come to four items.

ItemHoursCost (€80)What happenedWhere it ended up in the books
Changes at the customer's request190€15,200Different infeed side after the first assembly, extra sensors, a longer outfeed conveyor and two adjustments to the controlsOn the project, as ordinary project hours; nothing invoiced as additional work
Waiting and switching due to late parts95€7,600Servo motors three weeks late; fitters moved to another project in the meantime and brought backOn the project, partly on the other project
Rework110€8,800A dimensional error from engineering that only emerged during assembly; frame partly rebuiltOn the project, as assembly hours
Hours from another project75€6,000In the last month two fitters booked everything to this project, including the days on the retrofit next to itOn this project; the retrofit came in under estimate as a result
Total470€37,600

Each item has a different owner. The changes are a commercial question: 190 hours at €105 is €19,950 of revenue that was never charged, and whether you charge a customer for it is something you decide during the project. The waiting time belongs to purchasing and planning, the rework to engineering, and both call for a different measure than a higher mark-up in the quote. The 75 hours from the other project are not costs of this project, and without that correction the retrofit next to it gets a post-calculation that looks too good, so the next retrofit is quoted too tightly.

Ghaffari and Emsley (2015) describe in Surveys in Operations Research and Management Science (peer reviewed), in a review of 140 studies on Goldratt's Critical Chain (1997, book, no free version online), that this method does not allow multitasking between projects, and that the safety margins in a plan are used inefficiently in practice. What a switch between projects costs in a workshop is shown in the example by the 95 hours of waiting and switching: €7,600 on one project. How a buffer in an estimate is used up before it is needed, and what you do about that with earned value, is worked out for an IT project in Why fixed-price deals in IT projects lose money more often than you think; in a workshop we see the same mechanism.

What you could already have seen in week 12

The project ran for 26 weeks. In week 12, the time registration showed 1,450 hours, 60 percent of the 2,400. The project manager estimated the project to be "about 60 percent done", so the forecast was 1,450 divided by 0.60 is 2,417 hours, and nobody was worried about that.

Batselier and Vanhoucke (2015) compared in the International Journal of Project Management (peer reviewed), on 23 real projects, the accuracy and timeliness of forecasting methods based on earned value management. The idea behind it: you base the forecast for the whole project on the ratio between the work completed and the costs incurred for it, instead of on the ratio between hours spent and hours budgeted. For a machine builder, the do-it-yourself version is a table per work package.

Work packageHours in pre-calculationStatus in week 12Earned hours (complete times estimate)Booked hours
Engineering and drawing700Done700820
Work planning and purchasing150Done150160
Assembly and wiring1,10040 percent440470
Commissioning and acceptance450Not started00
Total2,4001,290 (54 percent)1,450 (60 percent)

The work completed represents 1,290 estimated hours, 54 percent of the project. 1,450 hours were booked for it. So far, each estimated hour costs 1,450 divided by 1,290 is 1.124 hours, and the forecast for the whole project is 2,400 times 1.124 is 2,700 hours, rounded. That is 300 hours above the estimate, in week 12, with 14 weeks to go. The customer changes of the last months came on top of that and brought it to 2,870. The difference between the project manager's forecast (2,417) and the work package forecast (2,700) lies in engineering: 820 hours for work estimated at 700, and the company already knew that in week 8, had anyone added it up.

What you can still do in week 12 and no longer in week 26: track down the dimensional error from engineering before the frame is built, record the customer's changes as additional work from that point on, chase the servo motors before the fitters stand idle, and keep the fitters on this project instead of moving them twice. In this worked example, that would have saved the 110 hours of rework out of the 470, plus part of the 190 hours of changes.

What the average averages away

The company in the example does twelve projects a year, together accounting for about €3.0 million in revenue. Across those twelve projects, 16,900 hours were estimated and 19,160 booked: a 13.4 percent overrun, 2,260 hours; at €80 that is €180,800 of cost that was not in the quotes. The director who sees this figure puts 13 percent on all hours in the next quotes.

The company classifies its projects by how much of them has been built before, from a new design to customer specification to a retrofit of an existing machine. Per project type, the same overrun looks like this.

Project typeNumberHours pre-calculationHours post-calculationDeviationCost of the deviation (€80)
New design to customer specification49,60011,480plus 19.6 percent€150,400
Variant of an existing design55,5005,610plus 2.0 percent€8,800
Retrofit or overhaul31,8002,070plus 15.0 percent€21,600
Total1216,90019,160plus 13.4 percent€180,800

In this example, a 13 percent mark-up on everything fits none of the project types. A 1,100-hour variant goes out at 1,243 hours, where the company's own post-calculations say 1,122: 121 hours and €12,705 too expensive at the sales rate, and that on the project type where the company competes with firms that already have the design. A new design gets 13 percent where it needed 19.6, and still falls 158 hours short per 2,400-hour project, €12,640.

Within the four new designs the spread is greater. Three of them overran by 24 to 32 percent, the fourth came in 4 percent under the estimate. With the retrofits it is the other way round: that is where the project sits on which 75 hours too few were booked in the last month, the 75 hours from the first table that ended up on the packaging line. A post-calculation that does not correct this teaches the company that retrofits sometimes turn out better than expected, and it quotes the next retrofit 75 hours too tightly.

What is acceptable, and when

A deviation of zero is not a goal. A new design to customer specification contains work nobody has done before, and a post-calculation that matches it to the hour is coincidence. This is what we see as workable at clients, per moment in the project.

MomentWhat must be known at that pointAcceptable in the worked exampleSignal that it is going wrong
At the quoteThe hours per work package, with per project type the mark-up from the company's own post-calculations over the last two yearsNew design: 2,400 hours from the inside, with the company's own factor of 1.196 that becomes 2,870 in the quote, or a deliberately lower price with the reason stated; variant: factor 1.02One mark-up for all project types, or a mark-up the work planner chooses from experience without a figure behind it
Every week during the projectPer work package the booked hours and the percentage complete, filled in by the project manager, hours booked on the day itselfForecast per work package within 5 percent of the estimate; customer changes with date and hours on a separate lineThe forecast is "hours spent divided by the project manager's gut feeling"; hours are filled in on Friday or at the end of the month
At 50 percent completeA forecast for the whole project based on earned hoursIn the example 2,700 in week 12 against 2,870 at delivery: a difference of 6 percent, usable for steeringThe forecast at 50 percent and the post-calculation differ by more than 10 percent: then the percentage complete was a guess
At deliveryThe post-calculation per work package, with the deviation split over changes, waiting time, rework and wrongly booked hoursNew design within 15 percent of the estimate, variant within 5 percent, retrofit within 10 percent, and a deliberately lower-priced quote within what was agreed about it at the time of quotingOne total figure per project, and an explanation that comes from memory afterwards
Every quarterThe deviation per project type over the completed projects, and the new mark-up factor per type for the quotesNew design from 1.196 to, for example, 1.15 once engineering removes the dimensional errorsThe factor from three years ago is still in the estimating sheet

The moment that yields the most is the quote. A price built on 2,400 hours cannot be corrected once the order has been signed. Everything that comes after limits the damage or improves the next quote.

How to set up post-calculation per project yourself

The rigorous method starts with the structure: the pre-calculation and the post-calculation use the same work packages, and the time registration only knows those work packages per project. In the project management literature this structure is called a work breakdown structure. Without a shared structure, the comparison afterwards is a puzzle: the estimate says "assembly 1,100 hours" and the time registration says "workshop 1,890 hours", and that also includes commissioning. In addition, the time registration gets four codes next to the work package: regular, customer change, waiting and switching, rework. A fitter who spent a day waiting for servo motors books eight hours to assembly with the code waiting. Every week the project manager fills in the percentage complete per work package, and the system calculates the forecast. Setting this up in the ERP or project system, and keeping the discipline, is work we do for our clients, and so it is also how we earn our money.

The do-it-yourself version takes an afternoon with the post-calculations of the last two years and a spreadsheet, and gives you the mark-up factor per project type that already makes the next quote better than the last one.

Step 1: put each completed project from the last two years on a line, with project type, customer, estimated hours and booked hours. In the example: twelve lines for this year, plus the twelve from last year.

Step 2: mark the projects where you know the hours are wrong, because in the same period another project ran alongside that came out suspiciously far above or below estimate. Put those two against each other and move what is demonstrably in the wrong place. In the example: 75 hours from the packaging line back to the retrofit.

Step 3: calculate per project type the ratio of booked hours divided by estimated hours, and take the average; a project that overran by 60 percent because a supplier went bankrupt you leave out of the class, because otherwise it pushes up all quotes of that type. In the example a new design comes to 1.196 and a variant to 1.02; a retrofit sits in between at 1.15.

Step 4: put that factor in the estimating sheet as a separate line below the hours from the inside, with the name of the project type. A quote then shows two figures: 2,400 hours according to the design, 2,870 hours according to your own history. If you want to quote at 2,400 to win the order, you then do so with your eyes open and know that the difference is €49,350, 11.5 percent of the price.

Step 5: for every new project, track the hours per work package from the first week, even if the system cannot do it yet; a table on paper with four work packages and a column "percent complete" is enough to make the week 12 forecast.

Once you have done this, you know per project type which mark-up belongs in the quote, and that is the difference between 13 percent on everything and 2 to 20 percent on the right type. The allocation per work package, which shows where within a project the hours leak away, comes after that.

When this worked example does not apply

The model assumes a company working at a fixed price per project, with its own engineering and its own assembly, and with several project types handled by the same people. For some companies it is different.

A company working on a time-and-materials basis, so invoicing all hours, has the deviation between pre- and post-calculation primarily as a problem for the customer. The problem then shifts to the discussion at the invoice, and to the question of whether the customer calls again next time. The table with four items is still useful there, but the euros behind it are then revenue you did not invoice.

A company with projects under 200 hours has little use for work packages. The registration then costs more than it yields, and the mark-up factor per project type from step 3 is the only thing that remains.

A supplier that does one operation per order, machining for example, has operations rather than work packages, and the deviation lies in first-off problems: programming, clamping, measuring, the first dimension that is off. There the distinction between one-offs and repeat orders is what the distinction between new design and variant is in this article, and the rest of the method works the same way.

And the model uses a fixed cost price of €80 per hour. A company that hires in fitters at €95 per hour in peak season has a different cost price per hour in those months than the €80 of its own people, and then an hour of overrun in summer is more expensive than an hour of overrun in winter. How the utilisation of your own people relates to what is sold is covered in Utilization rate vs. profitability, the metric agencies forget.

How to align pre- and post-calculation in manufacturing

Calculate the mark-up factor per project type with the five steps above, and put it as a separate line in every quote. In the example, this changes the estimate for a new design from 2,400 to 2,870 hours, and for a variant from 1,100 to 1,122.

Have the pre-calculation and the time registration use the same work packages. At the manufacturing companies we see, that agreement costs no software, but without it the comparison per work package afterwards cannot be made.

Book hours on the day itself, and check them on Friday. Te Braak and colleagues (2023) show that the quality of recorded time declines after just a few hours; a timesheet reconstructed on Friday gives a figure per project that is off, and the post-calculation inherits that error.

Give the time registration four codes next to the work package: regular, customer change, waiting, rework. In the example that splits the 470 hours into 190, 95, 110 and 75, and each of those four has a different owner in the company.

The project manager reports the percentage complete per work package every week, and from that you calculate the forecast in earned hours. In the example that gave a forecast of 2,700 hours in week 12 against 2,417 based on hours spent, and the difference of 283 hours was the difference between intervening and investigating afterwards.

Record every customer change on the day itself with the hours, even if you decide not to invoice it. In the example that is 190 hours, €19,950 at the sales rate, and then management decides whether it is given away, instead of the fitter who said yes.

Every quarter, look at the projects with the lowest contribution margin in euros after post-calculation, and put them next to the projects with the highest. In the example, the difference between the packaging line and the line from two months earlier lies in 190 hours of changes and a dimensional error, and both are things that can go differently on the next line. Which part of your project portfolio carries the result and which part eats it is worked out in The Pareto principle is also a risk gauge for your business; how to follow a project from estimate to evaluation in Keeping projects profitable: from estimate to evaluation.

Frequently asked questions about post-calculation per project in machine building

Why do I make money on one project and not on another, while the quotes were the same?

The deviation between pre-calculation and post-calculation consists of different items per project, and you do not see them in the total. In the worked example, an overrun of 470 hours consists of 190 hours of customer changes, 95 hours waiting for parts, 110 hours of rework and 75 hours booked to the wrong project. The project from two months earlier did not have those changes or that dimensional error, and came in 30 hours under the estimate with the same fitters.

Why does a project take more hours than the pre-calculation?

Kahneman and Tversky (1977) described how an estimate built up from the case itself systematically comes out too low, because the outcomes of comparable earlier cases are left out; Buehler, Griffin and Ross (1994) found that 29.7 percent of thesis students met their own planning. In a workshop, this is joined by causes that only arise during the project: customer changes, waiting time, rework and hours that end up on the wrong project. You solve the first cause with a mark-up per project type from your own post-calculations, the other four with codes in the time registration.

How do I make a post-calculation per project and compare it with the pre-calculation?

Use the same work packages as in the pre-calculation, put the estimated and the booked hours side by side per work package, and split the difference over four codes: regular, customer change, waiting, rework. Then correct the hours that demonstrably belong to another project. In the example: engineering 700 estimated and 820 booked, assembly 1,100 against 1,380, and the 470-hour difference in four items, each with an owner.

What is an acceptable deviation between pre-calculation and post-calculation?

That depends on the project type. At machine builders we see that a new design to customer specification within 15 percent of the estimate is a good result, a variant of an existing design within 5 percent, a retrofit within 10 percent, and a quote deliberately priced lower within what was agreed about it at the time. More important than the deviation itself is whether it was in the quote in advance: in the worked example a new design overruns by 19.6 percent on average, and a quote that accounts for this already has that overrun in the price.

How do I see during a project whether the hours are getting out of hand?

By reporting the percentage complete per work package every week and calculating the forecast from earned hours instead of from hours spent. In the example, in week 12, 1,450 hours had been booked on work representing 1,290 estimated hours; 2,400 times 1,450 divided by 1,290 gives a forecast of 2,700 hours, and that was 300 hours above the estimate at a moment when the project manager was still saying "on schedule". Batselier and Vanhoucke (2015) compared on 23 real projects how accurately and how early such earned value methods predict the final outcome.

How much mark-up should I put on the quoted hours?

The mark-up that comes from your own post-calculations per project type. In the worked example that is 19.6 percent on a new design and 2 percent on a variant; a retrofit sits in between at 15 percent, each time with the average over the last two years as the basis. Flyvbjerg (2006) calls this method reference class forecasting. A single mark-up of 13 percent on everything makes a 1,100-hour variant €12,705 too expensive in the example and still leaves €12,640 on the table on every new design.

Why is my time registration per project wrong?

Hours that are not booked on the day itself are reconstructed. Te Braak and colleagues (2023) showed on 8,535 time diaries that the quality of recorded time starts to decline just a few hours after the activity. At companies where the timesheet is filled in on Friday or at the end of the month, we see that hours end up on the project that is most on people's minds, and in the worked example that is 75 hours that make a retrofit look too good and a packaging line too bad.

What is a good contribution margin per project in machine building?

At least the percentage you need to cover indirect costs. In the worked example that is 13 percent, and a project that comes out at 9.0 percent after post-calculation costs €17,240. At SME machine builders we see that the required percentage varies widely per company, and that the spread between projects after post-calculation is greater than the director expects. The project type on which the percentage is achieved therefore says more than the percentage itself.

Further reading: Why a machine builder with fixed prices loses its margin to a steel price rise between quote and purchase, Why fixed-price deals in IT projects lose money more often than you think, Keeping projects profitable: from estimate to evaluation and Utilization rate vs. profitability, the metric agencies forget. New: Why a machine builder with €700,000 of work in progress makes a profit and still hits its credit limit and Why a machine builder with €5 million project revenue does €300,000 of additional work every year that never reaches an invoice.

← Back to knowledge base