[[ card.label ]]
[[ card.value ]]
[[ card.sub ]]
Sales — actual (7d smoothed) & forecast, units/day
Projected stock at Amazon, units
Markers: ▮ today ▮ run-out ▮ ship by ▮ order by · Stock line steps up on incoming shipment ETAs; orange dashed = scenario.
FORECAST SETTINGS — [[ bucket ]]
No auto value — history doesn't cover all of last year's Jan–today window.
When set, scenario "to ship" covers sales only through this date (e.g. Feb 10 reserve policy).
Flat 30d avg: [[ cur.forecast.flat_30d ]] u/day ·
Ocean lead: [[ cur.ocean_lead ]]d ·
Mfg lead: [[ data.mfg_lead ]]d
In production: [[ fmt(data.in_production) ]] ·
Stock in China: [[ fmt(data.china_stock) ]]
Excluded (listing inactive):
[[ fmtDate(r[0]) ]]–[[ fmtDate(r[1]) ]],
SCENARIO — planned arrivals ("what if we ship…")
| Arrives at Amazon | Qty (blank = auto) | Ship in | Order in | To ship (pcs) | Cartons | Stock on arrival | |
|---|---|---|---|---|---|---|---|
| [[ row.shipIn ]]d ([[ fmtDate(row.shipBy) ]]) | [[ row.orderIn ]]d ([[ fmtDate(row.orderBy) ]]) | [[ fmt(row.toShip) ]] | [[ row.cartons !== null ? fmt(row.cartons) : '-' ]] | [[ fmt(row.stockOnArrival) ]] |
No scenario rows. Add a planned arrival to see when you'd need to order/ship, how many pcs, and how the stock line changes (orange dashed on the chart).
"To ship" = projected sales from arrival through [[ form.cover_until ? fmtDate(form.cover_until) : form.max_days + 'd of cover' ]] (or the next planned arrival, whichever comes first) minus stock still there on arrival · scenario run-out: [[ scenarioRunOut ? fmtDate(scenarioRunOut) : 'covered beyond horizon' ]]
INCOMING SHIPMENTS ([[ bucket ]])
| Shipment | Status | Qty | ETA |
|---|---|---|---|
| [[ a.shipment_id ]] | [[ a.status ]] | [[ fmt(a.qty) ]] | [[ fmtDate(a.date) ]] |