DWPlatform HR
Field guide · Human Resources

HR, from a name in a directory to a legally settled employment file.

What the module holds, how an employment history is actually shaped, every screen in the back office — and the Egyptian labour-law engine that decides what a leave balance, a payslip and an end-of-service settlement are allowed to say.

Updated 26 Jul 2026 Per-tenant · row-level isolated Arabic & English · RTL Egyptian labour & tax law
01 · Orientation

What the HR module is

Until now, DWPlatform's HR was a directory. It knew that a person existed, which department they sat in, what their position was called, and what their extension number was. Everything else — the things HR departments actually spend their days on — happened somewhere else, usually in a spreadsheet.

This module adds the transactional half. It keeps the directory exactly as it was — chat, the phonebook and the org chart still read the same person record — and builds an employment file on top of it: hiring and termination, transfers and promotions, leave entitlement and balances, attendance, payroll with its statutory deductions, personnel documents with expiry tracking, and a compliance watch. All of it localised for Egyptian labour law, because a leave balance or a payslip is not a generic calculation — it is whatever the law says it is.

The employee file

شؤون الموظفين

One page per employee holding ten tabs of history — identity, employment, dependants, qualifications, documents, insurance, pay, loans, penalties and leave — plus every transfer and the end-of-service settlement.

Leave & attendance

الإجازات والحضور

Leave types with their own rules, per-employee balances (رصيد الأجازات) with every movement, daily attendance, overtime and absence — the inputs payroll needs before it can calculate anything.

Payroll

الرواتب

Monthly runs built from pay elements, with social insurance, salary tax, loan instalments (سلفة), penalties and absence applied under statutory ceilings — and a stored audit trace behind every figure.

Grades & structure

التنظيم

The grade and step ladder (الدرجات والأجور) that transfers, promotions and pay decisions attach to, so an assignment is a position on a scale and not a free-typed number.

Documents

المستندات

Every personnel document — contract, national ID, insurance form, work permit — with issue and expiry dates, so an expiring ID becomes a warning weeks before it becomes a problem.

Compliance watch

المتابعة

Obligations and breaches the system detects itself — from a leave balance that has gone three years without settlement to an absence pattern approaching statutory thresholds.

HR back office · الموارد البشرية · العربية
HR back office in Arabic, showing the six top-level menus and the employees list
Where everything lives. Opening الموارد البشرية lands on the employees roster, under a six-menu bar that is the map of the whole module: شؤون الموظفين (employee affairs) · التنظيم (organization) · الإجازات والحضور (leave & attendance) · الرواتب (payroll) · المتابعة (monitoring) · الإعدادات (settings). Everything in this guide hangs off one of those six. Note the interface is fully right-to-left — the menu, the table and the pagination all mirror.
Aشؤون الموظفين — the employee roster, the employee file, transfers (نقل موظف), end of service (إنهاء الخدمة) and personnel documents.
Bالتنظيم — the grade and step structure that assignments refer to.
Cالإجازات والحضور — leave types, balances and daily attendance.
Dالرواتب — payroll runs, pay elements, social affairs (الشئون الاجتماعية), social insurance and salary tax.
Eالمتابعة — the legal-compliance watch list.
Fالإعدادات — the module's own configuration.
HR back office · Human Resources · English
The same HR screen rendered in English, left-to-right
The same screen in English. Nothing is a translated screenshot of a different build — the module carries both languages and flips direction with the tenant's locale, so شؤون الموظفين becomes Employee affairs, the table re-anchors to the left and the sort arrows reverse. What does not translate is data the tenant typed: the work-location column still reads المقر الرئيسي, because that is a value in their database, not a label in ours.
HR back office · 390px
The HR module on a 390-pixel-wide phone: the six menus collapse to a القائمة button and the table drops to its three identifying columns
The same module on a phone. At 390px the six-menu bar collapses behind a القائمة button, the filters stack, and the table keeps only the three columns that identify a row — employee number, department, job title — while the rest scroll. Note the footer counts and pager survive intact: an HR clerk checking a number on the way to a meeting needs to know which page they are on. There is no horizontal page scroll, in either language direction.
02 · Data model

The three-level employment model

Almost every mistake an HR system makes traces back to storing employment as a single flat row per employee: one hire date, one department, one salary, overwritten whenever something changes. That design cannot answer "what was true last March", cannot survive a re-hire, and quietly destroys the evidence a labour court would ask for. DWPlatform splits employment into three levels, and the split is the reason the rest of the module works.

