UAE and KSA

GCCtax,computed—notguessed.

The specialist platform for the hardest GCC questions — digital assets, crypto and IP. Every figure is computed by a verified engine and cited to the article; every record is forensically sealed. Positions, schedules and review files in one place.

Digital-asset, crypto & IPEngine-computed & citedForensically sealedUAE & KSA
CT Position · Example LLC✓ sealed
Taxable income3,940,000
0% band (first AED 375k)(375,000)
Rate above band9%
LawFDL 47/2022, Art. 3
Tax payable (AED)0

Illustrative — the 0% band on the first AED 375,000 is applied (FDL 47/2022, Art. 3) and the record is Merkle-sealed.

Worked positions

Published, ungated, and computed in front of you

Anyone can claim a specialism. These are the computations — the facts, the arithmetic, every citation to the article, and the cases the engine refuses to decide.

  • Intellectual Property

    Commentary routinely says related-party R&D is excluded from the nexus fraction. It is not: R&D outsourced to any Person IN the State qualifies, related or not. Getting this backwards overstates the tax.

    Read the worked position
  • Digital Assets

    The lot-matching convention that produces the SMALLEST gain carries the LARGEST tax bill. For a Qualifying Free Zone Person the holding period decides what can be Qualifying Income, so minimising the gain is the intuitive move and the wrong one.

    Read the worked position
  • Digital Assets

    Nil basis on an airdrop is the aggressive position dressed as the cautious one. It recognises nothing today and costs MORE across two periods, because basis forgone now is gain recognised later — moved out of a year the AED 375,000 band would have absorbed it, into a year where the band is already spent.

    Read the worked position

See every published position

Two panels showing the same tax work: a disorganized spreadsheet on the left, and a structured Tax.ai workspace on the right.

How the work moves

From source data to a review-ready tax file

Source data collected.

This section shows how tax preparation moves through four stages: source data collection, field mapping with tax calculation, review and quality checks, and final output generation.

The platform

Structured for how tax work actually runs

Each part of the preparation process has a clear place: inputs, computations, supporting documents, and review steps — before anything becomes a final output.

Review-ready outputs

Memos, schedules and evidence packs prepared for review and sign-off — organized from the start.

1
2
3

Guided steps

A structured input path so your team is not starting from a blank screen.

3 of 44 services

Supporting documents

Named evidence slots keep working papers, references and calculations with the position they support.

3 of 44 services

Review and sign-off

Review comments, follow-up and final approval before a position can be promoted.

3 of 44 services

Coverage

What each jurisdiction actually covers

Counted from the live service catalog rather than described — including where the coverage is thinner.

Coverage by jurisdiction — how many services, which practice areas, and what each produces
JurisdictionWhat we computeWhat you receive
United Arab EmiratesUAE · 24 services
  • Corporate Tax · 8
  • Transfer Pricing · 4
  • Cross-Border · 3
  • Digital Assets · 3
  • Pillar Two · 3
  • E-Invoicing · 2
  • Intellectual Property · 1
  • Cited memos
  • Composed positions
  • Supporting schedules
  • Evidence packs
  • Open-items registers
  • Preparation checklists
Kingdom of Saudi ArabiaKSA · 24 services
  • Zakat · 13
  • Cross-Border · 3
  • Withholding Tax · 3
  • Transfer Pricing · 2
  • Corporate Tax · 1
  • E-Invoicing · 1
  • Pillar Two · 1
  • Cited memos
  • Supporting schedules
  • Evidence packs
  • Preparation checklists
  • Readiness scorecards

Services

44 services, 6 of them the specialism

Crypto, Digital-Asset & IP Engagement — Composed Position

UAE · Cross-Border · Specialism

Runs the seven wedge engines from one payload and composes them into a single cited deliverable whose value is the CROSS-ENGINE interactions — the findings no single-service output can produce. It prices the MD 229 Art. 4 nexus fraction against the withholding corridor (the 0% is worth max(0, 9% of base − foreign tax), and nothing at all above 9%); contrasts the de minimis treatment of non-qualifying crypto revenue, which counts, against non-qualifying IP revenue, which CD 100 Art. 4(3)(c) removes from both sides; and shows free-zone status pulling related parties into the local file under MD 97 Art. 2(2)(d).

Computed by
composeCryptoIpEngagement over the seven engines, through POST /api/engagement/crypto-ip. Returns the structured engagement, the Markdown deliverable, and a memoPdfInput ready to POST to /api/planning/memo-pdf.
You receive
A composed position table, the material and informational interactions each naming the engines it spans and the provision that connects them, an open-items register, consolidated caveats and de-duplicated statutory citations — renderable as Markdown or as a branded PDF.
Recorded
Which engines contributed, every figure attributed to the engine that produced it, and each interaction recorded with its spanned engines and legal basis. The composer never recomputes, so a figure in the memo is the figure the engine produced.
Refuses to
A malformed engine block is reported in engineErrors and the remaining engines still compose, because a partial position with a named gap beats a rejected request. Where fewer than seven engines contributed the deliverable says so — an absent engine is an absent finding, not a clean one. Anything an engine returned as ASSESS, UNVERIFIED, UNBENCHMARKED or RECORDS_INCOMPLETE is collected into the open-items register rather than smoothed into the conclusion.

Runs the seven wedge engines from one payload and composes them into a single cited deliverable whose value is the CROSS-ENGINE interactions — the findings no single-service output can produce. It prices the MD 229 Art. 4 nexus fraction against the withholding corridor (the 0% is worth max(0, 9% of base − foreign tax), and nothing at all above 9%); contrasts the de minimis treatment of non-qualifying crypto revenue, which counts, against non-qualifying IP revenue, which CD 100 Art. 4(3)(c) removes from both sides; and shows free-zone status pulling related parties into the local file under MD 97 Art. 2(2)(d).

Computed by
composeCryptoIpEngagement over the seven engines, through POST /api/engagement/crypto-ip. Returns the structured engagement, the Markdown deliverable, and a memoPdfInput ready to POST to /api/planning/memo-pdf.
You receive
A composed position table, the material and informational interactions each naming the engines it spans and the provision that connects them, an open-items register, consolidated caveats and de-duplicated statutory citations — renderable as Markdown or as a branded PDF.
Recorded
Which engines contributed, every figure attributed to the engine that produced it, and each interaction recorded with its spanned engines and legal basis. The composer never recomputes, so a figure in the memo is the figure the engine produced.
Refuses to
A malformed engine block is reported in engineErrors and the remaining engines still compose, because a partial position with a named gap beats a rejected request. Where fewer than seven engines contributed the deliverable says so — an absent engine is an absent finding, not a clean one. Anything an engine returned as ASSESS, UNVERIFIED, UNBENCHMARKED or RECORDS_INCOMPLETE is collected into the open-items register rather than smoothed into the conclusion.

Attributes the return from an intangible to the parties that CONTROL its Development, Enhancement, Maintenance, Protection and Exploitation. FDL 47/2022 Art. 34(5)(d) requires the functions performed, assets employed and risks assumed to be taken into account; DEMPE is the OECD framework the FTA Transfer Pricing Guide adopts to discharge that, and the engine says so rather than dressing guidance as statute. Legal ownership without controlled substance earns nothing, and funding without control of the funding risk earns a risk-free return only.

Computed by
assessDempe via computeUAEDempeAnalysis through /api/actions/run.
You receive
Per-participant control share, residual entitlement and verdict (entitled to residual / routine / risk-free / risk-adjusted / bare legal owner), the functions nobody controls, and whether legal ownership diverges from substance — each cited to primary law.
Recorded
Every participant with the functions it controls, the functions it performs without controlling, its funding role and risk position, and the weighting assumption applied to reach the split.
Refuses to
UNBENCHMARKED pricing where no arm’s length range is supplied — a DEMPE analysis establishes WHO is entitled to the return, not HOW MUCH. An out-of-range result is never snapped to the median, because Art. 34(8) requires the result that best reflects the facts. A range with no stated comparables source is rejected, and a method outside Art. 34(3) is refused without the Art. 34(4) demonstration.

