At a glance
A consistency check between the inventory stored in your MySQL database and the inventory the storefront platform reports. The card counts SKUs in the MySQL inventory table and compares them against the ecom connector’s published inventory count, then reports how many SKUs have drifted apart. Any non-zero drift means the source of truth and the shopper-facing catalogue disagree, which leads directly to overselling (selling stock you do not have) or phantom out-of-stocks (hiding stock you do have). Both cost money; the first costs trust and refunds, the second costs sales.
Calculation
The card runs two counts and compares them per SKU. On the MySQL side it reads the live inventory table, for example:Worked example
A team runs the catalogue in MySQL and syncs inventory to the storefront every 30 minutes via a scheduled job. On 14 Apr 26 the sync job silently fails at 09:00 (an expired API token) but the scheduler keeps reporting “success” because it caught the wrong exit code. By 13:00 the card reads:
The 19 drifting SKUs are the high-velocity lines that sold through the morning. The database correctly shows them low or at zero; the storefront still shows the 09:00 quantities. The alert (
>0 SKUs drifting) fired at 09:32 on the first divergence.
- The database is the truth; the storefront is a cache. When they disagree, trust the database and republish. The card tells you the cache is stale before shoppers do.
- Zero tolerance is the right default for inventory. A drift of one unit on a one-of-a-kind item is a guaranteed oversell. Only widen tolerance if the platform deliberately reserves a safety buffer.
- A “successful” sync job is not proof of correctness. Jobs can report success while doing nothing. This card measures the outcome (do the numbers match?) rather than the process (did the job run?), which is why it catches silent failures.
Sibling cards
Reconciling against the source
Where to look in MySQL directly:On managed services the table-level read is identical; the database engine does not change the calculation. What changes is where the ecom feed reads from: if the storefront reads a read-replica, confirm the replica is current (see the replication cards below) before treating drift as a sync failure. Why our number may legitimately differ from a manual diff:SELECT COUNT(*) FROM inventory_stock WHERE qty > 0;for the count of in-stock SKUs in the database (substitute your real inventory table, for examplecataloginventory_stock_itemon Magento).SELECT sku, qty FROM inventory_stock WHERE sku IN (...);to inspect the specific drifting SKUs the card flags. Cross-check against the storefront’s own inventory export or API: pull the published quantity for the same SKUs and diff. The numbers should match unit for unit.
Cross-connector reconciliation: