Shopify Inventory History and Adjustment Reports: How to See Every Stock Change

Illustration of an adjustment history window listing Received, Order fulfilled, Damaged and a highlighted Count row with a mint check mark, next to a stockroom shelf of boxes with one empty gap and a clipboard reading 18

Shopify keeps a record of every change to a tracked product's stock: who or what made it, when, why, and what the quantities were afterwards. You can read that record in two places. For one product, open the product (or variant) in your admin and click View adjustment history in the Inventory section. For everything at once, go to Analytics → Reports and open the Inventory adjustment changes report. The first goes back 180 days; the second goes back to October 1, 2023.

This guide covers both, plus how to make the history useful: turning on tracking, recording reasons, building a custom report, and working out why a number doesn't add up.

The short version

  1. Make sure the product is tracked. History only exists for variants with inventory tracking on.
  2. One product: Products → the product → a variant if it has them → View adjustment history.
  3. All products and locations: Analytics → Reports → filter to the Inventory category → Inventory adjustment changes.
  4. Record why. When you change a quantity on Products → Inventory, click Add reason. That reason is what shows up in the history later.

Two places to see inventory history

One stock change in Shopify shows up in two places: the variant's adjustment history, which covers the last 180 days, and the Inventory adjustment changes report in Analytics, which covers all SKUs and locations since October 2023 01 · THE CHANGE Someone changes stock Linen tote · Natural SET TO 18 available REASON Count BY Alex (staff) −1 02 · WHERE YOU SEE IT Adjustment history WHERE Product or variant page COVERS One variant at a time GOES BACK 180 days Adjustment report WHERE Analytics › Reports COVERS Every SKU and location GOES BACK To Oct 2023 One product, recent weeks: history. Everything else: the report.
The same stock change appears in the variant's adjustment history and in the inventory adjustment report. They differ in how far back they go and how much they cover.
Adjustment history Inventory adjustment changes report
Where Product or variant page, Inventory section Analytics → Reports
Covers One variant at a time All variants and locations
How far back Last 180 days From October 1, 2023
Shows who made the change Yes, in Created by Yes, and you can break it down by staff, app and location
Export No Yes: CSV and other formats
Best for “Why is this one product at 17?” Audits, shrinkage, month-end checks

Shopify added the report and the underlying adjustment model in July 2025. Before that, the per-variant history and its 180-day window were all you had in the admin.

How to turn on inventory tracking

If a variant isn't tracked, Shopify has nothing to record. To switch tracking on:

  1. In your Shopify admin, go to Products and open the product.
  2. If it has variants, open the variant you want to track.
  3. In the Inventory section, switch on tracking. On desktop the control reads Inventory not tracked until you turn it on; in the Shopify mobile app it's Track quantity.
  4. Enter the Available quantity at each location.
  5. Optionally choose Continue selling when out of stock if you take backorders.
  6. Click Save.

History starts from the moment tracking is on. It won't reconstruct what happened before.

How to view a product's adjustment history

  1. Go to Products and open the product.
  2. If the product has variants, click the variant. History is kept per variant, and there's no combined view for every variant of a product.
  3. In the Inventory section, check the variant says Inventory tracked, then click View adjustment history.
Mockup of a variant's adjustment history in Shopify admin, with Date, Activity, Created by, Available and On hand columns and five rows: inventory received, a correction by an app, a damaged unit, a manual count and a reservation that moves one unit out of Available LINEN TOTE · NATURAL Adjustment history LAST 180 DAYS Date Activity Created by Avail. On hand Sep 2 Inventory received Sam 2424 Sep 9 Inventory correction An app 2020 Sep 15 Damaged Alex 1919 Sep 28 Inventory manually counted Alex 1818 Sep 29 Reservation created Sam 1718 1 Created by names the staff, app or channel 2 The reason you pick becomes the Activity 3 Reserved units leave Available, not On hand
A variant's adjustment history, simplified. Each row is one change; the quantity columns show where stock stood right after it.

What the columns mean

Column What it tells you
Date When the change happened.
Activity What caused it: a reason you picked, or an automatic event such as a transfer or a reservation.
Created by The staff member, app or sales channel responsible.
Unavailable Units you have but can't sell, such as stock set aside as damaged or for quality control.
Committed Units set aside for unfulfilled orders, draft orders and transfers.
Available What you can still sell.
On hand Committed + Unavailable + Available: everything physically at the location.
Incoming Units on their way from a transfer.

The one that confuses people is Available dropping while On hand stays put. That isn't missing stock. A unit has been committed to an order or reserved for a draft order, so it's still on the shelf but no longer for sale.

What the Activity labels mean

When you pick a reason while adjusting stock, it appears in the history under a slightly different name:

Reason you pick Activity in the history
Correction Inventory correction
Count Inventory manually counted
Received Inventory received
Return restock Items restocked
Damaged Damaged
Theft or loss Theft or loss
Promotion or donation Promotion or donation

Shopify also writes some rows on its own, including Transfer created, Removed from location, Data correction, and Reservation created, updated or deleted for draft orders and app holds.

How to record a reason when you adjust stock

