In a construction company, cash is rarely lost in one big incident. It erodes through billing details: a progress claim issued ten days late, a retention never chased at its due date, a subcontractor invoice paid while the compliance certificate had expired, a final account that drags on because nobody knows which version of the budget is the latest.
Our construction ERP sector guide and the article on site management features (in French) describe what a construction ERP should do in general. This one goes down into the financial cycle of a project, where poorly thought-out configuration is expensive: progress claims, retention, subcontracting, price adjustments. It is written for CFOs, CIOs and project managers preparing an ERP project or trying to make an existing one more reliable.
A note on scope: the legal references below are French (the law of 16 July 1971 on retention, the law of 31 December 1975 on subcontracting, the French VAT reverse charge). The mechanisms themselves, however, exist under other names in the UK (retention and the Construction Act’s payment notices), Germany (Sicherheitseinbehalt, Bauabzugsteuer), the US (retainage, lien waivers) and elsewhere. We keep the French references because they are precise and verifiable, and because the configuration logic transfers: rules held at contract level, cumulative claims, blocking controls on subcontractor payments.
Why construction billing is not ordinary billing
In a trading or services business, you deliver, invoice and collect. In construction, three specificities break that pattern.
Billing follows progress, not delivery. A works contract is billed through successive interim payments (in France, situations de travaux, i.e. progress claims or interim applications) calculated on the real progress of each contract line. The amount billed depends on a validation by the architect, the engineer or the client, not on a simple delivery note.
Part of what is owed is deliberately withheld. On works contracts, a retention (retenue de garantie) is deducted from each claim and released after completion. Between recognised revenue, billed, collected and retained, four amounts coexist on every project, and they never reconcile with each other.
The subcontractor is not just a supplier. Subcontractors have their own rights (direct payment, direct action against the client) and the main contractor has its own obligations (approval of the subcontractor, checking of social compliance documents, VAT reverse charge). An ERP that treats a subcontracting invoice as a standard purchase invoice creates legal risk.
These specificities explain why general-purpose ERPs without a construction vertical end up surrounded by spreadsheets. The test to apply when selecting a system: can the vendor produce a cumulative progress claim, manage retention with its release schedule and block a subcontractor payment on a missing document, out of the box? Every “no” is a custom development to be priced.
Contract, variations, instructions: structuring the project budget in the ERP
Everything starts with the structure of the project. If it is badly built when the project opens, no claim will ever be reliable.
The contract as the billing baseline
The signed contract must be entered line by line (price breakdown, bill of quantities or schedule of rates depending on the contract type), with the contract amount, unit and, where needed, the package or structure for each line. This baseline is what every claim is calculated against. Variations (change orders) and site instructions must modify it with history: you do not rewrite the contract, you add dated versions, so that the contractual amount can always be reconstructed at a given date.
Budget, committed, actual
On the cost side, three levels must coexist in the ERP and remain consistent:
- the budget (or forecast cost price), coming from the estimate;
- the committed cost: supplier orders, subcontracts, planned hours;
- the actual cost: supplier invoices received, timesheets, stock consumption.
The classic blind spot: a client variation is accepted but not carried through to the budget and the subcontracts. The project looks profitable on paper, while the extra work has already been ordered and not yet billed. The configuration must link each client variation to its budget impact, with a status (under negotiation, signed, instruction issued) that determines what can be billed.
Cost-to-complete and margin-at-completion tracking rely on these three levels. To see how this data feeds profitability monitoring, our article on project accounting in the ERP provides the analytical framework.
Monthly progress claims: cumulative, deduction, validation
The progress claim is the heart of the system. Simple in principle, treacherous in execution.
The calculation mechanics
For each contract line, the claim is calculated on a cumulative basis:
- cumulative progress at the claim date (as a percentage or a quantity);
- cumulative amount = cumulative progress × line amount (variations included);
- claim amount = cumulative amount minus the total of previous claims.
The ERP must therefore store the cumulative figure per line, never just the amount of the last invoice. This is what lets you correct an overstated progress figure the following month without issuing a hand-made credit note: claim N+1 will simply be lower, even negative on some lines.
A validation workflow, not just an invoice
The real circuit of a claim is as follows: the project manager enters the progress, the site foreman or quantity surveyor checks it, the claim goes to the architect or cost consultant, who certifies it and proposes an amount, then the client approves. Only the certified claim becomes an invoice.
The ERP must therefore distinguish at least three states: claim in preparation, claim submitted (with a sending date, which triggers payment terms), claim validated (with the accepted amount, sometimes lower than the amount proposed). The gap between proposed and accepted must be traced, because it feeds dispute tracking and dunning.
What the ERP must calculate on each claim
- progress and cumulative figures per line, variations included;
- the retention on the claim (see next section);
- price revision or indexation, if the contract provides for it;
- any penalties and the share of the joint site costs account (compte prorata);
- the applicable VAT (rate, mentions, reverse charge where relevant);
- the net amount payable and the due date.
The gap between billed progress and actual progress should appear in a dashboard: a project behind on billing deprives the company of cash, while an overbilled project exposes it to litigation. For collections and dunning, our article on accounts receivable and credit management details dunning mechanisms that also apply to progress claims.
Retention and substitute guarantee
The general legal framework
For private works contracts in France, Article 1 of Law no. 71-584 of 16 July 1971 governs retention. The points to keep in mind for configuration, to be checked with your legal counsel against the consolidated text on Légifrance:
- retention cannot exceed 5% of each interim payment (overview of the private-sector retention regime, in French);
- it secures performance of the works and the clearing of snagging items noted at handover;
- the contractor may replace it with a personal and joint guarantee issued by a financial institution;
- failing such a guarantee, the client must deposit the retained sum with an escrow holder;
- one year after handover, the guarantee is released or the deposited funds are paid out, unless the client lodges a reasoned objection for non-performance.
Public contracts have their own regime, set by the Public Procurement Code and the standard general terms (CCAG), with their own cap and release rules. A construction ERP handling both types of contract must therefore hold these rules at contract level, not hard-coded in the program.
Configuration that prevents oversights
In practice, the ERP must manage:
- a retention rate per contract (0 to 5%), calculated automatically on each claim and capped;
- a dedicated third-party account for retentions, so the stock of retentions appears on the balance sheet project by project;
- a substitute guarantee entered as a separate object: issuer, number, amount, issue date, expiry date. When it is provided, retention stops being applied and retentions already deducted are refunded;
- a release schedule calculated from the handover date, with alerts at 60 and 30 days, and an “objection” status when snagging items are not cleared;
- retention on the subcontractor side, following the same pattern in mirror: what you withhold from your subcontractors must sit in the same schedule.
The costliest trap is silent: across a portfolio of projects, retentions not chased after handover add up to a dormant receivable. A “retentions to be released within 90 days” report in the CFO dashboard is often enough to recover forgotten cash.
Subcontracting: direct payment, approval, compliance
What the law of 31 December 1975 says
Subcontracting in France is governed by Law no. 75-1334 of 31 December 1975 (text of the law, in French). The principles that bear on configuration:
- the main contractor must have each subcontractor accepted and its payment terms approved by the client (Article 3);
- it must declare, from the bid stage, the nature and amount of the work it plans to subcontract (Article 5);
- direct payment of the subcontractor by the client applies to public contracts above a contract threshold set by the text (Article 6);
- in private building and civil engineering contracts, the client must require from the main contractor either a payment delegation or a guarantee for the benefit of the subcontractor (Article 14-1).
In public contracts, the request for acceptance and approval goes through the DC4 form (subcontracting declaration), which must be kept up to date whenever there is an amendment.
What the ERP must carry
The subcontract record must contain: the subcontractor, the amount and nature of the work, the acceptance/approval status (pending, accepted, refused) with date, the payment method (direct or through the main contractor) and the guarantees (delegation, bond).
Two business rules to make blocking:
- No payment without acceptance. If the subcontractor is not accepted, the ERP refuses to issue the payment order or raises an explicit alert.
- No payment without valid social documents. The vigilance certificate (attestation de vigilance, proving the subcontractor is up to date with social security contributions) is required for contracts of €5,000 excl. VAT or more, checked at signature and then every six months (Articles L8222-1 and D8222-5 of the French Labour Code, CMS summary, in French). The ERP must store the validity date of every document (vigilance certificate, company registration extract, insurance, etc.) and block invoice approval when one has expired. The same pattern applies elsewhere: CIS verification in the UK, or the exemption certificate under §48b EStG in Germany.
For direct payment, the subcontractor’s invoice must be approved by the main contractor (agreement or reasoned refusal within a period set by the text), then forwarded to the client. The ERP must therefore manage this main contractor approval as a workflow step with a deadline.
VAT reverse charge
For subcontracted real-estate works, VAT has been subject to reverse charge since 1 January 2014 (Article 283, 2 nonies of the French General Tax Code). The subcontractor invoices without VAT, with the “reverse charge” mention; the main contractor accounts for the VAT itself, both collected and deductible (overview of the mechanism, in French). A specific VAT code is therefore needed on subcontracting invoices, feeding the right line of the VAT return. A subcontracting invoice posted with standard VAT is the most frequent configuration error. (The UK domestic reverse charge for construction services works on the same principle.)
Price revision, penalties, joint site costs
Revision and indexation
Many contracts provide for price revision indexed to an index (in France the BT and TP indices published for building and civil engineering) or simple indexation. The ERP must manage:
- the index table with publication date, because indices are known with a delay;
- the contract’s revision formula (fixed part, variable part, reference indices);
- the provisional calculation on the latest known index, then the adjustment once the final index is published.
Revision is a classic source of lost income: if nobody calculates it, nobody bills it. A control listing contracts with a revision clause and no calculation on the last three claims is a good safeguard.
Penalties and joint site costs
Late-delivery penalties should be set up as deduction lines on the claim, with their contractual reference. The joint site costs account (compte prorata: shared site expenses split between trades) is handled as a recharged cost according to an allocation key. When the company leads a consortium, the entries get heavier: the configuration must be tested in acceptance with a real case.
The final account, end of the cycle
The final account (DGD, décompte général et définitif) closes the contract financially. It consolidates everything: the contract and its variations, paid claims, revision, penalties, joint costs, retentions. A well-structured ERP generates the draft final account from this data instead of rebuilding it in a spreadsheet. If the draft cannot be produced cleanly, one of the upstream links (variations, revision, retentions) is badly configured.
Electronic invoicing and the French reform
Progress claims, subcontracting invoices and final invoices are all affected by the French e-invoicing reform. In construction, three topics deserve attention:
- the mentions and transaction categories (services, deliveries of goods) to be filled in correctly for e-reporting;
- the link between claims and the contract and project, which structured formats must be able to carry;
- the handling of reverse charge in the flow, which must stay consistent with the mention on the invoice.
For the timeline, accredited platforms and first lessons learned, see our review of the first month of B2B e-invoicing in France and the 2026-2027 roadmap. The practical point: test your progress claims in the flow of your accredited platform before go-live, not after the first rejection.
Acceptance checklist before go-live
Acceptance testing should run on one complete test project, replayed from opening to final account with realistic data (one contract, two variations, three claims, one subcontractor under direct payment, one retention then a substitute guarantee).
| Flow to test | Expected result | Test owner |
|---|---|---|
| Contract and variation entry | Dated versions, contractual amount reconstructable | Management control |
| Budget, committed, actual | Gaps consistent with the contract after variation | Project manager |
| Claim N then N+1 | Exact cumulative, previous claims deducted, progress corrections without credit note | Project manager |
| Architect / client validation | Preparation, submitted, validated states; proposed/accepted gap traced | Accounts receivable |
| Retention | Calculated at contract rate, capped, dedicated account | CFO |
| Substitute guarantee | Retention stops, cumulative refunded, guarantee expiry tracked | CFO |
| Retention release | Schedule from handover, alerts, objection status | Accounts receivable |
| Subcontractor acceptance | Payment blocked without acceptance | Procurement |
| Social documents | Blocked on expired vigilance certificate | Procurement |
| Direct payment | Main contractor approval, forwarding to client | Accounts payable |
| Reverse-charge VAT | Specific VAT code, correct return | Tax |
| Price revision | Provisional calculation then adjustment at final index | Management control |
| Penalties and joint costs | Correct deductions and recharges | Accounting |
| Final account | Draft generated without manual rework | CFO and project manager |
| E-invoicing flow | Claim accepted by the accredited platform | CIO |
| Profitability per project | Margin to date and at completion consistent with the entries | Management control |
One organisational point: give the acceptance testing to the people who live these flows (project managers, site accountants), not only to the project team. They are the ones who will say “that’s not how you do a progress claim”.
FAQ
What is the difference between a progress claim and a standard invoice? A progress claim is an interim payment calculated on cumulative progress, subject to validation, whose amount is deducted from previous claims. It becomes a payable invoice only after certification.
Is retention always 5%? 5% is a cap in private contracts under the law of 16 July 1971. The actual rate is set by the contract. Configure it per contract, not globally.
Should a subcontractor payment be blocked if the vigilance certificate has expired? It is recommended: the verification duty lies with the principal. Making this block automatic in the ERP avoids relying on everyone’s vigilance.
Can a general-purpose ERP handle these flows? Often only with significant custom development. Have each point of the checklist above priced before choosing, rather than discovering the gaps during acceptance.
What should the ERP do with the final account? Treat it as an output of the system: if the draft final account cannot be produced from the project data, fix the upstream structure.
The legal references cited here are a general framework and do not replace the advice of your legal counsel or chartered accountant on a given contract.
Going further
Preparing a construction ERP project or a review of your project financial flows? Contact us for an ERP needs audit centred on your progress claims, retentions and subcontractors. To structure your evaluation, also download our ERP evaluation grid: 30 criteria on a 100-point scale.