Skip to main content
Metrics type: Key MetricsCategory: Ecommerce Platform
Percentage variance between Sage Intacct on-hand inventory and the ecommerce platform’s stock count. Intacct Inventory module required.

At a glance

The headline parity number between your book-of-record (Sage Intacct Inventory Control on-hand quantity) and your selling channel (Shopify, BigCommerce, or Adobe Commerce stock count), expressed as a single percentage across the catalogue. When this number drifts above the alert line, you are either overselling stock you do not have or hiding stock you could be selling, and both cost money. The card requires the Sage Intacct Inventory module; Sage Accounting, Sage 50, and Sage 200 standard do not ship a perpetual inventory ledger, so the card hides itself for those merchants rather than showing a misleading zero.

Calculation

Calculated automatically from your Sage data joined against the connected ecommerce platform. 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 home and garden merchant on Sage Intacct (single entity, GBP) with an Inventory Control module of roughly 4,200 active SKUs, selling through Shopify Plus DTC and an Adobe Commerce wholesale portal. Snapshot 14 Apr 26. The card reads 6.8% catalogue-weighted variance, above the 5% alert line. The operations lead opens the SKU drill and sees the variance is not evenly spread. Five things to notice:
  1. The headline 6.8% is not one problem, it is three different problems with three different owners, and the card’s value is splitting them apart. A single percentage on a gauge tells you something is wrong; the SKU drill tells you what to do. The seasonal bulbs (received into Intacct, not yet listed on the storefront) are a merchandising backlog, not a data integrity fault. The discontinued furniture showing more on the storefront than in Sage is an active oversell risk and needs same-day attention. The wholesale-only pallets are correct as designed and should be excluded from the parity calculation through the field map. Three findings, three teams, one card.
  2. The discontinued furniture cohort is the dangerous one even though it is small. 38 SKUs where the storefront shows 980 units against Sage’s 410 means the channel will accept roughly 570 orders it cannot fulfil. Each of those becomes a cancelled order, a refund, a support ticket, and a customer who may not return. This is the negative-variance, oversell-risk case, and it is exactly what SKUs with Intacct-vs-Ecom Inventory Drift >5% drills into at the line-item level. The catalogue gauge flagged the problem; the SKU table makes it actionable.
  3. The seasonal bulbs inflate the headline without representing a real defect. 9,600 units sitting in Intacct with zero on the storefront because the listing has not gone live yet reads as 100% variance on those 120 SKUs and pulls the catalogue weighted figure up. This is why the card reports unmatched and not-yet-listed SKUs separately: the operations lead can see the bulbs are a “go list these” task, not a “fix the sync” task. Once listed, the variance on that cohort collapses to near zero.
  4. The wholesale-only pallets should be carved out, not counted. 210 SKUs sold only through the Adobe Commerce wholesale portal and deliberately never synced to the Shopify DTC catalogue will always read as variance against the DTC channel. The field map supports a per-SKU or per-Class channel_scope exclusion so the parity number reflects only SKUs that are supposed to be in parity. Leaving them in permanently parks the gauge above the alert line and trains the team to ignore it, which is the worst outcome.
  5. Pair the catalogue gauge with the dollar value to size the exposure. 6.8% quantity variance sounds tolerable until you weight it by value. The 38 discontinued furniture SKUs drifting on the oversell side are low-value clearance items; the parity problem there is reputational (cancelled orders) more than financial. If the same 6.8% had landed on the bestseller planters, the dollar exposure through Sage Total Inventory Value would be an order of magnitude larger. Always read the gauge next to the value card before deciding how hard to push.

Sibling cards merchants should reference together

Reconciling against Sage

Where to look in Sage Intacct: The native Sage Intacct views to run side by side with this card:
Reports → Inventory Control → Item Stock Status (real-time on-hand by Warehouse, the canonical Intacct on-hand figure this card uses as its book-of-record basis) Reports → Inventory Control → Inventory Valuation (on-hand quantity and value per Location at the same scope as the dashboard filter) Inventory Control → Items list with the on-hand column exposed, filtered to active items, exported to compare against the ecommerce stock export Interactive Custom Report (ICR) built on the Inventory data source listing ItemID, QuantityOnHand, and WarehouseID to align against the storefront’s stock export by SKU
The single most important reconciliation discipline is matching the as-of timestamp. Intacct’s Item Stock Status is real-time; the ecommerce platform’s stock count may lag by its own sync cadence. If you pull the Intacct report at 09:00 and the storefront export at 17:00, eight hours of orders and receipts will show as drift that is not really drift. This card timestamps both sides of the join and reports variance as of a single moment, which is why it can read lower than a manual two-export comparison done at different times of day. Common reconciliation pitfalls:
  • Available-to-sell vs on-hand. Intacct on-hand includes committed and allocated stock; the ecommerce platform usually shows available-to-sell (on-hand minus committed). Comparing on-hand against available-to-sell manufactures drift. The field map aligns the definitions; confirm which basis each side uses.
  • Multi-location aggregation. Intacct holds on-hand per Warehouse Location. The storefront typically shows a single number. If your fulfilment only ships from two of five Intacct locations, summing all five overstates the storefront’s effective availability. The field map can scope which locations feed the sellable basis.
  • Unit of measure mismatch. A SKU stocked in cases in Intacct but sold in eaches on the storefront will read as a large false variance until the UOM conversion is mapped.
