KKader HR
ShadoApps ServicesالعربيةWork sample · fictional client
Software Requirements Specification

HR and payroll system: attendance, leave, the payroll run and wage protection

A web system for a mid-sized contracting company in Riyadh with 84 employees. It moves HR off Excel files, paper leave requests and a payroll worked out by hand every month, onto a payroll run that is reviewed, approved and exported as a Wage Protection System file, with expiry alerts on employee documents and an end-of-service calculator.

Version
1.0
Date
Sep 2026
Status
Ready for sign-off
Prepared by
ShadoApps

Interactive prototype: 10 web screens: employees, attendance, approvals, the payroll run, wage protection, GOSI and end of service.

Open the prototype

1Executive summary

The company employs 84 people, 52 Saudi and 32 non-Saudi, across the head office and three sites. Attendance sits on a fingerprint terminal whose records are exported by hand, leave requests are on paper, payroll is worked out in an Excel file every month and takes three days, the wage protection file is built manually, and iqamas and contracts expire with no advance warning.

This document specifies a web system covering employee master data and documents, attendance and leave, approval workflow, the payroll run and its approval, the wage protection file, GOSI contributions and the end-of-service award. The initial estimate is 700–960 development hours, that is 12–16 weeks for a team of two developers.

2Current state and objectives

Problem todayImpactObjective in release 1
Payroll is run in ExcelThree working days a month, and errors that are hard to traceA payroll run calculated by the system, then reviewed and approved in recorded steps
The wage protection file is built by handRisk of missing the deadline, and violationsThe file exported straight from the approved payroll run
Leave requests are on paperInaccurate balances and disputesAn electronic request with a calculated balance and an approval workflow
Attendance is exported from the fingerprint terminal by handLate and unexplained deductionsA daily import feeding the payroll run directly
No alert before iqamas and contracts expireViolations and work stopping without warningAlerts at 60, 30 and 7 days before expiry
Assumption

Headcount and its split come from the discovery session, and are to be confirmed before sign-off.

3Users and roles

RoleWhat they doWhat they cannot see
EmployeeSees their own leave balance and payslip, and files their own requestsCannot see colleagues' records
Line managerApproves their team's leave and sees their attendanceCannot see their pay
HR specialistMaintains employee master data, documents, attendance and leave, and prepares the payroll runCannot give the payroll run its final approval
Finance managerReviews and approves the payroll run, and exports the wage protection file—
General managerApproves exceptions, pay increases and reports—

4Release 1 scope (MoSCoW)

MustRequired to launch

  • Employee master data: contract, pay and its components, documents and their expiry dates
  • Expiry alerts for the iqama, the contract and certificates
  • Attendance: import from the fingerprint terminal, plus lateness, absence and overtime
  • Leave: entitlement and balances, requests and the approval workflow
  • Payroll run: calculation, review, approval and lock
  • A payslip for every employee
  • A wage protection file ready to file
  • GOSI contributions on rates that can be updated
  • End-of-service award calculator
  • Role-based permissions and an audit trail
  • Reports: labour cost, absence, leave and turnover

ShouldValuable, not a launch condition

  • Employee self-service portal on mobile
  • Salary advance requests and their recovery by instalments
  • Electronic signature on contracts and letters
  • Export of the payroll journal to the accounting system
  • English interface

CouldIf time allows

  • Periodic performance appraisal
  • Training plans and certificates
  • Geolocated attendance for site staff

Won'tNot in release 1

  • Recruitment and applicant tracking
  • General accounting
  • Custody and asset management
  • Multi-currency payroll

5Functional requirements

Story format: "As a… I want… so that…". Acceptance criteria use Given / When / Then.

Employees and documents EMP

US-01

As an HR specialist, I want one record per employee holding the contract, the pay and the documents, so that I stop hunting through folders.

Must
US-02

As an HR specialist, I want an alert before any document expires, so that site work does not stop because of an expired iqama.

Must

Given a document expiring within 60 days, then an alert appears on the HR dashboard and repeats at 30 and 7 days, and the system records who acknowledged it.

Attendance and leave ATT

US-03

As an HR specialist, I want attendance imported daily from the fingerprint terminal, so that lateness, absence and overtime are calculated without keying.

Must

Given a full working day, when an employee clocks in more than 15 minutes after the shift starts, then the system counts it as lateness and it appears in the month's report (BR-02).

US-04

