Skill Tracer
Skills › Knowledge Work Plugins › inventory-planner

inventory-planner

skill · 126 lines · Apache-2.0 · small-business/skills/inventory-planner/SKILL.md

The facts

Its description

Works out what to reorder and when, from what is actually selling: pulls sales history and stock on hand from Shopify, Square, NetSuite, or an uploaded CSV, computes 7-day and 28-day sales velocity per item, projects a conservative stockout date for each, sizes a 60-day reorder quantity, and drafts the purchase orders and vendor emails to cover it. Flags the money sitting still too — overstock, dead stock, and zero-velocity items, reported as slow movers to clear rather than things to buy more of. Seasonality is applied where the history supports it and named where it does not. Nothing is ordered and no vendor is emailed without approval. Reach for this whenever stock comes up — "what do I need to reorder," "am I going to run out," "what should I order this month," "we keep running out of filters," "how much cash is sitting in the warehouse," "what is not moving," or "draft a PO for my supplier."

The description the agent reads to decide when to use it.

From its settingsline 3

When it starts

A conversation about stock would make the agent pick this skill — what to reorder, whether something is about to run out, what to order this month, how much cash is tied up in slow or dead stock, or drafting a purchase order for a supplier. The description says to reach for it whenever stock comes up.

Things a person might say (the model's guesses)

  • “What do I need to reorder this month?”
  • “Am I going to run out of the Merv 11 filters before the next delivery?”
  • “How much cash is sitting in the warehouse in stuff that isn't moving?”

A model's summary of when it is used.

A model's reading

Tools it may use, or may not

allowed-tools: Read, WebFetch

Tools it may use while it runs without asking you first.

From its settingsline 17

Files it mentions

reference/data_sources.md, reference/velocity_and_reorder.md, reference/seasonality.md (first 5 of 8 lines)

Files the text names, such as ones to read or write. Found by matching words, so treat them as pointers.

Found by matching wordsline 32 line 43 line 84 line 118 line 119

What it leads to

Other skills this one hands off to, calls, requires or offers instead, as a model read them.

A model's reading

What leads to it

Other skills that hand off to this one, call it, require it or offer it instead, as a model read them.

A model's reading

Licence

Apache-2.0, from LICENSE

The terms its author shares it under, which let it be shown here.

From the repositorylicence text
Other files in this skill (5) Close

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: inventory-planner
3description: >
4 Works out what to reorder and when, from what is actually selling: pulls
5 sales history and stock on hand from Shopify, Square, NetSuite, or an
6 uploaded CSV, computes 7-day and 28-day sales velocity per item, projects a
7 conservative stockout date for each, sizes a 60-day reorder quantity, and
8 drafts the purchase orders and vendor emails to cover it. Flags the money
9 sitting still too — overstock, dead stock, and zero-velocity items, reported
10 as slow movers to clear rather than things to buy more of. Seasonality is
11 applied where the history supports it and named where it does not. Nothing
12 is ordered and no vendor is emailed without approval. Reach for this
13 whenever stock comes up — "what do I need to reorder," "am I going to run
14 out," "what should I order this month," "we keep running out of filters,"
15 "how much cash is sitting in the warehouse," "what is not moving," or "draft
16 a PO for my supplier."
17allowed-tools: Read, WebFetch
18---
20# Inventory Planner
22Buy what sells, before it runs out, and stop buying what doesn't.
24Stock is cash the owner already spent. Two things go wrong: running out of the item customers came for, and sitting on a pallet of something nobody wants. Both are visible in the sales history well before they become a problem, which is what this skill reads for.

Inventory Planner

Buy what sells, before it runs out, and stop buying what doesn't.

Stock is cash the owner already spent. Two things go wrong: running out of the item customers came for, and sitting on a pallet of something nobody wants. Both are visible in the sales history well before they become a problem, which is what this skill reads for.

Raw lines 1 to 25
26## Step 1 — Get sales and stock
28**Preferred:** Shopify for sales and inventory levels. Square and NetSuite work the same way.
30**Fallback, fully supported:** a CSV of sales history plus a stock-on-hand count. Two files, or one with both. This path works with zero connectors and gives the same output. Many businesses count on a clipboard, and that is a legitimate input.
32You need, per item: SKU, name, units sold by date, current stock on hand, unit cost, unit price, vendor, and lead time if known. Missing lead time is asked for once and remembered — see `reference/data_sources.md`.
34**Say what the count is as of.** A stock figure two weeks old produces a stockout date two weeks wrong.

Step 1 — Get sales and stock

Preferred: Shopify for sales and inventory levels. Square and NetSuite work the same way.

Fallback, fully supported: a CSV of sales history plus a stock-on-hand count. Two files, or one with both. This path works with zero connectors and gives the same output. Many businesses count on a clipboard, and that is a legitimate input.

You need, per item: SKU, name, units sold by date, current stock on hand, unit cost, unit price, vendor, and lead time if known. Missing lead time is asked for once and remembered — see reference/data_sources.md.

Say what the count is as of. A stock figure two weeks old produces a stockout date two weeks wrong.

Raw lines 26 to 35
Reads a file reference/data_sources.md :32
36## Step 2 — Compute velocity, both windows
38For every item, compute:
40- **7-day velocity** — units per day over the last week. Catches what is happening now.
41- **28-day velocity** — units per day over four weeks. The stable baseline.
43Both matter, and disagreement between them is information. An item selling three times its 28-day rate this week is either trending or had one bulk order, and those need different responses. `reference/velocity_and_reorder.md` covers how to tell them apart.
45Exclude one-off distortions from the baseline where you can identify them: a single wholesale order, a returned batch, a stockout period where the item could not sell. **A period of zero sales because there was no stock is not zero demand**, and treating it as such is how an item gets under-ordered forever.

Step 2 — Compute velocity, both windows

For every item, compute:

  • 7-day velocity — units per day over the last week. Catches what is happening now.
  • 28-day velocity — units per day over four weeks. The stable baseline.

Both matter, and disagreement between them is information. An item selling three times its 28-day rate this week is either trending or had one bulk order, and those need different responses. reference/velocity_and_reorder.md covers how to tell them apart.

Exclude one-off distortions from the baseline where you can identify them: a single wholesale order, a returned batch, a stockout period where the item could not sell. A period of zero sales because there was no stock is not zero demand, and treating it as such is how an item gets under-ordered forever.

Raw lines 36 to 46
47## Step 3 — Project stockout dates, conservatively
49Stockout date is stock on hand divided by the daily velocity you trust least — the higher of the two windows. Being early is cheap; being late loses the sale.
51Then compare against lead time. The number that matters is not when it runs out, it is whether there is still time to order:
53- **Past the point of no return** — lead time exceeds days of cover. Already going to stock out. Say so plainly.
54- **Order now** — cover is within lead time plus a safety buffer.
55- **Order soon** — comfortable, but on the next cycle.
56- **Fine** — no action.
58**Never state a stockout date for an item with no reliable velocity.** New items with two weeks of history and items whose sales were interrupted get flagged as "not enough history," by name.

Step 3 — Project stockout dates, conservatively

Stockout date is stock on hand divided by the daily velocity you trust least — the higher of the two windows. Being early is cheap; being late loses the sale.

Then compare against lead time. The number that matters is not when it runs out, it is whether there is still time to order:

  • Past the point of no return — lead time exceeds days of cover. Already going to stock out. Say so plainly.
  • Order now — cover is within lead time plus a safety buffer.
  • Order soon — comfortable, but on the next cycle.
  • Fine — no action.

Never state a stockout date for an item with no reliable velocity. New items with two weeks of history and items whose sales were interrupted get flagged as "not enough history," by name.

Raw lines 47 to 59
60## Step 4 — Size the reorder
62Default target is **60 days of cover plus the lead time**, sized on the **28-day rate** — not on the faster of the two. The stock has to last from the day it lands until the next order lands, so leaving the lead time out runs the item short by exactly that many days every cycle. Then adjust for pack size, minimum order quantity, and what is already on order.
64The two rates do different jobs and both get named on the line: the higher one says when it runs out, the 28-day one says how much to buy. Sizing a 60-day order off a one-week spike is how cash ends up in a pallet.
66Never size a reorder without subtracting inbound stock. Double-ordering a slow item is how a business ends up with three years of it.
68Round to the vendor's pack size and say which direction you rounded. Show the dollar cost of every recommendation — the owner is deciding about cash, not units.

Step 4 — Size the reorder

Default target is 60 days of cover plus the lead time, sized on the 28-day rate — not on the faster of the two. The stock has to last from the day it lands until the next order lands, so leaving the lead time out runs the item short by exactly that many days every cycle. Then adjust for pack size, minimum order quantity, and what is already on order.

The two rates do different jobs and both get named on the line: the higher one says when it runs out, the 28-day one says how much to buy. Sizing a 60-day order off a one-week spike is how cash ends up in a pallet.

Never size a reorder without subtracting inbound stock. Double-ordering a slow item is how a business ends up with three years of it.

Round to the vendor's pack size and say which direction you rounded. Show the dollar cost of every recommendation — the owner is deciding about cash, not units.

Raw lines 60 to 69
70## Step 5 — Handle the items that are not moving
72Zero-velocity and very slow items are a separate list with a separate purpose. **They are never reorder candidates.**
74- **Zero velocity** — no units in 28 days. Report as a slow mover with the cash tied up in it. **Never compute days of cover for these** — nothing is selling, so nothing is running out, and the number is either an error or nonsense. The one exception is an item inside a season the owner has named, which goes on a dated watch list instead of the clear-out list.
75- **Overstock** — more than 120 days of cover. Report the excess units and the dollars.
76- **Dead stock** — no movement in 90 days. Suggest clearing, bundling, or discounting.
78Total the cash sitting in these. That figure is usually the most surprising number in the whole report and often the most useful one.

Step 5 — Handle the items that are not moving

Zero-velocity and very slow items are a separate list with a separate purpose. They are never reorder candidates.

  • Zero velocity — no units in 28 days. Report as a slow mover with the cash tied up in it. Never compute days of cover for these — nothing is selling, so nothing is running out, and the number is either an error or nonsense. The one exception is an item inside a season the owner has named, which goes on a dated watch list instead of the clear-out list.
  • Overstock — more than 120 days of cover. Report the excess units and the dollars.
  • Dead stock — no movement in 90 days. Suggest clearing, bundling, or discounting.

Total the cash sitting in these. That figure is usually the most surprising number in the whole report and often the most useful one.

Raw lines 70 to 79
80## Step 6 — Apply seasonality only where history supports it
82With at least a year of history, compare the coming period against the same period last year and adjust.
84**With less than a year, say so and do not adjust.** A seasonal multiplier invented from nine months of data is a guess wearing a suit. Ask the owner instead — they know their season better than a short history does. `reference/seasonality.md` covers both paths.

Step 6 — Apply seasonality only where history supports it

With at least a year of history, compare the coming period against the same period last year and adjust.

With less than a year, say so and do not adjust. A seasonal multiplier invented from nine months of data is a guess wearing a suit. Ask the owner instead — they know their season better than a short history does. reference/seasonality.md covers both paths.

Raw lines 80 to 85
Reads a file reference/seasonality.md :84
86## Step 7 — Present the buy list
88Lead with the total dollar amount and the count of items about to stock out. Then: order now, order soon, slow movers, and anything with too little history to judge.
90Every line carries the numbers behind it — velocity, days of cover, lead time, quantity, cost. An owner who can see the reasoning approves in a minute; one who cannot rebuilds the whole thing by hand.
92Render the buy list as an HTML artifact using the house artifact style (`../../shared/artifact-style.md`): a stockout table sorted by stockout date with mono tabular-nums numerals, urgency status pills (order now / order soon / fine / past the point of no return), a reorder panel with quantities and dollar totals, and a slow-movers section with the cash tied up in it. The chat summary stays — the artifact is the full picture, not the only one.

Step 7 — Present the buy list

Lead with the total dollar amount and the count of items about to stock out. Then: order now, order soon, slow movers, and anything with too little history to judge.

Every line carries the numbers behind it — velocity, days of cover, lead time, quantity, cost. An owner who can see the reasoning approves in a minute; one who cannot rebuilds the whole thing by hand.

Render the buy list as an HTML artifact using the house artifact style (../../shared/artifact-style.md): a stockout table sorted by stockout date with mono tabular-nums numerals, urgency status pills (order now / order soon / fine / past the point of no return), a reorder panel with quantities and dollar totals, and a slow-movers section with the cash tied up in it. The chat summary stays — the artifact is the full picture, not the only one.

Raw lines 86 to 93
94## Step 8 — Draft POs and vendor emails, with approval
96Purchase orders commit money and vendor emails go out under the owner's name, so both wait for an explicit yes.
98State the vendor, the line items, and the total before asking. Draft the vendor email in the owner's voice per [the shared voice profile](../../shared/voice-profile.md). **If no profile exists yet, follow that file's "When there is no sample" instruction** — ask for three emails they have already sent a supplier. If they would rather not, write the email plain and neutral and say it is not in their voice. Never invent a personality for someone's vendor relationship.
100With Google Calendar connected, offer a recurring block for the restock decision — this works far better as a rhythm than as a fire drill. Keep the approved PO document here — this skill owns it. With QuickBooks or NetSuite connected, hand `ap-processor` the coded memo for each one (vendor, PO number, total, expected date, and the account, class, and job), so the bill three-way-matches against a real record when it arrives. `ap-processor` reads POs; it does not create them.

Step 8 — Draft POs and vendor emails, with approval

Purchase orders commit money and vendor emails go out under the owner's name, so both wait for an explicit yes.

State the vendor, the line items, and the total before asking. Draft the vendor email in the owner's voice per the shared voice profile. If no profile exists yet, follow that file's "When there is no sample" instruction — ask for three emails they have already sent a supplier. If they would rather not, write the email plain and neutral and say it is not in their voice. Never invent a personality for someone's vendor relationship.

With Google Calendar connected, offer a recurring block for the restock decision — this works far better as a rhythm than as a fire drill. Keep the approved PO document here — this skill owns it. With QuickBooks or NetSuite connected, hand ap-processor the coded memo for each one (vendor, PO number, total, expected date, and the account, class, and job), so the bill three-way-matches against a real record when it arrives. ap-processor reads POs; it does not create them.

Raw lines 94 to 101
Names a skill ap-processor :100
102## Closing offer
104Close with one line on what was decided — the total buy and the items about to run out. Then offer the most relevant next step with its exact trigger phrase: "reorder" (`/restock`) when the owner wants the POs drafted and sent end to end. Up to two more from the router's table, such as "cash forecast" (`cash-flow-snapshot`) or "pay the bills" (`/pay-the-bills`). Three offers at most, and never repeat one the owner already declined this session.

Closing offer

Close with one line on what was decided — the total buy and the items about to run out. Then offer the most relevant next step with its exact trigger phrase: "reorder" (/restock) when the owner wants the POs drafted and sent end to end. Up to two more from the router's table, such as "cash forecast" (cash-flow-snapshot) or "pay the bills" (/pay-the-bills). Three offers at most, and never repeat one the owner already declined this session.

Raw lines 102 to 105
Names a skill restock :104
Names a skill smb-router :104
Names a skill cash-flow-snapshot :104
Names a skill pay-the-bills :104
106## What not to do
108- **Do not invent a velocity, a lead time, or a stockout date.** Too little history is reported by SKU, not smoothed over.
109- **Do not treat an out-of-stock period as zero demand.** It is suppressed demand and it biases everything downstream.
110- **Do not recommend reordering a zero-velocity item.** No sales means stop buying, not buy more.
111- **Do not size a reorder without subtracting what is already inbound.**
112- **Do not apply seasonality without a year of history.** Ask the owner instead.
113- **Do not send a PO or a vendor email without approval.** Both spend money or spend goodwill.
114- **Do not report units without dollars.** The owner thinks in cash.

What not to do

  • Do not invent a velocity, a lead time, or a stockout date. Too little history is reported by SKU, not smoothed over.
  • Do not treat an out-of-stock period as zero demand. It is suppressed demand and it biases everything downstream.
  • Do not recommend reordering a zero-velocity item. No sales means stop buying, not buy more.
  • Do not size a reorder without subtracting what is already inbound.
  • Do not apply seasonality without a year of history. Ask the owner instead.
  • Do not send a PO or a vendor email without approval. Both spend money or spend goodwill.
  • Do not report units without dollars. The owner thinks in cash.
Raw lines 106 to 115
116## Reference files
118- `reference/data_sources.md` — Shopify, Square, NetSuite, and the CSV path, with required fields
119- `reference/velocity_and_reorder.md` — the 7/28-day math, distortion handling, and reorder sizing
120- `reference/seasonality.md` — when to adjust, when to ask, and how to say which you did
121- `reference/po_drafting.md` — purchase order structure and vendor email drafting
122- `reference/gotchas.md` — the mistakes that stock out a bestseller or bury cash in a pallet

Reference files

Raw lines 116 to 123
Reads a file reference/data_sources.md :118
Reads a file reference/seasonality.md :120
Reads a file reference/po_drafting.md :121
Reads a file reference/gotchas.md :122
Boilerplate, lines 124 to 126. The same text appears in 38 other files here. Close
124## Using a tool that isn't listed
126The connectors named in this skill are the tested paths, not a wall. If the owner wants this flow to use a tool that isn't connected or listed, offer `build-connector` — it checks the connector directory first and connects through Zapier otherwise, never hand-building against a raw API. Once the connection exists, the tool joins this skill like any other optional connector, under the same approval gates.

From anthropics/knowledge-work-plugins at 2574e29, 2026-10-27. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.