SI Store Ops

Inspectable example · updated 2026-10-11

Synthetic worked example: reconciling Shopify stock with a warehouse list

Inspect an invented four-product reconciliation showing how a written rule turns raw stock numbers into matches, explained gaps and one real finding.

An example, not a customer case study. Scope and evidence limitations are described below.

What this example is

This is an invented fixture for one location, not a customer record and not a result from a real store. The products, quantities and rule are made up to show the method. Nothing here was executed against a live system.

  • One Shopify location, four products.
  • The other system reports units on the shelf and units allocated to open orders.
  • Rule R1, written down before comparing: sellable stock equals on shelf minus allocated, and Shopify available should equal it.

The reconciliation sheet

Each row compares the same product at the same location at the same time. Shopify committed units are shown so that the committed state is not mistaken for drift.

If the matrix is wider than the box, scroll horizontally to read every column. Keyboard: focus the matrix and use Left/Right.

SKU     Location   Shopify  Shopify    Other system  Other system  Rule R1: sellable =     Diff   Status
                   avail.   committed  on shelf      allocated     on shelf - allocated
TS-S    Main       12       3          15            3             12                       0     match
TS-M    Main       8        2          12            2             10                       -2    explained: 2 units received, not yet in Shopify
TS-L    Main       5        0          5             0             5                        0     match
TS-XL   Main       20       0          16            2             14                       +6    UNEXPLAINED: check sync log for an absolute write

Reading each row

TS-S and TS-L match under the rule. TS-M differs by two, and the reason is a recorded event: two units were received in the warehouse list and have not reached Shopify yet, so it is explained and should clear on the next run. TS-XL differs by six with no recorded reason, so it is the finding. Shopify shows more sellable stock than the warehouse list says exists.

  • A zero difference needs no action.
  • An explained difference gets an owner and a date to clear.
  • An unexplained difference is investigated before anything is changed.

What would be checked next for the unexplained row

A typical cause for Shopify showing more than the other system is an absolute write that was based on an older read, so sales made in between were erased. The check is to compare the sync log with Shopify's adjustment history for that product around the time of the last run: was a total written, and were there sales just afterwards? A sync that compares before writing, or sends changes instead of totals, would not erase them. This is a hypothesis to test, not a conclusion.

  • Compare the time of the last sync write with the times of recent orders for the product.
  • Check whether the sync writes a total or a change.
  • Check which Shopify location the sync wrote to.

What a clean result looks like

After a correction, the same sheet is rebuilt on a test store: every difference is zero or explained, a repeat run changes nothing, and a test sale reduces both systems once. The sheet is evidence for the person accepting the work, who can recompute any row from the two exports.

What this example leaves out

It leaves out more than one location, damaged or reserved stock, product-code mismatches and any count of physical stock. A physical count is the owner's decision, and a reconciliation cannot say what is truly on the shelf.

Sources and limits