For maintenance & storeroom leads

97% fill rate — rightuntil the coupling takes the line down.

A storeroom’s fill rate averages a $12 fuse with a 26-week-lead gearbox coupling. Availability isn’t the risk — the gap between a spare’s replenishment lead time and the downtime you can tolerate on the asset it protects is. This watchtower reads your export and gives two independent reads per spare: coverage as the headline, exposure severity alongside — so an out-of-stock fuse and an out-of-stock coupling are never the same alarm.

Get the Watchtower — $89one-time · instant download · yours to keep
Five deliverables · runnable
Spares watchtower engine
Python
Watchtower workbook (.xlsx)
.xlsx
Criticality & tolerance guide
.docx
Stockout-closure runbook
.docx
Seven-spare worked sample
.csv
Works alongside
Supplier-Concentration Gate · PM Deferral Tripwire · Manufacturing Ops Pack
01.The Problem

Fill rate is an average. A single point of failure is not.

97%

fill rate treats a $12 fuse and a 26-week-lead coupling as equal line items. The average looks healthy right up until the coupling stocks out.

26 weeks

is a real lead time on a critical casting or drive component — far longer than the hours of downtime the asset it protects can absorb.

1 spare

with zero on hand, no substitute, and a lead longer than tolerable downtime is a single point of failure hiding in a healthy storeroom.

Every inventory tool optimizes carrying cost — it wants to trim stock, and it treats every SKU as a cash line. But an MRO storeroom isn’t a warehouse of sellable goods; it’s insurance against downtime. The right question isn’t “how much cash is tied up here” — it’s “which spare, if it stocks out, takes the line down with no way to recover in time.” That’s a comparison between two numbers you already have: a spare’s lead time and the downtime its asset can tolerate.

02.See It Work

Read a spare twice. Watch coverage and severity disagree.

Live watchtower · evaluated 2026-06-30

Asset criticality
Substitute available:no
Coverage (headline)
UNPROTECTED
Exposure severity (alongside)
SINGLE-FAILURE RISK
Effective supply
0
Lead vs tolerable
+179d
Lead exceeds tolerance
yes

Action: Buy now — serves a crit-A asset, nothing on hand or order, no substitute, and the 182-day lead is 179 days past tolerable downtime

Crit-A asset, nothing on hand or order, no substitute, lead time past tolerable downtime — one failure downs the line with no recovery path. Any leg clearing releases it.

Grades a spare’s stockout risk, never a person or a named supplier. Deterministic and offline — your storeroom data, no benchmark.

The worked spare is a criticality-A coupling with nothing on hand, no substitute, and a 182-day lead against three days of tolerable downtime — UNPROTECTED and SINGLE-FAILURE RISK. Qualify a substitute and the gate releases: coverage stays UNPROTECTED (you still have none), but severity drops to HIGH. That’s the point of two reads — being out of stock and being at risk are different facts.

03.The Engine

One command reads your storeroom export and names the spare to buy first.

$ python3 spares_watchtower.py sample_spares.csv --as-of 2026-06-30
======================================================================
CRITICAL-SPARES STOCKOUT WATCHTOWER  -  RedHub AI  (CSW-089)
Evaluation date: 2026-06-30
======================================================================

Spare: Main drive gearbox coupling  [serves crit-A asset]
  On hand / on order / substitute : 0 / 0 / no
  Lead time / tolerable downtime  : 182d / 3d  (margin +179d)
  COVERAGE                        : UNPROTECTED
  EXPOSURE SEVERITY               : SINGLE-FAILURE RISK  <- single-failure risk
  Action                          : Buy now - serves a crit-A asset, nothing on hand or order, no substitute, and the 182-day lead is 179 days past tolerable downtime

Spare: Main drive gearbox coupling (sub qualified)  [serves crit-A asset]
  On hand / on order / substitute : 0 / 0 / yes
  Lead time / tolerable downtime  : 182d / 3d  (margin +179d)
  COVERAGE                        : UNPROTECTED
  EXPOSURE SEVERITY               : HIGH
  Action                          : Order - no effective supply for this spare

Spare: VFD control board  [serves crit-A asset]
  On hand / on order / substitute : 0 / 1 / no
  Lead time / tolerable downtime  : 120d / 5d  (margin +115d)
  COVERAGE                        : ORDER NOW
  EXPOSURE SEVERITY               : HIGH
  Action                          : On order, but the lead time exceeds tolerable downtime - expedite or qualify a substitute