1 · Personpermanentthe human being

The directory record — name, national ID, contact details. It is created once and it never goes away, because it is shared with the rest of the platform: chat looks up a person here, so does the phonebook, so does the org chart, so does every people-picker in every module. A person exists whether or not they currently work for you, which is exactly what makes re-hiring, alumni records and historical payroll possible.

one person can have several…
2 · EmploymentPeriodone hire → terminationa stint

A single continuous spell of employment: hired on a date, terminated on a date (or still open). If somebody leaves and comes back three years later, they get a new period — the old one is never reopened. That is not a modelling preference, it is a legal fact: the closed period was settled. Gratuity was calculated and paid on the service that existed then, accumulated leave was cashed out under art. 125, and social-insurance form 6 was filed with the authority. Reopening it would silently rewrite figures that a former employee has already been paid and the state has already recorded.

each period contains a chain of…
3 · EmploymentRecordeffective-datedan assignment

What the employee actually was between two dates — department, job title, branch, grade, category, contract type. A transfer (نقل موظف) or a promotion does not edit the current row; it closes it on the day before the new effective date and opens the next one. The file therefore reads as a timeline, and the system can answer the only question that matters when money is involved: what was true on this date?

2023-07-16 → 2025-03-31
Sales · Officer · G2

closed by the promotion

2025-04-01 → 2026-05-14
Sales · Senior · G3

closed by the transfer

2026-05-15 → open
Operations · Senior · G3

current assignment

One period, three records. Ask the file "what was this employee's department on 1 January 2026" and it answers Sales — not because someone remembered, but because the row that was open on that date says so.

Why effective dating earns its keep: two ordinary events break any system that overwrites. A mid-month promotion means one payroll month must be paid partly at the old grade and partly at the new one — impossible unless the month contains two assignment rows. And a late correction ("the transfer was actually effective the 1st, not the 15th") must change history without erasing what was believed at the time. Effective-dated rows handle both by construction; a single mutable row handles neither.

Two rules that reach across stints

If periods were fully independent, a re-hired employee would restart at zero on everything. Egyptian law says otherwise on two points, so the engine deliberately reaches back across closed periods for these — and only these.

Total service drives leave

art. 124(3)

Total service = every employment period with this employer, plus recorded prior external service. Once that total reaches ten years the annual leave entitlement steps up to 30 days, and it does so even though the current period may be six months old. The employee file shows both numbers side by side — إجمالي مدة الخدمة (total) and مدة الخدمة الحالية (current) — precisely because they are different quantities that answer different questions.

Probation happens once

art. 90

Article 90 allows an employer to place a worker on probation once. So when a second period is opened for a person who already completed a period with this employer, the system refuses to set a probation end date. It is not a warning the user can dismiss — a second probation would be void anyway, and a void clause sitting in a contract field is worse than no clause, because payroll and termination logic would both act on it.

03 · Screen tour

شؤون الموظفين — employee affairs

The first menu holds the four things you do to an employment: find the employee, open their file, move them, and end their service.

شؤون الموظفين › الموظفون
The employees roster with status and department filters, employee-number search and a paginated table
The roster (الموظفون). The columns are deliberately the ones you use to identify somebody rather than describe them — employee number, department, job title, hire date, work location, status. Filters sit above: all statuses, all departments, and a search on the employee number, because that is the identifier written on every internal form. Status pills read على رأس العمل for serving staff. ملف الموظف in the actions column is the way into everything else.
شؤون الموظفين › ملف الموظف — EMP-1001
The employee file for EMP-1001 with four service-duration tiles and ten tabs
The employee file (ملف الموظف). Four tiles across the top state the service arithmetic the law cares about: إجمالي مدة الخدمة (total service, in days), مدة الخدمة الحالية (current period, in years), خبرة سابقة (recorded prior external experience) and فترات التعيين (how many employment periods this person has had). Below them sit ten tabs. The open one, البيانات الأساسية, groups identity, emergency contact, bank details (IBAN included, because payroll pays into it) and the statutory identifiers — insurance number, insurance office, tax file number — which are the numbers every government form asks for.
TabArabicWhat it holds
Basic dataالبيانات الأساسيةIdentity, contacts, bank & IBAN, insurance and tax numbers
EmploymentالتوظيفThe periods and the effective-dated assignment rows inside them
DependantsالمعالونFamily members — relevant to allowances and to bereavement/childcare leave
QualificationsالمؤهلاتDegrees and certificates, with graduation year
DocumentsالمستنداتThis employee's slice of the personnel-document register, with expiry
InsuranceالتأميناتThe social-insurance profile: number, office, start date, insurable wage
Pay & entitlementsالأجور والاستحقاقاتThe pay elements assigned to this employee and their values
LoansالسلفAdvances (سلفة), their instalment schedule and outstanding balance
PenaltiesالجزاءاتDisciplinary penalties, each capped by law before it can be deducted
LeaveالإجازاتEntitlement, balance and every movement for this employee

