WooCommerce takes stock the moment an order is paid or put on hold. The units are still on the shelf until the parcel leaves, but the stock figure no longer shows them — so a stock count never matches, and nobody can say how much is promised to customers. The low-stock e-mail fires at a fixed number, whether the supplier needs three days or four weeks. And typing a delivery into the stock field overwrites whatever orders changed in the meantime.
Stock Reserve & Reorder adds the light warehouse layer a small shop needs, without an ERP.
WooCommerce records on every order line how many units it took from stock (the _reduced_stock order item meta): cancelling the order gives them back, a refund with restock lowers the figure. The plugin sums it for orders in the reserved statuses. Units that already left with a partial shipment, and units refunded without restock, are taken off the order line’s figure: they will not leave the shelf any more. Physical = WooCommerce stock + reserved; available = WooCommerce stock. The sales rate counts the same units for orders created in the measuring window, so cancelled orders and restocked refunds do not count as sales. A product younger than the window is measured over its own age.