Most overruns are visible in the committed column long before they reach the actual column. A subcontract signed in month two at 15% above the budget line is already a loss; waiting for the invoices to arrive in month nine only means you find out too late to act.
This guide explains each number, shows how to calculate cost to complete and forecast final cost, and works through a cost report for a mid-sized fit-out project. It ends with a monthly review routine, the errors we see most often, and an FAQ.
What do budget, committed and actual cost mean?
The three terms sound obvious, but teams often define them differently, and that is where cost reports stop agreeing with each other. Agree on these definitions before the first cost report goes out.
| Term | What it includes | Where the number comes from | When it changes |
|---|---|---|---|
| Original budget | The cost estimate behind the tender price, split by cost code | The estimating team's cost plan, after award | Never; it is the baseline |
| Revised budget | Original budget plus approved variations and approved budget transfers | Variation register and budget transfer log | When a variation or transfer is approved |
| Committed cost | Value of signed purchase orders, subcontracts and hire agreements, whether invoiced or not | Purchasing and subcontract records | When an order is placed, amended or cancelled |
| Actual cost | Costs recorded in the accounts: supplier invoices, certified subcontract payments, payroll, plant and site overheads | Accounts payable, payroll, stores issues | When a cost is posted |
| Uncommitted budget | Revised budget minus committed cost | Calculated | Whenever either side changes |
Two points cause most of the confusion.
First, committed cost includes actual cost on the same orders. A subcontract worth AED 400,000 with AED 150,000 certified so far has a committed value of AED 400,000, not AED 550,000. Reports that add committed and actual together double-count.
Second, some costs are never committed in advance. Direct labour, site staff, utilities and small cash purchases go straight to actual. For these lines, you forecast from rates and remaining duration rather than from orders.
How do you calculate cost to complete and forecast final cost?
The number that matters to the project director is not what has been spent; it is what the job will cost when it finishes. That figure is the forecast final cost, and you build it line by line:
Forecast final cost = committed cost + actual cost not covered by any commitment + cost still to commit
"Actual cost not covered by any commitment" is cost already posted with no order behind it, such as direct labour, site staff and site overheads. "Cost still to commit" is the quantity surveyor's or project engineer's estimate of what remains to be ordered or spent on that cost code. For a line that is fully subcontracted, it may be zero (plus any expected subcontractor variations). For labour, it is the remaining labour-days multiplied by the current daily cost.
From there, three more figures follow:
| Figure | Formula | What it tells you |
|---|---|---|
| Cost to complete | Forecast final cost minus actual cost to date | Cash still to be paid out on this job |
| Forecast variance | Revised budget minus forecast final cost | Expected saving (positive) or overrun (negative) |
| Percentage complete by cost | Actual cost divided by forecast final cost | Useful for revenue recognition, but check it against physical progress |
The last row matters for finance. Under IFRS 15, many Gulf contractors recognise revenue over time using a cost-based input method, so an error in forecast final cost flows straight into reported profit. If the forecast is too low, the percentage complete is overstated and profit is recognised too early; the correction arrives later as a loss.
A forecast is only as good as the person who updates "cost still to commit". If that column is left at "budget minus committed" by default, the forecast simply repeats the budget and hides every overrun.
What does a cost report look like? A worked example
A Dubai contractor is five months into a 12-month office fit-out. The contract value is AED 12,000,000 and the revised budget is AED 10,200,000, a planned margin of AED 1,800,000 (15%). This is the month-5 cost report, in AED. Of the AED 520,000 actual on preliminaries, AED 300,000 is site staff payroll with no order behind it, so it is added to committed cost in the forecast:
| Cost code | Revised budget | Committed | Actual to date | Actual not committed | Still to commit | Forecast final cost | Variance |
|---|---|---|---|---|---|---|---|
| 01 Preliminaries and site staff | 1,100,000 | 610,000 | 520,000 | 300,000 | 240,000 | 1,150,000 | (50,000) |
| 02 Partitions and ceilings | 2,400,000 | 2,610,000 | 1,300,000 | 0 | 40,000 | 2,650,000 | (250,000) |
| 03 MEP subcontract | 3,200,000 | 3,050,000 | 1,200,000 | 0 | 90,000 | 3,140,000 | 60,000 |
| 04 Flooring and finishes | 1,500,000 | 620,000 | 210,000 | 0 | 900,000 | 1,520,000 | (20,000) |
| 05 Joinery | 1,400,000 | 1,250,000 | 400,000 | 0 | 0 | 1,250,000 | 150,000 |
| 06 Risk allowance | 600,000 | 0 | 0 | 0 | 600,000 | 600,000 | 0 |
| Total | 10,200,000 | 8,140,000 | 3,630,000 | 300,000 | 1,870,000 | 10,310,000 | (110,000) |

