Muqawil — مقاول

Progress billing for contractors: how to calculate and record it

Published 11 October 2026 · Muqawil

A progress bill (mustakhlas) is how work on site becomes money in the bank. A small mistake in calculating or recording it means profit that isn't real, or money you are owed that nobody chases. Here is the process step by step.

What is a progress bill?

A periodic claim the contractor submits to the owner or main contractor for work done in a period — usually a month — after the consultant approves it. It is cumulative: start from the total work done since the start of the contract, subtract what was already certified, and what is left is this period's amount.

What goes into it

Worked example

Contract SAR 1,000,000; 10% advance (SAR 100,000) recovered at 10% per certificate; 10% retention. By month three 40% is done and SAR 250,000 of work was certified before.

ItemSAR
Work done to date (40%)400,000
Less previous certificates(250,000)
Work this certificate150,000
Less retention 10%(15,000)
Less advance recovery 10%(15,000)
Net due before VAT120,000

How and when VAT applies to progress bills and retention follows the VAT law, ZATCA guidance and your contract — confirm the method with your tax adviser.

Recording it

Revenue is the value of work done (SAR 150,000), not the net cash. Retention is a receivable you collect later, not a reduction of revenue.

AccountDebitCredit
Trade receivables120,000
Retention receivable15,000
Customer advances (liability)15,000
Contract revenue150,000

Common mistakes

How Muqawil helps

Invoices, certificates, expenses and payroll are linked to each project, so contract value, received, spent, retention and margin are on one screen, and the client statement shows what is still owed.

Questions

Is retention income or a liability?

Retention held by your client is your receivable — an asset you collect later — and stays part of the revenue for the work done.

See it with your own company

Free trial. We set it up with you and bring in your data from Excel.

Request access