Computes the free-zone 0% / 9% split on intellectual property income under Ministerial Decision 229 of 2025 Art. 4: Qualifying Income = (Qualifying Expenditures + 30% up-lift, capped at Overall Expenditures) / Overall Expenditures × Overall Income. Only two of the five expenditure buckets dilute the fraction — out-of-State related-party R&D and acquisition cost — because Art. 4(2)(a) restricts the related-party test to the OUT-of-State limb, which most commentary states without that distinction and therefore overstates tax.

Computed by
assessQualifyingIp via computeUAEQualifyingIpNexus through /api/actions/run.
You receive
Per-asset nexus fraction, up-lift claimed / allowed / restricted, qualifying vs taxable income split, corporate tax at 9% with no zero band, and the de minimis carve-out position — each cited to primary law.
Recorded
Every asset with its classification and the clause that decides it, both expenditure measures, the Art. 4(3) cap arithmetic, and which of the four Art. 4(4) records were confirmed.
Refuses to
RECORDS_INCOMPLETE rather than a 0% verdict where any Art. 4(4) record is unconfirmed — the arithmetic is still shown, labelled as conditional. ASSESS where the right is not within the CD 100 Art. 1 enumeration, and where income exists with no Overall Expenditures behind it.

Read the worked positionFour intangibles, four different outcomes — including the one the engine refuses to decide. Every figure computed live and cited to the article.

Matches virtual-asset disposals to acquisition lots and computes the per-lot holding period that decides Qualifying Free Zone treatment. Ministerial Decision 229 of 2025 Art. 2(3)(d) deems securities held "for investment purposes" only after an uninterrupted 12 months, so the lot-matching method changes the tax verdict and not merely the measured gain — the engine computes FIFO, LIFO, specific identification and weighted average, and reports the spread.

Computed by
assessVirtualAssetDisposals via computeUAEVirtualAssetDisposal through /api/actions/run.
You receive
Disposal schedule with per-lot holding periods, qualifying / non-qualifying gain split, method-comparison table, de minimis position, and corporate tax payable — each cited to primary law.
Recorded
Every matched parcel with its lot id, acquisition date, holding period in days, 12-month verdict, basis and proceeds, plus the method applied and reviewer sign-off.
Refuses to
ASSESS rather than a bare number where token characterisation under MD 229 Art. 2(3)(d)(2) is unsettled; unmatched disposal units are flagged as overstating the gain rather than silently assuming nil basis.

Read the worked positionThe same disposals under all four lot-matching conventions, with the tax each one produces. The answer depends on a choice most filers do not know they are making.

Characterises every non-purchase virtual-asset receipt and produces the acquisition lots the disposal engine consumes. Separates a service fee (taxable Business income) from own-account rewards (a characterisation question the FTA has not settled), and costs both basis policies for airdrops and forks so the deferral is visible.

Computed by
assessVirtualAssetReceipts via computeUAEVirtualAssetReceipts through /api/actions/run.
You receive
Receipt characterisation schedule — per-receipt Corporate Tax verdict, income recognised, basis carried, and the acquisition lots ready for the disposal engine.
Recorded
Each receipt with its kind, date, quantity, market value, Corporate Tax verdict and citation, plus the basis policy applied and reviewer sign-off.
Refuses to
ASSESS rather than a rate where the FTA has published no clarification — staking-as-a-service, overseas place of supply, and airdrop / hard-fork basis, where both positions are costed instead of one being chosen silently.

Read the worked positionBoth basis policies for an airdrop costed end to end — two engines, two tax periods, one lifetime total each.

Deterministic Corporate Tax treatment for crypto, tokens, and digital-asset activity — the 0%/9% CT band (Federal Decree-Law 47 of 2022) — with conservative ASSESS verdicts where the FTA has drawn no bright line (business-vs-investment, QFZP qualifying status).

Computed by
assessVirtualAssetTax via computeUAEVirtualAssetTax through /api/actions/run.
You receive
Defensible virtual-asset tax memo — CT verdict, payable figure, cited primary law, and CARF/VARA reporting plus caveats.
Recorded
Entity, activity, supplied figures, verdict, cited primary law, and reviewer sign-off.
Refuses to
Conservative ASSESS verdict with an explicit caveat where business-vs-investment characterisation or QFZP qualifying status is unresolved.

Builds the IAS 12 tax position: current tax at enacted or substantively enacted rates (.46), the deferred movement measured at the rate expected on reversal (.47, .49), allocation across profit or loss, other comprehensive income and equity (.58, .61A), and the .81(c) rate reconciliation with the basis of the applicable rate disclosed. It also handles the part most implementations get backwards: IAS 12.4A forbids recognising or disclosing deferred tax for Pillar Two top-up tax, while .88A–.88D IMPOSE disclosures beside it, and .88B requires the Pillar Two current tax expense to be presented SEPARATELY rather than folded into current tax. A model that reads .4A as "say nothing about Pillar Two" omits mandatory disclosure.

Computed by
computeIAS12 via computeIAS12Position through /api/actions/run.
You receive
Current, deferred and total tax expense with the allocation across profit or loss, OCI and equity; the deferred line for each temporary difference; the .81(c) rate reconciliation and effective rate with the applicable rate and its stated basis; deductible differences carrying no asset (.24, disclosable under .81(e)); the Pillar Two disclosures required by .88A–.88D; and the Pillar Two current tax expense presented separately per .88B.
Recorded
Every temporary difference with its carrying amount, tax base, resulting deferred balance and allocation; the average reversal rate and how it was derived; each reconciling item in the .81(c) reconciliation; and every judgement the engine had to make, listed rather than absorbed.
Refuses to
Reports Pillar Two deferred tax as a COUNT and nothing else. IAS 12.4A prohibits disclosing information about those balances, so no description, amount or identifier for them appears anywhere in the output — a count is the most that may be said, and saying more would breach the standard the service exists to apply. Separately, `pillarTwoCurrentTaxExpense` is `null` where no Pillar Two current tax arises, which is not the same as nil and is never folded into current tax expense. Recoverability of a deferred tax asset is an input, not a conclusion: the engine does not judge whether future taxable profit will be available, and a difference marked unrecoverable is reported under .24 rather than recognised.

Three questions a Saudi financial institution answers under the Common Reporting Standard, as ZATCA’s CRS Guidance Notes state them. What an entity is: a Custodial Institution at 20% or more of income from holding assets for others, an Investment Entity at 50% or more, a Specified Insurance Company above 50% — each operator different and each measured from the figures — or an Active NFE by one of eight limbs, or a Passive NFE whose Controlling Persons are reported; a Managed Investment Entity outside a Participating Jurisdiction is looked through. Which pre-existing accounts are reviewed: an individual’s linked accounts, joint balances in full and negatives as nil, High Value above US$1,000,000 with a Relationship Manager’s knowledge counted; an entity’s above the US$250,000 exemption, where the guidance’s own example gives the FATCA US$1,000,000 instead. And the penalties: SAR 500 a day to SAR 15,000 for a late report, SAR 5,000 or 3,000 per violation. And a correction message checked before upload, CRS or FATCA: the message indicator, the resent Reporting FI, every CorrDocRefID traced to the latest record rather than one a later correction replaced, new DocRefIDs unique, uncorrected accounts left out, the original’s channel, and FATCA’s rule that corrected data answers an IRS request only.