Here is how to read it.
The job is forecast AED 110,000 over budget. Forecast margin falls from AED 1,800,000 (15.0%) to AED 1,690,000 (14.1%).
Partitions are the problem, and they have been since month 2. The subcontract was signed at AED 2,610,000 against a budget of AED 2,400,000. The actual column shows only AED 1,300,000, which looks comfortably inside budget. A report built on actual cost alone would raise no alarm until the last invoices arrived.
The joinery saving is not yet secure. The subcontract was let AED 150,000 under budget, and the forecast shows that saving, but subcontractor claims and remeasurement can still reduce it. Treat it as at risk until the work is complete and the final account is agreed, and don't spend it elsewhere first.
The risk allowance stays in full. It is released only when the risks it covers have passed, not to offset the partitions overrun on paper.
Cost to complete is AED 6,680,000 (10,310,000 minus 3,630,000), and the job is 35.2% complete by cost. Finance uses the first figure for the cash forecast and the second, checked against physical progress, for revenue.
How should you set up cost codes and commitments?
A cost report is only as reliable as the coding behind it. Four set-up decisions make the difference.
Use one cost code structure for estimating, purchasing and accounts. If the estimate is built on trade packages, but purchase orders are coded to general ledger accounts such as "materials" and "subcontractors", nobody can match budget to commitment without a spreadsheet. Pick a structure, often by trade package or work breakdown structure element, and use it everywhere.
Keep codes at the level you manage. Twenty to forty cost codes per project is workable for most building contractors. Two hundred codes means most hold small amounts that nobody reviews, and staff start posting to whichever code has budget left.
Make every order carry a project and a cost code. The purchase order, subcontract or hire agreement is the commitment. If it can be approved without a cost code, it will be, and the committed column will be incomplete. The same applies to stores issues from a central yard.
Record changes to commitments, not just new ones. Subcontract variations, rate changes and cancelled order lines all change committed cost. If the system only captures the original order, the committed figure drifts away from reality over the life of the job.
What should a monthly cost review cover?
Run the review in the first week after month end, once supplier invoices and subcontract certificates for the month are posted. One hour per project with the project manager, quantity surveyor and project accountant is usually enough.
Which errors make cost reports unreliable?
| Error | What happens | Fix |
|---|---|---|
| Forecast = budget by default | Overruns stay hidden until the job closes | Require a reviewed "still to commit" figure for every open code |
| No accruals | Actual cost lags the work, so the job looks cheaper than it is | Accrue delivered materials and certified work at month end |
| Budget transfers without approval | Overruns are moved into codes with spare budget | Log every transfer with a reason and approver |
| Pending variations counted as revenue | Margin is overstated | Show pending variations as a separate line until approved |
| Committed and actual added together | Cost is double-counted | Report actual as part of committed, not on top of it |
| Overheads charged late or not at all | Projects look more profitable than the business | Allocate site overheads monthly at an agreed rate |
What does HYP see at contractors?
At contractors and project-based businesses across the Gulf, our implementation team sees the same pattern. The accounts know the actual cost to the dirham, the project team has a spreadsheet of orders, and the two meet once a quarter. By the time an overrun is agreed by both, the subcontract that caused it was signed months earlier.
The companies that control cost well have usually made one change: purchase orders and subcontracts cannot be approved without a project and cost code, and the approval screen shows the remaining budget for that code. The project manager sees the overrun at the moment of commitment, when there is still time to negotiate, re-scope or raise a variation.
In HYP, budgets, purchase orders, subcontracts, stores issues and timesheets post to the same project cost codes, so the budget, committed and actual columns come from one place. See how this works on our Project Cost Control & Commercial Management page.
Related reading: subcontract commitments are only half the story; retention and advance recovery change the cash picture. See Subcontractor Payment Certificates: Tracking Retention, Advances and Deductions. For scope changes that alter the budget, see Variation Orders in Construction: How to Price, Approve and Bill Scope Changes.