AuditLink — Cross-Source Audit & Saudisation Tracking

Role: Product Manager & Lead Developer

An employee's record is spread across four systems that know nothing of one another, so a month passes with someone whose service ended still on the payroll. This tool matches them in one pass and produces an action list ordered by financial exposure.

Four tabs: source upload · comparison report · profession Saudisation · establishment band. It ingests four files — social insurance, medical insurance, payroll, and residency — and matches them on a single key. Saudisation is analysed per profession, each one shown as a card with its gap and the hires needed to close it. Every tab exports its own report, and processing runs locally so the data never leaves the system.

And six cross-audit rules, each surfacing one class of conflict and stating its remedy: active in social insurance but absent from medical cover · drawing a salary with no insurance record · and those whose service ended yet remain on payroll or on the medical policy — the two costliest findings in the report. The establishment-band tab holds a “what if” simulator showing how adding or losing staff moves the classification, before the decision rather than after.

PythonStreamlitFour-Source MatchingSix Audit RulesSaudisation (Nitaqat)Scenario SimulatorLocal ProcessingExcel Export

Key Features

Six Cross-Audit Rules

Each rule surfaces a conflict and states its remedy — costliest: service ended, still on payroll or insurance.

Four-Source Matching on One Key

Social insurance, medical, payroll, and residency in a single pass; two files are enough to run the comparisons.

Per-Profession Saudisation

A card per profession carrying its rate, its target, and the hires needed to close the gap.

Pre-Decision Scenario Simulator

Add or remove staff and watch the establishment's new classification immediately, before a hire or a resignation is acted on.

Automatic Column Mapping

Headers differ between sources and between Arabic and English, so no one has to normalise their files before uploading.

Local Processing, Per-Tab Export

Nothing is sent to any external party, and each report exports with one sheet per rule.

Your Band, and What It Unlocks

Beside the classification sit the services available to your establishment in its current band, and a table saying how many Saudi hires reach the next colour.

The Business Problem

An employee's record is spread across four systems that know nothing of one another, so someone whose service ended keeps drawing a salary or consuming insurance for months — and it surfaces only through a manual reconciliation nobody performs every month.

Why We Built It

Bring the four sources together in one pass on one key, and turn each conflict into an action list ordered by financial exposure rather than by the order things arrived. Saudisation is measured per profession rather than across the establishment, because each profession carries its own target. And any workforce change is tried out before it is made, instead of discovered after.

How We Built It

A Streamlit application that takes Excel files and matches them on a single key, once the required identifier format is satisfied — ten digits, no spaces or punctuation. A column-recognition layer accepts the differing headers each source uses. The six rules run in one pass and emit one sheet per rule into a single export. Two files are enough for the comparisons, while the social-insurance file alone drives the Saudisation and band tabs. All processing is local.