Available to sell, not “on order” and not damaged.
Total units sold in the lookback (e.g. last 14 days).
Comma or tab separated. Sold units use the lookback window below. Lines that do not parse are skipped and counted.
Dampens or lifts daily rate so one wild week doesn’t lie.
Only count stock that is actually shipping to you.
Also sets the paid buffer: units held back from ads while you wait.
30% or more escalates the band by one step.
Client-side only. Inputs stay in this browser and in the page link. Bands are operator defaults: tune to your category. Not financial advice.
Why this isn’t a toy calculator
- Window + noise: promo weeks don’t silently inflate cover.
- Inbound-aware: cover today vs cover after PO lands, including the gap if the PO lands after you sell out.
- Category thresholds: consumables and seasonal stock use different healthy bands.
- Budget context: high spend on thin cover escalates the warning.
- Scenarios: if sell rate jumps 20%, or inbound slips a week.
- Range view: paste several SKUs and get them ranked worst cover first, with a paid buffer per SKU.
Model notes
- Sell rate = units sold in window ÷ window days × noise adjustment.
- Days of cover = sellable units ÷ sell rate. Zero sales with stock on hand is reported as no sell rate, not infinite cover.
- Cover when inbound lands = max(0, cover today minus ETA) + inbound units ÷ sell rate. If the ETA is later than your cover, the difference is shown as days with nothing to sell.
- Bands per category: Healthy, Watch, Critical, Near empty. DTC defaults are 21, 10 and 4 days.
- Budget escalation: if 30% or more of ad budget sits on this SKU, Watch is treated as Critical, and Healthy under 1.5 times the healthy threshold is treated as Watch.
- Paid buffer (several SKUs mode) = ceil(sell rate × max(ETA, 2)): the units to hold back from paid demand so organic and repeat orders still ship.
- Cover above 3,650 days is reported as more than 10 years rather than a date.
Next: Should I pause these ads? · Stock-aware advertising · Days of cover for advertising · Shopify low stock alerts for ads.
FAQ
What is days of cover?
Sellable units divided by your daily sell rate. It estimates how many days until stockout if nothing changes. Divide by 7 for weeks of supply.
Which lookback should I use?
14 days is a solid DTC default. Use 7 if the world just changed (launch, promo). Use 28 to 30 if volume is thin or noisy.
Should I include inbound stock?
Only if it is confirmed and timed. Fantasy POs create fantasy cover, and real stockouts. Cover when inbound lands is whatever is left of today's cover at the ETA, plus the inbound units at your sell rate.
How does budget share change the band?
If 30 percent or more of your ad budget sits on this SKU, a Watch result is treated as Critical, and a Healthy result under 1.5 times the healthy threshold is treated as Watch. Concentrated spend on thin cover runs out faster than the average suggests.