StockPulse documentation
Know what is about to run out, before it does.
Before you start
- WordPress 5.8 or newer, WooCommerce 6.0 or newer, PHP 7.4 or newer
- Stock management enabled in WooCommerce, with stock quantities that are actually kept up to date
- A few months of sales history — a forecast built from two weeks of orders is a guess
What it does not do
- It does not order anything. It tells you what to reorder, when, and roughly how many; placing the order is yours.
- It does not talk to your suppliers or your warehouse. There is no EDI, no purchase orders and no 3PL connection.
- It does not adjust for seasons. The velocity is a moving average of recent sales; a product that peaks every December will look slow in October.
- It cannot forecast what it has not seen. A product with three weeks of history produces a number, not a trend.
What is in the download
A WordPress plugin ZIP with the forecasting screens, the alerting and the CSV exports. It reads WooCommerce orders and stock levels; it does not write to them.
GPL source, no external service.
Installing it
WooCommerce first, with stock management enabled. Then Plugins → Add New → Upload Plugin, activate, and paste the licence key from your purchase email.
If stock quantities are not maintained in WooCommerce, install this later. Days of cover computed from a stock figure nobody updates is worse than no figure at all.
How the forecast is calculated
Velocity is units per day from completed and processing orders, per product and per variation. The window is a setting, 30 days by default. On "auto" the method depends on how much history the product has: under 30 days of orders it is a simple 7-day average; from 30 days it is a weighted average across the window where the most recent day counts most. Exponential smoothing can be chosen instead in Settings.
Days left = current stock ÷ velocity. The 30, 60 and 90-day forecasts are velocity × days. Nothing here reads last year; there is no seasonal adjustment.
Reorder point = velocity × lead time, plus a safety margin that is a percentage of that figure (25% by default, store-wide). Lead time is per product, set on the product edit screen next to the supplier name, or the store default of 7 days. Suggested order quantity = velocity × (lead time + 30 days).
Dead stock = in stock, no sale in the last 60 days. Fixed threshold, sorted by retail value.
The numbers are cached and recomputed once a day at 3:00 site time (cache lifetime is a setting). The alert email goes out at 8:00 to the address in Settings, listing every product whose days left is at or below the low-stock threshold (14 days by default). Both use WP-Cron, so a site nobody visits overnight refreshes on the first visit of the morning.
Using the forecast
Set the low-stock threshold to your actual lead time plus a margin. An alert that fires when you have five days of cover and a supplier who takes fourteen is an alert about a stockout that has already happened.
Review variations, not just parents. Most stockouts in a clothing or parts catalogue happen to one size or one fitment while the product as a whole still shows stock.
Check the dead stock list once a month. It is the only report here that saves money rather than protecting revenue, and it is the one people forget to open.
Reports → Export gives the whole forecast table, or the sales for a date range, as CSV.
Licence, updates and support
- One licence covers 1 WordPress site.
- 1 year of updates, from the date of purchase.
- 1 year of email support.
- Instant download + licence key by email
- 30-day money-back guarantee
Questions this page does not answer go to support@webkoding.com. If you bought from us and cannot find your licence key, look it up here.
Common questions
How does it calculate the forecast?
From your own completed orders, per product and per variation. It takes daily sales over a window you set (30 days by default) and turns them into a units-per-day velocity: a simple average while there is under a month of data, a weighted average that favours recent days after that, or exponential smoothing if you choose it. Days left is stock divided by velocity; the 30, 60 and 90-day figures are velocity times days. No AI service, no market data — arithmetic on your own history.
How far ahead does it forecast?
It reports days of stock remaining and expected sales at 30, 60 and 90 days, per product and per variation. It is a projection of the current rate, not a prediction about the market.
How much history does it need?
More than you think. A product with three weeks of data will produce a number, but the weighted average only kicks in after 30 days of orders, and a seasonal line needs a season before the number means anything.
Can I set lead time and safety stock?
Lead time per product, on the product edit screen, with a store-wide default (7 days) for everything else. Safety stock is a store-wide percentage of the demand expected during that lead time — 25% by default. Reorder point = velocity × lead time, plus that margin; the suggested order quantity covers the lead time plus 30 days.
Does it handle variations?
Yes, per variation. This matters: a parent product can look healthy while the only size anyone buys is about to run out.
Does anything leave my server?
No. There is no external service — the forecast runs on your own installation from your own orders. Some forecasting tools send your order history to their own servers to compute the same numbers; StockPulse reads it in your own database.
What counts as dead stock?
A product that is in stock but has not sold in the last 60 days, listed with its retail value so the most expensive shelf comes first. The 60 days is fixed. Slow movers are cash sitting on a shelf, and they are much easier to ignore than a stockout because nothing goes wrong when you do.
