Cost Forecasting, WIP and Capital Projects
This page covers the features that control how project cost is forecast, recognised, and capitalised:
- Cost forecasting and margin tracking: forecast final cost and margin by task, and keep the budget in line with the forecast.
- Split WIP and recognition: post WIP and recognition by cost category.
- Capital projects to fixed assets: transfer recognised project costs to fixed assets.
Cost forecasting and margin tracking
Standard Business Central compares a project's budget with its actual cost to date. That doesn't tell you what the project is going to cost by the time it's finished. A project can look fine against budget halfway through and still be heading for a loss.
This feature has project managers enter a cost to complete for each task. From that, the app works out the forecast final cost, % complete, and forecast margin, and shows them on the task lines and the project cost FactBox.
Why you need it
- You see margin erosion early. A forecast at completion shows a problem while you can still act on it, not after the final invoice.
- Project managers are accountable for their forecasts. Every cost-to-complete update records who made it and when.
- Revenue recognition uses current numbers. When the forecast changes, the app adjusts the budget, so WIP and recognised cost use the latest forecast rather than the original estimate.
- You keep the original quote. Lines flagged as quoted keep the quoted cost visible, however much the budget moves.
What you get
Extra columns on the Tasks part of the project card and on the Project Tasks list:
| Column | Description |
|---|---|
| Cost to Complete | The project manager's estimate of the remaining cost. You can edit it on Posting tasks. End-Total tasks show the total for their range. |
| CTC Updated By / CTC Updated On | Who last changed Cost to Complete, and when. |
| Forecast Final Cost | The expected total cost at completion (see How the forecast is calculated). |
| % Completed | Actual (usage) cost ÷ Forecast Final Cost. |
| Margin % | (Billable total price − Forecast Final Cost) ÷ billable total price. |
| Quoted Cost | The total cost of budget lines flagged as Is Quoted. |
| Outstanding Orders Submitted | Goods and services received on purchase orders but not yet invoiced. Drill down to see the purchase lines. |
| WIP | Actual cost that hasn't yet been recognised as cost of sales. |
| Recognized Invoiced Cost / Invoiced Cost | The recognised cost from the last WIP calculation and the last WIP posting. |
| Project Status | The status of the project, shown on each task so you can filter the task list. |
In the Project Cost FactBox:
| Field | Description |
|---|---|
| Outstanding Orders | The open amount on purchase orders for the project, excluding GST. Drill down to see the lines. |
| Actual Cost – Total | Actual cost including outstanding orders, so committed spend is counted. |
| Quote Profit / Quoted % | Billable total price − budget total cost. |
| Invoiced to Date Profit / Invoiced % | Invoiced price − invoiced cost. |
| Forecast/Actual Profit / Forecast/Actual % | Billable total price − forecast final cost. |
How to use it
Flag the quoted lines
When you set up the project budget from the quote, turn on Is Quoted on the budget planning lines that make up the quote. Quoted Cost on the task then always shows the original quoted cost, even after variations and forecast adjustments change the budget.
Review cost to complete regularly
At each reporting period, usually before the monthly progress claim:
- Open the project and go to the Tasks part.
- For each Posting task, enter the estimated remaining cost in Cost to Complete.
- Check Forecast Final Cost, % Completed, and Margin %, and follow up any task where the margin has dropped.
Final claim
When you're making the final claim on a project, turn on Final Claim on the project card. After you confirm, Cost to Complete is set to zero on every task, so the forecast becomes the actual cost. The Progress Claim report is headed FINAL CLAIM.
How the forecast is calculated
For each Posting task:
| Situation | Forecast Final Cost |
|---|---|
| No cost to complete and no actual cost yet | Budget total cost |
| No cost to complete, some actual cost | Actual cost + received-not-invoiced purchase orders |
| Cost to complete entered | Actual cost + received-not-invoiced purchase orders as at the time Cost to Complete was last updated + Cost to Complete |
When you enter a cost to complete, the forecast is fixed as at that moment. Costs posted afterwards are treated as already covered by your estimate, so they aren't added on top. The forecast changes only when you next update Cost to Complete. This way, costs aren't counted twice between reviews.
End-Total tasks add up the forecasts of the Posting tasks in their range.
Keeping the budget in line with the forecast
On projects that use percentage invoicing, recognised cost is based on the task budget. If the forecast final cost has moved away from the budget, recognition would use out-of-date numbers.
To prevent this, when a sales invoice for the project is posted from the Create Sales Invoice batch, the app compares each task's Forecast Final Cost with its budget total cost. If they differ, it adds forecast variance budget lines to the task for the difference, so that the budget matches the forecast.
- The difference is spread across the project posting groups of the task's budget items and resources, in proportion to their budget cost.
- Each variance line uses the Variance Item No. of its project posting group. The line description ends with the invoice number, and the planning date is the invoice's posting date.
- Variance lines are locked. You can't change or delete them.
To set this up:
- Create an item for each project posting group you want to adjust (for example Labour Variance, Materials Variance), and turn on Purchasing Blocked on each one.
- On Project Posting Groups, enter the item as the Variance Item No.
- Fill in the Project Posting Group on your items and resources. The field is shown on the cards only when Split WIP & Recognition is turned on in Projects Setup.
Tasks whose budget items and resources have no project posting group with a variance item aren't adjusted.
Things to know
- Cost to Complete is the remaining cost, not the total cost.
- Actual cost means project usage (posted project journals and purchase invoices linked to the project).
- Only goods that have been received on a purchase order count in the forecast. Orders not yet received are shown in Outstanding Orders in the FactBox, but they aren't part of Forecast Final Cost.
- Received-not-invoiced costs are included in the forecast, but they aren't actual project cost until the vendor invoice is posted, so they can't be billed or recognised in WIP before then. To post them to the project when they're received, use our complementary Purchase Accruals app.
Split WIP and recognition
When you calculate and post WIP in standard Business Central, all of a project's WIP, recognised cost, and recognised revenue post to the accounts of a single project posting group, the one on the project or the task. Labour, materials, plant, and subcontractors all end up in the same accounts.
With Split WIP & Recognition, WIP and recognition are posted by cost category. Each item and resource carries its own project posting group, and the WIP entries are split so that each category posts to its own accounts.
Why you need it
- Management accounts by category. You can report revenue and cost of sales for labour, materials, and subcontract from the G/L, rather than rebuilding the split in a spreadsheet each month.
- A meaningful WIP balance. You can see how much of the WIP on the balance sheet is labour and how much is materials.
- Consistent margin analysis. Recognised cost and revenue for each category line up with the project budget structure.
What you get
- A Project Posting Group field on the item card and the resource card.
- WIP entries created for each task and each item, resource, or G/L account, posting to the accounts of the relevant project posting group:
- Resource usage uses the group's Resource Costs Applied Account.
- Item usage uses the group's Item Costs Applied Account.
- G/L account usage uses the group's Project Costs Applied Account.
- WIP, recognised cost, recognised sales, and accrual accounts come from the same group.
- Task dimensions carried onto the WIP entries.
- A check that the split entries add up to the same totals as the standard calculation. If they don't match within 0.10, the WIP calculation stops with an error rather than posting wrong figures.
Setting up
- Set up a project posting group for each cost category (for example LABOUR, MATERIALS, SUBCONTRACT), with its own WIP, applied, recognised, and accrual accounts.
- In Projects Setup, turn on Split WIP & Recognition.
- On each item and resource card, fill in Project Posting Group. Items and resources without one use the task's or project's posting group.
- On each project, set the WIP posting method to Per Project Ledger Entry. The split only happens with this method. Projects that use another method are posted the standard way.
How to use it
Run Calculate WIP and Post WIP to G/L as usual, from the project or as a batch, or through Calculate and Post WIP in percentage invoicing. You don't need to do anything else.
To check the result, open Project WIP Entries or Project WIP G/L Entries for the project. You'll see separate lines for each posting group.
Things to know
- The split is worked out for each Posting task, for each item, resource, or G/L account used on it.
- When a project is complete and its WIP is cleared, the split is applied to the clearing entries in the same way.
- Recognised cost for each task is shown on the task lines as Recognized Invoiced Cost (last calculation) and Invoiced Cost (last posting), and the WIP column shows the actual cost not yet recognised. See Cost forecasting.
Capital projects to fixed assets
Some projects build or improve your own assets, such as a new plant installation, a fit-out, or an infrastructure upgrade. While the work is under way, its costs sit in capital work in progress. When they're recognised, they need to become the acquisition cost of one or more fixed assets.
In standard Business Central, you'd have to work out each asset's share of the costs and post the fixed asset journals yourself. This feature does that from the project.
Why you need it
- Run capital work like any other project. You get the same budgeting, purchasing, resource usage, and reporting as your customer projects.
- Accurate asset costs. The recognised costs are allocated to assets by share and posted as acquisition cost, with the project dimension carried through for audit.
- Only new cost is posted each time. You can run the transfer as often as you like. Each run posts only the cost recognised since the last one.
What you get
- A project dimension that is created and kept up to date for every project, so that every G/L entry can be traced back to its project.
- Fixed Asset Allocations on the project, which split its costs across one or more assets by share.
- A Transfer Costs to Fixed Assets batch job that posts the recognised costs to the assets as acquisition cost.
- Project Fixed Asset Cost Entries, a record of what was calculated and posted to each asset on each run.
Setting up
- Create a dimension for projects (for example PROJECT), and enter it in Projects Setup as the Project Dimension Code.
- In Projects Setup, fill in Capital WIP Jnl. Template Name and Capital WIP Jnl. Batch Name. The template needs a Source Code, and the batch needs a No. Series, which provides the document numbers for the transfer.
- In FA Setup, make sure Default Depr. Book is filled in. Acquisition costs are posted to this book.
- Create the fixed asset cards that will receive the costs.
- Set up the capital project with a WIP method that recognises costs, so that WIP posting creates Recognized Costs entries.
The project dimension
Once Project Dimension Code is set:
- When a project is created, a dimension value is created with the project number as its code and the project description as its name, and it is added to the project's default dimensions with Same Code value posting.
- When a project's description changes, the dimension value name is updated.
- When a project is renamed, the dimension value is renamed.
- When a project is deleted, its dimension value is deleted (if it has never been used).
The project dimension is useful on all projects, not only capital ones.
How to use it
1. Allocate the project to fixed assets
- On the project card, choose Fixed Asset Allocations.
- Add a line for each asset that should receive part of the cost.
- Enter either a Share or a Share %:
- Share is a relative weighting. For example, enter 1 on each of three assets to split the cost equally. The app calculates Share % from it.
- Share % is the percentage directly.
The percentages must add up to 100.
2. Recognise the costs
Run Calculate WIP and Post WIP to G/L for the project as usual. This creates the Recognized Costs WIP G/L entries that the transfer uses.
3. Transfer the costs
- On the project card, choose Transfer Costs to Fixed Assets. You can also search for Transfer Project Costs to Fixed Assets to run it for several projects.
- Check the Posting Date and the journal template and batch.
- Choose OK.
For each recognised cost entry, the app:
- Splits the amount across the assets by Share %. Any rounding difference goes to the last asset.
- Works out how much has already been posted to each asset in earlier runs.
- Posts the difference as Acquisition Cost to each asset, balancing against the WIP account the recognised cost was posted to, with the project's dimensions.
If neither the allocations nor the recognised costs have changed since the last run, nothing is posted.
4. Review what was posted
Search for Project Fixed Asset Cost Entries to see each run. For each asset and recognised cost entry, it shows the calculated amount, the amount previously posted, the amount posted in this run, and the share %.
Things to know
- If you change the allocation percentages after costs have been transferred, the next run posts the adjustments needed to bring every asset in line with the new shares.
- Only recognised costs that haven't been reversed are transferred.
- The acquisition cost entries use the project's dimension set. The app uses the External Document No. on each FA ledger entry to match it on later runs, so don't post other acquisition costs to these assets with the same external document number.