September 30, 2026
Projects, Percentage of Completion & WIP Revenue Recognition in Business Central - Part 4 of 5
- IFRS 15
- Business Central
By Shailesh Apte, Chartered Accountant and Business Central Solution Architect
You invoice a customer £420,000 on 1 January for an 18-month engineering contract. By 31 January you have done one month of work. How much revenue do you recognise in January?
Not £420,000. The invoice follows the milestone schedule agreed for cash flow; revenue follows the work. On an over-time contract the two almost never match, and Business Central Projects is built to manage that gap, provided the project is set up correctly from day one.
Recap so far: one contract, many documents in Business Central
A single contract splits across three documents: a Sales Order for the goods or licence, a Project for the implementation, and Subscription Billing for the recurring services. Business Central brings them back together through the CONTRACT dimension.
PO | Performance obligation | Contract price | Recognition pattern | BC document |
|---|---|---|---|---|
PO1 | Software license | £60,000 | Point in time | Sales Order (Part 1) |
PO2 | Implementation | £42,000 | Over time, % completion | Project (this post) |
PO3 | 2-year support | £48,000 | Over time, pro rata | Subscription Billing (Part 3) |
This post is about PO2: work delivered over time and measured by progress. To show it at scale, we follow Crestline Engineering through an 18-month EPC contract.
The rule: billing follows milestones, revenue follows progress
A project invoice is never the revenue figure. Business Central posts the invoice, then the WIP process adjusts revenue to match the percentage of completion. The difference sits on the balance sheet:
Recognised more than invoiced: a contract asset (WIP Accrued Sales)
Invoiced more than recognised: a contract liability (WIP Invoiced Sales)
Costs are recognised as they are incurred. Under percentage of completion, only the sales side is deferred.
The worked example: Crestline Engineering Ltd
Company | Crestline Engineering Ltd |
Customer | Westbridge Utilities Authority |
Project | J00220, water treatment upgrade |
Contract value | £4,200,000 |
Duration | 18 months (Jan 2026 to Jun 2027) |
Estimated cost / margin | £3,360,000 / 20% |
The customer controls the asset as it is built on its site, so revenue is recognised over time. Progress is measured by the cost-to-cost input method: costs incurred ÷ total estimated costs.
Step 1: Create the project and set the WIP method
MS Guide: Managing projects - Business Central | Microsoft Learn
Milestone billing schedule
Milestone | Description | Date | Invoice (£) | Cumulative (£) |
|---|---|---|---|---|
M1 | Mobilisation | 1 Jan 2026 | 420,000 | 420,000 |
M2 | Design & site preparation | 31 Mar 2026 | 630,000 | 1,050,000 |
M3 | Major plant delivered | 30 Jun 2026 | 840,000 | 1,890,000 |
M4 | Civil works complete | 31 Oct 2026 | 840,000 | 2,730,000 |
M5 | Mechanical & electrical | 28 Feb 2027 | 840,000 | 3,570,000 |
M6 | Commissioning & handover | 30 Jun 2027 | 630,000 | 4,200,000 |
Create the project and enter the budget on the project tasks: £3,360,000 budgeted cost and £4,200,000 contract value, with the six milestones as billable lines:

Set WIP Method = Percentage of Completion before any entries are posted; changing it once WIP has been posted is messy.
Business Central then calculates recognised sales as (costs incurred ÷ total budgeted cost) × contract value, which is the IFRS 15 input method.
Step 2: Set up the project posting group
Account | Type | Mapping Field |
|---|---|---|
40930 Contract Asset | Balance sheet | WIP Accrued Sales |
50700 Contract Liability | Balance sheet | WIP Invoiced Sales |
40950 WIP Job Costs | Balance sheet | WIP Costs |
10250 Revenue: EPC projects | P&L | Recognized sales |
10450 Job Sales Applied | P&L (contra) | Project Sales Applied |
20300 Cost of sales EPC projects | P&L | Recognized Costs |
20399 Direct Costs Applied | P&L (contra) | Project Costs Applied |

Step 3: Post costs to the project
Project Journal within BC->Project Journal
Labour, materials and subcontractor costs are posted to the project each month. Under percentage of completion, they reach P&L in the same period.

Step 4: Invoice the milestone
On 1 January, Crestline invoices the M1 mobilization milestone:


