Three months into the project. Three months of red figures in the monthly management accounts. Then, in the month of the final invoice: a profit spike and many open questions for the finance team. This is not an exception. This is project business without correct work in progress (WIP) accounting.
What starts as an accounting issue becomes an information problem. It affects managing directors who plan monthly, investors who value portfolio companies, and banks and suppliers who assess creditworthiness. The root cause is always the same: WIP accounting adjustments under HGB (German Commercial Code), recorded incorrectly or not at all. This article explains the underlying principle, the correct journal entries, and how to introduce the process into your monthly close.
What German GAAP Requires: The Completed Contract Method
The German Commercial Code (HGB) follows the realization principle (§ 252 (1) No. 4 HGB (German Commercial Code)): profits may only be recognized once they have been realized in the market. For project businesses, this means that revenue and profit arise in the accounts only upon formal client acceptance of the completed service.
This principle is referred to as the Completed Contract Method. While a project is ongoing, all capitalizable costs incurred are recognized as work in progress (WIP) in current assets on the balance sheet. The offsetting entry in the income statement (P&L) is the WIP accounting adjustment, which neutralizes the ongoing expense.
The Percentage-of-Completion method, under which revenue is recognized proportionally to the degree of completion, is generally not permitted under HGB. It remains reserved for the international accounting standard IFRS 15.
The Three Phases: What Changes in the Balance Sheet and P&L
For management teams without an accounting background, the mechanism can be illustrated in three phases. A useful analogy: think of a project staging area. When a manufacturer produces goods and places them in inventory, it does not book a loss: the goods exist, they simply have not been sold yet. The same principle applies in project businesses. The costs of each project month do not flow directly into the P&L; instead, they accumulate on the balance sheet as WIP. At acceptance, the WIP balance is released, simultaneously with the revenue entry. For pure service or software projects there is no physical inventory, but the accounting principle is identical.
The following overview shows which line items move, when, and in which direction:
| Phase 1: Project Duration | Phase 2: Acceptance and Invoice | Phase 3: Payment Receipt | |
|---|---|---|---|
| Balance Sheet (Assets) | Work in progress (WIP) increases each month by the capitalizable production costs | WIP is fully released. Trade receivables arise in the amount of the invoice | Receivables are cleared. Bank balance increases by the amount received |
| P&L (Income) | WIP accounting adjustment (build-up) neutralizes the ongoing expense. Revenue: nil | Revenue in the full amount of the invoice. WIP accounting adjustment (release) in the amount of the production costs released | No change in the P&L |
| Result | Result remains neutral: no losses, no profit | Gross profit visible: revenue less production costs | No change in result, only improvement in liquidity |
The following example illustrates the three phases using a fixed-price contract for EUR 300,000. Select between P&L / management accounts, balance sheet and cash flow, and compare the presentation with and without WIP accounting adjustments.
Save one-pager as PDF → Compact overview of the three phases for management meetings.
What May and May Not Be Capitalized under German GAAP
§ 255 (2) HGB (German Commercial Code) governs which costs may be included in the valuation of work in progress. The boundary is relevant in both directions: over-capitalization flatters the monthly management accounts; under-capitalization leads to unnecessarily distorted monthly results.
| Cost Type | Mandatory / Optional Capitalization | Examples in Project Business |
|---|---|---|
| Direct material costs | Mandatory | Components, raw materials, external hardware |
| Direct labour costs | Mandatory | Wages of employees working directly on the project |
| Special direct production costs | Mandatory | Project-specific licences, expert reports, tools |
| Production overhead (reasonable share) | Mandatory | Depreciation on project equipment, salaries of project managers deployed across multiple projects |
| Material overhead | Mandatory | Storage and procurement costs for project materials |
| Administrative overhead (reasonable share) | Optional | Proportionate accounting, IT infrastructure |
| Debt interest | Optional | Interest on loans raised to finance the project |
| Selling costs | Prohibited | Proposal preparation, sales commission, customer acquisition |
| Profit components | Prohibited | Calculated margin may not be capitalized |
Internal personnel costs: Only the hours directly allocated to a project are capitalizable, including the employer's social security contributions on those hours. Sick days and non-project time are excluded. A prerequisite is clean project-level time recording. Where this is not in place, an overhead rate method may be used as an alternative, as described in the following section.
Subcontractors: Subcontractor services form part of the capitalizable production costs. Under works contracts (Werkvertrag), they are treated as an acquisition transaction (§ 255 (2) sentence 1 HGB (German Commercial Code)); under service contracts (Dienstvertrag, time-and-materials), they are treated as direct costs. In construction and plant engineering, subcontractors are typically works contract partners; in IT and software projects, the service contract (time-and-materials) is common.
Internal Personnel Costs on Fixed-Price Projects: The Overhead Rate Method
On fixed-price projects, incoming invoices for subcontractors and materials are already allocated precisely to projects at the time of booking. Internal personnel costs, for example for installation engineers or project managers working simultaneously on multiple projects, frequently end up in the overhead pool without direct project assignment. With, say, 100 to 150 active projects per month, project-level time recording for these costs is often neither available nor proportionate.
The approach widely used in practice and accepted by auditors is the overhead rate method (Zuschlagskalkulation): from the annual cost structure, the ratio between capitalizable internal personnel costs and directly project-assigned external costs (subcontractors, materials) is determined once. This overhead rate is then applied as a flat surcharge to the external costs booked per project. With external project costs of EUR 5 million and capitalizable personnel costs of EUR 1.5 million, the overhead rate is 30%; the WIP value per project is then the external cost balance multiplied by 1.3. With, say, 150 active projects, this is a calculation, not a manual valuation process.
Three conditions must be observed: the overhead rate is recalibrated and documented annually on the basis of the actual cost structure. It consistently excludes non-capitalizable costs (selling, general administration). And it is applied consistently across periods (consistency principle, § 252 (1) No. 6 HGB (German Commercial Code)). The specific rate and the allocation decisions are agreed once with your tax adviser or auditor.
Worked Example: SolarScale GmbH
SolarScale GmbH, a 45-employee CleanTech scale-up, wins a B2B contract for the installation of a commercial photovoltaic system. Contract value: EUR 300,000, duration three months (January to March), formal client acceptance and final invoice in April. External services and materials were ordered and allocated directly. No milestone payments have been agreed.
Monthly capitalizable costs: materials and external services EUR 60,000, project team personnel costs EUR 15,000. Total per month: EUR 75,000. Administrative overhead and selling costs are not capitalized.
Monthly Management Accounts Without Correct WIP Accounting (incorrect)
| Month | Revenue | Costs | Result |
|---|---|---|---|
| January | EUR 0 | EUR 75,000 | EUR -75,000 |
| February | EUR 0 | EUR 75,000 | EUR -75,000 |
| March | EUR 0 | EUR 75,000 | EUR -75,000 |
| April (Acceptance) | EUR 300,000 | EUR 0 | EUR +300,000 |
| Total | EUR 300,000 | EUR 225,000 | EUR +75,000 |
The total result is arithmetically correct, but the monthly presentation is economically misleading. Three loss months followed by a large profit, even though the company was generating value steadily throughout.
Monthly Management Accounts With Correct WIP Accounting (correct)
| Month | Revenue | Costs | WIP Adjustment | Result |
|---|---|---|---|---|
| January | EUR 0 | EUR 75,000 | EUR +75,000 (build-up) | EUR 0 |
| February | EUR 0 | EUR 75,000 | EUR +75,000 (build-up) | EUR 0 |
| March | EUR 0 | EUR 75,000 | EUR +75,000 (build-up) | EUR 0 |
| April (Acceptance) | EUR 300,000 | EUR 0 | EUR -225,000 (release) | EUR +75,000 |
| Total | EUR 300,000 | EUR 225,000 | EUR 0 | EUR +75,000 |
The balance sheet reflects the build-up: at end of January, EUR 75,000 of WIP appears in current assets; at end of March, EUR 225,000. In April, it is released against the receivable. The result of EUR 75,000 is identical, but the monthly management accounts are now meaningful.
Advance Payments, Progress Invoices and Partial Final Invoices: What Determines the Accounting Treatment
Many project contracts provide for payments during the project duration. The accounting treatment is determined not by the label on the invoice, but by whether a formally accepted partial service exists. The realization principle (§ 252 (1) No. 4 HGB (German Commercial Code)) admits no exceptions: revenue arises only upon acceptance.
| Advance Payment / Down Payment | Progress Invoice (§ 632a BGB (German Civil Code)) | Partial Final Invoice | |
|---|---|---|---|
| Service status | Not yet performed | Partially performed, not yet accepted | Completed and accepted |
| Balance sheet | Liability: advance payments received (§ 266 (3) HGB (German Commercial Code)) | Liability: advance payments received (§ 266 (3) HGB (German Commercial Code)) | Asset: trade receivable |
| P&L | No revenue | No revenue | Revenue |
| Work in progress | Build-up continues | Build-up continues | Release for this portion, simultaneously with revenue entry |
A qualifying partial service requires three conditions to be met simultaneously: it is separately agreed in the contract and independently priced. It is economically separable and usable independently of the remainder of the project. And it has been formally accepted by the client. Under BGB (German Civil Code) contracts, partial acceptance must be contractually provided for; under VOB/B (German Construction Contract Procedures) contracts, it may be demanded by either party (§ 12 (2) VOB/B). A milestone payment schedule or a progress invoice under § 632a BGB (German Civil Code) is not sufficient as long as no partial acceptance has taken place.
Booking date: Advance payments received are booked only at the time of cash receipt, not at the time of invoicing. The advance payment invoice itself does not yet trigger a journal entry.
Companies executing projects with clearly separable phases (planning, delivery, installation, commissioning) can smooth revenue flow over the year through contractually agreed partial acceptances and release WIP in stages. This requires legally precise contract clauses. The classification in individual cases, in particular whether a phase qualifies as an independent partial service, should be agreed with your legal and tax advisers.
Common Errors in Practice
Most deviations from correct methodology arise not from lack of knowledge, but from simplifications in day-to-day operations. The six most common:
- 1Advance and progress invoices booked as revenue: Advance and progress invoices are not revenue invoices. They give rise to a liability (advance payments received, § 266 (3) HGB (German Commercial Code)), not income. If both are booked like a final invoice, the monthly management accounts show profit that has not yet been realized under HGB.
- 2WIP release triggered by cash receipt rather than final invoice: The relevant event for WIP release and revenue recognition is the issuance of the final invoice, not the receipt of payment. Payment receipt is a pure balance sheet swap: the receivable from the final invoice becomes a bank balance; the P&L is unaffected. If WIP is released only upon payment receipt, the management accounts show no result in the invoicing month and too much in the payment month.
- 3WIP accounting only at year-end: Companies that record WIP only once a year have no meaningful monthly management accounts during the year. For sound operational management and a credible bank conversation, monthly valuations are required.
- 4WIP release without simultaneous revenue entry: The release of WIP must occur simultaneously with the revenue entry. If both bookings are not recorded in the same month, a profit spike occurs that distorts results within the year even when the annual total is correct.
- 5Incorrect valuation basis: If selling costs or calculated profit components are capitalized, the valuation is non-compliant with HGB and leads to overstated balances. Conversely, if only direct costs are used and overhead is ignored, the balance is understated.
- 6Inconsistent valuation method: The consistency principle (§ 252 (1) No. 6 HGB (German Commercial Code)) requires that the chosen method be applied uniformly from period to period. Changes in method between years require a justification in the notes to the financial statements.
What This Means for Your Financial Management
Companies in project businesses (CleanTech installers, enterprise software implementers, engineering scale-ups) need a monthly routine for recording WIP. Without it, management, the board and investors cannot correctly assess the current earnings position.
A monthly P&L that reflects the actual service delivery status is the foundation for operational decisions: capacity planning, price negotiations, investment considerations. For banks and investors, it is also a quality indicator of financial management. Companies that get this right enter a bank conversation or board meeting from a different position than those arguing from a distorted monthly P&L. How to record project costs correctly in your ERP, which KPIs investors expect in project businesses, and how backlog, project margin and cash conversion cycle are connected is covered in the guide Project Controlling for Scale-ups and PE Portfolios.
