inventory-health-report — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited inventory-health-report (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Unified per-SKU replenishment analysis. Computes safety stock, reorder point, EOQ, turnover, sell-through, days of stock, and demand variability (XYZ) — then classifies each SKU with an actionable status flag. Three outputs every run (CSV, PNG, PDF).
Activate when the user:
Before running, ensure Python 3.9+ is available and install dependencies:
pip install -r "$SKILL_DIR/scripts/requirements.txt"Resolve SKILL_DIR to the installed skill root first. If pip install fails due to permissions, try pip install --user -r "$SKILL_DIR/scripts/requirements.txt" or use a virtual environment.
--lead-time or a per-SKU column in the products CSV via --lead-time-col. Without lead time, Stockout Risk and Reorder Now flags are unavailable.Resolve the installed skill root first. The exact path depends on where the skill was installed in the current environment.
SKILL_DIR="<resolved-installed-skill-dir>"
python "$SKILL_DIR/scripts/inventory_health.py" \
--orders orders_export.csv \
--products products_export.csv \
--lead-time 14 \
--output-dir ./health-output| Flag | Default | Description |
|---|---|---|
--orders | (required) | Orders/sales CSV |
--products | — | Products CSV for stock, cost, titles |
--output-dir | ./health-output | Output directory |
--window | 90 | Analysis window in days |
--lead-time | — | Global lead time in days |
--lead-time-col | — | Per-SKU lead time column in products CSV |
--service-level | 0.95 | Target service level (0.50–0.9999) |
--ordering-cost | — | Fixed cost per order in $ (for EOQ) |
--holding-cost | 0.25 | Annual holding cost as fraction of product cost |
--overstock-days | 180 | Days-of-stock threshold for overstock flag |
--sku-col | auto | SKU column (generic CSVs) |
--date-col | auto | Date column (generic CSVs) |
--quantity-col | auto | Quantity column (generic CSVs) |
--revenue-col | auto | Revenue column (generic CSVs) |
--cost-col | auto | Cost column (generic CSVs) |
--stock-col | auto | Stock column (generic CSVs) |
--products-sku-col | auto | SKU column in products CSV when it differs from the orders file |
--csv-only | false | Skip PNG and PDF generation (faster, CSV only) |
Lead time resolution: When both--lead-timeand--lead-time-colare provided, per-SKU values take priority. The global--lead-timefills in SKUs that don't have a per-SKU value.
Shopify exports with 14-day lead time:
python "$SKILL_DIR/scripts/inventory_health.py" \
--orders orders_export.csv \
--products products_export.csv \
--lead-time 1490-day window with EOQ:
python "$SKILL_DIR/scripts/inventory_health.py" \
--orders orders_export.csv \
--products products_export.csv \
--lead-time 14 \
--ordering-cost 25 \
--window 90Higher service level for critical inventory:
python "$SKILL_DIR/scripts/inventory_health.py" \
--orders orders_export.csv \
--products products_export.csv \
--lead-time 14 \
--service-level 0.99Three files every run:
Sorted by status priority (Stockout Risk first), then days of stock ascending within each status. This sort is intentional — the most urgent items appear at the top.
Each SKU gets exactly one flag (priority cascade):
| Priority | Flag | Condition | Action |
|---|---|---|---|
| 1 | Stockout Risk | Days of stock < lead time | Emergency order |
| 2 | Reorder Now | Stock ≤ reorder point | Standard reorder |
| 3 | Overstock | Days of stock > 180 (configurable) | Reduce quantities |
| 4 | No Stock | Stock = 0 with active demand | Replenish immediately |
| 5 | No Demand | Zero sales in window | Review / discontinue |
| 6 | Healthy | None of above | Maintain cadence |
Each SKU with active demand gets a demand predictability classification:
| Class | CV Range | Meaning | Safety stock reliability |
|---|---|---|---|
| X | < 0.5 | Stable, predictable | High — formula accurate |
| Y | 0.5 – 1.0 | Variable, possibly seasonal | Moderate — review seasonality |
| Z | ≥ 1.0 | Erratic, sporadic | Low — manual review recommended |
After the script runs:
reference.md for formula explanationsThe skill works with progressively less data:
When presenting orders-only results, acknowledge the limitation upfront: "Without product data, I can show demand metrics (velocity, variability, XYZ classification) but not stock adequacy, sell-through, or reorder calculations. Providing a products CSV would unlock the full analysis."
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.