Writing down why the stock moved, when there is no box
Two units leave the shelf because a customer dropped one in the shop and you sold the other at a market stall. Shopify will let you record that stock left. It will not let you say either of those two things, and the merchant who most needs to say them — the one whose accountant, insurer or safety officer asks later — is the one Shopify's dropdown has least room for. The list is fixed, it is longer than the admin shows you, and the piece everyone actually wants has been asked for since May 2024.
Two units left the shelf this morning. A customer knocked one off a display, and you sold the other at a market stall that is not in Shopify. You can record both. What you cannot record is either of those two sentences.
Shopify's reason list is fixed. It is also longer than the one you are looking at — the admin shows you seven and the platform accepts seventeen — and the gap between those two lists is where most of this problem lives.
The seven in the admin
When you adjust a quantity from your desktop, the Reason field offers:
Correction · Count · Received · Return restock · Damaged · Theft or loss · Promotion or donation
Correction is the default when you pick nothing. That matters more than it sounds, because the reason you did not choose is the one that ends up in your history, and Correction is the one word that tells a reader nothing at all.
For most stores, that list covers most days. The trouble starts at the first thing it has no word for, and every store has one: a sample sent to a buyer, stock moved to a sister shop, a unit used in a photo shoot, a sale made at a fair.
The list Shopify's developer documentation publishes is longer
This is the part almost nobody is told, and it is published:
"In the
reasonfield in the mutation's input, you can specify one of the following reasons for adjusting inventory quantities:"
correction · cycle_count_available · damaged · movement_created · movement_updated · movement_received · movement_canceled · other · promotion · quality_control · received · reservation_created · reservation_deleted · reservation_updated · restock · safety_stock · shrinkage
Seventeen. Most of the extra ten are Shopify's own bookkeeping — transfers and purchase orders moving through their states, reservations being made and released, and units parked in an unavailable state rather than written off. Those are not choices a person makes at a shelf.
One of them is. other is on that list, described as being used "to specify an alternate reason for the inventory adjustment" — and it is the option merchants have been asking for by name since May 2024.
So "Other" exists. It exists where an app can reach it and not where you can.
Stock leaving for a reason the list has no word for? Describe what should be written down when it happens →
What "Other" is not
It is worth being exact about this, because the name promises more than the value delivers. other is a value, not a text box. It records that the reason was none of the others and carries no sentence of yours.
So even the longer list does not answer the real request. What merchants keep asking for is a line of free text beside the number, and no reason in either list is one: the admin gives you a dropdown and nothing else, and the longest the API offers is a value that means "ask somebody".
That request is old and it is on the record. A feature request opened on 1 May 2024 asked Shopify to "add an 'Other' option to this functionality whereby we can specify our own reason for the adjustment", with the plainest possible example: "We are often moving products from one shop to another shop and there is no relevant reason in the menu." Shopify replied on 24 August 2024 that the feedback had been "added to our collection of ongoing feedback". The thread is still open, and the most recent post on it — 21 June 2026 — is another merchant asking for a reason called "Sold elsewhere".
A second thread asks for the note directly rather than for a reason. On 13 March 2024 a merchant posted the whole of this problem as one question — "Is there any way to add notes to manual inventory changes?" — and nobody from Shopify has replied to it in the two years since.
A third puts the stakes in a sentence a bookkeeper will recognise. On 18 March 2026 a merchant wrote that "Correct reporting of stock movement is a legal and tax requirement for us, and a safety requirement for my staff". Nobody from Shopify answered that one either, and merchants were still adding to it in May.
And the history has a wall at 180 days
"You can view only the last 180 days of inventory adjustment history for a product or variant."
That was ninety days until 8 November 2024, when Shopify "doubled the length of the inventory adjustment history table for a product or variant from 90 to 180 days".
Past the wall there is one documented route: "For adjustment history beyond 180 days, you can use the Inventory adjustment changes report." It lives in your reports rather than on a product page, and it is the most useful thing in this whole subject, because of what it can be sliced by — "SKU, location, staff member, app, and adjustment reason."
One caveat decides whether it helps you this year or in two years. Shopify's changelog of 18 July 2025 gives that longer history "on a go-forward basis", and says "you must be using new Shopify Analytics to view these reports." It does not reach backwards. What a stocktake discrepancy actually cost you goes through the same wall from the counting side, and the same date governs there.
The damaged-stock report, and what it will not say
Here is the good news, because it is better than most merchants expect. Damaged is a real reason in both lists, and the adjustment changes report filters by reason. So a report of every unit written off as damaged, by location and by the staff member who did it, is native — no app needed, as long as you are on new Shopify Analytics, which is the one requirement the changelog states.
Here is what that report will not tell the person reading it:
- What it was worth. The report counts units. Valuing them is a calculation Shopify does not make — that is its own question, and the answer is units × cost, done by you.
- Which damage. Dropped, water, faulty on arrival, damaged in transit — all one word. If you claim against a supplier or an insurer, that distinction is the claim.
- Where it went. An adjustment records a movement out, not a destination. If the goods are going back to whoever sent them, that is a different document entirely, and Shopify has no reason code for it either.
- Anything in your own words. Nothing in the admin lets you type a sentence beside the number, and no reason in either list carries one. That is the request underneath all three of the threads on this page.
So the native report is a good skeleton and a poor record. Which of those four gaps matters depends entirely on who is going to ask you about it.
Which route is yours
| What you need | Where it comes from |
|---|---|
| A reason on each adjustment | Native — seven of them, from the desktop admin |
| A longer list than seven | Only through the API — seventeen values, including other |
| Your own wording beside the number | Not in the admin, and no reason in either list is a text field |
| History older than 180 days | The Inventory adjustment changes report — from July 2025 forwards only |
| Adjustments grouped by reason, staff or location | Native — the same report |
| What the write-off was worth | Not in the reports |
| Stock going back to the supplier | A transfer, not an adjustment |
| Custom reasons and notes you can export | An app — the cheapest of the three read below is $4.99 a month |
The apps, named honestly rather than sold. StockSpy is the cheapest of the three listings read for this page, at $4.99 a month with a fourteen-day trial, and it says it will "Enrich every adjustment with reasons, authors, and comments" and "Export movement history for analysis and reporting." It was listed in September 2025 and carries no reviews yet. Inventory History Guardian is $19.99 a month, $39.99 for larger catalogues, listed in August 2024 with 5.0 from eight reviews, and it is the one written for the audit case specifically — "Add custom reasons for your staff to use and keep your records accurate" and "Export the entire log to CSV for accountants, auditors, or investigations." One thing to ask either vendor before you buy: whether the custom reason reaches Shopify's own adjustment history or lives only in the app's log. Neither listing says, and it decides what happens to your records if you ever leave.
What Shopivibe does
You name the kinds of stock movement your shop actually makes, in your own words, and each one gets its own rule — so the record says which it was, instead of saying "Correction" seven different times. Sold at the Saturday market. Sample sent to a buyer. Broken in the stockroom. Moved to the other shop. Four situations, four rules, four names in the record.
That record is yours, it is grouped the way you would group it, and it does not disappear at a hundred and eighty days. When your accountant asks in March what the write-offs were, or your insurer asks which damage was which, the answer is a list rather than an afternoon.
Being straight about two things, because they are the kind of detail that bites later. When one of your rules moves stock, Shopify's own adjustment history records it as a correction — its reason field has no slot for a sentence, so your words live in your record and not in Shopify's. (An adjustment somebody makes by hand in the admin still gets whichever of the seven they pick.) And what a rule gives you is a name per kind of movement, not a free line typed per event; if a particular write-off needs its own sentence on the day, that is still something a person writes down.
Describe the moves your shop actually makes and what each one needs to say, and a person here has it working in your store within 24 hours.
Shopivibe solves the problem in your store and keeps what it adds maintained, including when Shopify changes something underneath. Shopivibe is free during early access, with 3,500 credits included. Credits beyond the included 3,500 cost $0.06 each.
Need a stock record your accountant will accept? Describe what should be written down when stock moves →
Checked against Shopify's documentation and the App Store on 20 October 2026.