Computed by
classifyKSACRSEntity, assessKSACRSPreexistingAccountReview, computeKSACRSReportingPenalty and validateKSAAEOICorrection via computeKSACRSDueDiligence through /api/actions/run.
You receive
The classification with every Financial Institution and Active NFE test as met, not met or unestablished and the measured share behind each; or the review tier with each account aggregated and why, the procedures, the deadline and how Controlling Persons are established; or the penalty lines and total.
Recorded
Each test cites its section of the Guidance Notes and prints the ratio against its operator; each aggregated account says which rule brought it in; the two places the guidance contradicts itself are named where they bite.
Refuses to
REFUSES an unstated question, a stated answer the figures contradict, a figure without its denominator, and an account list that does not contain the account under review. Never classifies an entity as an NFE while any Financial Institution test is unestablished. Applies §8.2’s US$250,000 and names §5.12.2 Example 3’s US$1,000,000; measures each account holder on its own where §5.12.4 Example 2 adds two entities together. The penalty amounts rest on the guidance’s statement of the Special Regulations, whose text is not in hand.

A request to ZATCA for the Mutual Agreement Procedure under a double tax treaty. Most KSA treaties allow three years from the first notification of the action; the treaty with Syria allows two, and France, Italy, Russia and the United Kingdom set two years that the Multilateral Instrument is to amend without ZATCA’s guidance saying to what — so the two-year date is kept as the one that cannot be missed. ZATCA treats the case as justified only on written notice of an actual or proposed action with the adjustment, amounts and basis, or on a good-faith self-initiated adjustment; an audit before any position paper, an information request, discussions or general guidance do not qualify. MAP reaches income tax and Zakat, not penalties or interest, and no Saudi treaty has arbitration.

Computed by
assessKSAMapRequest, with resolveTreatyKey against the WHT treaty matrix, via computeKSAMapRequest through /api/actions/run.
You receive
The time limit and deadline with the longer date where one is possible but unestablished, whether the request is in time, the justification verdict with its reasons, the covered and excluded tax heads, and the dated obligations that follow.
Recorded
Each figure names the section of ZATCA’s MAP guidance it follows, and the result says where it relies on the guidance’s general statement rather than a treaty’s own article.
Refuses to
REFUSES an unstated partner, action or first notification. Never takes a longer period it cannot establish: the four MLI treaties stay at two years, and every other partner’s three years is flagged as the guidance’s general statement to be checked against the treaty. Marks justification ASSESS where the notice’s content or a self-adjustment condition is unstated. Flags a partner not in the treaty matrix, since without a treaty there is no MAP.

The Special Integrated Logistics Zone gives 0% income tax and 0% withholding for FIFTY years from the licence date — and its withholding exemption runs the opposite way to the Regional Headquarters one on the corridor that matters most. RHQ reaches payments to UNRELATED persons for services necessary to the RHQ activity; SILZ exempts royalties and service fees ONLY WHERE THE RECIPIENT IS A RELATED PERSON, and "recipient" means the ultimate beneficial owner, so a related conduit paying on to an unrelated owner does not qualify. Dividends and loan charges are exempt outright. Anything else is withheld at the ordinary domestic rate.

Computed by
assessSilzWithholdingIncentive and calculateSilzApportionedTaxBase via computeKSASilzIncentive through /api/actions/run.
You receive
The verdict (applies / disapplied / assess), the withholding rate where the incentive decides it, every withdrawal provision that fired with the section that carries it, every fact left unestablished, the separate §5 enforcement exposure, and — where the figures are supplied — the §6.2.1 apportioned tax base and the 20% on it.
Recorded
The licence and payment dates and which side of the fifty-year boundary they fall, the payment class and the condition that governs it, each disapplication with its section, and each unestablished fact stated as unestablished rather than assumed either way.
Refuses to
Never treats an unestablished fact as satisfied: an absent related-person answer produces ASSESS, not APPLIES, because the royalty and service limbs are exempt ONLY where the condition holds. The §5 enforcement triggers — false or misleading information, intentional misuse of the incentives, and facilitating payments for persons not eligible — are reported on their own axis rather than folded into the verdict, because they put the licence and the whole fifty-year benefit at risk rather than changing this payment’s rate. The apportionment formula is surfaced as the CONSEQUENCE of breaching the separate-accounts obligation rather than as a method a taxpayer may elect, and it is flagged as blunt: it applies the ineligible income ratio to the entire tax base, so a low-margin ineligible line is taxed as though it earned the zone’s margin.

Computes what a Saudi payor must actually DEDUCT AND REMIT on a cross-border payment, which is not always the treaty rate. ZATCA offers two routes to treaty benefits (February 2025 DTAA bulletin): relief AT SOURCE against an approved application, and PAY-AND-REFUND under Circular No. 3227/19, where the domestic rate is withheld and the excess reclaimed. A tool that reports only the treaty rate tells the payor to under-withhold, and the payor — not the payee — carries the shortfall plus a 1%-per-30-days delay fine. Where the route is unstated the engine shows the domestic deduction and SAYS it is a fail-closed default, never a determination. The refund is not interest-free to the Authority either: ITL Art. 72 with Implementing Regulations Art. 66 pays 1% for every 30 days it holds the excess, running from 30 days after the request.

Computed by
calculateKSAWHT via computeKSAWHT through /api/actions/run.
You receive
The domestic and treaty rates, the relief MECHANISM, what must be remitted now, what is reclaimable afterwards and what that reclaim is worth by the time it arrives, the evidence the chosen route requires, whether the payment type was classified or merely asserted, and the RHQ verdict where RHQ facts were supplied — each cited to primary law.
Recorded
The rate applied and the article it came from, the route taken and the evidence list for that route, the classification source for the payment type, every contested-rate disclosure with each guideline’s own position, and the refund-compensation period count with the date the clock started.
Refuses to
Discloses rather than resolves where ZATCA’s own current guidelines disagree. On two corridors — technical services and international telecommunications paid to a head office or related party — three May 2026 guidelines give different rates; the engine applies the HIGHEST stated one, names every source with its own number, reports any guideline that is SILENT on the corridor as silent rather than as agreement, and says the Arabic text prevails. It does not decide deductibility, and it does not decide whether an at-source application has been APPROVED: the February 2025 bulletin is silent on what to withhold while one is pending, and the engine says so instead of guessing.

Prices the withholding tax a Saudi branch or subsidiary suffers on head-office charges. ZATCA’s Guideline on the Conditions of Deductible Expenses (Second Version, May 2026) §3.1.2 runs the relief BACKWARDS from the intuition: the payment DENIED a deduction credits its withholding against income tax under ITL Art. 68(g), and the payment ALLOWED a deduction does not — relief is given once, in the base or against the tax, never both. A transfer-pricing add-back is excluded from the credit entirely, so it does not behave like an ordinary disallowance. Any excess over the year’s tax is FORFEITED: §3.1.2 states the increase "may not be carried forward to the following year", which makes it a permanent difference in the effective-rate reconciliation rather than a deferred tax asset.

Computed by
assessKSAWithholdingCredit via computeKSAWithholdingCredit through /api/actions/run.
You receive
Per-payment credit verdict with the provision that decided it, the qualifying credit before the annual cap, the credit actually applied, the amount permanently forfeited, the withholding still awaiting a deductibility determination, and income tax after the credit — cited to ITL Art. 68(g) and the guideline section.
Recorded
Every payment with the tax withheld on it, its deductibility determination, whether a transfer-pricing adjustment applied, and the reason its credit was granted, refused or left open — so a reviewer can see which of the three the engine relied on for each line.
Refuses to
Makes NO deductibility determination of its own: it consumes one. A payment whose deductibility was not assessed yields NO credit and is reported separately as unassessed, because absence of a determination is not a determination of non-deductibility — and claiming a credit you were not entitled to invites an assessment with a 1%-per-30-days delay fine, while forgoing an available one is recoverable by amendment inside the five-year window. It also does not decide whether withholding was due: the same guideline states that the non-deductible nature of an expense "shall not subsequently impact its withholding tax treatment", so the two determinations are independent and only the CREDIT couples them.

