Revenue-line transactions month-to-date with no VAT code. Each one is MTD non-compliant: HMRC requires a digital VAT record for every VAT-eligible transaction.
At a glance
The running month-to-date count of revenue lines posted with no VAT code. This is the compliance accumulation behind the real-time failures: where Transactions Failing Validation (imbalance / missing VAT) shows the last hour’s rejections, this card shows everything that has slipped through or been posted without a code since the period began. Under Making Tax Digital, HMRC requires a digital VAT record for every VAT-eligible transaction, so a missing code is not a cosmetic gap, it is a hole in the digital records that underpin the VAT return. A non-zero value going into the filing window is a return that cannot be built clean. The target is zero by close, and the card exists to make sure you get there.
| What it counts | Count of revenue-line transactions in the current VAT period (month-to-date) where the line has no VATCODE assigned. Read from the GL and AR transaction lines flagged as revenue and VAT-eligible. |
| Why it matters for MTD | HMRC’s Making Tax Digital rules require a digital record of VAT for every VAT-eligible transaction. A revenue line with no code has no digital VAT record, so it cannot be correctly included in the box-by-box VAT return without manual intervention, which is exactly what MTD is designed to eliminate. |
| Zero-rated and exempt count too | A zero-rated or exempt line still needs a code that records it as zero-rated or exempt. The absence of a code is the failure, not the absence of VAT. This is the most common misunderstanding the card catches. |
| Relationship to the real-time card | This is the accumulating month view; the validation card is the live-hour view. A line can be missing a code without ever triggering a hard validation rejection if the workspace allows posting with a blank code, which is precisely why a separate accumulation card is needed. |
| Currency | The count is currency-agnostic, but the at-risk revenue behind the count is shown in the entity’s base currency, summed in reporting currency at the configured FX cadence per entity. |
| Entity scope | Card respects the dashboard entity filter; for a UK group, watch each VAT-registered entity separately because each files its own return. |
| Time window | 30D/MTD |
| Alert trigger | >0. Any missing code is a compliance gap. Configurable per workspace but most UK finance teams hold the alert at zero. |
| Roles | owner, finance, engineering |
Calculation
Calculated automatically from your Sage data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A UK multi-channel retailer on Sage Intacct, VAT registered, filing monthly MTD returns, selling DTC through Shopify Plus and B2B through BigCommerce B2B. Snapshot 23 Jun 26, mid-period (the June VAT period runs to 30 Jun 26). Reporting currency GBP. Alert held at zero.| Source of missing code | Revenue lines affected | At-risk revenue (GBP) | Why the code is missing |
|---|---|---|---|
| New product line (Shopify) | 41 | 6,880 | New product type added with no VAT code mapped |
| Zero-rated B2B items (BigCommerce) | 18 | 5,400 | Assumed “no VAT” needed no code |
| Manual sales credits | 6 | 1,240 | Keyed by hand without selecting a code |
| Marketplace settlement import | 12 | 3,100 | Import template omitted the VAT column |
| Card value (this month-to-date) | 77 | 16,620 |
- Seventy-seven lines sounds small until you realise it is GBP 16,620 of revenue with no digital VAT record, two weeks before the return is due, and that is the whole point of catching it now. None of these lines can be correctly built into the MTD VAT return as they stand. If they reach the filing window uncoded, someone has to manually find each one, work out the correct treatment, and post a correction, which is the manual VAT spreadsheet work MTD was specifically created to abolish. The card surfaces the accumulation mid-period so the codes get mapped now, while there are two weeks of runway, rather than during a frantic filing-day cleanup. The target is zero by 30 Jun 26.
- The forty-one-line new-product-line cohort is one fix, not forty-one, which is how you should read this card. A new product type was added to the Shopify catalogue with no VAT code mapped in the integration, so every order of that product since launch has posted a revenue line with a blank code. Map the VAT code for that product type once, and all forty-one existing lines can be corrected in a batch and every future line posts clean. The card’s value is showing you the cohort so you fix the cause, not the symptoms. Pair with Transactions Failing Validation (imbalance / missing VAT) to confirm this same product type is generating live failures hour by hour.
- The eighteen zero-rated B2B lines are the trap that catches almost everyone. Zero-rated does not mean no code; it means a code that records the line as zero-rated, which is itself the digital record HMRC requires. Someone mapped these items as if zero VAT meant no VAT treatment, so the lines posted with a blank code instead of a zero-rated code. At GBP 5,400 of at-risk revenue this is the second-largest cohort, and it would have produced an incomplete zero-rated box on the return. The fix is to map the zero-rated code, not to exempt the items from VAT handling.
- The manual and import cohorts are different failure modes that need different fixes. The six manual sales credits were keyed by a person who did not select a code, so the fix is a process and training fix plus a prompt or default in the entry screen. The twelve marketplace settlement lines came in through an import template that simply did not include a VAT column, so the fix is on the import template, which is an engineering fix. The card carries finance and engineering roles because the missing codes come from both human entry and integration imports, and the two need different owners.
- The trajectory matters more than the snapshot, so read this card as a burn-down through the period. A value of 77 on day 23 with the cause identified and the codes about to be mapped is a healthy in-progress state; the same 77 lingering on day 29 with no owner is a filing-day emergency forming. The right operating rhythm is to drive the count toward zero across the period so the return is buildable clean on day one of the filing window. Pair with Current VAT Return Status (MTD) to see where the return sits in the cycle and Period Close / VAT Return Past Deadline for the surcharge consequence if the cleanup does not happen in time.
Sibling cards merchants should reference together
| Card | Why pair it with Revenue Lines Missing VAT Code (MTD) |
|---|---|
| Transactions Failing Validation (imbalance / missing VAT) | The real-time hour view of the same missing-code failures this card accumulates over the month. |
| Current VAT Return Status (MTD) | Where the return sits in the cycle. Missing codes must hit zero before this can go clean. |
| Period Close / VAT Return Past Deadline | The surcharge consequence if uncoded lines delay a clean return past the deadline. |
| Revenue Booked Into GL | The revenue total these lines belong to. Uncoded lines are revenue with an incomplete tax record. |
| Revenue Gap vs Commerce | The same product-mapping gaps that cause missing codes often cause revenue not to post at all. |
| Smart Coding Queue Depth (24h) | Smart Coding can suggest VAT codes; a deep queue means more lines posting uncoded. |
| Period Close Status | A period should not close while VAT-eligible lines are uncoded. |
| Sage Health Score | Missing VAT codes are a direct factor in the composite ledger-health number. |
Reconciling against Sage
Where to look in Sage Intacct: The native Sage Intacct views to run side by side with this card:
Applications → Tax → VAT Detail Report lists VAT-eligible transactions and their codes; lines with no code are the population this card counts.
Reports → General Ledger → Transaction Detail filtered to revenue accounts shows each revenue line and whether a VAT code is attached.
Applications → Tax → VAT Setup shows the available VAT codes, including the zero-rated and exempt codes that uncoded lines should carry.
Platform Services → Integration field mapping shows where each commerce product type maps its VAT code; a blank mapping here is the upstream cause.
Interactive Custom Report (ICR) on the GL/AR data sources filtered to revenue lines in the current VAT period with VATCODE empty, grouped by source and product class.
For Multi-Entity Console accounts, run the VAT Detail Report per VAT-registered entity, because each entity files its own MTD return and a consolidated view can hide which subsidiary owns the uncoded lines.
Common reconciliation pitfalls:
- VAT period vs calendar month. MTD VAT periods follow the entity’s stagger and may not align to the calendar month. The card defaults to the current VAT period (which is what the return is built on); a calendar-month report can include or exclude days at the period boundary. Match the period basis before reconciling the count.
- Revenue-eligible definition. The card counts revenue lines that are VAT-eligible. A non-revenue line, or a line correctly outside the scope of VAT, is not counted. A Sage report that lists all blank-VAT lines (including out-of-scope ones) will read higher than this card.
- Posted vs unposted. A line on an unposted or rejected transaction is not yet in the GL. The card focuses on posted revenue lines missing a code; a report that includes draft entries can read higher.
| Reason | Direction | Why |
|---|---|---|
| Period basis | Either | Card uses the current MTD VAT period; a calendar-month report shifts the boundary days. |
| Eligibility filter | Card may show fewer | Card counts VAT-eligible revenue lines only; a blank-code report including out-of-scope lines reads higher. |
| Posted vs draft | Card may show fewer | Card focuses on posted lines; a report including unposted or rejected drafts reads higher. |
| Zero-rated handling | Card may show more | Card counts a zero-rated line with no code as missing; a report that treats blank-on-zero-rated as acceptable reads lower. |
| Entity scope | Either | Card respects the dashboard entity filter; a consolidated report spans entities the dashboard may exclude. |
| Refresh timing | Either | Card refreshes through the period; codes mapped and back-applied between report runs move the count. |
| Card | Expected relationship | What the comparison reveals |
|---|---|---|
| Transactions Failing Validation (imbalance / missing VAT) | Same root cause | The live failures and the month accumulation are two views of one product-mapping gap. |
| Revenue Gap vs Commerce | Correlated | The same unmapped product types that drop VAT codes often drop the whole revenue line, widening the gap. |
| Commerce Orders Without Sage Intacct Order | Adjacent | Orders that never posted are the extreme version of a coding gap: no line at all rather than a line with no code. |
| Current VAT Return Status (MTD) | Gating | A non-zero count gates a clean return; the status card cannot go green while this is non-zero. |
| Sage Health Score | Composite | VAT-coded completeness is a named factor in the health score. |