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
- Make sure the product is tracked. History only exists for variants with inventory tracking on.
- One product: Products → the product → a variant if it has them → View adjustment history.
- All products and locations: Analytics → Reports → filter to the Inventory category → Inventory adjustment changes.
- 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
| 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:
- In your Shopify admin, go to Products and open the product.
- If it has variants, open the variant you want to track.
- 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.
- Enter the Available quantity at each location.
- Optionally choose Continue selling when out of stock if you take backorders.
- 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
- Go to Products and open the product.
- 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.
- In the Inventory section, check the variant says Inventory tracked, then click View adjustment history.
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:
- Go to Products → Inventory and pick the location.
- Click the quantity in the Available or On hand column.
- 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).
- Click Add reason and choose one: Correction, Count, Received, Return restock, Damaged, Theft or loss, or Promotion or donation.
- Click the checkmark, then Save.
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
- 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.
- 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.
- There's no View adjustment history link. Tracking is off for that variant, or you're on the product rather than the variant.
- The history stops after 180 days. That's the limit. Use the Inventory adjustment changes report for older changes.
- 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.
- 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.
- 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.