Ten tabs sounds like a lot until you notice that each one is a different kind of record with a different lifecycle. Flattening them into one long form is how HR systems end up with pages nobody can finish filling in.

شؤون الموظفين › نقل موظف
The transfer form with target department, job, branch, grade, category, effective date, change type and reason
Transfer (نقل موظف). Pick the employee, and the form shows the current assignment before asking for the new one — you are always moving from something. The two fields that make this more than an edit form are تاريخ السريان (effective date, required) and نوع التغيير (change type: transfer, promotion, and so on). Submitting closes the current record and opens the next from that date. سبب النقل captures the reason, which is what an audit reads a year later.
شؤون الموظفين › إنهاء الخدمة
End-of-service screen with case counters and an empty state
End of service (إنهاء الخدمة). Termination is modelled as a case with its own settlement, not as a status flip: counters track total cases, cases still under settlement (قيد التسوية) and the total amount settled. That framing matters because ending a period triggers a chain — gratuity on total service, cash-out of the remaining leave balance, closing the insurance file — and each step needs somewhere to live while it is in progress.
04 · Screen tour

التنظيم and الإجازات والحضور

Two menus that supply payroll with its raw material: the structure an assignment points at, and the leave and attendance facts that turn a monthly salary into an actual amount.

التنظيم › الدرجات والأجور
The grades and wages table listing a grade with code, Arabic and English names, step count and status
Grades & wages (الدرجات والأجور). The pay ladder: each grade carries an order, a code, a bilingual name, the number of steps (عدد الدرجات) inside it, and an active flag. Transfers and promotions attach to a grade and category rather than to a typed salary, which is what lets a tenant move a whole grade without editing employees one by one — and what makes "who is on G3" a question with an answer.
الإجازات والحضور › أنواع الإجازات
The leave types table with ten types and their per-type rule columns
Leave types (أنواع الإجازات). Ten seeded types — annual, casual (عارضة), sick, maternity, paternity, Hajj, unpaid, childcare, bereavement and study. What makes this a rules table rather than a list is the columns to the left of each row: is it paid, does it require approval, does it require a document, does it draw down the annual balance, and what are the annual and per-request maximums. Maternity carries 120 days; casual carries 7 a year. Change a rule here and every future request of that type obeys it — the rules are data, not code.
الإجازات والحضور › رصيد الإجازات
Leave balance screen with employee and year selectors and an empty state
Leave balances (رصيد الأجازات). Deliberately scoped by employee and year before it will show anything. A balance is not a single number you can render for everybody at once — it is an opening entitlement plus every movement (accrual, taken, cancelled, cashed out) within one leave year, and the screen shows that movement detail (تفصيل الحركات) rather than just the remaining figure, because "why is my balance 14 and not 21" is the question people actually ask.
الإجازات والحضور › الحضور والانصراف
Attendance screen with employee selector and from/to date range, loading rows
Attendance (الحضور والانصراف). Daily in/out records, overtime and absence for one employee across a date range. Payroll reads exactly two things from here: the overtime hours that feed the OVERTIME earning, and the absent days that feed the ABSENCE deduction. Everything else on the screen exists so a human can check those two numbers before a run is locked.
05 · Screen tour

الرواتب — payroll

Payroll is three screens: the runs that produce payslips, the elements a payslip is assembled from, and the social-affairs ledger of money owed in both directions.

