What to export and how this planner matches variants
Export Shopify inventory as All states or Available, then upload a sales CSV with sku and units_sold for a known 30, 60 or 90 day period. The sales template also includes Handle and Option1–Option3 Value columns so a variant can be matched when one file does not contain usable SKUs. Confirm the field mapping before calculation; product title is never a join key.
All states exports use a location field with available quantities on rows. Available exports can place each location in its own quantity column. Choose exactly one location. The planner filters to that location and never adds stock from other locations. When sales have a location column, map it too; otherwise the output compares the supplied SKU sales total with the selected location and warns that the sales may be store-wide.
The reorder formulas, with a worked example
Average daily sales = units sold ÷ observation days. Coverage days = available inventory ÷ average daily sales. Reorder point = average daily sales × (lead time + safety stock days). Target stock = average daily sales × (lead time + safety stock + review cycle days). Initial suggested units = max(0, target stock − available inventory). A zero daily rate produces a manual-review state instead of an infinite coverage estimate.
Suppose a variant sold 60 units in 30 days: 2 units per day. With 20 available, 14 lead days, 7 safety days and a 7 day review cycle, it covers 10 days, has a 42 unit reorder point and a 56 unit target. The initial gap is 36 units. With an MOQ of 24 and a pack multiple of 12, the suggestion stays 36 units. At a user-entered unit cost of USD 4.50, estimated purchasing funds are USD 162.00. The SKU is at risk because 10 coverage days are shorter than the 14 day lead time.
MOQ, pack multiples and purchasing funds
A positive initial gap is rounded up to a whole pack multiple and raised to at least the MOQ. If MOQ is not itself a pack multiple, the final quantity rounds up to the next pack so both constraints are satisfied. Example: a 25 unit gap, MOQ 30 and pack size 12 becomes 36 units. The table shows the editable supplier lead time, safety days, review cycle, MOQ, pack multiple and unit cost for each matched variant.
Unit cost is optional and is used only for planning funds: recommended units × unit cost. Add every cost in the same currency and enter its code, such as USD, CAD or EUR. The planner does not read cost from Shopify, convert currencies, or estimate duties, freight, payment terms or taxes. If any recommended SKU has no cost, the total remains hidden until its cost is entered.
How to use the plan each week
Refresh the inventory export close to the time you review purchasing. Upload a sales file covering a comparable period, choose its actual day count, check the suggested mappings, then select the location you replenish. Set defaults for lead time, safety days, review cycle, MOQ, pack size and currency; override those assumptions on individual SKU rows where vendor terms differ.
Review the risk sort first, confirm open purchase orders and supplier availability outside this tool, and download the recommendation CSV for discussion or purchasing work. The downloaded file is a planning report only: it does not contain Shopify import fields such as On hand (new), and it cannot update inventory.
Data quality, privacy and limits
Blank identifiers, repeated inventory variants at the same location, invalid quantities and invalid sales totals are surfaced instead of being guessed or merged. Repeated sales match keys are explicitly summed with a warning. Negative available stock is retained and flagged. In-transit stock is excluded; this tool does not accept incoming units because an expected arrival date would be required before using them safely.
CSV files are parsed in the current browser tab and are not uploaded or written to local storage. Only the editable default planning preferences may be saved on this device, and the clear-preferences button removes them. Refreshing the page clears uploaded data and SKU-level edits. The estimate does not model promotions, seasonality, returns, supplier delays, variable demand, cash terms or lost-sales effects; compare it with recent trading and vendor lead-time history before ordering.