As an employee, I want to see my leave balance and file a request, so that I know my entitlement before I ask.

Must

Given my balance is not enough, then the system blocks submission and shows the available balance and the date the next accrual falls due.

US-05

As a line manager, I want to approve or reject my team's requests with a reason, so that the decisions stay on record.

Must

When I approve the request, then the balance is reserved at once, the approval passes to HR, and the employee is notified of the outcome.

Payroll PAY

US-06

As an HR specialist, I want the month's payroll run generated from contracts, attendance and requests, so that I stop building a new Excel file every month.

Must

When I generate the run, then the system calculates for each employee: basic pay and allowances, overtime, deductions for lateness, absence and advances, and the employee GOSI contribution, and shows the variance against the previous month for review.

US-07

As a finance manager, I want to approve the payroll run and lock it, so that it cannot change after payment.

Must

When I approve the run, then the system locks it and accepts no edit, and any later correction is an adjustment in the following month's run carrying its reason (BR-05).

US-08

As a finance manager, I want to export the wage protection file from the approved payroll run, so that I file it on time without re-keying.

Must

Given an approved run, then the file is generated with every employee's details, amounts and payment channels, and the system shows the time left to pay (BR-06).

US-09

As an employee, I want my monthly payslip, so that I understand my earnings and my deductions.

Must

GOSI and end of service GOV

US-10

As a finance manager, I want GOSI contributions calculated on rates that can be updated, so that the system stays correct when the regulations change.

Must

Given a Saudi employee, then the contribution is calculated on the subject wage (basic plus housing) at the employee and employer rates held in settings, subject to a ceiling on the subject wage. And given a non-Saudi employee, then the contribution is employer-only at the occupational hazards rate (BR-07).

US-11

As an HR specialist, I want the end-of-service award calculated by reason for leaving, so that the final settlement is paid without dispute.

Must

Given termination by the employer, then the award is half a month for each of the first five years and one month for each year after that, pro-rated for part years. And given a resignation, then the system applies the entitlement fractions for the length of service (BR-08).

US-12

As a general manager, I want labour cost, absence and turnover reports, so that I decide on the numbers.

Must

6Business rules

IdRule
BR-01Annual leave entitlement accrues pro rata each month, and the employee sees an available balance and a balance reserved by requests not yet taken.
BR-02Lateness is counted from 15 minutes after the shift starts, and three occurrences in a month equal one day's deduction, unless the manager approves a recorded exception.
BR-03Overtime hours are approved by the line manager before they enter the payroll run.
BR-04A salary advance does not exceed one month's pay, and is recovered in instalments of no more than 25% of monthly net pay.
BR-05Once approved, a payroll run is locked; any correction is an adjustment in the following month carrying a recorded reason.
BR-06The wage protection file is exported only from an approved payroll run, and the system flags the statutory deadline for payment after the end of the pay period.
BR-07GOSI rates and the ceiling on the subject wage are held in system settings, not in code, and the date of every change is recorded.
BR-08The end-of-service award is calculated on final wage: half a month for each of the first five years and one month for each year after that, pro-rated for part years, with the entitlement fractions applied in the case of resignation.
BR-09An employee's pay is changed only by a decision approved by the general manager, filed in the employee record with its effective date.
Assumption

The lateness and advance rules are internal and proposed here, for company management to adopt. The statutory rules are for the labour adviser to review before launch.

7Data model and payroll run lifecycle

The payroll run is the central entity of every month: it pulls contracts, attendance and requests into a single picture that is reviewed, approved and locked, and the wage protection file and the payslips are built on it.

EntityKey fieldsRelationships
EmployeeName, nationality, national ID or iqama, hire date, department, line manager, bank accountHas a contract, documents, requests and attendance records
ContractType, term, basic pay, allowances, working hours, effective dateBelongs to an employee, and keeps dated versions
DocumentType, number, expiry date, attachment, alert statusBelongs to an employee
Attendance recordDate, clock-in, clock-out, lateness, overtime, source of the recordBelongs to an employee
RequestType (leave / advance / resignation), duration or amount, approval status, reasonHas an approval workflow
Payroll runMonth, state (draft / under review / approved / posted), total, who approved it and whenHas one line per employee
Payroll linePay, allowances, overtime, deductions, employee GOSI contribution, netBelongs to a run and an employee
Wage protection fileMonth, headcount, total, generation date, filing statusBelongs to an approved run
Audit trailUser, action, value before and after, reason, timeNot editable