الرواتب › دورات المرتبات
Payroll runs screen with year tabs for 2025, 2026 and 2027 and a new-run button
Payroll runs (دورات المرتبات). A run is a month, created explicitly, calculated, reviewed and then locked. Years are tabs, so reopening last year's evidence takes one click. The lock is the important state change in the whole module: before it, figures may move; after it, payslips are published to employees, the numbers become the record, and any correction has to be made as a new, visible adjustment rather than a quiet edit.
الرواتب › عناصر الأجر
The pay elements table listing fifteen elements with their tax and insurance treatment flags
Pay elements (عناصر الأجر). The fifteen building blocks of a payslip, and — the whole point of the screen — how each is treated. Every row declares whether it is taxable, insurable, part of the overtime base and part of the end-of-service base. Only BASIC is all four; allowances such as TRANSPORT, HOUSING and MEAL are taxable but not insurable, which is exactly the distinction that decides how much social insurance an employer owes. Kinds run earning → deduction → employer cost, and the order column fixes the sequence in which they are applied.
الرواتب › عناصر الأجر · English
The same pay elements table in English showing Kind, Calculation, Taxable, Insurable, Overtime base and EOS base columns
The same table, read in English. Useful here because the column names are the model: Kind (earning / deduction / employer cost), Calculation (fixed, attendance-driven, instalment, statutory), then the four treatment flags. Note that SI_EMPLOYER and EMERGENCY_FUND are typed as employer cost, not deduction — they cost the employer money but never reduce the employee's net pay, and the model refuses to blur the two.
الرواتب › الشئون الاجتماعية
Social affairs screen on the loans tab, showing a loan with principal, monthly instalment, instalment count and remaining balance
Social affairs (الشئون الاجتماعية). Three tabs — loans (السلف), aid grants (الإعانات) and penalties (الجزاءات) — grouped together because they share one property: each one produces a recurring line on future payslips. The loan row shows principal, monthly instalment, number of instalments and remaining balance, with a جار السداد (repaying) status. Payroll deducts the instalment, but only up to the statutory ceiling described below — which is why the remaining balance, not a schedule of dates, is the authoritative figure.
06 · Screen tour

التأمينات and الضرائب

Two screens that sit under the payroll menu and hold the state's half of the payslip: the social-insurance profile with its rate and band tables, and the salary-tax profile with its six ladders.

الرواتب › التأمينات الاجتماعية
Social insurance screen split into an employee insurance profile panel and a rates and limits panel
Social insurance (التأمينات الاجتماعية). Split in two on purpose. On one side, the employee's insurance file (الملف التأميني) — their insurance number, office and insurable wage. On the other, the rates and limits in force (الأسعار والحدود السارية), loaded as reference data rather than written into the calculation. A tenant who has not yet loaded the tables sees the empty state shown here; a tenant who has sees the exact percentages and the minimum/maximum insurable wage that payroll will clamp against.
الرواتب › ضرائب كسب العمل
Salary tax screen showing the employee tax file panel and the six selectable tax ladders
Salary tax (ضرائب كسب العمل). The employee's tax file above; below it, the six ladders (شرائح الضريبة) — and their names give the whole game away: Full ladder — 0% band applies, 0% band withdrawn — starts at 10%, 0% and 10% withdrawn — starts at 15%, 0%, 10% and 15% withdrawn — starts at 20%, Starts at 22.5%, and First EGP 1.2m at 25%, remainder at 27.5%. The subtitle states the rule plainly: the applicable ladder is selected by annual net income. Each carries an effective-from date, so a future change of law is a new row, not a new release.
07 · Screen tour

المستندات and المتابعة

شؤون الموظفين › المستندات
The personnel documents register with counters, a table of documents by employee and a strip of required document types
Personnel documents (المستندات). A single register across all employees rather than a folder per person, because the question this screen answers is organisational: what is about to expire? Three counters sit on top — total documents, documents expiring within the alert window, and already expired — and the table sorts the nearly-expired to the front with amber ينتهي خلال ٢٠ يوم pills, then valid ones (ساري), then documents with no expiry at all such as contracts (عقد العمل). Along the bottom runs the required document types strip — national ID, birth certificate, qualification, military-status certificate, criminal record, health certificate, photographs, insurance form 1, driving licence, work permit — with an asterisk on the mandatory ones.
المتابعة › الالتزام القانوني
The legal compliance screen filtered to open items, showing a clean empty state
Legal compliance (الالتزام القانوني). The subtitle is the design brief: breaches and obligations the system detects before the inspector does. Items are filtered by state (open / all) and by severity (الدرجة), and a clean list — as shown here — is a meaningful result, not an empty screen. What lands here is generated by the rules in the next section: leave that has gone unsettled past its three-year limit, an employee who has not taken the statutory minimum days, an absence pattern crossing a warning threshold.
08 · The heart of it

The Egyptian compliance engine

