> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Revenue Lines Missing VAT Code (MTD), Sage

> Revenue Lines Missing VAT Code (MTD). Count of revenue-line transactions month-to-date with no VAT code, the MTD-compliance gap that HMRC requires a digital record for. How to read it, why it matters, and how to act on it.

**Card class:** [Hero](/nerve-centre/overview#card-classes-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

> 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)](/nerve-centre/kpi-cards/sage/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**            |                                                |

Five things to notice:

1. **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.
2. **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)](/nerve-centre/kpi-cards/sage/transactions-failing-validation-imbalance-missing-vat) to confirm this same product type is generating live failures hour by hour.
3. **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.
4. **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.
5. **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)](/nerve-centre/kpi-cards/sage/current-vat-return-status-mtd) to see where the return sits in the cycle and [Period Close / VAT Return Past Deadline](/nerve-centre/kpi-cards/sage/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)](/nerve-centre/kpi-cards/sage/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)](/nerve-centre/kpi-cards/sage/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](/nerve-centre/kpi-cards/sage/period-close-vat-return-past-deadline)                                   | The surcharge consequence if uncoded lines delay a clean return past the deadline.                |
| [Revenue Booked Into GL](/nerve-centre/kpi-cards/sage/revenue-booked-into-gl)                                                                   | The revenue total these lines belong to. Uncoded lines are revenue with an incomplete tax record. |
| [Revenue Gap vs Commerce](/nerve-centre/kpi-cards/sage/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)](/nerve-centre/kpi-cards/sage/smart-coding-queue-depth-24h)                                                     | Smart Coding can suggest VAT codes; a deep queue means more lines posting uncoded.                |
| [Period Close Status](/nerve-centre/kpi-cards/sage/period-close-status)                                                                         | A period should not close while VAT-eligible lines are uncoded.                                   |
| [Sage Health Score](/nerve-centre/kpi-cards/sage/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.

**Why our number may legitimately differ from a Sage Intacct VAT report:**

| 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.                       |

**Cross-connector reconciliation:**

| Card                                                                                                                                            | Expected relationship | What the comparison reveals                                                                                       |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------- |
| [Transactions Failing Validation (imbalance / missing VAT)](/nerve-centre/kpi-cards/sage/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](/nerve-centre/kpi-cards/sage/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](/nerve-centre/kpi-cards/sage/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)](/nerve-centre/kpi-cards/sage/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](/nerve-centre/kpi-cards/sage/sage-health-score)                                                                             | Composite             | VAT-coded completeness is a named factor in the health score.                                                     |

The cross-connector point is that a missing VAT code is the seam between commerce and compliance. The storefront sold the item and charged the customer; the ledger recorded the revenue; but the tax treatment that turns that revenue into a filable VAT return was never attached, almost always because a product type was added to the catalogue without a VAT mapping. Neither the commerce platform (which does not build VAT returns) nor a casual glance at the GL (where the revenue looks fine) surfaces the gap. Only an MTD-aware view of the revenue lines catches it, and only catching it mid-period leaves time to map the code, batch-correct the existing lines, and file a clean return. This card is how a UK finance team keeps MTD a non-event instead of a filing-day scramble.

## Known limitations / merchant FAQs

**Why is a missing VAT code a compliance problem and not just untidy data?**
Because Making Tax Digital requires 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 mapped into the box-by-box VAT return without a manual correction, which is exactly the manual spreadsheet work MTD was created to remove. A return built over uncoded lines is either incomplete or stitched together by hand, and both create HMRC risk.

**Zero-rated items have no VAT, so why do they need a code?**
Because zero-rated is a VAT treatment, not the absence of one. The code records the line as zero-rated, which is itself the digital record HMRC requires. The same applies to exempt and outside-scope treatments where a code is expected. The most common cause of a non-zero count on this card is someone mapping a zero-rated product as if it needed no code at all. Map the zero-rated code and the line is compliant.

**How is this different from the real-time validation card?**
[Transactions Failing Validation (imbalance / missing VAT)](/nerve-centre/kpi-cards/sage/transactions-failing-validation-imbalance-missing-vat) shows the last hour's hard rejections; this card shows the month-to-date accumulation of revenue lines missing a code, including any that posted without a code because the workspace allows blank-code posting. You need both: the live card to catch the burst at the integration boundary, and this card to make sure nothing accumulated quietly across the period before the return is built.

**What is the target value?**
Zero by the time the VAT return is built. A non-zero value mid-period is normal and expected as new products and edge cases surface; the discipline is driving it to zero before the filing window. Most UK finance teams hold the alert at zero so any missing code is visible, then burn the count down across the period.

**Can the codes be fixed in a batch?**
Usually yes, and that is the efficient way to clear the card. Because missing codes cluster by cause (a new product type, a zero-rated item class, an import template), mapping the code at the source lets you batch-correct all the existing lines in that cohort and ensures future lines post clean. Fixing them one by one is the slow path; fixing the cause is the fast one.

**Why is engineering a role on a VAT card?**
Because a large share of missing codes originate in the integration: a commerce product type with no VAT mapping, or an import template that omits the VAT column. Those are configuration fixes in the integration layer, which is engineering's domain. Finance owns the human-entry gaps and the policy decision on which code applies; engineering owns the mapping that makes future lines post clean. Both are needed to get to zero and stay there.

**Does this card include AP or only AR revenue lines?**
It focuses on revenue lines, which is the sales side, because revenue VAT (output tax) is where the commerce-driven coding gaps cluster and where the MTD return's revenue boxes are built. Purchase-side VAT (input tax) coding is a related but separate concern. If your workspace needs purchase-line coverage as well, that is configurable, but the default and the name target revenue lines specifically.

**Our VAT period does not match the calendar month, does the card handle that?**
Yes. The card counts the current MTD VAT period, which follows your stagger group and filing frequency, not the calendar month, because the return is built on the VAT period. If you reconcile against a calendar-month Sage report you will see boundary-day differences; match the period basis and they resolve.

**Does a missing code stop the line from posting?**
It depends on your workspace configuration. If Intacct is set to require a VAT code on revenue lines, the transaction is rejected and appears on the live validation card. If it allows posting with a blank code, the line posts and accumulates here instead. This is exactly why the accumulation card exists separately from the validation card: in a permissive configuration, uncoded lines do not announce themselves as failures, they just quietly pile up.

**How does this affect a Multi-Entity Console group?**
Each VAT-registered entity files its own MTD return, so watch each entity's count separately. A consolidated count can hide which subsidiary owns the uncoded lines, which matters because the fix and the return both happen at the entity level. Run the card per entity during the period and route each cohort to the team that owns that entity's catalogue and integration.

**What happens to the card once I file the return?**
The card tracks the current VAT period, so at the period rollover the count resets to the new period and starts accumulating again. The goal each period is the same: reach zero before you build the return. A clean run shows a count that climbs gently as new edge cases appear and is burned back to zero by close, period after period.

***

### Tracked live in Vortex IQ Nerve Centre

*Revenue Lines Missing VAT Code (MTD)* is one of hundreds of KPI pulses Vortex IQ tracks across Sage and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English.

[Start for free](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
