Construction Accounting: How to Manage Progress Billings and Subcontractors Effectively
Cash flow dries up between milestones. Subcontractors demand payment. The client holds 10 percent retainage. Your books show profit, but your bank account tells a different story.
Why Construction Accounting is Different
You manage a construction company. A villa project takes six months. Payments come at milestones: foundation, framing, finishes. Materials cost 400,000 AED upfront. Subcontractors need payment within 30 days. The client holds 10 percent retainage until final delivery.
Month-end arrives, and your accounting cannot answer basic questions: Which projects are profitable? How much unbilled work sits on your balance sheet? When will retainage convert to cash?
This is the pattern: accounting becomes the issue just when growth demands better project visibility.
The problem is not just tracking invoices. It is about recognizing revenue based on project completion, not payment. Work in progress sits on your books for months. Retainage receivable creates a cash flow gap. Subcontractor chains mean you pay out before the client pays in. Standard accounting systems treat you like a product business. They are not built for this.
That is why construction accounting is different. It requires a fundamentally different approach.
The Three Core Accounting Challenges for Construction Companies
Challenge 1: Progress Billing and Revenue Recognition
Progress billing is how construction projects get paid: at milestones, not completion.
You sign a 2,000,000 AED contract to build a commercial building in Dubai. Four milestones: foundation (500,000 AED), structure (600,000 AED), finishes (600,000 AED), handover (300,000 AED). You invoice at each milestone, but do not recognize all revenue immediately.
The percentage of completion method recognizes revenue based on work completed, not invoiced. Spend 1,100,000 AED out of an estimated 1,500,000 AED total cost, and you are 73 percent complete. Recognize 1,460,000 AED in revenue (73 percent of 2,000,000), even if invoiced only 1,100,000 AED.
This is required for most GCC construction contracts because it matches revenue to work delivery. Recognizing revenue only when paid shows zero revenue for months, then a spike. That is not useful for managing the business.
Retainage complicates this. The client holds back 5-10 percent of each milestone payment until project completion. Complete foundation work worth 500,000 AED. Client pays 450,000 AED, holds 50,000 AED as retainage. That 50,000 AED sits on your balance sheet as retainage receivable, not revenue. When the project completes and defects resolve, retainage converts to cash.
VAT on progress billing creates a timing issue in the GCC. In the UAE and Saudi Arabia, VAT is due when invoiced, not when paid. Invoice 500,000 AED for foundation work. Owe 25,000 AED in VAT (5 percent in UAE) even though only 450,000 AED is paid after retainage. Your cash flow must account for this.
That is the challenge with progress billing: it is not just invoicing milestones. It is recognizing revenue correctly, tracking retainage, and managing VAT obligations when cash has not arrived.
Challenge 2: Managing Subcontractors and Cost Allocation
You do not do everything yourself. Subcontractors handle electrical, plumbing, HVAC, finishes. They expect payment within 30 days of completing their work. The client pays you 60-90 days after invoicing the milestone. You finance the subcontractor's work for 60-90 days out of your cash.
Subcontractor accounting tracks invoices as work in progress (WIP), not immediate expenses. When the electrician completes wiring and invoices you 150,000 AED, it does not hit your profit and loss statement immediately. It sits as WIP until the milestone is complete and revenue is recognized. Then match the subcontractor cost to revenue, and both hit your financials simultaneously.
If you expense subcontractor costs immediately when invoiced, but recognize revenue only at milestone completion, your margin swings wildly. One month shows massive expenses with zero revenue. The next shows massive revenue with minimal expenses. Neither reflects true project profitability.
Cost allocation is critical. Direct costs (on-site labor, materials, subcontractors) must be tied to specific projects. Indirect costs (office rent, estimators, project managers, vehicles) are spread across all projects or treated as overhead. Without cost allocation to individual projects, you cannot calculate profitability per project. You know the business made money, but not which projects drove profit or bled cash.
Job costing tracks this. Every project gets a unique job number. Every cost (labor, materials, subcontractor invoice) tags to that job number. At any moment, pull a report showing: revenue recognized, costs allocated, margin. If margin compresses mid-project, costs are overrunning or scope is creeping.
Cross-border subcontractors create compliance headaches in the GCC. Hiring a subcontractor from India, Pakistan, or the Philippines may involve withholding tax. The UAE and Saudi Arabia have tax treaties with many countries, but rates vary. If you pay a non-GCC subcontractor without withholding the correct tax, the liability falls on you.
That is the challenge with subcontractors: it is not just paying invoices. It is matching costs to projects, tracking WIP, managing your own retainage payable, and handling cross-border tax obligations.
Challenge 3: Cash Flow Management with Retainage
Retainage creates a structural cash flow problem. Complete 90 percent of the work, but the client pays only 80-85 percent of the contract value. The rest is held as retainage until final delivery and defect liability period ends (usually 30-90 days after handover).
Meanwhile, you must pay subcontractors, suppliers, and labor. Subcontractors do not wait for retainage release. They want payment within 30 days of delivering work. If you hold retainage from them (common practice to protect against defects or delays), you still owe them 90-95 percent of their invoice value immediately.
For a 2,000,000 AED project:
- Contract value: 2,000,000 AED
- Retainage held by client: 200,000 AED (10 percent)
- Total paid by client before final delivery: 1,800,000 AED
- Subcontractor costs: 1,200,000 AED
- Retainage you withhold from subs: 120,000 AED (10 percent)
- Total owed to subs before final delivery: 1,080,000 AED
- Materials and direct labor: 500,000 AED
- Total cash outflow before final delivery: 1,580,000 AED
- Cash inflow before final delivery: 1,800,000 AED
- Net cash position before retainage release: 220,000 AED
If material costs spike or scope creeps, that 220,000 AED buffer disappears. You finance the final project phase out of working capital or a line of credit.
Forecasting cash flow requires modeling payment timing. When do you invoice milestones? When does the client pay (30 days after invoice? 60 days?)? When do subcontractors expect payment? When do material suppliers need payment? When is retainage released?
Without upfront modeling, you discover cash flow gaps too late. You either delay subcontractor payments (damaging relationships and slowing future projects) or borrow short-term to cover the gap (eating into margin).
Government projects in the GCC often have longer payment terms. A UAE federal government project might pay 60-90 days after milestone approval. A Saudi Vision 2030 mega-project might have staged payments tied to inspection and approval processes adding 30-60 days. If your contract assumes 30-day payment terms but reality is 90 days, your cash flow forecast is off by two months.
That is the challenge with retainage and cash flow: it is not just waiting for final payment. It is forecasting the gap between payout and cash inflow, ensuring you have the working capital to bridge it.
Setting Up Construction Accounting the Right Way
Chart of Accounts for Construction Companies
Your chart of accounts must reflect how construction projects work.
Revenue accounts should break down by project type: Residential Construction, Commercial Construction, Government Projects, Maintenance Contracts. This lets you analyze which project types are most profitable and which subsidize others. If residential work runs at 18 percent margin but commercial work at 28 percent, you need to know that.
Cost of Goods Sold (COGS) accounts for construction include:
- Direct labor (on-site workers, supervisors)
- Subcontractor costs (electrical, plumbing, HVAC, finishes)
- Direct materials (concrete, steel, lumber, finishes)
These are costs directly tied to delivering a specific project. If you cannot trace a cost back to a project, it is not COGS. It is an operating expense.
Expense accounts cover:
- Indirect labor (estimators, project managers, admin staff)
- Office rent, vehicles, equipment depreciation
- Professional fees (legal, engineering, permitting)
- Marketing and business development
Asset accounts include:
- Work in progress (WIP) — completed work not yet billed
- Accounts receivable — invoiced but unpaid milestones
- Retainage receivable — client holdbacks
- Equipment and vehicles
Liability accounts cover:
- Subcontractor payables
- Retainage payable (amounts you withhold from subs)
- VAT payable on progress billings
- Customer deposits (advance payments before work begins)
That is the foundation: a chart of accounts that reflects the true economics of construction projects.
Job Costing: Tracking Profitability by Project
You cannot manage what you do not measure.
Job costing means every project gets a unique job number. Every cost (labor, materials, subcontractor invoice) allocates to that job number. Every revenue recognition event (milestone invoiced, percentage of completion calculated) ties back to that job number.
At any moment, pull a report showing:
- Estimated total revenue
- Revenue recognized to date
- Estimated total costs
- Costs allocated to date
- Margin to date: (revenue recognized - costs allocated) / revenue recognized
Example: A villa construction project in Abu Dhabi.
- Contract value: 2,000,000 AED
- Estimated total costs: 1,500,000 AED (target margin: 25 percent)
- After 6 months: costs incurred = 1,100,000 AED
- Completion percentage: 1,100,000 / 1,500,000 = 73 percent
- Revenue recognized (percentage of completion): 73 percent of 2,000,000 = 1,460,000 AED
- Margin to date: (1,460,000 - 1,100,000) / 1,460,000 = 24.7 percent
The insight: margin is on target. But if remaining costs exceed 400,000 AED, profitability is at risk. You know this now, not after project completion.
When to review job costing: Weekly for active projects. Monthly for all projects. If you only review at project completion, you discover cost overruns too late to fix them.
Red flags:
- Costs exceeding 80 percent of budget before 80 percent completion = scope creep or cost overruns
- Margin compressing month-over-month = subcontractor costs higher than estimated or material price spikes
- Revenue recognized far ahead of costs incurred = you front-loaded billing but back-loaded work (cash flow looks good now, but you will pay later)
That is the value of job costing: real-time visibility into project profitability, not a post-mortem analysis after project closure.
Retainage Accounting and Payment Terms
Retainage is everywhere in construction. The client holds retainage from you. You hold retainage from subcontractors. Both need tracking separately.
Client retainage: When you invoice a milestone for 500,000 AED and the client pays 450,000 AED (holding 50,000 AED as retainage), record it like this:
- Debit: Accounts Receivable 450,000 AED
- Debit: Retainage Receivable 50,000 AED
- Credit: Revenue 500,000 AED
When the client releases retainage after final project completion:
- Debit: Cash 50,000 AED
- Credit: Retainage Receivable 50,000 AED
Subcontractor retainage: When a subcontractor invoices you 150,000 AED and you pay 135,000 AED (holding 15,000 AED as retainage), record it like this:
- Debit: Work in Progress 150,000 AED
- Credit: Cash 135,000 AED
- Credit: Retainage Payable 15,000 AED
When you release subcontractor retainage after the defect liability period:
- Debit: Retainage Payable 15,000 AED
- Credit: Cash 15,000 AED
Payment terms structure for construction projects:
- Upfront deposit: 10-20 percent of contract value before starting work
- Progress payments: 70-80 percent paid at milestones (foundation, structure, finishes)
- Final payment: 10-20 percent including retainage release at project completion
If you do not structure payment terms this way, you end up financing the entire project out of working capital. A 2,000,000 AED project with zero upfront deposit means you spend 6 months paying subcontractors and suppliers before the client pays you anything. That is not sustainable.
That is the retainage accounting framework: track client retainage receivable and subcontractor retainage payable separately, model payment timing, and structure contracts to minimize the cash flow gap.
GCC-Specific Considerations for Construction
VAT on construction services is standard-rated in the GCC. Design, construction, project management, and engineering services are subject to 5 percent VAT in the UAE and 15 percent VAT in Saudi Arabia. You collect VAT from the client at each milestone and remit it to the tax authority quarterly (UAE) or monthly (Saudi Arabia).
Cross-border subcontractors: If you hire a non-GCC subcontractor for specialized work (design consultants from the UK, equipment suppliers from Germany, labor contractors from India), check if withholding tax applies. The UAE and Saudi Arabia have tax treaties with most countries, but the rates vary (typically 0-20 percent depending on the service type and treaty terms). If you pay without withholding, the liability falls on you.
Free zone vs mainland construction: If you operate in a UAE free zone and the construction project is on the mainland, corporate tax applies (9 percent on mainland revenue). If you are mainland-registered, corporate tax applies to all revenue. Free zone companies are exempt from corporate tax only if they meet qualifying conditions (no mainland business or limited mainland revenue under the threshold).
E-invoicing for construction: Saudi Arabia enforces ZATCA Phase 2, which requires real-time invoice validation for all B2B transactions, including progress billing invoices. Every milestone invoice must be issued through a ZATCA-compliant system with specific data fields (buyer VAT number, seller VAT number, invoice hash, QR code). UAE e-invoicing is rolling out and will have similar requirements.
Multi-currency projects: If your contract is in USD but your costs are in AED or SAR, foreign exchange fluctuations create gains or losses. You invoice a US-based client for 500,000 USD when the rate is 1 USD = 3.67 AED (1,835,000 AED). They pay 30 days later when the rate is 1 USD = 3.65 AED (1,825,000 AED). You lost 10,000 AED to currency fluctuation. This is an FX loss, recorded as a separate line item on your profit and loss statement.
That is the GCC compliance reality: VAT, corporate tax, e-invoicing, withholding tax, and currency risk all layer on top of the core construction accounting complexity.
What Good Construction Accounting Looks Like
Here is the checklist. If you can check all of these, your accounting setup is scaling with your construction business:
[ ] Job costing enabled for every project
[ ] Percentage of completion calculated monthly
[ ] Retainage tracked separately (client receivable + subcontractor payable)
[ ] Work in progress (WIP) reviewed and reconciled monthly
[ ] Subcontractor invoices matched to project milestones
[ ] Cash flow forecast updated weekly
[ ] VAT accounted correctly on progress billings
[ ] Cross-border subcontractor withholding tax tracked
If you track project costs in a spreadsheet but cannot generate a margin report by project, you are not there yet. If you do not know how much retainage you have outstanding, you are not there yet. If VAT filing requires manual invoice-by-invoice reconstruction, you are not there yet.
That is the benchmark: if you are not there yet, you have work to do.
When Your Current Setup is Broken
Concrete signals that your current setup is breaking:
You do not know which projects are profitable until they are finished. If you cannot see real-time project profit and loss (revenue recognized, costs allocated, margin), you are flying blind. By the time you discover a project lost money, it is too late to fix it.
Cash flow surprises happen every month. Unexpected payments due to subcontractors. Delayed client payments. Retainage release takes longer than expected. If you do not have a weekly cash flow forecast that models payment timing, you will always be reacting to surprises.
Retainage receivable is not tracked separately. Your balance sheet shows accounts receivable, but it does not break out how much of that is retainage (which will not convert to cash for 3-6 months). You think you have 500,000 AED coming in this quarter, but 200,000 AED of that is retainage that will not arrive until next quarter.
Subcontractor disputes over payment timing and retainage release. If you do not have a system that tracks when each subcontractor delivered their work, when you owe them payment, and when their retainage is due for release, disputes are guaranteed. Subcontractors stop working on your projects. Word spreads. Your ability to hire good subs for future projects declines.
VAT filing requires manual spreadsheet reconstruction. Every quarter (or month in Saudi), you rebuild VAT numbers from bank statements and invoices. This is a massive risk for compliance errors and a waste of time. VAT should be automatically tracked as you invoice milestones.
You invoice clients at milestones but recognize revenue only when paid. This is the wrong method. It understates revenue during the project (when work is being delivered) and overstates revenue at final payment (when no new work is delivered). Your financial statements do not reflect the actual economics of the business.
That is the breaking point: when you see these signals, it is time to change.
What to Do This Week
Practical steps to improve your construction accounting starting today:
Audit your job costing setup. Can you generate a margin report by project showing revenue recognized, costs allocated, and margin to date? If not, set up job numbers for every active project and start allocating costs.
Calculate retainage outstanding. Sum all client retainage receivable and subcontractor retainage payable. Add both to your balance sheet as separate line items. This tells you how much cash is locked up in retainage.
Review revenue recognition method. Are you using percentage of completion? If you only recognize revenue when the client pays, you are likely misreporting profitability. Switch to percentage of completion for any project that spans more than one accounting period.
Forecast cash flow for active projects. For each project, model: When do you invoice each milestone? When does the client pay (30 days later? 60 days?)? When do subcontractors expect payment? When is retainage released? This shows you where cash flow gaps will appear before they happen.
Check VAT treatment on progress billings. Are you charging VAT at each milestone? Are you remitting it on time? Review your last 5 milestone invoices to confirm VAT is being handled correctly.
Set up subcontractor tracking. Match subcontractor invoices to the projects they delivered for. Track retainage you withhold from each sub. Set reminders for when retainage is due to be released (usually 30-90 days after project handover).
The goal is not perfection on day one. The goal is systematic improvement: track costs by project, recognize revenue correctly, manage retainage, and get better cash flow visibility to make smarter decisions.
See how Bizrah handles project-based accounting with job costing, progress billing, and GCC-native compliance → Try Bizrah Free