This is the part that cannot be bought off the shelf. A generic HR system will happily accrue 21 leave days for a 30-day employee, deduct social insurance on a full 25,000 EGP salary, tax a high earner as if the brackets simply stacked, and take a whole month's wages to clear a loan. Each of those is a specific, expensive breach of Egyptian law. The engine below encodes the rules that stop it.

Leave entitlement — Law 14/2025, art. 124

Annual leave is not one number. It is a tier the employee climbs, and two of the steps are triggered by things other than time in the current job.

EntitlementApplies whenWhy it is easy to get wrong
15 daysFirst year of serviceOften coded as a pro-rata of 21 instead of its own tier
21 daysFrom the second year onward
30 daysTotal service reaches 10 years or the employee turns 50Both triggers are outside the current employment period — age is not service, and total service spans earlier stints
45 daysEmployees with a disabilityA status on the person, not an event in the period
+7 daysHazardous workAn addition on top of the tier, not a replacement for it

Casual leave إجازة عارضة

art. 128

7 days a year, at most 2 per occasion — and it comes out of the annual balance. Casual leave is not an extra week; it is a right to take annual leave without notice, capped so that it cannot be used to take a holiday in two-day slices. A system that treats it as a separate pot silently hands every employee 28 days.

Accumulation & cash-out

art. 125

Three obligations that run together: accumulated leave must be settled in cash every three years; the employee must actually take at least 15 days a year, of which at least 6 consecutive; and any unused balance is cashed out on termination. The middle rule is the one nobody expects — leave is a health-and-safety provision, so hoarding it is itself the breach, which is why unhoused balances surface on the compliance screen rather than sitting quietly as an asset.

Social insurance — Law 148/2019

Contributions are a percentage of the wage — but not of the actual wage. The wage is first clamped into an insurable band, and both ends of that band rise 15% every January through 2028.

ContributionRatePaid byBase
Social insurance11%EmployeeClamped insurable wage
Social insurance18.75%EmployerClamped insurable wage
Martyrs' fund صندوق الشهداء0.05%EmployeeGross
Emergency fund صندوق الطوارئ1%Employer onlyGross — never deducted from the employee
Worked example · verified on the live system

A 25,000 EGP salary in 2026

The 2026 insurable band runs from EGP 2,700 to EGP 16,700. A salary of 25,000 is above the ceiling, so the contribution is calculated on 16,700, not on 25,000:

Actual monthly wage25,000.00what the employee is paid
Clamped to insurable ceiling16,700.00the base the law prescribes
Employee share @ 11%1,837.0016,700 × 11%
Naïve (wrong) calculation @ 11%2,750.0025,000 × 11% — over-deducts by 913.00 every month

Getting this clamp wrong is the single most common error in Egyptian payroll software, and it is invisible until somebody senior is hired: at low salaries the clamp never binds, so the bug ships and then surfaces months later as a systematic over-deduction from exactly the employees most likely to notice.

Salary tax — six ladders, not one

Egypt is not a plain marginal system. In an ordinary progressive system every taxpayer walks up the same brackets and only the top slice of income is taxed at the top rate. Egypt withdraws the lower bands as income rises: cross a threshold and the 0% band disappears for you entirely, cross the next and the 10% band goes too. That is why the module ships six selectable ladders and picks one by annual income, rather than accumulating a single set of brackets.

Annual band (EGP)Rate
up to 40,0000%
40,001 – 55,00010%
55,001 – 70,00015%
70,001 – 200,00020%
200,001 – 400,00022.5%
400,001 – 1,200,00025%
above 1,200,00027.5%
Personal exemption20,000

The full ladder, as it applies to the lowest tier. The tier table below then says which parts of it you are allowed to use.

Annual net incomeWhich ladder applies
up to 600,000Full ladder — the 0% band applies
over 600,0000% band withdrawn — the ladder starts at 10%
over 700,0000% and 10% withdrawn — starts at 15%
over 800,0000%, 10% and 15% withdrawn — starts at 20%
over 900,000Starts at 22.5%
over 1,200,000The whole first 1.2m is taxed at 25%; the remainder at 27.5%

State it plainly: a tax engine that simply accumulates marginal bands under-taxes everyone earning over EGP 600,000. It will look correct in every test built from an average salary, and it will be wrong for every executive — with the employer, not the employee, carrying the liability for under-withholding.

Deduction ceilings — how much can be taken from a wage

A payslip is not a bank statement: the law limits how much of a wage may be taken in a month, no matter what is owed.