Every Zakat period has to be dated before it can be priced, and its position decides whether a short one is charged at all. Art. 10 starts the first Zakat year on the earliest of the commercial register, the first necessary licence and the capital deposit, whatever the Memorandum says. Art. 11 stops collection on permanent cessation only if a written application follows within 60 days; otherwise Zakat accounting runs on to the application, so a payer that ceases on 1 November and applies in January turns a 305-day closing period Art. 15(4) exempts into a full chargeable year. Temporary and partial cessation stop nothing; liquidation ceases the payer the day it is initiated; any other dissolution runs to completion. A 1440H year is answered from ZATCA’s 1440H guideline, which charged a late notice as a full year.

Computed by
assessKSAZakatActivityPeriod via computeKSAZakatActivityPeriod through /api/actions/run.
You receive
The first Zakat year start and the events that set it, the registration date under Art. 98(1), the first period with its chargeability, a documented start date priced beside the statutory one; for a cessation, the 60-day deadline, whether the application was in time, the day Zakat accounting ends, every dated final period in the shape the amount engine takes, and the periods had the application been in time.
Recorded
Each period carries its dates, its day count, its position and the article that decides whether it is charged; each cessation answer quotes Art. 11 or 12, or the 1440H guideline where that edition governs.
Refuses to
REFUSES an unstated payer track or cessation kind, a commencement with no date, a cessation outside the year given, and any year before 2019. Never substitutes a documented start date for the statutory one, since ZATCA decides it. With no application yet, decides nothing and shows the in-time periods. Does not split a late period across year-ends it cannot infer, and applies no holiday extension to the 60 days, which the Regulation does not provide.

Turns book profit into the adjusted net profit the 1445H Regulation works from, which does two jobs: the difference is added to the Zakat base (Art. 23(3)), and the adjusted figure itself decides whether the Art. 27 minimum governs. Art. 60 adds a PROFIT on revenue the Authority finds undeclared, not the revenue — the higher of the return’s own gross margin and a 15% deemed margin, so a thin-margin business pays on 15% and a fat-margin one on its own. Art. 61 adds back expenses declared above the Authority’s figure and never the reverse. Art. 65 accepts a written-off debt only on four cumulative conditions, the certificate waived at or below 1% of revenue or on a final bankruptcy judgment, and never for a debt owed by a related party.

Computed by
computeKSAAdjustedNetProfit, computeUndeclaredRevenueAdjustment, computeInflatedExpenseAdjustment and assessKSABadDebt via computeKSAAdjustedProfit1445H through /api/actions/run.
You receive
Every adjustment with its article and basis, the difference that is added to the base, the adjusted net profit, and a verdict on each bad debt — ACCEPTED, REFUSED with the condition that failed, or ASSESS with the fact still missing.
Recorded
Both Art. 60 margins computed and the higher named, the one-way direction of Art. 61 stated on every expense line, and each Art. 65 condition shown as met, failed or unestablished.
Refuses to
Never adds the undeclared revenue itself, only the profit on it. Where the return’s margin cannot be computed it tests the 15% limb alone and says the result is a floor. Never reduces profit for an expense declared below the Authority’s figure — that needs an amendment under Arts. 103–104. A bad debt with a missing fact is left in profit and flagged ASSESS rather than refused on an assumption. Refused expenses outside Arts. 60, 61 and 65 are taken as stated by the caller and reported back with their reason, because whether an expense is actual, related to the activity and documented is not something arithmetic can decide.

Turns a Zakat base into a figure payable under Arts. 15 and 84–89 of the 1445H Implementing Regulation. Art. 15(1) sets 2.5% for a HIJRI year; Art. 15(2) does not set a second rate, it sets an equation — (2.5% ÷ days in the Hijri year) × days in the fiscal year — so 2.5777% is only what that yields for a 365-day year against a 354-day Hijri year, and a leap year gives 2.5847%. The Regulation never states the Hijri year’s length; ZATCA’s Zakat General Guideline (1445H) applies 354 in every worked example, which is what is used, with 355 priced alongside. A new entity formed by merger is not pro-rated at all: Art. 14(1) charges a short first year as one full year and a long one as two. Arts. 15(3) and 15(4) then decide whether the period is chargeable at all, and give OPPOSITE answers for the same short period depending on which end of the activity’s life it sits at. A payer assessed on an arbitrary basis is on a different rule entirely: Art. 84 excepts it from Art. 15, Art. 85 exempts a short period at either end, Art. 86 floors the liability at SAR 500, and Art. 89 assesses the base from sales as (Sales ÷ 8) + (Sales × 15%). A year beginning 2019 to 2023 is charged under Art. 14 of the 1440H Regulation instead, which takes the adjusted net profit inside the base at a flat 2.5% and only the rest by days — and a request for the 1445H base provisions does not change that, because it reaches the base, not the rate.

Computed by
computeKSAZakatAmount, ksaZakatRatePercent and computeZpAaZakatBase via computeKSAZakatAmountFromBase through /api/actions/run.
You receive
Whether the period is chargeable and why, the rate as the Art. 15(2) equation produces it, the Zakat due, whether the Art. 86 minimum decided the figure, and the Hijri-year sensitivity as two priced scenarios — plus, for an arbitrary-assessment payer, the sales figure with its source and every Art. 89(3) standard that could be computed.
Recorded
The equation written out with both day counts substituted, the article that made the period chargeable or not, and the article behind every floor. A reviewer can reproduce the rate on paper.
Refuses to
REFUSES an unstated payer track rather than assuming legal accounts, and an unstated fiscal year rather than assuming the 1445H rate rule; refuses a year before 2019, whose rate rule is not implemented. For a 1440H year with no adjusted-profit figure it charges the whole base by days and says whether that is the most or the least the Zakat can be. Keeps chargeability and amount on SEPARATE axes, so a lawful nil under Art. 15(4) cannot be mistaken for a nil base. Charges a short period from a change of year-end on its actual days and says where that comes from — ZATCA’s Zakat General Guideline (1445H) §5.4.2 — because the Regulation itself covers only the first and last periods. Never applies the SAR 500 minimum to a legal-accounts payer, because Art. 86 sits in the arbitrary-assessment chapter and applying it there would overcharge. And where the Art. 89(2) sales floor was not supplied it says the floor was not tested, rather than implying the declared figure passed it.

Computes the Zakat base as the Implementing Regulation of 1445H actually defines it, for fiscal years beginning on or after 1 January 2024. Every item at the END-OF-PERIOD balance (Art. 17). Provisions split two ways under Art. 24 — equity absolutely, except those representing a stable debt to non-owners, which are liabilities added only when non-current — with contra-asset provisions excluded entirely. Partners’ credit loans by legal form under Art. 30, where a loan already classified as equity can never be moved back. Deducted assets are the CEILING on the liabilities added (Art. 23), not merely a subtraction, and their complement sets the Art. 27 floor. Both Art. 25 placement corrections, each capped at the asset that triggered it. And the base clamped below by Art. 27, which once it governs cannot be reduced by distributions or adjusted for investment results.

Computed by
computeKSAZakatBase, assessZakatDeductibility and computeOffPlanProjectDeduction via computeKSAZakatBase1445H through /api/actions/run.
You receive
The base with every step shown: equity and its equivalents after reclassification, liabilities before and after placement, each placement correction, the profit difference, the unclamped base, both limits, which limit applied, and a line for every reclassification naming the article that required it — plus per-item deduction verdicts and the off-plan calculation where those were supplied.
Recorded
Each reclassification with its article, each placement correction with its ratio and cap, the deducted-assets ceiling where it bound the liabilities, and the limit that governed. A reviewer can follow the base from the statements to the number.
Refuses to
REFUSES fiscal years beginning before 1 January 2024 rather than computing them on the wrong basis: the regulation it replaced measured differently, and an engine that answers both without saying which is wrong on one side. It makes no deductibility judgement of its own inside the arithmetic — deducted assets are an input — and the separate condition tests return ASSESS with the missing fact named rather than guessing, because a silent yes is a deduction the Authority did not allow. The Art. 28 maximum is computed and reported but cannot bind while Art. 23 caps liabilities at the deducted assets; if it ever does, the engine says the model is wrong rather than presenting a result.

