Build the GOSI Contribution & WPS Wage File (Mudad) — Saudi Arabia
Skill: Convert payroll into the GOSI contribution data and the WPS wage file via Mudad
Region: Saudi Arabia (المملكة العربية السعودية) Category: Payroll — Social insurance (GOSI) & Wage Protection (WPS / Mudad) Does: Takes monthly payroll and produces two outputs: the GOSI contribution figures (employee + employer rates, including SANED unemployment insurance) reported to the General Organization for Social Insurance, and the WPS wage file uploaded via Mudad so the Ministry of Human Resources (HRSD) can verify salaries against GOSI-registered wages. System: GOSI portal + Mudad (Wage Protection System)
GOSI contributions are based on the registered contributory wage (basic salary + housing allowance), generally between a floor and a cap (commonly SAR 1,500 minimum and SAR 45,000 maximum). Rates differ by nationality: Saudi employees attract Annuities (pensions), occupational hazards, and SANED unemployment insurance; non-Saudi employees attract occupational hazards only. WPS via Mudad must match the GOSI-registered wage and be paid through licensed channels. The phased GOSI reform changes rates for newer entrants — confirm the current rate table and wage definition before use.
When this applies
- You run monthly payroll for an establishment registered with GOSI and subject to WPS through Mudad.
- You must (a) report/settle the monthly GOSI contributions and (b) submit the WPS wage file so HRSD/Mudad can confirm salaries are paid on time and consistent with GOSI records.
- Both Saudi and non-Saudi employees are covered, at different contribution rates.
Input data required
| Group | Fields |
|---|---|
| Establishment | GOSI/establishment registration number, unified number (700), Mudad/bank account (IBAN), period (month + year) |
| Employee | name, ID (Iqama for non-Saudi / National ID for Saudi), nationality (Saudi / non-Saudi), GOSI subscriber number |
| Wage | basic salary, housing allowance → contributory wage (floor/cap applied); other allowances (for WPS net pay) |
| Bank | employee IBAN, bank code (for the WPS wage record) |
| Output | GOSI employee/employer contributions per branch; total WPS net salaries to disburse |
Contribution rates (representative)
| Branch | Saudi employee | Saudi employer | Non-Saudi |
|---|---|---|---|
| Annuities (pensions) | 9% | 9% | — |
| Occupational hazards | — | 2% | 2% (employer) |
| SANED (unemployment) | 0.75% | 0.75% | — |
| Total | ~9.75% (employee) | ~11.75% (employer) | 2% (employer) |
Newer-entrant cohorts under the reform have a phased, higher Annuities rate — apply the cohort/date-based table in force.
Calculation rules
- Amounts in SAR, 2 decimals.
- Contributory wage = basic + housing allowance, then clamp to [floor, cap] (e.g. 1,500–45,000).
- GOSI per employee: employee share = contributory wage × employee % (Saudi only); employer share = contributory wage × employer % (Saudi or non-Saudi rate). SANED applies to Saudis only.
- WPS file: one record per employee with IBAN, bank code, basic, housing, other allowances, deductions and net paid; a control/header record carries the establishment ID, period, employee count and total amount. The total must equal the sum of the detail records, and the registered wage must match GOSI.
- Submit the WPS file via Mudad and settle GOSI by the monthly deadline; underpayment or mismatch with GOSI triggers WPS non-compliance flags.
Worked example (monthly, outline)
Period 2026-05 — establishment 200000000 (GOSI) — Mudad upload
Employee A (Saudi, GOSI 4000001):
basic 12,000 + housing 3,000 = contributory wage 15,000.00
Employee GOSI = 15,000 × 9.75% = 1,462.50
Employer GOSI = 15,000 × 11.75% = 1,762.50
WPS net paid (after employee GOSI + other deductions) → IBAN SA....
Employee B (non-Saudi, GOSI 4000002):
basic 8,000 + housing 2,000 = contributory wage 10,000.00
Employee GOSI = 0.00
Employer GOSI = 10,000 × 2% = 200.00 (occupational hazards)
WPS net paid → IBAN SA....
-------------------------------------------------------------
GOSI employer total = 1,762.50 + 200.00 = 1,962.50
GOSI employee total = 1,462.50
WPS control record = Σ net salaries of all employee records
GOSI contributions settled on the GOSI portal; the WPS wage file uploaded via Mudad for the period.
Validation checklist
- Current GOSI rate table and contributory-wage definition (basic + housing) used; floor/cap applied
- Establishment number, period and Mudad/bank account (IBAN) correct
- Nationality set per employee: Saudi (Annuities + SANED + hazards) vs non-Saudi (hazards only)
- Employee and employer GOSI shares computed on the clamped contributory wage
- WPS detail record per employee (IBAN, bank code, basic, housing, allowances, deductions, net)
- WPS control/header total = Σ detail records; registered wage matches GOSI records
- GOSI settled and WPS file uploaded via Mudad by the monthly deadline (no late/short payment flags)
Last updated: 2026-06-04 — confirm the active schema version, field codes, and ZATCA requirements against the current Zakat, Tax and Customs Authority specifications before use.