Product

One snapshot isn't a trend: tracking inventory month over month

Your on-hand number tells you where you stand today — it can't tell you where you stood on March 31, unless someone captured it.

A stock number is a balance, not a history

Open any inventory report and the on-hand column tells you one thing: where the position stands right now. It's a balance, not a history — every receipt, sale, return, and adjustment overwrites it in place. That's exactly what you want when you're deciding whether to reorder today.

Month-end close wants something different. It wants the figure as it stood at the period boundary — the 31st, not the 6th of the month after. Ending inventory sits on the balance sheet as a current asset, and it doesn't stand alone: this period's ending balance is next period's beginning balance, so every month's reading is load-bearing for the one after it. The same figure feeds cost of goods sold, and the ratios finance actually asks for need two of them.

ending inventory = beginning inventory + net purchases − COGS

average inventory = (beginning inventory + ending inventory) ÷ 2

Both need readings taken at period ends — turnover (COGS ÷ average inventory) can't be computed from a single live number. Ending-inventory formula per Shopify's ending inventory guide.

One reading is a point. You need two before you have anything to divide.

The series has to be captured, not recalculated

The tempting assumption is that history can be reconstructed — that if you know today's on-hand, you can work backwards to last March. You can't, not reliably. Between then and now the count moved for reasons that don't all leave a tidy, reversible trail: receipts, customer returns, transfers between locations, cycle-count corrections, damage write-offs, shrinkage. And the value of that stock depends on the costing method — FIFO, LIFO, and weighted average each put a different figure on the same physical shelf. Rebuilding a period-end number after the fact means re-deriving all of it, and being wrong quietly.

Which is why the usual answer is a person. Someone exports a CSV on the 1st and drops it in a folder. That works right up until the month it doesn't. A missed export isn't a delayed number, it's a permanent hole — nobody can go back and take a reading of a day that already passed. Analytics tools have edges of their own here: Shopify's docs note its inventory metrics only reach back to October 1, 2023, and that deleted locations drop out of historical inventory reports (Shopify Help Center).

QuestionLive stock numberMonthly captured series
What do I have right now?Answers it directly — that's what it's forShows the last capture, not this minute
What did I hold on March 31?Overwritten by every move sinceThe March run, still in history with its file
Can I compute turnover?One reading; the ratio needs twoTwo period-end readings, so yes
Can a missed month be recovered?Nothing to recover fromNo — but the schedule doesn't forget
Who has to remember to do it?Whoever opens the report that dayThe schedule, on the days and hour you set

Build the report by asking, then stop rebuilding it

Before a series can accumulate, the report has to exist — and it has to be the same report every month, or you're comparing apples to something else.

Assisty's AI Report Builder takes the ask in plain English. Inventory levels and stock availability are among the report families it covers, broken down by product, variant, category, vendor, location, or over time, and it answers with a live table built from your synced store data — no measure pickers, no filter trees.

The first version is rarely the final one. Refine it by talking: "Add gross profit." "Show the last 90 days." "Just the top 20." Atlas changes only what you asked for and keeps the rest of the report intact, and every filter shows as a chip you can remove. When the shape is right, save it as a custom report and it joins My Reports beside the rest — a fixed definition, not a query someone re-types from memory each month.

The archive is the series

From any report, Quick Actions → Schedule Report captures that report exactly — breakdown, time range, filters, columns — including the reports you built by asking Atlas. Set it monthly: pick the days of the month and the hour it runs, in your store's timezone. Run now sends a test delivery the moment you save, so you find out on day one whether the file is the file finance actually wants.

Then the part that makes it a series: every run is kept in history — with the file it sent, re-downloadable any time. Twelve months of scheduled runs is twelve dated files, each one the report as it stood on the day it ran, with nobody having to remember anything.

If finance would rather have one artifact than twelve, append each run to the Google Sheet the team already lives in instead of creating a fresh one, so each run adds to the same sheet. The other channels — email attachments, Google Drive, a Shopify Flow trigger that can alert Slack or Teams or push to your ERP — are all there, but the append is the one that builds a series.

StepWhat Assisty does
AskA plain-English request returns a live inventory table from your synced store data (AI Report Builder)
Refine"Add gross profit," "Just the top 20" — only what you asked changes; every filter shows as a removable chip (AI Report Builder)
SaveThe report joins My Reports as a fixed definition you can reopen in the full editor (AI Report Builder)
ScheduleMonthly on the days of the month and hour you pick, store timezone — the schedule captures breakdown, time range, filters, and columns exactly (Scheduled Reports)
KeepEvery run stays in history with the file it sent, re-downloadable any time — or append each run to an existing Google Sheet (Scheduled Reports)

What a series tells you that a snapshot can't

A snapshot answers how much. A series answers which way — and direction is where the interesting questions live.

Hold quantity and value side by side across several months and the divergences do the talking. Quantity flat while value climbs is cost drift: the same goods, costing more to hold. Value flat while quantity climbs is the mirror image — more units, cheaper ones, more shelf space bought for the same money. And a count that quietly shrinks month after month without a matching rise in what you're selling is where shrinkage and dead-stock write-offs surface, slowly enough that no single month's number ever looks wrong on its own.

None of that is visible in one reading. It only appears against the readings before it.

The honest caveat: the series starts the month you start capturing it. Assisty doesn't invent the months you didn't record, and neither does anything else — a scheduled report captures what runs, from the run onward. A year of history is twelve months of scheduling away, which makes this month the cheapest one to begin and every month you wait the most expensive part of the eventual answer.

Put your month-end series on a schedule

Install Assisty and let a monthly run build the history you'd otherwise have to remember to capture.

Install on Shopify