Whether a state-owned company, an endowment-owned payer, a charity, NGO or training unit, or a non-profit company is exempt from Zakat collection under Art. 7 of the 1445H Regulation and Ministerial Resolution 57732. Each states a 10% limit, and each measures it against something different: private-sector sales against total sales, specific-person spend against an endowment’s total revenues, against a charity’s net profit, or against a non-profit company’s revenues with owners’ and directors’ benefits counted. Several owners are weighted by ownership, nothing survives partial ownership, and every exemption is an annual request within 120 days that leaves registration, books and the related-party disclosure in force.

Computed by
assessKSAZakatExemption via computeKSAZakatExemption1445H through /api/actions/run.
You receive
EXEMPT ON REQUEST, NOT SUBJECT, SUBJECT or ASSESS, every condition as met, failed, unestablished or contested with its authority, the ratio with the quantity it was measured against, and what an exemption still leaves the payer to do.
Recorded
Each condition names the article, resolution or guideline paragraph it comes from; the weighted ratio is written out owner by owner; a contested condition states both texts.
Refuses to
Never assumes a condition: an unstated one is ASSESS. An NGO at exactly 10% of net profit passes, because the Regulation’s Arabic and the 1444H rules say "does not exceed" (لا يزيد عن), whatever the English translation’s "less than". A charitable association that spends anything on specific persons is ASSESS, because the Arabic Regulation and the 1444H rules (Ministerial Resolution 61600) give the 10% exception to civil institutions (المؤسسات الأهلية) only and the 1445H Guideline applies it to associations; a training unit that does fails. An endowment-owned payer turns on what the endowment deed stipulates, not only the year’s spend. A 2019-2022 year takes the 2023 endowment or charity rules on request where no final decision of subjection exists, and is SUBJECT only where one does. A non-profit company whose beneficiaries pass one by one but fail in aggregate is ASSESS with both readings. A year no rules or request reach is ASSESS, not a verdict.

Banks, SAMA-licensed finance and refinancing companies and CMA-licensed finance funds do not build a Zakat base from additions and deductions. Art. 67 of the 1445H Regulation multiplies their sources of funds — equity, liabilities falling due a year or more out, long-dated negative derivatives — by the share of total assets that are Zakat assets. Arts. 71–72 then hold the result between four and eight times net profit before the Zakat charge, or between 40% and 80% of gross profit after a loss, or nowhere when neither was reached. The rate is the Art. 15 day-count equation, and the return is due in 120 days under Art. 102(1) — not the 180 that ZATCA’s own guideline prints once. A year beginning 2019 to 2023 is computed under Resolution 2215 instead, which leaves the part of an in-year outside capital increase matching the days before it out of equity, lists eight non-Zakat assets rather than eleven, and forbids consolidating with a non-financing owner rather than moving the payer onto the general base.

Computed by
computeKSAZakatFinancingActivities, with computeKSAZakatAmount for the Art. 15 rate, via computeKSAZakatFinancing through /api/actions/run.
You receive
Sources of funds line by line, every asset with its Art. 70 item and verdict, the Zakat-asset ratio unrounded, the formula result, which limit applied and why, the base, every alternative reading that would change it with its own figure, and the Zakat due.
Recorded
The Art. 67(1) equation written out with its three figures substituted, the profit figure each limit came from, the article behind every line, and the filing deadline with the contradiction it resolves.
Refuses to
REFUSES an unstated payer kind or fiscal year, and a year beginning before 2019 unless the payer has requested the 1445H provisions. Gives no figure for a finance fund’s year before 2024, because the resolution that brought funds under the 1440H rules is not in hand. Never invents a limit: with no net profit supplied, or a loss without gross profit, it returns the unbounded formula result and says the limits could not be chosen. An Art. 70 asset whose condition is not stated is counted as a Zakat asset and the other answer is priced, never deducted on an assumption. Where Art. 68(2)’s English and the Guideline’s Example 4 disagree on which long-term liabilities a bank counts, both figures are shown. Art. 16(6) takes a payer consolidated under a non-financing owner out of the regime, and a payer in liquidation gets no figure, because the Guideline says the formula stops and nothing says what replaces it.

The Zakat and income tax the State bears on Ministry of Finance riyal sukuk under Ministerial Decision 2218, as amended by Decisions 1343 and 319. Two bases are built, with and without the sukuk; which of three equations applies depends on where each sits against the adjusted-profit minimum. The third equation takes the whole difference between the bases although the deducted base is lifted back to the minimum, so it can relieve more Zakat than the sukuk add; the result reports both. Conditions, the Riyal Sukuk Program cut-off from 2020, the fund route from 2023, and the cap at the Zakat paid are each stated.

Computed by
computeKSAGovernmentSukukRelief via computeKSAGovernmentSukukRelief1445H through /api/actions/run.
You receive
The case, both bases, the rate for each part, the borne amount before and after the fund and amount-paid caps, the Zakat the sukuk actually add where Case 3 applies, the income tax borne, and every condition as met, failed or unestablished.
Recorded
Each step names the Decision clause or the Guideline explanation it follows, with the figures substituted; the rate line says whether the 1440H split or the 1445H single rate was applied and why.
Refuses to
States no amount where the case needs gross profit or the sukuk returns and they are missing, and none for a loss year where deducting the sukuk takes a positive base below zero, which the Guideline does not address. Never bears a negative amount. A failed condition leaves the amount shown but NOT ELIGIBLE. Decisions 2218, 1343 and 319 were read from the Arabic; for a 1440H year Case 3 follows the Guideline’s two-rate arithmetic where the Decision prints one rate, and warns with the single-rate figure beside it.

An investment in an establishment outside the Kingdom (Art. 44), or in a company not subject to the Regulation (Art. 47), comes off the payer’s Zakat base only if the payer pays the Zakat on it separately, within its own return, under a chartered accountant’s certificate — with Art. 27’s minimum applying "whether the profit is distributed or not". This computes that Zakat: the investee’s base built as any base is, the payer’s share, priced on the payer’s own year. Where a foreign investee’s data is out of reach, Art. 46 takes current assets less current liabilities, but only below 50% ownership and only where the payer cannot calculate, cannot reach the data and cannot give it to the accountant. Art. 47 has no such fallback.

Computed by
computeKSAIndependentInvestmentZakat, with computeKSAZakatBase for the investee and computeKSAZakatAmount for the rate, via computeKSAIndependentInvestment1445H through /api/actions/run.
You receive
Every deduction condition and every Art. 46 condition as met, not met or unestablished; whether the investment is deductible; the investee’s base and whether its minimum governed; the payer’s share; the Zakat due; and the reading without the minimum where Art. 46 leaves it open.
Recorded
The article behind each condition, the investee’s base with its own warnings, the working-capital subtraction written out, and why the payer’s year and not the investee’s prices the Zakat.
Refuses to
REFUSES an unstated kind, method, share or payer year, and a payer year before 2024 unless the 1445H base provisions were requested, because no 1440H base is implemented. Gives no Art. 46 figure at 50% ownership or more, or where any Art. 46 condition is stated as not met, and none at all for an Art. 47 investment, whose text has no fallback. A failed deduction condition leaves the figure shown and the investment NOT deductible. Where Art. 46 applies and the working capital is below the investee’s reported profit, the base is raised to that profit and the unfloored figure is priced beside it, because Art. 46 does not say whether Art. 44(4)’s minimum survives.