CeilingLimitArticle
Advances and debt recovery (سلفة)at most 25% of the wage — 50% where the debt is alimonyart. 114
A single disciplinary violationat most 5 days' wageart. 143
All penalties within one monthat most 5 days' wage in totalart. 140

The engine defers, it does not forgive. When a month's instalments or penalties would breach a ceiling, the excess is carried to the following month — the debt is not written off, and the employee is not let off. What is illegal is taking it this month. That distinction is why the loans screen treats the remaining balance as authoritative rather than a fixed schedule of dates: the schedule stretches, the total does not move.

Absence thresholds

Unexplained absence has two statutory milestones, and the module watches both.

THRESHOLD 1
Warning

5 consecutive or 10 scattered days — a warning must be sent by registered letter.

THRESHOLD 2
Deemed resignation

10 consecutive or 20 scattered days — the absence may be treated as a resignation.

SYSTEM
Flag only

The case is raised on the compliance screen for a human to decide.

The system flags; it never auto-terminates. Crossing a threshold makes termination legally available, not automatic — the employee may be in hospital, the notice may not have been served, the days may have been mis-recorded. Ending somebody's employment is a decision a human must take and sign, so the engine's job stops at putting the case in front of one.

Statutory data is data, not constants

Every number above — the leave tiers, the 11% and 18.75%, the insurable band, all six tax ladders, the ceilings — lives in effective-dated reference tables, not in code. Two consequences follow, and both matter more than they sound.

  • When the law changes — and the insurable band changes every January through 2028 by design — it is a data update, not a release. No redeploy, no code review, no regression risk in unrelated modules.
  • Re-running or re-opening an old payroll uses the rates that were in force then. A 2025 payslip recalculated in 2027 still reads as a 2025 payslip — which is the only behaviour that survives an audit.
09 · Evidence

The payslip audit trace

A payslip that shows only its results is an assertion. A payslip that shows its working is evidence — and in a labour dispute, evidence is the entire point.

Every payslip the module produces stores its full working alongside its figures: which rate table was in force, what the wage was clamped to and against which band, which of the six tax ladders was selected and what each band contributed, and every ceiling that was applied along with the amount it deferred. The trace is written at calculation time and locked with the run.

What is stored

  • The rate table version used, with its effective date
  • The insurance clamp: actual wage, band floor and ceiling, resulting base
  • The selected tax ladder and the amount taxed in every band
  • Each ceiling applied, what it capped, and what it deferred forward

Why store it rather than recompute

Because recomputing answers a different question. Rerun the calculation two years later and you learn what today's engine, today's reference data and today's employee record produce — not what was actually withheld and remitted at the time. Only a stored trace can say this figure, on this date, for this reason. It is the labour-court record, and it is also the fastest way to answer the ordinary version of the same question: an employee asking why last month's net was lower than the month before.

10 · Assurance

Verified on the live system

Everything in this guide describes deployed software. These are the checks that were actually run against it, not a list of intentions.

  • Tenant isolation, proven at the database. 240 SQL Server row-level-security predicates over 80 tables — every HR table is filtered by tenant in the engine itself, not in application code. Each tenant sees only its own rows; an unknown tenant sees nothing at all; a cross-tenant write is rejected by the engine rather than by a forgotten WHERE clause.
  • Payroll reconciled to the piastre. A full run was compared against an independent hand-calculation — gross, the insurance clamp, the selected tax ladder, the deductions and the net — and matched exactly.
  • The three art. 124 tiers reproduced. Real employees at different service lengths were checked to land on 15, 21 and 30 days respectively — including the 30-day case reached through total service rather than the current period.
  • A leave request travelled the whole path. Submitted through the self-service UI by a real employee, it arrived in the approval engine and appeared at the manager's stage — the integration, not just the form.
11 · Before you go live

Read this before a tenant runs real payroll

The payroll and end-of-service formulas require professional sign-off. Before any tenant runs live payroll, the calculations must be reviewed and signed off by a licensed Egyptian payroll accountant and a labour lawyer. This is not a formality: the executive regulations of Law 14/2025 carry operative detail that the statute itself does not, and published secondary sources conflict with one another — particularly on the bracket-elimination rule, which is exactly the area where an error is largest in money terms and least visible in testing. Treat the engine as a correct implementation of a reading of the law that a professional must confirm, not as legal advice.

Two companion guides finish the picture. Employee Self-Service covers the doorway every employee gets into their own record, and HR Requests & Approvals covers how a request travels from submission to applied effect.