Monthly payroll run lifecycle

DraftUnder reviewApprovedPosted and paid
Under reviewReturned for correctionwith the reviewer's note on the line
PostedAdjustment in the following monthno retroactive edits (BR-05)

8Non-functional requirements and compliance

IdAreaRequirement
NFR-01Financial accuracyEvery amount carries two decimal places, and re-generating the payroll run from the same inputs gives the same result.
NFR-02PerformanceA payroll run for 84 employees generates in under 30 seconds, and an employee record opens in under a second.
NFR-03ConfidentialityPay data is shown only to users who hold the permission, and does not appear in shared reports.
NFR-04Personal data protectionEmployee data and documents are processed with consent and notice, retained only for the statutory period, with a breach notification procedure within 72 hours.
NFR-05AuditabilityEvery change to pay, deductions or approvals leaves a trace carrying the user, the reason and the time.
NFR-06Hosting and backupA data centre inside the Kingdom, and a daily backup whose restore is tested monthly.
NFR-07LanguageArabic right-to-left first, Gregorian dates, with the Hijri date shown on letters.

9Integrations

IntegrationPurposePriorityNotes
Wage Protection System (WPS) file, filed through MudadFiling the monthly payroll returnMustIn release 1: export the file in the required format and file it through the platform. A machine interface is an open question.
Fingerprint terminalDaily import of attendance recordsMustThrough an export file or the device interface, depending on the model installed.
BankSalary transfer fileMustIn the format of the company's bank.
GOSIMonthly reconciliation of contributionsShouldManual reconciliation in release 1.
Email and SMSRequest notifications and payslipsMust—
Accounting systemExport of the payroll journalShouldAn export file in release 1.
Reference · wage protection

The Wage Protection System (WPS) monitors the payment of private-sector wages. It covers every registered establishment, whatever its size, and a monthly return is filed carrying every employee's details, amounts and payment channels. The source consulted states that payment must be made within 10 days of the end of the pay period, and that being late is recorded as a violation.

Reference · GOSI contributions

As published for 2026: Saudis registered before 3 Jul 2024 carry a combined rate of 21.5% (employer 11.75%, employee 9.75%); those registered after that date fall under stepped higher rates that are updated each year; non-Saudi residents carry 2% on the employer only (occupational hazards). The ceiling on the subject wage is SAR 45,000 (basic plus housing). This is why the rates are held in settings (BR-07) and reviewed annually.

Reference · end-of-service award

Half a month for each of the first five years, one month for each year after that, pro-rated for part years, calculated on final wage. On resignation: no entitlement under two years, one third of the award from two years to five, and two thirds from five to ten.

10Out of scope

11Delivery plan and effort estimate

ModulePhaseHours (low – high)
Design and screens, built out from the prototype145 – 60
Users, permissions and the audit trail140 – 55
Employee records, contracts, documents and alerts170 – 95
Attendance and the fingerprint terminal import1–265 – 90
Leave, balances and approvals270 – 95
Payroll calculation engine2110 – 150
Payslips and the bank transfer file245 – 60
Wage protection file2–350 – 70
GOSI and end of service355 – 75
Reports335 – 50
Testing and QA1–390 – 120
Migration from Excel, training and go-live325 – 40
Total700 – 960
PhaseWeeksOutcome
1 · Foundation1–5Employees, contracts, documents and attendance.
2 · Payroll6–11Leave, approvals, calculation, payslips and the bank transfer file.
3 · Compliance12–16Wage protection, GOSI, end of service, reports and migration.
Assumption

The estimate covers Must requirements only, for a team of two developers with a part-time tester. It excludes cleaning the Excel data before migration and the purchase of new fingerprint terminals.

12Risks and open questions

ItemTypeProposed action
Is a machine interface available for filing the wage protection file?Open questionAsk the service provider early; the fallback is an exported file filed by hand.
Fingerprint terminal model, and whether it can export automaticallyOpen questionA technical survey in phase 1 before the import method is fixed.
GOSI rates for those registered after Jul 2024 change every yearRiskRates in settings with an effective date, and a scheduled annual review.
Accuracy of the leave balances migrated from ExcelRiskA balance reconciliation signed by each employee before migration.
Reading of the Labour Law clauses in edge casesOpen questionLabour adviser review of the resignation and termination rules before launch.

13Appendix: prototype screens