A history is only as useful as the reasons in it. A column full of blank or generic changes tells you who touched the number, not why. On desktop:

  1. Go to Products → Inventory and pick the location.
  2. Click the quantity in the Available or On hand column.
  3. Use Set to to enter the new total (after a count, say), or switch to Adjust by to add or remove units (a delivery, a breakage).
  4. Click Add reason and choose one: Correction, Count, Received, Return restock, Damaged, Theft or loss, or Promotion or donation.
  5. Click the checkmark, then Save.
Worth knowingAdd reason isn't available in the Shopify mobile app. If your team adjusts stock from their phones, those changes will be logged without a reason. Agree on who adjusts from where, or tidy up the important ones from a desktop.

The inventory adjustment report in Analytics

For anything wider than one variant, go to Analytics → Reports, filter the list to the Inventory category and open Inventory adjustment changes. It lists every adjustment in the date range you choose: manual changes in the admin, changes made by inventory apps, transfers and order fulfillments. It shows which inventory state changed (Available, Committed and so on) and by how much.

Its companion, Inventory adjustments by count, counts adjustments instead of units. It's the one to use for questions like “how many adjustments did each staff member make at each location last month?” or “how many changes did each app make?”

Two limits to know about. Historical data starts on October 1, 2023. And inventory at a location you've since deleted isn't included.

To take the data elsewhere, open the report, click the menu icon and choose Export. CSV works in any spreadsheet.

Build your own inventory adjustment report

The default report is a starting point. Click New exploration on the Reports page, or edit the default and save it as your own. The two metrics are Inventory adjustment change (units) and Inventory adjustment count (how many times). Useful dimensions include Inventory location name, Product variant SKU, Inventory state, Inventory change reason and Reference document type.

A few that are worth saving:

  • Shrinkage by location: adjustment change, filtered to the Damaged and Theft or loss reasons, grouped by location, over the last 12 months.
  • One SKU everywhere: every adjustment for a single SKU across all locations, for when one product never seems to match.
  • Transfers only: filter on reference document type to see stock moved between locations.

If you're comfortable with a query editor, the same report in ShopifyQL looks like this (this is Shopify's own example, for transfers):

FROM inventory_adjustment_history SHOW inventory_adjustment_change WHERE reference_document_type = 'Inventory::Transfer' GROUP BY inventory_location_name WITH TOTALS

Which reports you can open and customize depends on your Shopify plan. If you don't see one of these, check your plan before assuming something is broken.

Shopify built-in vs a stock app

For most stores, what's built in is enough: tracked quantities, reasons on adjustments, the per-variant history and the reports. An inventory app earns its place when the work is on the shop floor, not in the admin.

You need to… Shopify built-in Stock app
See who changed a quantity and why Yes Yes
Report on adjustments across locations Yes, in Analytics Usually, in the app
Count a whole shelf by scanning barcodes No; you type totals Yes
See expected vs counted before you commit No Yes

We build Stock Control for that second group. You start a count for a location, scan what's on the shelf, and the app shows each item as a match, an overage or a shortage against what Shopify expects. When you commit, Shopify's quantities update, and anything you didn't count is left alone. Ad-hoc adjustments carry a reason code and a note and post to Shopify straight away, so they show up in the same history and reports described above. It also runs on Shopify POS. It's on the Shopify App Store, and the help centre walks through counts and adjustments step by step.

If you're weighing up inventory tools after Stocky, we've written about what comes next now that Shopify has replaced Stocky.

When the numbers don't add up

  1. Available dropped, nothing was sold. Look for a Reservation created row. A draft order or an app has put units on hold. Available goes down, On hand doesn't.
  2. A change says “Created by” an app you don't recognize. An installed app is writing inventory, often a marketplace, ERP or sync tool. Check Apps in your admin and look at which ones have inventory permissions.
  3. There's no View adjustment history link. Tracking is off for that variant, or you're on the product rather than the variant.
  4. The history stops after 180 days. That's the limit. Use the Inventory adjustment changes report for older changes.
  5. The report has nothing before October 2023, or is missing a location. Historical data starts on October 1, 2023, and deleted locations aren't included.
  6. Lots of changes with no reason. They were probably made in the mobile app or by typing straight over a quantity. Set a team rule: every manual change gets a reason.
  7. Stock went negative. The product is set to continue selling when out of stock, or orders came in faster than a sync caught up. The report helps here: filter to that SKU and read the changes in order.

Our three-part series on stock takes covers the practical side, from getting started to running a count. If you sell from more than one store, see running one inventory across multiple Shopify stores.

Common questions

Does Shopify keep a history of inventory changes?

Yes, for every tracked variant. Open the variant and click View adjustment history for the last 180 days, or use the Inventory adjustment changes report in Analytics → Reports for changes back to October 1, 2023.

Is there an activity log for inventory changes?

The adjustment history is effectively that log. Each row records the activity, the date, and who or what made the change in Created by: a staff member, an app or a sales channel.

Can I see adjustment history for all variants at once?

Not on the product page; history there is one variant at a time. The Inventory adjustment changes report shows every variant and location together, and you can filter it down to a product or SKU.

How far back does Shopify inventory history go?

180 days on the product page. In the reports, historical inventory data starts on October 1, 2023.

Can I export inventory adjustment history?

Export the report rather than the product-page history. Open the report, click the menu icon, then Export, and choose CSV or another format.

Why don't changes made on my phone have a reason?

Add reason isn't available in the Shopify mobile app. Make adjustments that need a reason from a desktop browser.