Compliance

Nitaqat & Saudisation Compliance with Odoo HR (KSA)

How KSA employers stay in the green Nitaqat band — automating headcount ratios, Qiwa filings, and Mudad payroll inside one Odoo HR setup.

iWesabe Editorial TeamMay 18, 20269 min read

Nitaqat is the single biggest day-to-day compliance driver for any Saudi employer with more than four employees. The colour band your establishment sits in — Platinum, High-Green, Medium-Green, Low-Green, or Red — directly controls whether you can issue new work visas, transfer existing iqamas, or open new commercial registrations. Miss the band threshold for a month, and the operational consequences land before the next HR meeting.

This guide explains how Saudi employers run a complete Nitaqat workflow inside Odoo HR — from the daily headcount ratio that decides your band, through Qiwa and HRSD reporting, to Mudad/WPS payroll, all on a single source of employee data. iWesabe has built and stabilised this setup with KSA clients across construction, retail, manufacturing, and services since 2017.

What is Nitaqat and why does the colour band matter every month?

Nitaqat is the Saudisation programme run by the Ministry of Human Resources and Social Development (HRSD). It sets a target percentage of Saudi nationals per establishment based on the company's sector (construction, retail, ICT, hospitality, etc.) and total headcount tier (small, medium, large, giant). Your live ratio of Saudis to total employees is calculated against that target and the result places you in one of five bands.

The catch is that the band is recalculated continuously, not annually. Hire a non-Saudi today, and the live ratio changes overnight. Lose a Saudi employee to resignation, and your band can shift before you have processed the exit interview. This is exactly the kind of regulatory cadence that punishes spreadsheet tracking and rewards a properly configured HR system.

Need help mapping Nitaqat thresholds for your sector?

iWesabe runs a one-session Nitaqat audit against your current Odoo HR data and a written remediation plan with a band-recovery timeline.

Talk to an Odoo HR expert

How is Odoo HR configured to track Nitaqat in real time?

Odoo HR does not ship with a Nitaqat module out of the box, but the data model already carries everything required — nationality, contract type, working hours, and weighting rules sit on the standard employee record. The setup work is making those fields authoritative, then layering a calculation rule on top that mirrors HRSD's own Nitaqat formula.

1. Make nationality a mandatory, validated field

Every employee record must carry an unambiguous nationality value that matches one of the HRSD nationality codes. We mark the field required at the form level and block payroll cycle close if any employee is missing it. This single change eliminates the silent miscount that happens when contractors or interns are added without a complete profile.

2. Encode the HRSD weighting rules

HRSD does not count every Saudi as one full headcount — disabled Saudis, female Saudis in some sectors, and part-time Saudis carry different weights. We encode these as a configurable weighting table tied to nationality + status flags so the live ratio matches HRSD's own calculation when the inspector audits the file.

3. Build a live Nitaqat dashboard for HR + Executive view

The current colour band, current weighted ratio, distance to the next threshold up, and distance to the next threshold down — these four numbers belong on a dashboard the CHRO and CEO see daily. We surface them as Odoo HR Kanban tiles with a 30-day projection so hiring decisions are taken with the band consequence visible, not discovered later.

How do Qiwa, Mudad, and HRSD connect into the Odoo HR flow?

Three Saudi government platforms ride on the same employee dataset Odoo HR holds — and the win is making Odoo the upstream source of truth so the data flows out cleanly to each.

  1. Qiwa (HRSD labour platform): handles contract digitisation, employee transfers, and Saudisation reporting. The Odoo employee record's nationality, contract type, and salary fields are the inputs to every Qiwa filing. Keeping the Odoo record canonical avoids the dual-entry drift that creates Qiwa rejections.
  2. Mudad (wage protection portal): runs the WPS file that pays employee salaries through Saudi banks. Odoo's payroll module generates the Mudad-compliant SIF/WPS file every cycle, with IBAN, salary, and deductions sourced from the same employee + contract records the Nitaqat calculation uses.
  3. GOSI (General Organisation for Social Insurance): consumes monthly contribution data — employer + employee shares on the GOSI-eligible salary base. Odoo HR computes the eligible base, generates the GOSI register, and reconciles it against the Mudad payroll for the same period before submission.

Manual tracking vs Odoo HR — what does the difference look like in practice?

Many KSA SMEs still run Nitaqat tracking from a finance team's spreadsheet, with the HR team filing Qiwa and the accountant generating Mudad files from a separate tool. The table below compares that manual setup against an Odoo HR setup configured the way iWesabe deploys it.

Manual Nitaqat tracking vs iWesabe Odoo HR setup
DimensionManual / spreadsheetOdoo HR (iWesabe)
Band recalculation cadenceMonthly (often late)Live, on every employee change
Weighting rule changesManual formula editsConfigurable table, version-tracked
Qiwa filing data sourceRe-keyed from spreadsheetDirect from employee record
Mudad/WPS file generationSeparate payroll toolNative Odoo payroll output
Inspector audit trailEmail + file exportsFull Odoo audit log per record
Time to recover from Red band4–8 weeks1–2 weeks (with hiring data available)
Risk of GOSI mismatchHigh (dual-entry drift)Low (single source of truth)

The practical difference is reaction time. Manual setups discover a band shift after it has happened; an Odoo setup surfaces the projected shift before the hire is confirmed. That is the operational lever that keeps establishments in the Green band sustainably, rather than reacting to Red-band notifications.

Which Saudisation KPIs should a CHRO see on day one of every month?

Once Odoo HR is the source of truth, five KPIs are enough to keep the establishment safely inside the Green band and to flag a developing problem at least one month before it forces a hiring freeze.

Green
Current Nitaqat band (target)
≥ 5%
Buffer above next-band-down threshold
100%
Mudad/WPS first-pass acceptance
0
Employees missing required nationality data

The fifth KPI we surface — not in the stat block but on the CHRO dashboard — is projected band in 30 days, assuming the current hiring + attrition trend continues. A projected shift from Medium-Green to Low-Green is the cheapest possible moment to intervene, well before HRSD's own snapshot lands.

Already sitting in Low-Green or Red?

iWesabe runs band-recovery engagements that combine a hiring plan, an Odoo HR remediation, and a Qiwa/Mudad cleanup in a single timeline.

Request a band-recovery review

What are the most common Saudisation mistakes Odoo HR can prevent?

Four mistakes account for nearly every Nitaqat-related issue we have remediated with KSA clients. All four are preventable when the HR data lives in one configured Odoo HR instance instead of split across a payroll tool, a spreadsheet, and a Qiwa portal.

  • Contractors counted as employees (or vice versa). Nitaqat uses a specific HRSD definition of employee — contractor records left in the headcount file (or genuine employees missing from it) move the ratio on a false basis.
  • Part-time and weighted Saudis treated as full headcount. Ignoring the HRSD weighting rules inflates your computed ratio relative to the official one — and the gap surfaces at inspection, not in your spreadsheet.
  • Late updates after resignations or transfers. Manual setups update the headcount file at month-end; by then the band may have shifted for two weeks already. Odoo HR's live recalculation closes that lag entirely.
  • Mudad WPS files generated from stale salary data. If payroll is run from a tool fed by an outdated employee export, salary changes do not reach Mudad, GOSI miscalculates, and a single inspection finding cascades across three portals at once.

Every Nitaqat remediation we have run in Saudi Arabia traces back to the same cause: the headcount file and the payroll file were not the same file.

iWesabe HR Practice

Nitaqat compliance is not a quarterly project — it is a daily state of the employee dataset. Once that dataset lives in a properly configured Odoo HR instance, with weighting rules encoded and live dashboards in place, Saudisation moves from a recurring fire to a quiet KPI on the CHRO dashboard.

iWesabe has configured this Odoo HR setup for KSA establishments across construction, retail, manufacturing, healthcare, hospitality, and services. If you are within a band threshold or simply want a clean audit of your current Nitaqat posture, a 60-minute call is enough to map where the gaps are.

Book the 60-minute Nitaqat readiness call

We will review your current band, your projected 30-day trajectory, and the top three actions on the Odoo HR side.

Contact iWesabe

Frequently Asked Questions

What Saudisation ratio does my company actually need?
The required percentage depends on two things: your HRSD economic activity code (construction, retail, ICT, hospitality, etc.) and your total headcount tier (small, medium, large, giant). HRSD publishes the matrix per sector and updates the thresholds periodically. Inside Odoo HR we encode your specific target so the live ratio is always compared against the correct number — not a value that was true last year.
Can Odoo HR handle Qiwa contract digitisation and Mudad WPS in one cycle?
Yes. The same employee + contract record drives both flows. Qiwa receives the contract data (start date, salary, nationality, contract type), and Mudad receives the WPS file generated by Odoo's payroll module at cycle close. Because both use the same source, what is true on the Qiwa contract is the same as what is paid through Mudad — which is exactly what HRSD inspectors look for.
How quickly can a KSA business move from Red to Green Nitaqat band?
Recovery time depends on band depth and hiring availability. A Low-Red establishment with a healthy Saudi hiring pipeline can reach Low-Green in 4–8 weeks. A Mid-Red establishment typically needs 3–6 months. The first action is always to fix the data — many 'Red' establishments are actually closer to Green than they think once contractor classifications and weighting rules are applied correctly.
Do we need a separate HR system for Saudisation, or can Odoo HR cover everything?
For the vast majority of KSA SMEs and mid-market enterprises, Odoo HR configured for KSA covers the full Nitaqat, Qiwa, Mudad/WPS, and GOSI flow. A separate HR system only becomes worthwhile at very large multi-entity headcounts where regional consolidation reporting and multi-jurisdiction labour law need a specialised platform — and even there, Odoo HR commonly stays as the establishment-level source of truth feeding the consolidation layer.
What ongoing support do we need after Odoo HR for Nitaqat is live?
Three streams: HRSD rule updates (band thresholds and weighting changes as Nitaqat evolves), Qiwa and Mudad portal updates as new fields or validation rules are added, and Odoo version upgrades on a 12–24 month cycle. iWesabe maintains all three under standard support so your HR team is not absorbing regulatory tracking work that distracts from operations.
iWesabe Editorial Team

iWesabe Editorial Team

Practitioner insights on Odoo ERP, ZATCA compliance, and Saudi enterprise digital operations — written by iWesabe's consulting, finance, and engineering teams.

About iWesabe

Related Articles