Recommend stock transfers from overstocked stores to understocked stores while:
- maximizing sales opportunity
- respecting store grading priorities
- maintaining fairness across receiving stores
- Stock on hand (SOH) by store and SKU
- Recent sales (e.g., last week / last N weeks)
- Store grade (A/B/C)
- Overrides (manual rules / exclusions)
Demand is estimated using:
- Recent sales velocity (units/week)
- Stock coverage (SOH ÷ velocity)
- Store grade weighting
A store can donate stock if:
- SOH exceeds min threshold
- coverage exceeds max threshold
- donor store is not protected by overrides
- SKU is transferable (not blocked)
- Donor/Sender proximity determines who the best donor is
For each SKU:
- Identify donor stores with excess stock
- Identify receiver stores with demand
- Allocate quantities using fairness constraints (see fairness.md)
- Output transfer plan
Overrides always win. Examples:
- lock store from donating
- lock store from receiving
- cap transfer per store
- protect min display qty