Why our number may legitimately differ from a manual Intacct-vs-storefront comparison: Cross-connector reconciliation: The cross-platform high-leverage finding here is that Sage Intacct is the book of record and the ecommerce platform is the sales surface, and the gap between them is money. The storefront does not know what was received into the Warehouse this morning; Intacct does not know what the storefront promised a customer ten minutes ago. Neither system alone can compute parity, because each only sees its own half. This card joins the two and turns a problem that is normally discovered through cancelled orders and stockroom surprises into a single number on a gauge that the operations lead checks before the day starts. The Implementation Partner conversation usually starts when a merchant realises how many cancelled orders trace back to drift this card would have flagged a day earlier.

Known limitations / merchant FAQs

Why does this card not appear in my dashboard? The card requires the Sage Intacct Inventory Control module. Sage Accounting, Sage 50, and standard Sage 200 do not maintain a perpetual inventory ledger, so there is no on-hand quantity to compare against the storefront. Rather than show a misleading zero, the card hides itself for those merchants. If you run Intacct and still do not see it, confirm the Inventory module is provisioned and the connector has read scope on the Inventory data source. Is 5% the right alert threshold? It depends on velocity. Fast-moving DTC operations where a single SKU can sell hundreds of units a day should tighten to 2%, because even small percentage drift represents real oversell exposure within a day. Slow-cycle B2B distribution with weekly order cadence can relax to 8-10% because the drift self-corrects before it causes harm. The right number is the one where the alert fires before a customer is affected, not after. Tune per workspace, and consider a tighter threshold on the top-velocity Class. Positive variance and negative variance, which matters more? Negative variance (storefront higher than Sage) is the urgent one because it causes oversell: cancelled orders, refunds, support load, lost trust. Positive variance (Sage higher than storefront) is a missed-revenue problem: you are sitting on sellable stock the channel cannot offer. Both cost money, but negative variance costs it today and visibly, so most merchants weight the alert toward the oversell direction. How does the card handle SKUs sold on multiple channels? A SKU sold through both Shopify DTC and an Adobe Commerce wholesale portal has one Intacct on-hand position and two channel stock counts. The card can compare against each channel separately or against the channels’ combined committed view, depending on the field map. The common pattern is to compute parity per channel so the operations lead can see which channel’s sync is drifting. What about wholesale-only or marketplace-only SKUs? These should be carved out through a channel-scope exclusion in the field map, otherwise they permanently read as drift against the channel they are not synced to and park the gauge above the alert line. A well-tuned card only counts SKUs that are supposed to be in parity. Carving out by-design exclusions is one of the first onboarding tasks. Does the card see committed or allocated stock? Intacct on-hand includes committed stock by default. The storefront usually shows available-to-sell (on-hand minus committed). The field map aligns the two so the comparison is like-for-like. If you see steady-state drift that never resolves, an on-hand-vs-available mismatch is the most common cause. Single-entity vs Multi-Entity Console behaviour? Identical logic per entity. In Multi-Entity Console a SKU stocked in two entities can be in parity in one and drifting in the other, so the card computes per-entity parity then weights to the consolidated gauge. The most useful operational read is per-entity, because the sync fix usually lives in one entity’s connector configuration. Why does a newly received shipment show as drift? Stock received into Intacct but not yet listed or synced to the storefront reads as positive variance until the listing goes live and the sync runs. This is a merchandising backlog signal, not a data integrity fault. The card reports not-yet-listed SKUs separately so the team can distinguish “go list these” from “fix the sync”. How fresh is the data? The Intacct side refreshes from the most recent inventory movement, typically within 5 to 15 minutes. The storefront side refreshes on the connector’s sync cadence. The card timestamps both sides and reports variance as of a single aligned moment, which is why it is more reliable than two manual exports pulled at different times of day. Does unit of measure cause false drift? Yes, and it is the most common false-positive on first connect. A SKU stocked in cases in Intacct but sold in eaches on the storefront reads as a large variance until the UOM conversion is mapped. Once mapped, the drift disappears. Check UOM first whenever a SKU shows implausibly large variance. Implementation Partner role on this metric? The Partner usually owns the Intacct Inventory Control configuration, the location and UOM setup, and the connector field map that aligns SKUs and definitions across systems. If this card disagrees with a manual comparison, the cause is almost always a definition mismatch (on-hand vs available, all-locations vs fulfilment-locations, case vs each) that the field map can resolve. Bring the Partner into the field-map conversation early; it saves weeks of chasing phantom drift.

Tracked live in Vortex IQ Nerve Centre

ERP-vs-Ecom Inventory Variance % 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 or book a demo to see this metric running on your own data.