Why Contractor Payroll Is a Different Problem
In a trading company with one office, payroll is a predictable monthly routine: the same people, roughly the same pay, and attendance captured on one terminal at the front door. A contracting company lives in a different world. Hundreds of workers are spread across sites in several cities. Some move between two projects in the same month. Overtime surges before every handover milestone. Iqamas and work permits expire on scattered dates. And every riyal spent on labor has to land on the right project, or nobody knows which jobs are making money.
So contractor payroll is not just calculating wages and sending a bank file. It is a chain that starts with attendance on site, runs through pay, overtime and deductions, passes through GOSI and wage protection compliance, reaches payment, and ends with labor cost allocated to projects. A weak link anywhere breaks everything after it: a wrong attendance record becomes a wrong salary, then a worker complaint, then a wrong project margin.
This guide walks the chain from timesheet to payment, link by link, with hypothetical worked numbers, a month-end close checklist, and the mistakes we see most often in Saudi contracting firms.
Where the Complexity Comes From
| Source | What it looks like | Effect on payroll |
|---|---|---|
| Multiple sites | Projects running in Riyadh, Dammam and Abha at once | Attendance arrives late and from different sources |
| Worker mobility | Two weeks on one project, two on another | Hard to split cost between projects |
| Overtime | Heavy hours ahead of deadlines | Variable, error-prone calculations every month |
| Allowances | Housing, transport, food, remote-site allowance | Many pay elements that vary by worker |
| Statutory documents | Iqamas, work permits, medical insurance with different expiry dates | Violations and workers unable to work |
| Mixed nationalities | Saudi and expatriate staff on different GOSI rates | Separate contribution logic per group |
Link 1: Capturing Attendance on Site
Everything starts here. On many sites the foreman still fills in a paper sheet, photographs it, and sends it to head office at the end of the week, where someone keys it in again. That produces late data, transcription errors, and no real way to prove the worker was on site.
Better options:
- Biometric or face-recognition terminals on longer-running sites, syncing to the central system.
- Mobile clock-in with geo-fencing, which only accepts a punch inside the site boundary drawn on the map. This suits temporary sites and roaming maintenance crews.
- Daily supervisor approval: even with automated capture, the site supervisor reviews and approves attendance every day, so exceptions are resolved that day rather than at month end.
More important than the device is recording the project and activity with every attendance entry. That is what makes cost allocation possible later. Tranquil's time and attendance solution, together with geo-fencing, covers this link.
Link 2: Pay and Overtime
Under the Saudi Labor Law, normal working hours are capped at 8 a day or 48 a week, reduced to 6 a day or 36 a week for Muslim workers during Ramadan. Hours beyond that are overtime. The Ministry of Human Resources and Social Development explains that an overtime hour is paid at the hourly wage plus 50% of the basic wage, or, with the worker's agreement, compensated with paid leave. Overtime may not exceed 720 hours a year unless the worker agrees.
Worked overtime example (hypothetical)
A worker earns a basic wage of SAR 3,000, housing of SAR 750 and transport of SAR 250, for a total of SAR 4,000. He works 20 overtime hours in the month. Using the common convention of monthly wage ÷ 30 days ÷ 8 hours:
- Actual hourly wage: 4,000 ÷ 240 = SAR 16.67.
- 50% of the basic hourly wage: (3,000 ÷ 240) × 50% = SAR 6.25.
- Overtime hourly rate: 16.67 + 6.25 = SAR 22.92.
- Total overtime: 20 × 22.92 = about SAR 458.33.
Now run that for 400 workers with different wages and allowances, variable overtime, reduced Ramadan hours and public holidays. Manual error is not a risk at that scale; it is a certainty. A system applies one formula to everyone, pulls hours straight from approved attendance, and calculates the hourly rate according to your written policy.
A practical note: how you calculate the hourly rate, and which allowances go into it, should be written into company policy and consistent with employment contracts. Consistency prevents more disputes than anything else.
Link 3: Deductions and GOSI
GOSI contributions are calculated on basic wage plus housing allowance, capped at SAR 45,000 a month, and rates depend on nationality:
| Group | Employee share | Employer share |
|---|---|---|
| Saudi (existing system) | 9.75% | 11.75% |
| Non-Saudi | None | 2% (occupational hazards) |
Saudis who first entered the workforce on or after 3 July 2024 fall under the new Social Insurance Law, with annuity rates that step up over time, so check the current schedule for each employee.
Worked example (hypothetical)
- A Saudi engineer with SAR 8,000 basic and SAR 2,000 housing has a contribution base of SAR 10,000. SAR 975 is deducted from his pay and the company contributes SAR 1,175.
- An expatriate laborer with SAR 1,500 basic and SAR 375 housing has a base of SAR 1,875. Nothing is deducted from him; the company pays SAR 37.50.
Beyond GOSI there are loan installments, unexcused absence and penalties under the approved work regulations. Every deduction needs documentation tied to its reason, because workers are entitled to know why their pay is lower.
Link 4: Wage Protection and Payment
The Wage Protection System requires employers to upload a wage file to the Mudad platform. From 1 March 2025, the Ministry cut the upload window from 60 days to 30. The file must agree with what was actually paid through the bank, and any gap between contract wage and file wage needs an explanation.
To stay clean:
- Make the approved payroll run the single source for both the bank file and the WPS file. Never edit either by hand.
- Confirm IBANs are current before close; a returned transfer is a late salary.
- Handle special cases before upload: unpaid leave, mid-month joiners, leavers.
- Keep proof of payment for every month.
Bank integration sends salaries straight from the system to the bank, removing the risk of a mismatch between payroll and the file sent. Our article on WPS and Mudad compliance covers platform requirements in detail.
A clear payslip, in a language the worker reads, showing basic pay, allowances, overtime hours and deductions, cuts queries and complaints and builds trust that pay is regular and correct.
Link 5: Statutory Documents
A worker with an expired iqama cannot legally work, and the company may face a violation. With hundreds of expatriate workers, tracking iqama, work permit and medical insurance expiry by hand is close to impossible. You need alerts well before expiry, for example 60 days, and links to the relevant government services to make renewal easier. Tranquil provides document expiry alerts and Muqeem integration for iqamas and visas.
Link 6: Allocating Labor Cost to Projects
This is where payroll stops being an HR process and becomes a management tool. Without accurate allocation, you cannot see which projects earn money and which lose it.
Worked example (hypothetical)
A crew of 10 costs the company SAR 52,000 in a month, including wages, overtime, employer GOSI, housing and transport. Approved attendance splits their hours like this:
| Project | Hours | Share | Cost charged (SAR) |
|---|---|---|---|
| Residential compound, Khobar | 1,320 | 55% | 28,600 |
| Warehouse, Dammam | 720 | 30% | 15,600 |
| O&M maintenance contract | 360 | 15% | 7,800 |
| Total | 2,400 | 100% | 52,000 |
Charge everything to the compound because that is where the crew is "assigned", and the warehouse looks SAR 15,600 more profitable than it really is in this month alone. Over an 18-month job, that error grows into numbers that distort pricing on your next tender.
Accurate allocation also supports time-and-materials contracts where the client is billed for actual hours. Timesheet invoicing turns approved hours directly into invoices.
The Costs That Never Appear on the Monthly Payroll
Monthly pay is not the whole cost of a worker. Some obligations build up every month and are paid later, chiefly end-of-service awards and leave balances. Under the Labor Law, the end-of-service award is half a month's wage for each of the first five years and a full month's wage for each year after that, based on the last actual wage including allowances, with part years prorated.
Hypothetically, a worker on SAR 4,000 in his third year accrues SAR 2,000 per year of service, or about SAR 167 a month. Across 400 similar workers, that is roughly SAR 67,000 of liability building up every month. If the provision is not booked monthly and charged to projects, projects look more profitable than they are, and management gets a surprise when a batch of contracts ends at project close-out. The fix is a system that calculates end-of-service and leave provisions monthly per worker, posts them with the payroll journal, and allocates them to projects in the same proportions as wages.
Subcontractor Labor Is Not Your Payroll
A common mistake is mixing subcontractor labor into company payroll. Subcontractor workers are paid by the subcontractor; your relationship is a services contract billed on a tax invoice. What you need is their hours or progress, to verify the invoice and charge the project, not their names on your payroll. Mixing the two confuses GOSI and WPS reporting and weakens your control over subcontractor billing.
Month-End Payroll Close Checklist
- Attendance approved for all sites by the cut-off date.
- Exceptions reviewed: absence, lateness, overtime above normal levels.
- Changes entered: joiners, leavers, raises, promotions, project transfers.
- Loans, deductions and approved penalties updated.
- Trial run compared with last month, investigating any change above a threshold such as 10%.
- Approval by HR, then finance.
- Bank file generated and transfer released.
- WPS file uploaded within the statutory window.
- Payroll journal posted and cost allocated to projects and cost centers.
- Payslips issued, ideally through employee self-service.
Mistakes We See Often
- Paper timesheets: transcription errors and delays. Move to digital capture with daily approval.
- Different overtime formulas by site: each foreman has his own version. Standardize the policy in the system.
- Late termination entries: salary paid to someone who has left. Link exit clearance to payroll.
- No project allocation: real project margins disappear. Make project a mandatory field on attendance.
- Hand-edited bank files: they stop matching the WPS file. Keep one source.
- Forgetting Ramadan hours: overtime is miscalculated all month. Set the work calendar before Ramadan starts.
KPIs for Payroll Quality
| KPI | Reasonable target |
|---|---|
| Working days from month end to payroll close | Under 5 |
| Corrections after payment | Under 1% of employees |
| Returned transfers | Close to zero |
| Labor hours with no project | Under 2% |
| Expired documents not renewed | Zero |
These are guideline targets; adjust them to your size, but measure them every month.
Contractor Payroll in Tranquil
Tranquil brings HR and payroll together with projects, contracting and accounting in one cloud ERP. That covers employee management, time and attendance, geo-fencing, scheduling and timesheets, payroll, employee self-service, document expiry alerts, bank integration for direct salary transfer and Muqeem integration. On the contracting side, the system supports labor and parts costing at project level, timesheet invoicing and work-in-progress tracking.
Frequently Asked Questions
How is overtime calculated under Saudi Labor Law?
An overtime hour is paid at the hourly wage plus 50% of the basic wage. With the worker's consent, paid compensatory leave can be given instead. Overtime is capped at 720 hours a year unless the worker agrees to more.
How long do employers have to upload the WPS file to Mudad?
30 days, effective 1 March 2025, down from 60 days.
Do subcontractor workers go on the main contractor's payroll?
No. They are paid by the subcontractor, who bills you under a contract. You should still record their hours to verify invoices and charge cost to the project.
How do I split the cost of a worker who works on several projects?
Record the project on every attendance entry, then allocate the worker's full monthly cost by his share of hours on each project.
Should end-of-service provisions be booked monthly?
Yes. The liability arises with each month of service, so booking it monthly and allocating it to projects gives a true labor cost and avoids a shock when many contracts end at once.
How do I get started with Tranquil?
Contact the Tranquil team to review your current payroll cycle and receive a quote within 24 hours.

