Know your Nitaqat band before the ministry tells you.
SaudizationMeter is a SaaS product for HR teams at Saudi private-sector companies. It calculates the company's Nitaqat band from its real roster, shows what a hire or a resignation would change, and keeps a compliance history for audits. We designed and built all of it, from the calculation engine to the marketing site.

One wrong spreadsheet cell can cost a company its visas.
Nitaqat decides whether a Saudi company can hire from abroad, renew work permits and bid for government work. Most HR teams still track it in Excel, so they find out about a band drop after it has happened.
The target moves with headcount
The required percentage isn't one number. It comes from a logarithmic formula with different coefficients for each economic activity, and the ministry revised it again in April 2026.
Not every Saudi counts as one
A Saudi paid SAR 4,000 or more counts once, between 3,000 and 3,999 counts half, and below that not at all. Employees with disabilities count four times, up to a cap. Part-time, hourly and dual-employment staff each have their own rule.
HR can't see ahead
The question HR actually gets is "how many Saudis do we need to reach Platinum, and what will it cost?" A spreadsheet can't answer it safely.
The numbers have to match Qiwa
If the tool says Mid Green and Qiwa says Low Green, the tool is useless. The thresholds had to match the official calculator exactly and stay matched.
A calculator HR can plan with.
Four things the product does, from the first free calculation to the monthly report.
The band, live
Every hire, termination or salary change recalculates the rate and band on a gauge, with the gap to the next band and an alert when the band drops. Employees are added by hand or imported from CSV.
What-if, and Auto-Solve
HR models hires, departures and salary changes without touching live data. Auto-Solve works backwards: pick the band you need and it proposes the cheapest mix of hires to reach it.
History for audits
Dated snapshots of the roster and band, exported as PDF, Excel or CSV reports in Arabic or English, and a monthly compliance email to owners on paid plans.
Built to be sold
Several companies per account, owner, admin, editor and viewer roles, team invites, and Free, Starter, Pro and Enterprise plans billed through Paddle. A free public calculator on the site brings in new users.
The rules live in one tested engine.
Everything that decides a band is plain TypeScript with no database or network calls, so every rule can be tested on its own.
Where the numbers come from
- Official coefficients for 2,807 activity codes in 41 groups, 22,256 formula rows, collected by sweeping Qiwa's own calculator
- Band thresholds from y = m × ln(headcount) + c, with flat thresholds where an activity has none
- A canary on the 1st and 15th of every month re-checks 30 random activities against the live Qiwa API and alerts us on any drift
- Profession-level targets (marketing, sales, procurement and engineering) shown alongside the main band
What it runs on
- Next.js 16 · React 19 · TypeScript · Tailwind · shadcn/ui
- Supabase: PostgreSQL with row-level security per company, Google sign-in
- Band-drop emails sent from the app through a Supabase Edge Function and Resend
- next-intl for Arabic and English, Paddle for billing, Sentry for errors, on Vercel
Why it was built this way.
Pure functions for the rules
Credit rules are where compliance tools go wrong. Keeping the calculator free of I/O means each rule, including the edge cases like the disability cap and micro-entity exemption, has its own tests.
Checked against the source, on a schedule
The ministry changes thresholds without notice. Instead of trusting a one-off import, the data is compared with Qiwa twice a month, so a change shows up as an alert to us, not a wrong band for a customer.
Each company sees only its own roster
Salaries and nationalities are sensitive. Row-level security in the database, not just checks in the app, keeps every company's data separate.
Premium, authoritative, and culturally resonant.
The color palette anchors on a "Brand Green" scale, symbolizing growth, compliance, and the Saudi national identity, paired with premium gold accents.
Clarity at scale.
HR plans hiring instead of reacting to it.
Matches the official calculator
Thresholds come from Qiwa's own data and are re-checked against it every two weeks.
A warning before the drop
Owners and admins get an email when a new snapshot shows the company has dropped a band.
Proof on file
Dated snapshots and exportable reports show the band on any past date.
Faster on phones
Mobile Largest Contentful Paint went from 5.7 s to 3.3 s, and the mobile Lighthouse score from 67 to 87.
Building a complex SaaS platform?
If you need robust engineering for regulatory or data-heavy applications — let's talk.