Desired Inventory Days (DID)
| Rule | Value |
|---|
| Field label | Days (under Desired Inventory Days (DID)) |
| Range | 1–90 |
| Default | 2 |
| Formula | Required stock (packs) = floor(sales velocity × DID ÷ pack size) |
| Stored in | auto_str_config.did |
Top X SKUs filter
| Rule | Value |
|---|
| Field label | Top X Items |
| Empty / 0 | All eligible SKUs with sales history |
| Set | Only top N SKUs by quantity sold in last 60 days across eligible warehouses |
| Stored in | auto_str_config.top_x |
Central warehouse
| Rule | Value |
|---|
| Field label | Select Central Warehouse |
| Supply order | Always first among sources |
| Inbound | Never receives Auto STR transfers inward |
| Optional | None (no central warehouse) — all eligible warehouses peer equally |
| Stored in | auto_str_config.central_warehouse_id |
| Example labels (docs) | Central Warehouse, IPD Block B, IPD Block C, OPD Block B, OPD Block C — dummy names in screenshots, not live store names |
Eligible warehouses
| Rule | Value |
|---|
| Minimum participants | 2 warehouses (including central if outside eligible list) |
| Checkbox list | All tenant warehouses |
| Stored in | auto_str_config.eligible_warehouse_ids |
Supply priority (non-central)
| Rule | Value |
|---|
| UI | Drag handles or ↑↓ on eligible non-central warehouses |
| Order | After central, sources tried in priority order, then by surplus descending |
| Stored in | auto_str_config.warehouse_priority |
Scenario B mode
| Rule | Value |
|---|
| Default | Proportional |
| When | Total system surplus < total deficit for a SKU |
| Effect | Each deficit warehouse gets floor(need × surplus ÷ deficit) |
| Stored in | auto_str_config.scenario_b_mode |
Pack conversion (engine)
| Calculation | Rounding |
|---|
| Required packs | Floor |
| Current stock packs | Ceil (partial packs count) |
| Transfer output | Exact units = packs × pack_size |
Persistence
Configuration saves per tenant to auto_str_config. Toast on save: Auto STR configuration saved.