This is a complete report for a company that does not exist. The data is invented. The analysis is not: every figure below was produced by the same code we run on real client data, and it changes when that code changes.
| Business | Steel fabrication, MEP supply and site installation |
| Annual revenue | AED 88 million |
| Accounting system | a mid-market ERP with no dedicated field for service codes |
| Item master | 214 records |
| Counterparties | 163 records |
| Sales invoices | about 340 per month |
Revenue above AED 50,000,000 puts the company in the first wave: an accredited service provider must be appointed by 2026-10-30, which is 91 days from today, and live invoicing starts 2027-01-01. Goods and services in the same ledger means both classification schemes apply.
Where a line is typed as goods, an HS code is required; where it is typed as services, a service accounting code is; where it is typed as both, both are. The requirement follows from the type, not from the invoice — which is why lines with no type recorded are neither passing nor failing today. The suggestions above come from a starter catalogue built from published code lists and from keyword rules. None of them is applied automatically, because none has been confirmed by a human yet.
| Where the suggestion came from | Items | Applied without review |
|---|---|---|
| Confirmed catalogue, exact match | 0 | yes |
| Starter catalogue, not yet signed off | 13 | no |
| Keyword rule | 80 | no |
| Nothing matched | 121 | no |
On a first engagement the confirmed catalogue is empty, so that row reads zero. It fills as your own decisions are signed off, and from then on the same decision is applied consistently across your own records. Work for another client starts from published code lists and that client's own confirmed facts: your descriptions, classifications and approved tax positions stay inside your engagement and are not carried anywhere else.
40 records have no item type set. Today those invoices pass validation, because the rules that demand a classification code only trigger once the item is marked as goods or services. Nothing in the specification requires the type itself. So the ledger looks compliant right up to the day someone fills that field in, and then it is not.
Separately, 6 records have no description at all. These are usually legacy entries nobody uses and nobody deleted. They still fail validation if an invoice ever touches them.
| State | Records | What it takes to fix |
|---|---|---|
| Valid UAE tax number | 81 | nothing |
| Wrong format | 35 | editing the record; the number is usually right underneath |
| No number recorded | 32 | writing to the counterparty and waiting for a reply |
| Non-UAE, no number needed | 15 | nothing |
| Same number on two records (already counted above) | 10 | merging the records before go-live |
The duplicate row is a flag on records already counted in the rows above it, not a fifth group. Adding it to the others would produce more counterparties than the ledger holds.
| Recorded value | Problem |
|---|---|
l986…6803 | spaces or punctuation inside the number |
1589…2 03 | spaces or punctuation inside the number |
1643…3820 | 14 digits instead of 15 |
TRN …5103 | spaces or punctuation inside the number |
TRN …9003 | spaces or punctuation inside the number |
Values are masked here. In a real report they are shown in full, because the person fixing them needs to see them.
32 counterparties have no tax number on file. That number cannot be derived, looked up or guessed: it has to come from the counterparty. In practice that is four to six weeks of correspondence, several rounds of chasing, and it cannot be compressed by working harder in the last week. It is the single most common reason a go-live date slips.
Penalties sit in Cabinet Decision 106 of 2025. Three of them recur monthly and are capped at AED 5,000 each, which puts the annual ceiling at AED 180,000. A further AED 1,000 per day applies to late notifications and is not capped.
| Situation | Per month |
|---|---|
| No system in place, no invoices transmitted | AED 5,000 |
| System in place, 340 invoices still on paper | AED 5,000 |
| System in place, 340 invoices and 25 credit notes | AED 7,500 |
Businesses that join the voluntary phase are excluded from the penalties under Cabinet Decision No. 106 of 2025 for as long as they participate voluntarily. That exclusion covers those penalties and nothing else: VAT, contractual, integration, remediation and operating obligations continue, and so do their costs. What early participation buys is a rehearsal in which a rejection does not carry an administrative penalty — not a period in which mistakes are free.
Order matters more than effort here. One correction in the wrong place fixes one invoice; the same correction in the right place fixes every invoice that record appears on.
| Step | Why it comes here |
|---|---|
| Establish who is registered for VAT | before a single letter is written. An unregistered counterparty has no tax number and never will; writing to it wastes the client's name on a request nobody can answer. Of the 32 records with no number, this step decides how many are letters and how many are a mapping decision |
| Start the counterparty campaign | next, because it is the only step measured in weeks rather than hours. Letters go out in the client's name, to the subset the previous step identified |
| Fix the company's own record | one edit, and it clears an error present on every single invoice |
| Set the transaction type flags | 8 yes-or-no questions that decide which rules apply at all. Getting these wrong invalidates work done later |
| Classify the item master | 121 decisions needing a human, the rest proposed with a source for each |
| Repair the counterparty records that are merely malformed | 35 edits that need nobody's cooperation |
| Test against the real specification | generate documents and run them through the published rules before the provider does |
The tools below run entirely inside your browser. Nothing is uploaded, and there is no form to fill in first.
Check my item master Check my counterpartiesIf you would rather have this report on your own data, see what we ask for. The same page lists what we never ask for: passwords, logins, and access to any live system.