A fund files an information return and pays nothing; a unit holder that deducts its units pays Zakat on them itself — the fund’s own Zakat base × the holder’s share × the Art. 15 rate (Art. 78). The fund’s base is built on the Regulation’s ordinary rules with net assets attributable to unitholders as equity, and its minimum is Art. 27’s lower-of floor, not the higher-of that every worked example in ZATCA’s Funds Guideline uses. Deduction is a choice; trading units cannot be deducted; units in a fund established abroad (an Art. 44 foreign investment), financing-fund units, estimated-basis holders and a wholly owning holder filing a consolidated return sit outside the rules. For an equity fund, the trading portion comes from the highest month’s turnover (Art. 78(2)(c)).

Computed by
computeKSAInvestmentFundUnitZakat, with assessFundUnitTradingPurpose, computeEquityFundTradingPortion, computeKSAZakatBase for the fund’s base and computeKSAZakatAmount for the rate, via computeKSAInvestmentFundUnits1445H through /api/actions/run.
You receive
Which regime applies and whether the units are deductible, every trading test met or unestablished, the fund’s base with its limits, the holder’s share, the rate and the Zakat due, the equity fund’s month-by-month turnover, and every alternative reading that changes the figure.
Recorded
The Art. 78(1) product written out, the fund base’s own reclassifications and limits from the base engine, the highest month and its ratio unrounded, and the article behind each exclusion from the regime.
Refuses to
REFUSES to assume whether the holder deducts. A trading fact left unstated makes the units ASSESS rather than deductible, and the Zakat shown is then marked as due only if they are deducted. Where Art. 42(3)(e) and the Guideline disagree about an intention to dispose, it says so. It never applies the Guideline’s higher-of minimum as the answer and never prices the fund’s year in place of the holder’s; both are shown beside the figure. A negative highest month is taken as nil with the reason, and an equity portfolio whose deduction conditions are not established stays in the fund’s base with the alternative priced.

An objection to a ZATCA Zakat decision runs 60 days from the day after notification under the Committees’ procedural rules — but Art. 117(1) makes the Zakat final 60 days from the assessment’s own date, so where notification came later there are two deadlines and only the earlier is safe. The objection is accepted in form only if all Zakat on the undisputed items is paid and at least 10% of the Zakat on the disputed items, or a guarantee for it (Art. 116(2)); ZATCA’s 2026 guideline measures the 10% against the whole assessment and asks for a 50% guarantee, and both readings are priced. The later windows — 90 days for ZATCA to decide, 30 to go to the Internal Committee or sue, 30 to appeal — are dated too.

Computed by
assessKSAZakatObjection via computeKSAZakatObjection1445H through /api/actions/run.
You receive
The objection deadline with and without a holiday extension, the Art. 117(1) deadline and the safe one, whether the filing was in time or premature, acceptance in form under each of three readings, and every later deadline with the text it comes from.
Recorded
Each deadline names its starting date, its day count and its source; each payment reading shows the base, the share and whether it was met.
Refuses to
REFUSES an unstated notification date. Never assumes a holiday calendar: without one it says the extension was not tested, and where the last day is a rest day not listed as a holiday it gives both dates, because the guideline extends only for an "official holiday". Applies Art. 116(2) and marks the result ASSESS where only a guideline reading fails. Extends no later period for a holiday, since the guideline extends only the objection period.

Residency is the gate to Zakat: Art. 3 charges a Resident Saudi person, and Art. 5(2) takes a foreign-incorporated company with its principal headquarters in the Kingdom into Zakat for its branches abroad as well. Art. 4(1) makes a natural person Resident with a permanent residence and no less than 30 days in the Kingdom, or no less than 183 days without one; part of a day counts and transit does not. Art. 4(2) makes a legal person Resident if incorporated in the Kingdom, or if two of Art. 5(1)’s three conditions are met there — board meetings, senior executive decisions, and the businesses producing the majority of revenue, which is measured from the figures and fails at exactly half. ZATCA’s residency-certificate portal offers no status for exactly 30 days, and the result says so.

Computed by
assessKSAZakatResidency via computeKSAZakatResidency through /api/actions/run.
You receive
RESIDENT, NOT_RESIDENT or ASSESS with the limb that decided it; the days counted and the transit days left out; each condition as met, not met or unestablished; whether the principal headquarters is in the Kingdom and so whether branches abroad are in; and the certificate portal status the same facts would take.
Recorded
The Art. 4 or Art. 5 text behind each condition, the guideline example matched, the quoted definition of permanent residence where it decides the answer, and the revenue ratio behind the majority.
Refuses to
REFUSES an unstated person kind or year, a day count and a stay list given together, a stated majority the revenue figures contradict, and any year before 2019. Never infers a permanent residence from the days: between 30 and 183 days without that fact the answer is ASSESS. Reports the certificate portal’s statuses beside the Regulation’s test and does not apply them, because the income-tax test the certificate rests on is not in hand.

Prices non-compliance on both sides of the Gulf from the statutory schedules rather than from rules of thumb. UAE: the fourteen-item table annexed to Cabinet Decision 75/2023 as amended by Cabinet Decision 10/2024 — AED 500 a month rising to AED 1,000 from the thirteenth for a late return, 14% per annum charged monthly on unsettled tax, a FLAT AED 500 for an incorrect return, and the two legs that genuinely bite on the Tax Difference: 1% per month on a Voluntary Disclosure, and a fixed 15% PLUS that 1% where no disclosure was made before audit notification. KSA: the ITL delay fine of 1% per completed 30 days, the greater-of late-filing test (1% of revenue capped at SAR 20,000, or 5/10/20/25% of unpaid tax by delay band), the 25% fraud leg, and the three registration fines that vary by taxpayer category.

Computed by
calculatePenalty via computePenaltyEstimate through /api/actions/run.
You receive
The penalty amount, the calculation in the statute’s own units, the item or article it comes from including any amending instrument, and — for the UAE — the complete fourteen-item schedule marked with which items this engine prices and which it does not.
Recorded
The violation priced, the unit the statute counts in (calendar months for the UAE, completed 30-day periods for the KSA delay fine), the exact table item or article relied on, and every default the engine had to announce because an input was not supplied.
Refuses to
Does NOT price a UAE fraud penalty: the KSA 25% leg has an intent test and a statutory basis with no verified UAE counterpart, so the engine returns a measured absence and says so rather than borrowing the 5% incorrect-return figure. Nine of the fourteen UAE items are reported in the schedule but not priced — records, Arabic documents, deregistration, tax-record amendment, the two legal-representative items, audit obstruction and Declarations — and they are listed so a reader can see what else bites on the same facts. Where a taxpayer category or a correction is not stated the engine applies the conservative reading and announces it as a default rather than a determination.

Answers the two questions the Economic Substance Regulations actually turn on. FIRST, whether they reach the year at all: Cabinet Decision No. 98 of 2024 ends them for financial years BEGINNING on or after 1 January 2023, while the Ministry of Finance cancelled the Notification and the Report for years ENDING after 31 December 2022 — two different tests that diverge on a straddling year, where the substance requirements applied and no filing was ever due. SECOND, what can honestly be concluded: Cabinet Resolution 57/2020 Art. 6(1)(c) asks for an ADEQUATE number of qualified employees, SUFFICIENT operating expenditure and SUFFICIENT tangible assets, judged against the nature and scale of the business, and states no numerical minimum anywhere. So this service never issues a pass. It determines ABSENCE, which is a fact, and reports adequacy as the judgement the Resolution leaves it.