Spare: Hydraulic pump seal kit  [serves crit-B asset]
  On hand / on order / substitute : 2 / 0 / no
  Lead time / tolerable downtime  : 21d / 7d  (margin +14d)
  COVERAGE                        : STOCKED
  EXPOSURE SEVERITY               : HIGH

Spare: Conveyor motor bearing  [serves crit-B asset]
  On hand / on order / substitute : 0 / 0 / no
  Lead time / tolerable downtime  : 35d / 10d  (margin +25d)
  COVERAGE                        : UNPROTECTED
  EXPOSURE SEVERITY               : HIGH
  Action                          : Order - no effective supply for this spare

Spare: Control panel fuse 10A  [serves crit-C asset]
  On hand / on order / substitute : 0 / 0 / yes
  Lead time / tolerable downtime  : 3d / 1d  (margin +2d)
  COVERAGE                        : UNPROTECTED
  EXPOSURE SEVERITY               : LOW
  Action                          : Order - no effective supply for this spare

Spare: PLC backup battery  [serves crit-A asset]
  On hand / on order / substitute : 1 / 0 / no
  Lead time / tolerable downtime  : 10d / 14d  (margin -4d)
  COVERAGE                        : STOCKED
  EXPOSURE SEVERITY               : HIGH

----------------------------------------------------------------------
STOREROOM VERDICT : SINGLE-FAILURE RISK
Buy first         : Main drive gearbox coupling [crit A] - SINGLE-FAILURE RISK (margin +179d)
----------------------------------------------------------------------
Grades a spare's stockout risk, never a person or a named supplier.
Deterministic and offline - your storeroom data, no benchmark. Not
procurement, financial, or engineering advice.

Stdlib-only Python. Both spares are out of stock — identical coverage, opposite severity, because the coupling downs the line and the fuse has a substitute and a three-day lead. The workbook reproduces these exact reads, and the demo above computes the identical output — verified byte-for-byte on the shipped sample.

04.The Standard

Three rules keep the storeroom honest.

Two reads, never one score

Coverage answers whether you have supply; severity answers what a stockout costs. A single blended number would hide the stocked-but-fragile spare and the out-of-stock commodity that don't need the same response.

Risk is lead time vs tolerance

A spare with zero on hand is fine if you can get one before the asset's downtime matters. The comparison that drives every verdict is the spare's lead time against the downtime its asset can absorb.

Single-failure is dispositive

A crit-A spare with no supply, no substitute, and a lead past tolerable downtime is forced to the worst state — one failure, no recovery path. It releases the moment any single leg clears.

05.What It Is — And Isn't

A stockout-risk watchtower, not an inventory optimizer or a supplier scorecard.

What it is
  • A deterministic, offline watchtower you run on a storeroom export you already have.
  • Two independent reads per spare: coverage, and what a stockout would cost.
  • A named buy-first spare — the single point of failure to close before any other.
What it isn’t
  • Not an inventory optimizer — it sizes downtime risk, not carrying cost or EOQ.
  • It grades a spare’s stockout risk, never a person or a named supplier.
  • Not a CMMS or a purchasing system — it reads your export and connects to nothing. Not procurement, financial, or engineering advice.
06.Who It's For

Anyone who owns a storeroom or the downtime it’s insuring against.

Built for
  • Maintenance and reliability managers who own the MRO storeroom
  • Storeroom and MRO planners deciding what to stock and what to expedite
  • Plant managers exposed to unplanned downtime from a missing spare
  • Reliability engineers building a critical-spares list from scratch
Not built for
  • Optimizing carrying cost or reorder quantity — that's an inventory tool's job
  • Ranking or grading suppliers — it scores a spare's risk, not a vendor
  • Sellable or finished-goods inventory — this is the MRO spares lane
  • Replacing your CMMS — it reads the export your CMMS already produces
08.Common Questions

The honest answers.

Because fill rate averages away the one number that matters. A 97% fill rate treats a $12 fuse and a 26-week-lead gearbox coupling as equal line items — but the fuse stocking out is a shrug and the coupling stocking out is a line-down event. Availability isn’t the risk. The risk is the gap between a spare’s replenishment lead time and the downtime you can tolerate on the asset it protects. This watchtower reads the same storeroom export and reports that gap per spare, so the critical coupling nobody stocked stops hiding inside a healthy-looking average.

Find the single point of failure
before it finds you.

One purchase, lifetime access, 12 months of updates. $89, once.

Sold by RedHub AI LLC · Secured by Stripe · redhub.ai