POS vs Online Inventory Parity, broken down by row.
At a glance
A cross-channel revenue-at-risk audit, run inside Square itself. It compares, per SKU per location, the on-hand inventory Square POS is fulfilling against and the count Square Online is selling against, and lists every SKU where the two disagree. Because Square is one merchant of record across in-store and web, parity should be automatic. Where it breaks, you are either overselling online against stock that is gone or hiding sellable stock from web shoppers. This is the positive, scored framing of the same data behind the POS to Online Inventory Drift Alert.
| What it counts | SKUs (item variations) whose POS on-hand and Square Online on-hand differ for the same location_id. One row per mismatched SKU, with the variance and its direction. Parity is the percentage of catalog that matches; the alert is the list of exceptions. |
| Channel / source treatment | Cross-channel within Square. It compares the POS view and the Square Online view of the same SKU at the same location. Meaningless for a merchant who sells through only one of the two. |
| How SKUs are matched | On the item variation and SKU, joined to Square Inventory on-hand counts per location. Variations with no SKU are harder to match and reconcile. |
| Currency / unit | Count of mismatched SKUs (whole number). Each row shows POS on-hand, online on-hand, and the variance. |
| Time window | RT / 24H (parity is checked in near real time; the exception list is refreshed continuously and reviewed at least daily). |
| Alert trigger | Fires when more than 5 SKUs show a POS to online mismatch. The list is ranked by the size of the variance. |
| Roles | owner, operations |
| Why it is revenue at risk | A mismatch in the oversell direction (online higher than POS) ends in cancellations and disappointed customers; in the hidden-stock direction (POS higher than online) it is pure lost web revenue. Both are money, and both break Square’s single-source-of-truth promise. |
| Why it should be near zero | On Square, POS and online share one inventory ledger by design. A persistent mismatch means a manual adjustment hit one channel only, a third-party tool wrote to one ledger, or online stock control was disabled for that item. |
Calculation
Calculated automatically from your Square Online data by comparing the POS and online on-hand counts per SKU per location. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A US gift and stationery shop on Square. Two store locations plus a Square Online storefront fulfilling from both. The parity audit is reviewed on the morning of 14 Mar 26. Each row is a mismatched SKU.| SKU | Item variation | Location | POS on-hand | Online on-hand | Variance | Direction |
|---|---|---|---|---|---|---|
| CARD-BDAY-01 | Birthday Card, Foil | LOC_001 | 0 | 6 | 6 | Oversell online |
| PEN-FNTN-BLK | Fountain Pen, Black | LOC_001 | 14 | 0 | 14 | Hidden sellable stock |
| MUG-CER-WHT | Ceramic Mug, White | LOC_002 | 3 | 1 | 2 | Oversell online |
| JRNL-A5-KFT | A5 Journal, Kraft | LOC_002 | 0 | 5 | 5 | Oversell online |
| WRAP-ROLL-RED | Gift Wrap Roll, Red | LOC_001 | 9 | 0 | 9 | Hidden sellable stock |
| NOTE-STICKY | Sticky Notes | LOC_001 | 7 | 7 | 0 | In parity (not listed) |
| Mismatched SKUs (this card) | 5 |
- Mismatch cuts both ways and both directions cost money. CARD-BDAY-01 shows 0 in store but 6 online, so the web store keeps taking orders for stock that is gone, an oversell ending in cancellation. PEN-FNTN-BLK shows 14 in store but 0 online, so 14 sellable units are invisible to web shoppers, pure lost revenue. The Sticky Notes match at 7 and 7, so they are not listed, the exception list stays short and actionable.
- Variance size sets the priority. PEN-FNTN-BLK at 14 hidden units is a bigger leak than MUG-CER-WHT at 2 oversold. Work the list top down by variance. Pair with Oversell Risk for the SKUs whose oversell direction is already projecting negative on-hand.
- Crossing 5 SKUs fires the alert. With 5 mismatches the Vortex IQ Nerve Centre alert raises. Recurring mismatches almost always point to a process or integration problem, not a one-off recount: a third-party tool writing to one ledger, returns restocked in store but not online, or online stock control disabled for an item. The durable fix is upstream of the count itself.
Sibling cards merchants should reference together
| Card | Why pair it with POS vs Online Inventory Parity |
|---|---|
| POS to Online Inventory Drift Alert | The alert framing of the same data. Drift is the list of exceptions; parity is the percentage of catalog that matches. Read together. |
| Oversell Risk (negative on-hand projected) | The oversell-direction mismatches are the ones most likely to project negative on-hand once pending orders land. |
| Out-of-Stock Items | A mismatch can mask a real stockout, online showing stock while POS is empty means the item is effectively out of stock. |
| Low Stock Products | Low stock plus a parity gap is the fastest path to overselling the last unit. |
| Square inventory vs marketplace listings | If POS and online disagree inside Square, any marketplace feed downstream is fed bad numbers too. Internal parity is the foundation. |
| Items missing SKU | Variations with no SKU are harder to match across channels and are a common source of silent mismatch. |
Reconciling against Square
Where to look in the Square Dashboard: Square Dashboard, Items & Orders, Inventory management. Filter by the location in the row and find the SKU. Square shows a single on-hand count per location, so to see the mismatch you compare what the POS register reports as sellable against what the Square Online item page is offering. Where Square Online stock control is enabled, the online sellable count should track the same on-hand number, a mismatch means that link is broken for that SKU. Other Square Dashboard views that look like the same issue but aren’t:- Inventory management, on-hand by location: the figure the parity check compares. The right place to confirm a mismatch.
- Online, Items, stock: the Square Online sellable view. If it differs from the on-hand count, the mismatch is confirmed.
- Inventory history: shows the adjustments that caused the gap, manual edits, restocks, recounts. Where you trace root cause.
- Item sales report: shows what sold, not what is in stock. Not relevant for confirming parity.
| Reason | Direction of divergence |
|---|---|
| Mid-adjustment snapshot. A recount in progress in Square can show a transient gap that resolves once committed. | Self-resolves within minutes |
Present-at-all-locations items. An item flagged present_at_all_locations is tracked per location; a gap at one location is a real mismatch, not an artefact. | Vortex IQ correctly flags a per-location gap a summary view may blur |
| Third-party sync lag. An external tool writing to one ledger before the other shows a brief gap until both sides settle. | Self-resolves once the external sync completes |
| Sync lag. Square inventory counts are near real time but the most recent updates may take a short cycle to reach our index. | Self-resolves within minutes |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
| Square inventory vs marketplace listings | Internal parity should hold before any marketplace feed can be trusted | If POS and online disagree inside Square, the marketplace feed inherits whichever number it reads. Fix internal parity first; marketplace mismatch often clears once it does. |
google_analytics.product-performance | No direct relationship | GA4 records web product views and purchases, not stock levels. It cannot confirm a parity gap, but rising views with falling conversion on a SKU can be the customer-facing symptom of hidden stock. |