Computed by
assessUAEEconomicSubstance via computeESRCheck through /api/actions/run.
You receive
The period verdict, which test was applied (the Art. 6(5) holding-company set is shorter, not easier), the limbs determinably ABSENT with the article requiring each, the limbs whose adequacy is a judgement, whether the Notification and Report were due for that year, and the Art. 13–15 penalty exposure with the filing limbs removed where no filing was due.
Recorded
The financial year tested and which side of each of the two repeal dates it falls, the activity and the test applied, every absent limb with its article, every element left to judgement, and the penalty schedule as it stood for that year.
Refuses to
NEVER certifies compliance, and this is the point rather than a limitation: the Resolution states no numerical minimum for employees, expenditure or assets, so a tool that reports "substance met" is reporting a number that is not in the law. A limb the caller did not state is reported as UNTESTED, not as absent — the opposite error would manufacture failures from blank fields. The one place silence IS a determination is high-risk Intellectual Property, where Art. 7(3) reverses the burden and an unrebutted presumption is a finding against the licensee. Rebuttal evidence addresses that presumption without discharging it, because sufficiency is the Authority’s judgement. The engine makes no claim about fines already imposed or paid for the cancelled years: the Ministry announcement is silent on them.

Prices foreign withholding tax suffered on income flowing INTO the UAE. FDL 47/2022 Art. 47(2) caps the credit at the Corporate Tax due on the relevant income and Art. 47(3) forbids carry-forward, so a Qualifying Free Zone Person’s 0% income has a nil ceiling and the foreign tax is destroyed outright. Tax borne on a stream is max(foreign tax, UAE tax), which means the free-zone exemption is worth max(0, 9% of the base − foreign tax) — exactly nothing once the source state withholds at 9% or more.

Computed by
assessForeignTaxCredit via computeUAEForeignTaxCredit through /api/actions/run.
You receive
Per-stream credit allowed, credit permanently lost, what the 0% rate is worth after foreign tax, over-withholding recoverable at source, the treaty verdict (including whether an agreement exists at all), and the Art. 44 settlement order applied — each cited to primary law.
Recorded
Every stream with its UAE base, the Art. 47(2) ceiling and how it was derived, the foreign tax against it, the credit denied under Art. 47(3), and the treaty article relied on where one was supplied.
Refuses to
Ships NO table of UAE treaty rates and assumes none: a treaty rate is used only when the treaty and article are named, and is otherwise reported UNVERIFIED. It does, however, separate UNVERIFIED from NO_TREATY_IN_FORCE, because those send a client in opposite directions — one means go and find the rate, the other means there is no rate to find and a Tax Residency Certificate buys nothing at source. A verified register carries the corridors with no agreement (Germany, whose treaty expired 31 December 2021 and which widely-repeated partner lists still name; and the United States, where none was ever concluded), and a rate supplied for such a corridor is REFUSED rather than computed against. The zero-band allocation across streams is flagged as a stated assumption because the Decree-Law prescribes no method.

Evaluates the Art. 21 election to be treated as not having derived any Taxable Income. Carries the CURRENT window: Ministerial Decision 73 of 2023 ended the relief at 31 December 2026 and the Ministry’s own page still says so, but Ministerial Decision 131, announced 7 August 2026, extended it to 31 December 2029. Prices what electing is worth after the Art. 47(2) trap — no Taxable Income means a nil foreign tax credit ceiling — and reports that Art. 21(2)(e) switches off Art. 55 documentation while Art. 34 arm’s length survives untouched.

Computed by
assessSmallBusinessRelief via computeUAESmallBusinessRelief through /api/actions/run.
You receive
Eligibility verdict with the deciding provision, the five Art. 21(2) provisions the election disapplies, the tax avoided, the foreign tax it destroys, the net benefit, the losses it locks out, and the window with its superseded end date — each cited to primary law.
Recorded
The exclusion that decided the verdict, the prior-period revenue that foreclosed the election where applicable, and the Art. 21(2) list reported whether or not the election is available.
Refuses to
Reports the superseded 31 December 2026 end date alongside the current 31 December 2029 one rather than silently replacing it, and records that MD 131 of 2026 has been read in full — two articles, of which only Article One amends MD 73, and only its Art. 2(2) — so the unchanged AED 3,000,000 threshold rests on the amending text rather than on an announcement. A single prior period above AED 3,000,000 forecloses the election and the engine says nothing in the current period restores it.

Decides whether a master file and local file are required under Ministerial Decision 97 of 2023 Art. 2(1) — either a Constituent Company of an MNE Group at AED 3,150,000,000 consolidated revenue OR own revenue of AED 200,000,000, so a small UAE subsidiary of a large group is caught by a limb an entity-revenue test misses — then classifies every counterparty against Art. 2(2) and Art. 2(3). Reads the Art. 2(1)(a) limb through Cabinet Decision 44 of 2020 Art. 1, which MD 97 does not repeat: an MNE Group is CUMULATIVE (cross-border presence AND the revenue threshold, so a purely domestic group is not one at any revenue); the group revenue is measured over the Fiscal Year IMMEDIATELY PRECEDING the Tax Period while the entity limb reads the current one, so the two limbs run on different years; and a business unit excluded from the group accounts SOLELY on size or materiality grounds is a Constituent Company regardless. The two exclusions for a natural person and an Unincorporated Partnership partner are CONDITIONAL on the Art. 2(4)-(5) independence test, and Art. 2(5) defeats independence outright where one party is subject to detailed instruction or comprehensive control.

Computed by
assessTpDocumentation via computeUAETpDocumentation through /api/actions/run.
You receive
Master-file and local-file verdict with the limb that triggered it, a per-counterparty include/exclude classification citing the clause, the independence conditions that failed, the 30-day production deadline, and the obligations that bind regardless of the thresholds — each cited to primary law.
Recorded
Every counterparty with its MD 97 category, the clause relied on, whether the independence test was evaluated and which of its three conditions failed, and whether an intangible pulls the entry into a DEMPE analysis.
Refuses to
ASSESS rather than granting a conditional Art. 2(3) exclusion where the independence facts were not supplied, because Art. 2(6) leaves the determination to the Authority on all the facts. Treats an unasserted cross-border limb as UNVERIFIED rather than resolving it either way — silence does not defeat Art. 2(1)(a), and it does not satisfy it either. Reports plainly that falling below the thresholds is NOT the absence of a transfer-pricing obligation — Art. 34 and Art. 55(4) bind every Taxable Person.

Entity-scoped Fatoora Phase 2 submission readiness — cryptographic stamp, UUID, hash chain, clearance/reporting integration.

Computed by
computeKSAFatooraSubmission through /api/actions/run.
You receive
Fatoora Phase 2 submission readiness scorecard with blocker list.
Recorded
Entity, reviewer, invoice sample, decision, and remediation events.
Refuses to
NOT_READY verdict with explicit blockers when CSID, UUID, hash chain, or UBL 2.1 are missing.

Pure WHT rate lookup — verified domestic rates plus provisional treaty-matrix notes with TRC + LOB flags.

Computed by
computeKSAWHTRatesLookup through /api/actions/run.
You receive
Rate lookup result with domestic, treaty, and applicable rate plus notes.
Recorded
Payment classification, selected rate, and reviewer override events.
Refuses to
Treat treaty rates as review-only until the applicable official DTAA is checked; return domestic rate with warning when payment type is ambiguous or TRC is missing.

KSA Zakat calculation route backed by the tax action engine.

Computed by
computeKSAZakat through /api/actions/run.
You receive
Zakat calculation summary.
Recorded
Input payload, computation result, user, entity, and action audit log.
Refuses to
Validation failure if required numeric inputs are missing or malformed.

Classification workflow for Zakat, CIT, or mixed taxpayer status.

Computed by
computeKSAZakatCITClassifier through /api/actions/run.
You receive
Taxpayer classification memo.
Recorded
Ownership facts, classification basis, reviewer sign-off.
Refuses to
Require manual review for mixed ownership or incomplete shareholder data.

Cross-jurisdiction local file preparation workspace for UAE/KSA transfer pricing.

