Sector

Annual accounts for a cleaning company (Dutch): contract revenue and staff costs

Cleaning is people's work on fixed contracts. The annual accounts therefore revolve around two questions: which months have been delivered, and what does the company still owe its employees?

✓ First annual accounts free ✓ Micro to large entities ✓ Dutch GAAP: Title 9, Book 2 DCC ✓ Primary database in the EU

The short answer

A cleaning company recognises contract revenue in the months in which cleaning took place, usually evenly over the term. What has been invoiced in advance is a liability at the balance sheet date. Wage costs are the largest expense: accrued holiday pay, leave days and payroll taxes to be paid are on the balance sheet. If you subcontract work, you are liable for the payroll taxes of your subcontractor.

Updated 30 October 2026

Key facts

Contract revenueIn proportion to the service delivered; for an ongoing contract evenly over the period (RJ 270, paragraphs 115 and 120)
Invoiced in advanceAccruals and deferred income until the month has been delivered
SubcontractorsChain liability for payroll taxes; cleaning counts as work of a physical nature

Contract revenue: the month counts, not the invoice

A cleaning contract is an ongoing service: you come every week, the number of actions is not fixed in advance and the price is an amount per month or per four weeks. You recognise such revenue on a straight-line basis over the agreed period, unless another allocation better reflects the actual effort (RJ 270, paragraph 120). If you invoice a quarter in advance, only the delivered part is revenue on 31 December; the rest is shown as an amount invoiced in advance under liabilities. If you invoice in arrears, you recognise the delivered month as revenue still to be invoiced.

One-off work, such as window cleaning, an end-of-construction clean or floor maintenance, is revenue in the period in which it was carried out. The work order signed off by the client is your evidence for it. You do not recognise extra work without approval.

Staff: the largest cost item and the largest liability

Wage costs make up the largest part of the contract price, and the margin per contract is small. What you owe staff at the end of the financial year belongs on the balance sheet (art. 2:384(2) DCC); a forgotten provision noticeably shifts the result. On 31 December you recognise as a liability:

  • holiday allowance for the months from June: legally at least 8% of wages (art. 15 Minimum Wage and Minimum Holiday Allowance Act);
  • holiday days that have accrued and not yet been taken;
  • wages for hours in December that are paid out in January, with the payroll taxes on them;
  • a year-end bonus, if the collective agreement or the contract entitles staff to it.

Temporary agency workers and hired self-employed persons are not wages: their invoices belong to external costs. For borrowed staff the user-undertaking liability applies, which is explained at the temporary employment agency page.

Subcontractors: chain liability and G-account

If you outsource a property or a specialism to another cleaning company, you are liable as contractor for the payroll taxes your subcontractor has to pay on that work. The Dutch Tax Administration (Belastingdienst) explicitly names cleaning as work to which chain liability can apply. You limit the risk by paying the payroll tax part of the invoice into the subcontractor's G-account (blocked account); you agree the percentage together. A self-employed person without staff cannot open a G-account. If you are a subcontractor yourself, the balance on your own G-account is a bank balance that is not freely available. From the medium-sized class that restriction belongs in the notes (art. 2:372(2) DCC); below that the law does not require it.

Worked example: a quarterly invoice and two provisions

A fictitious cleaning BV invoices € 9.000 on 1 December for maintenance of an office building in December, January and February.

ItemCalculationAmount
Revenue December€ 9.000 : 3€ 3.000
Invoiced in advance at 31 December€ 9.000 − € 3.000€ 6.000 liability
Holiday allowance June to December8% × € 210.000 gross wages€ 16.800 liability
Untaken leave320 hours × € 19 wage cost per hour€ 6.080 liability

Anyone who leaves out these items shows € 6.000 too much revenue and € 28.880 too little in liabilities: € 6.000 invoiced in advance, € 16.800 holiday allowance and € 6.080 leave.

Where cleaning companies go wrong

  • Taking a quarter invoiced in advance as revenue in one go.
  • Not tracking leave hours per employee, so that the provision is a guess.
  • Recognising extra work as a receivable without a signed-off work order.
  • Writing off scrubbing machines as consumables instead of capitalising and depreciating them.

Many employees, small balance sheet: which class?

Small cleaning companies are often a sole proprietorship; Title 9 does not apply to those, see the annual accounts of a sole proprietorship. For a cleaning BV the limit on the number of employees often comes into view first. One exceeded criterion does not yet change the class: two are needed, on two consecutive balance sheet dates. Count the average over the financial year as the size criteria prescribe and use the audit requirement check to see whether an audit becomes mandatory.

What Jaarrekening.io does with the figures of a cleaning BV

You process the provisions for holiday pay and leave and the cut-off of the contracts in your bookkeeping and then import the trial balance as an XAF audit file or as an Excel or CSV file. Jaarrekening.io derives the size class from your figures and shows which parts of the annual accounts are mandatory for it.

Sources

Legal notice: this information is general in nature and does not replace tax or legal advice or an audit by an accountant. The substantive correctness and completeness of the annual accounts remain the responsibility of the board.

Frequently asked questions

When is the revenue of a cleaning contract earned?

In the period in which you clean. For an ongoing contract with a fixed monthly price you spread the revenue evenly over the term (RJ 270, paragraph 120). The invoice date is not decisive.

How do I calculate the provision for holiday pay?

Take the gross wages on which holiday allowance has accrued since the last payout, usually from June, up to and including the balance sheet date, and multiply by the percentage from the law or the collective agreement. The statutory minimum is 8%.

Am I liable if my subcontractor does not pay payroll taxes?

Yes, for the payroll taxes on the work you outsourced to him. A payment into his G-account limits that risk to what you have not paid in.

Do I have to capitalise cleaning machines?

Yes, if they serve the business durably. Scrubbing machines and aerial platforms are tangible fixed assets that you depreciate over their useful life (art. 2:386(4) DCC). Cleaning products are costs of the year.

Read more

Preparing Dutch annual accounts?

Your first set of annual accounts is free, for every size class. Create an account and prepare the annual accounts of your Dutch company under Title 9 of Book 2 of the Dutch Civil Code.

Get started