Methodology
How CalcMENA is built and kept current
Every calculator on this site is derived from a specific official document. This page documents how we pick those sources, how we translate them into code, and how we keep them up to date.
Last reviewed:
Source hierarchy
When there is a conflict between sources, we always escalate to the highest available tier and re-verify.
- Tier 1 — Official regulator portals. The relevant Ministry, Tax Authority, Central Bank or Social Insurance Organisation portal is the canonical source. Whenever a calculation depends on a rate or threshold, we link back to the portal page that publishes it.
- Tier 2 — Primary legislation. Federal Decree-Laws, Royal Decrees, Cabinet Decisions, Ministerial Resolutions and gazetted regulations.
- Tier 3 — Regulator circulars and FAQs. Operational guidance issued by the regulator (e.g. FTA Public Clarifications, ZATCA guides).
- Tier 4 — Reputable secondary analysis. Big Four advisories (KPMG, EY, PwC, Deloitte) and top-tier law firms. Used to interpret ambiguous rules — never as the sole source.
Tier 1 regulator portals
The official sources we treat as canonical for each jurisdiction we cover.
United Arab Emirates
- Federal Tax Authority — tax.gov.ae
- Ministry of Human Resources and Emiratisation (MOHRE) — mohre.gov.ae
- Federal Authority for Identity, Citizenship, Customs and Port Security (ICP) — icp.gov.ae
- Dubai Land Department & RERA — dubailand.gov.ae
- Dubai Electricity and Water Authority (DEWA) — dewa.gov.ae
Saudi Arabia
- Zakat, Tax and Customs Authority (ZATCA) — zatca.gov.sa
- Ministry of Human Resources and Social Development — hrsd.gov.sa
- General Organization for Social Insurance (GOSI) — gosi.gov.sa
- Qiwa — qiwa.sa
Oman
- Tax Authority — taxoman.gov.om
- Ministry of Labour — manpower.gov.om
- Social Protection Authority (SPA) — spa.gov.om
Kuwait
- Public Authority of Manpower (PAM) — paci.gov.kw
- Public Institution for Social Security (PIFSS) — pifss.gov.kw
Bahrain
- Labour Market Regulatory Authority (LMRA) — lmra.bh
- Social Insurance Organisation (SIO) — sio.gov.bh
- National Bureau for Revenue (NBR, VAT) — nbr.gov.bh
Qatar
- General Tax Authority (GTA) — gta.gov.qa
- Ministry of Labour (ADLSA) — adlsa.gov.qa
How a calculator is built
Every calculator is implemented as a pure TypeScript module under src/calculators/, with no DOM dependency, no network calls and no I/O. The module is unit-tested with Vitest covering happy path, edge cases and known regulator-defined caps. The Astro UI layer wraps the module and provides bilingual labels through our i18n dictionary. This separation lets us verify the underlying maths independently of the presentation.
Update cadence
We review every calculator at least quarterly. When a regulator publishes a change (a new fee, a new threshold, a new Royal Decree), we update the underlying TypeScript module, update its dateModified stamp, refresh the bilingual copy and republish. The "Last updated" date on each calculator reflects the last substantive review.
How we verify accuracy
Beyond unit tests, every new calculator is dual-verified: once against a worked example published by the regulator, and once against an independent calculation in a spreadsheet. When a Big Four advisory disagrees with our calculation, we re-check the underlying Decree and update or annotate accordingly.
Known limitations
CalcMENA results are indicative. They do not constitute legal, tax or financial advice. Edge cases (collective bargaining agreements, individual contracts with non-standard clauses, transitional periods between regulations, court judgments interpreting ambiguous provisions) are by definition not handled by a generic calculator. Always verify the result with the relevant regulator or a qualified professional before acting on it.