Computed by
computeMultiJurisdictionTPLocalFile through /api/actions/run.
You receive
Local file preparation checklist and draft pack.
Recorded
Transaction coverage, document evidence, reviewer sign-off, and version history.
Refuses to
Block final status until every material transaction has evidence and method selection.

Benchmarking quality scoring — IQR computation, arm-length test, adjustment quantum, OECD-aligned comparability filter.

Computed by
computeTPBenchmarking through /api/actions/run.
You receive
Benchmark IQR, arm-length verdict, adjustment quantum (pp), and quality score.
Recorded
Method selection, comparables filters, financial inputs, and reviewer conclusion.
Refuses to
Not-defensible verdict with explicit warning when fewer than 5 accepted comparables.

Rate and liability estimator for UAE Corporate Tax scenarios.

Computed by
computeUAECorporateTax through /api/actions/run.
You receive
CT estimate summary.
Recorded
Input payload, computation result, user, entity, and action audit log.
Refuses to
Validation failure if required numeric or status inputs are missing.

Tax group eligibility and setup workspace for UAE Corporate Tax.

Computed by
computeUAECTGroup through /api/actions/run.
You receive
Tax group eligibility memo.
Recorded
Eligibility facts, exceptions, and approval evidence.
Refuses to
Do not approve tax-group status without ownership and residency proof.

UAE CT group consolidation — intra-group eliminations, single AED 375k threshold, loss utilisation 75% cap, member CT allocation.

Computed by
computeUAECTGroupConsolidation through /api/actions/run.
You receive
Group consolidation support pack with member CT allocation and remaining losses.
Recorded
Member inclusion, eliminations, and reviewer sign-off.
Refuses to
Warnings emitted when intra-group revenue/expense do not reconcile or parent not flagged.

Bounded UAE DMTT gross-top-up calculator with explicit verified-upstream relief, safe-harbour, and de minimis gates.

Computed by
computeUAEDMTTExposure through /api/actions/run.
You receive
Bounded DMTT exposure memo plus replayable evidence envelope.
Recorded
Exact inputs, arithmetic result, verified-source provenance, service run, export pack, and reviewer follow-up.
Refuses to
Do not present the bounded exposure result as a filing-grade DMTT return or infer upstream relief classifications from partial facts.

Bounded Transitional CbCR Safe Harbour qualification workflow for UAE DMTT, with explicit source-data and once-out gates.

Computed by
computeUAEDMTTSafeHarbour through /api/actions/run.
You receive
Safe-harbour qualification memo plus replayable DMTT evidence envelope.
Recorded
Exact inputs, qualification result, verified-source provenance, service run, export pack, and reviewer follow-up.
Refuses to
Do not promote a qualifying verdict when source data or prior-year application history is unverified.

Compliance workspace for UAE e-invoicing readiness against emerging requirements.

Computed by
computeUAEEInvoicingCompliance through /api/actions/run.
You receive
E-invoicing compliance gap report.
Recorded
Sample evidence, field gaps, remediation notes, and reviewer sign-off.
Refuses to
Label outcome as readiness assessment, not regulatory certification.

Decides whether a Person is inside the Electronic Invoicing System at all, which of the three Art. 5(1) cohorts it falls in, and how many days remain on each of its two dated obligations. Reads Ministerial Decision 244 of 2025 as amended by Ministerial Decision 66 of 2026, which moved the large-cohort Accredited Service Provider date from 31 July 2026 to 30 October 2026. Distinct from the readiness score beside it: that one grades nine technical controls and cannot answer either question, because it takes neither Revenue nor a date.

Computed by
assessUaeEInvoicingMandate
You receive
Cohort determination with the paragraph it came from, both statutory deadlines, days remaining or days overdue, and the supersession note where the date moved.
Recorded
Every obligation carries its Art. 5(1) paragraph; the result also cites Art. 1 for the definition of Revenue, because a correct threshold measured against the wrong quantity is the defect this engine is built to avoid.
Refuses to
Throws on a non-finite or negative Revenue and on any date that is not YYYY-MM-DD, rather than computing a deadline from an unusable input. Does not compute penalties: those are administered under Federal Decree-Law 28 of 2022 and are out of scope here.

GIDLR interest limitation assessment and documentation workflow.

Computed by
computeUAEInterestLimitation through /api/actions/run.
You receive
Interest limitation working paper.
Recorded
Source figures, calculation basis, reviewer conclusion.
Refuses to
Require manual review where loan or EBITDA support is incomplete.

The filing calendar for Unincorporated Partnerships, Foreign Partnerships and Family Foundations under Federal Tax Authority Decision No. 5 of 2025, read in full. Registration keys to the FIRST Financial Year and not to the period under review — 31 August 2025 where that year had already ended when the Decision took effect, three months otherwise. The annual declaration runs nine months from the year end, with 31 December 2025 substituted for any year ended on or before 31 March 2025. Month arithmetic clamps rather than rolling forward, so a 31 May year end gives 28 February and not 3 March.

Computed by
assessPartnershipComplianceDeadlines through /api/actions/run.
You receive
Each obligation with its deadline, the article that sets it, and — where a transitional displaced the general rule — the date the general rule would have given, so the reader can see what moved.
Recorded
The article behind every date, the transitional flag, and the displaced general deadline where one applies.
Refuses to
Reports NO date for the Foreign Partnership annual declaration rather than inventing one: FTAD 5 Art. 8 ties it to the PARTNER’s own Tax Return, so a partnership with several UAE partners has several dates and none of them belong to the partnership. Rejects a date that is not a real calendar day instead of letting it roll forward to a later deadline.

Eligibility workflow for Qualifying Free Zone Person status and income classification.

Computed by
computeUAEQFZPEligibility through /api/actions/run.
You receive
QFZP eligibility memo.
Recorded
Eligibility answers, evidence, reviewer notes, and final position.
Refuses to
Conservative non-qualifying flag where income or substance evidence is missing.

Security and governance

Every action is recorded, and anyone can check the record

Access and output controls are tracked against the file rather than in a separate system, and every action is sealed into a cryptographic record that can be verified without a login. 3 of the 44 services additionally carry an evidence-gated review workflow, where named documents must be captured before a position can be promoted.

This section shows how a tax file moves through the review workflow: Draft, Under Review, Exceptions Flagged, Exceptions Cleared, and Signed Off. Each state requires an action before the file advances.

Tamper-evident by design — and anyone can check.

Every record is hashed into a cryptographic Merkle seal. Independently confirm a file has not been altered since sign-off — no login, and without access to your underlying data.

Open the public verifier

Pricing at launch

Plans that scale with your workload

The plans Titan opens with. Book an early seat and we will contact you before launch; annual billing saves up to 17%.

Firm

For firms carrying client books, multi-entity groups and reviewer workflows.

$750/mo

Billed annually at $9,000 · save $1,800/yr

Unlimited entities

  • Everything in Practice, without an entity ceiling
  • Group and Tax Group consolidation, Pillar Two and DMTT
  • Reviewer roles, segregation of duties and sign-off records
  • Position monitoring across the book, with material-change alerts
  • Priority support and onboarding
Book an early seat

Engagement

Specialist positions on digital assets, crypto and intellectual property — quoted per matter.

Quoted per engagement

Scoped and quoted per matter — no published rate card

Priced per engagement

  • Qualifying IP under the OECD modified nexus fraction
  • Virtual-asset disposals, lot accounting and the 12-month test
  • Crypto receipts — mining, staking, airdrops and forks
  • DEMPE and economic ownership of intangibles
  • A composed position with every figure attributed to the engine that produced it
Scope an engagement

Prices exclude VAT. VAT is applied at checkout where required.

Launching soon

Titan opens to early seats first

The platform is in its final build. Book an early seat and we will contact you before it opens, with the plan that fits your book of entities.