At this point the P&L shows £420,000 of revenue for one month of work. Step 5 corrects that.
Step 5: Calculate WIP and post it to the G/L
MS Guide: Calculating work in process for a project - Business Central | Microsoft Learn
January 2026 | £ |
|---|---|
Costs incurred | 186,667 |
% complete (186,667 ÷ 3,360,000) | 5.56% |
Recognised revenue (5.56% × £4.2m) | 233,333 |
Invoiced to date | 420,000 |
Invoiced above recognised | 186,667 |
Project › WIP › Calculate WIP, then Post WIP to G/L

As the G/L entries show, Business Central does two things when WIP is posted. First, it moves the £420,000 milestone invoice out of revenue: Job Sales Applied is debited and the amount is parked in Contract Liability.
Second, it recognises the revenue actually earned, £233,333.75 (5.56% complete), against Contract Assets.
On the cost side, the £186,667 passes through WIP Job Costs and is recognised in Cost of Sales, so January carries its full cost.
The result:
January revenue of £233,333.75, and a net contract liability of £186,666.25 (£420,000 billed less £233,333.75 earned).
Under IFRS 15 the two balances are presented net for the contract, because the customer has been billed ahead of the work.
Each month Business Central reverses the previous WIP entry and posts a fresh cumulative position. The balance swings between liability and asset as billing and progress leapfrog each other:
Month | Cumulative cost (£) | % complete | Cumulative revenue (£) | Cumulative billed (£) | Contract asset / (liability) (£) |
|---|---|---|---|---|---|
Jan 2026 | 186,667 | 5.56% | 233,333 | 420,000 | (186,667) |
Feb 2026 | 373,333 | 11.11% | 466,667 | 420,000 | 46,667 |
Mar 2026 | 560,000 | 16.67% | 700,000 | 1,050,000 | (350,000) |
Apr 2026 | 746,667 | 22.22% | 933,333 | 1,050,000 | (116,667) |
May 2026 | 933,333 | 27.78% | 1,166,667 | 1,050,000 | 116,667 |
Jun 2026 | 1,120,000 | 33.33% | 1,400,000 | 1,890,000 | (490,000) |
Figures rounded to the nearest pound.
Automate it. At month-end, run the batch version of Calculate WIP and Post WIP to G/L across all open projects rather than project by project. Calculate before you post, and do both before the period closes.
Watch out: a contract asset is not a receivable. Keep WIP Accrued Sales out of the aged-debtor report. A receivable is an unconditional right to payment; a contract asset still depends on future work.
Month 9: the scope changes
In September 2026, Westbridge adds a chemical dosing system: +£350,000 price, +£280,000 estimated cost. It is built into the same facility, so it isn't a separate contract. It changes the existing one, and progress is re-measured on the new totals as a cumulative catch-up (IFRS 15.21(b)).
In Business Central, add the scope to the project tasks so the totals become £4,550,000 contract value and £3,640,000 budgeted cost. Calculate WIP always works on cumulative figures against the current budget, so the catch-up happens automatically at the next WIP run.
At End of Month 9 | Before | After |
|---|---|---|
Contract value | £4,200,000 | £4,550,000 |
Budgeted cost | £3,360,000 | £3,640,000 |
Cumulative cost | £1,680,000 | £1,680,000 |
% complete | 50.00% | 46.15% |
Cumulative revenue | £2,100,000 | £2,100,000 |

The catch-up here is nil because the new scope carries the same 20% margin. At a different margin, the difference would go through revenue in the month of the change.
Step 6: Reconcile WIP at month-end
Project Card › WIP › WIP G/L Entries
The WIP reconciliation is the key control on project revenue. At 31 December 2026:
Project J00220 at 31 December 2026 | Amount / % |
|---|---|
Contract value (incl. scope change) | £4,550,000 |
Cumulative cost | £2,271,111 |
% complete | 62.39% |
Cumulative revenue recognised | £2,838,889 |
Cumulative billed (M1–M4 + M3.1) | £3,080,000 |
Net contract liability | £(241,111) |
Check that the WIP balances in WIP G/L Entries agree to the G/L, project by project.
The £241,111 is billing ahead of performance: it sits in Contract Liability and unwinds as the remaining work is done over 2027.
One more check: Project Statistics shows estimated margin in real time. If it turns negative, the contract is onerous and needs an IAS 37 provision on top of the revenue entries.
UP NEXT · POST 5
SSP Allocation, Contract Balances & IFRS 15 Disclosures
Back to TechCo's £150,000 contract: how one price is allocated across the licence, implementation and support on relative standalone selling prices, the contract balances that allocation creates, and the IFRS 15 disclosure note, with Business Central reporting behind every line.
This post reflects the author's professional views and is for informational purposes only. It does not constitute legal, financial or accounting advice.