KM Online · Restock FBA

Restock FBA — Meeting Pack

For Manish · 22 June 2026 · figures verified or flagged
How we decide how much stock to send into Amazon — the old way, the new engine, what it costs, and the calls we need today.
~6,500
products managed
~4.7×
leaner storage vs old way
~£12.2k
/yr Amazon fees
~55%
built & live

🎯 Decisions For Today

The one daily judgement that drives profit: how much of each product to send into Amazon. Get it wrong both ways —

↓ Send too little

Stock out · lose the sale · slide down Amazon rankings.

↑ Send too much

Cash locked in dead stock · storage + aged-stock penalties bite.

What we need from this meeting

#DecisionWhat we need
1Turn on the 2 engine upgrades? (seasonality + profit-first)Your go / partial / wait — built & reversible. Detail → 2 Upgrades tab.
2Nightly auto-refresh scheduleWhat time should the tool run each night?
3Real pallet / courier costJiten to bring the per-collection figure — the one number we're missing.
4Aged-stock policyAgree a clear-out target before Q4. Exposure → Costs tab.
5Packing workflowConfirm pack-order · no half pallets · no-double-pack freeze. → Warehouse tab.
The shape of it: a tool in the staff portal, two sides — Warehouse (supplier reorders) and FBA (sends into Amazon). Per product: exact qty + by-when + a tap-to-see "why". New products self-onboard. An approver fires the batch with one tap. Launches watch-only, earns automation. Build detail → Build Plan tab.

🔄 How It Works the engine's daily decision, step by step

Runs nightly, per product. Every step below is what it's programmed to decide today — the amber ones are built but need your approve / deny.

Live & automatic now Built — needs your approve/deny Coming (Phase 6+)
📥 Inputs — pulled automatically
1

Pull the data Live

All ~6,500 products: stock, Amazon inventory, in-transit, sales — refreshed nightly.

2

True selling speed Live

How fast each line really sells.

Rule: count only days in stock, net of returns — never raw sales
⚙️ Engine sizing — decides automatically, today
3

Lead time Live

How long stock takes to land.

Rule: measured per product (~6d); extra buffer on lines that have stalled before
4

Safety stock Live

Cushion for demand wobble.

Rule: tier by stockout cost → heroes 99.5%, then 99% / 97% in-stock target
5

Smart cover Live

How many days to hold.

Rule: cheapest cover that won't stock out · never past the 90-day ceiling
✋ Adjustments — built, switched OFF, your call
6

Seasonality Needs your OK

Buy ahead of the Q4 peak instead of reacting late.

Rule: raise planned stock before Q4, ease after — per product
Your call: Approve ✓Deny ✗
7

Profit-first Needs your OK

Protect the money-makers with tight cash.

Rule: more cover on high-margin lines, less on thin ones
Your call: Approve ✓Deny ✗
🔢 Final quantity — decides automatically, today
8

Already over target? Live

Don't pile onto over-stock.

Rule: if at/over target → send 0
9

Collapse duplicate codes Live

One product, two Amazon SKUs.

Rule: merge into one order — never send 67+67=134
10

Budget cap Live

Fit the period's spend.

Rule: genuine need first; profit-ranking rations only if need > budget
📤 Output & send
11

The recommendation Live

Per product: quantity + by-when + tap-to-see "why". No black-box numbers.

12

Approve & fire Needs your OK

An approver edits any qty and taps fire. Watch-only now — it suggests, sends nothing.

Your calls: (a) the nightly run-time · (b) when to flip from watch-only to auto
Your call: Approve ✓Deny ✗
13

Place order + book shipment Phase 6

Engine places the supplier order and books the Amazon inbound shipment itself.

14

Warehouse picks & packs Manual

The team only picks, packs and ships. Failed sends ping Manish + Bhavika with one-tap retry.

3 designs need your approve/deny today: step 6 (seasonality), step 7 (profit-first), step 12 (nightly schedule + when to go auto). Everything green already runs.

📉 The Old Way one manual Google Sheet · one blunt rule

Paste in Amazon's 14-day sales by hand, then recent sales × 3 months cover on every product alike — fast-seller and slow-mover the same. It worked, but leaked money 5 ways:

ProblemWhat it cost us
Blanket 3-month rule over-held stock~5× the storage cost of a lean approach, for only ~1.85× the stock — pushed slow movers into Amazon's over-stock + aged-stock penalties.
Blind to stock-outsUsed raw sales, not in-stock days. A line that sold out day 1 of 14 read as "barely selling" → got starved.
No lead-time awarenessTreated Amtech (1–2 days), Tiger/Silvine (7 days) and China (~60 days) identically — no buffer for slow suppliers.
No safety-stock logicA single "× 3", no cushion for demand wobble, no service-level dial.
Wrong-product errors266 misclassified by SKU text-match — 243 sent into Amazon that shouldn't be, 23 real FBA lines silently skipped.
Net result: cash in the wrong stock, avoidable Amazon fees, and bestsellers running dry — at one point ~£10,700/month of sales at risk from 31 stocked-out fast-movers.

⚙️ The New Engine right amount, per product, from our own history

Same job, decided per product on real numbers — then backtested over a full 12 months.

 Old wayNew engine
CoverFlat ~3 months on allTailored per product — fast/risky lines more, slow lines less
Delivery timeA guessed flat leadMeasured: ~4-day median first units, ~6-day per product; buffers lines that have stalled before
Demand swingsIgnoredSafety stock tiered by stockout cost — heroes 99.5%, then 99% / 97% in-stock targets
Double-sendingTwo Amazon codes → sent twice (67+67=134)Collapsed into one order — stops ~double-spend on those lines
Over-stocked linesCould still top upSends zero past target; never past the 90-day ceiling
Storage costNot consideredAware of Amazon's fee cliffs — trims to cheapest cover that won't stock out

What the 12-month backtest proved

4.7×cheaper to hold vs old 3-month rule (£2,453 vs £11,574 storage)
+1,929more units sold vs lean engine, for £286 more storage
£1.4–5.9/mo to buffer stall-prone lines vs £44.80 to blanket all
Bottom line: less cash tied up in Amazon, less storage paid, fewer sell-outs on the lines that matter, no accidental double-orders. Proof method → Simulator tab.

💷 The Real Costs fresh-pulled from Amazon billing

What our Amazon stock actually costs to hold and to exit. Different buckets — not all simply added.

CostFigureDetailStatus
FBA storage (12 mo)£9,787Amazon storage-fee report. Heavily Q4-weighted.Verified
Q4 share42%£4,077 — Oct–Dec rates run 2–3× higher. Carrying stock into Q4 is the expensive mistake.Verified
Aged-stock surcharge£1,161/yrStock 241+ days (steps up 271/365). Accelerating ~6× (£39→£237/mo) → heading for ~£2,000/yr. The clearest over-stock signal · 178 products >90 days.Verified
Removals (return to us)£2,2302,493 units pulled back — 97% shipped to us, 3% disposed. We keep the goods (cost, not write-off).Verified
Customer returns~£1,234/yr1,464 units · refund-admin £298 + processing £936. Conservative floor (low-return season). Write-off ≈ offset by reimbursements → net ≈ nil.Verified
Reimbursements+£2,862Amazon credits back for lost/damaged stock — offsets the above.Verified
Pallet / courier~£50?Tool assumes ~£50/shipment off an old invoice. UK benchmark £60–100. Need the real number.Needs Jiten
~£12.2k/yr fees we pay Amazon (storage + aged + returns) — money gone
~£2.2k/yr to pull aged stock back (we keep goods)
+£2.9k/yr Amazon credits back
What it says for the engine: the two levers it moves are storage (Q4-weighted) and the aged-stock chain — over-send → ages → £1,161 surcharge (accelerating ~6×) → £2,230 to pull back out. The fix is exactly the engine's job: stay lean, clear aged stock before Q4.

🚀 The Two Upgrades built · tested · switched OFF until you say go

Both reversible in one switch. Together: ~£359 better with fewer stockouts over the year replay (combined, not a simple sum).

UpgradeWhat it doesReplay gainThe honest catch
1 · Seasonality
buy ahead of peak
Learns each product's seasonal shape from years of history; raises planned stock before Q4, eases after — instead of reacting once sales already jumped. +£185 The cleaner, fully-evidenced win. Q4 safety fix already in.
2 · Profit-First
protect money-makers
More safety stock on high-earning lines (margin × speed), less on thin ones — so tight cash protects profit first. +£192 We only know true margin on ~half our products, so it half-works today — the win grows as we fill cost/price data.

The call

The £359 is the two working together (£185+£192 overlap, not added), and profit-first is muted on missing margins. Reversible anytime.
Both on (Recommended)
Seasonality only
Wait

🧪 The Simulator proving it before it ships

A test rig that replays a full year of real sales (1 Jun 2025 – 31 May 2026) across 388 active products — so we pit old vs new on identical history, no guessing.

Real stockstart point
Sell downactual daily sales
Reordereach strategy's rule
Wait leadreal delivery time
Measure5 metrics
🛡️ We stress-tested the rig itself:
20independent review rounds (outside reviewers couldn't break it)
17open-source stock-planning projects benchmarked against
0faults found in the core maths
over-order bug caught in an early draft — fixed before shipping
Honest caveat: the direction is certain (lean + smart cover beats over-buying), but exact £ are a ballpark — two known simplifications partly cancel (doesn't yet fully model restocking the warehouse behind Amazon; used a flat lead-time, not each product's measured one). So we quote ranges. £ results live in the New Engine tab.

🗄️ The Data-Lake our own permanent copy of Amazon's history

Pulled from Amazon's official Selling-Partner feeds (+ Linnworks for older history), landed in our database, topped up nightly — so Amazon can't age it out. Core feeds live; fees/returns/billing wiring in now.

What it isHow far backStatus
Stock movement diary — every receipt/transfer/adjustment/return, per product per day~18–24 moLive nightly
Shipments + real lead-times — sent, left, booked in, how long~18–24 moLive nightly
Live stock health — sellable / inbound / reserved / stuck, + selling speedCurrent + daily historyLive nightly
Storage fees — monthly cost per product24 mo (Jul '24)Pulled · wiring
Aged-stock surcharges13 moPulled · wiring
Removals · Returns · Reimbursementstrailing 12 moPulled · wiring
Billing / settlement — actual money in/out~90 days + ongoingNow adding
Sales history — units & £ per product per day~2 yr Amazon; older from LinnworksNext

Honest limit

Amazon holds no per-product detail before ~mid-2024 (storage Jul '24). Monthly storage totals recoverable to ~2015. From today, nightly top-up means we lose nothing again.

The learning loop

Every night the history grows; the tool reads it back to spot £-costly patterns (over-sending into ageing stock, under-sending in-season) and sharpens the next call.

🗺️ Timeline done · live · left

Overall ~55%

Phases 1–3 done & live · Phase 4 built (awaiting your go) · Phase 5 in progress · 6–8 ahead.

1 · Foundation & data Done

All ~6,500 products into one clean daily view. New lines self-onboard.

2 · Decision engine Done · Live

True selling speed + per-product cover + measured lead-times. In production.

3 · Proof & validation Done

Year-replay sim, 20-round stress-test, benchmarked vs 17 OSS projects — no faults.

4 · The two upgrades Built · your go

Seasonality + profit-first. Tested, switched off — one flip from you.

5 · Full data-lake In progress

Fees, aged, removals, returns, billing → wired into the nightly feed.

🛠️ The Build Plan mapped end to end

The headline rule: nothing fires into Amazon or a supplier until a person taps yes. Launches in watch-only for the first weeks — works out every order and shows its reasoning, sends nothing — so we check it against reality first. Only Manish flips a section live, one side / one supplier at a time.

Each stage proven before the next. The warehouse only picks and packs.

StageWhat ships
FoundationPull all stock + Amazon data into one view; flag new/unlinked lines
DemandTrue selling speed (only in-stock days, net of returns)
SizingSafety-stock + smart cover that dodges fee penalties, keeps bestsellers in stock
FBA engineThe "how much to send into Amazon" brain
Warehouse engineSupplier reorders + China container plan (fires when full, not on a calendar)
Approval + sendingOne approver edits any qty, taps fire; failed sends ping Manish + Bhavika with one-tap retry
ScreensSend lists, plain-English "why", budget cap with "didn't fit — add £X" list, Jiten's pick-list
Go liveWatch-only → prove → Manish flips to auto, container last

Guardrails: no silent cuts, no hidden failures, no unexplained numbers; per-period budget where genuine need comes first, profit-ranking only rations when need outruns budget.

🏭 Warehouse — Discuss real numbers the tool needs from the team

The tool only "sees" Amazon transit time — blind to the packing-queue wait here, and to what's already packed. Before we build the fixes:

QuestionWhy it mattersWhat we need
Pallet / courier cost?Tool assumes ~£50 (unvalidated). Get it wrong and it can't tell an economic send from a wasteful one.Jiten: real per-collection cost from latest invoices.
Pack order?Leads are queue-driven — top-of-list packs day 1, deeper items wait. Tool assumes a flat wait → under-sends deep-queue items.Confirm top-of-list-first. How many units/items can we pack per day?
How often do we ship?Trade-off: more often = fresher but more fees; less = fuller pallets but staler.Confirm ~2 pallets/week, one shipment — or 2/week, or 1 every 3 days?
Never ship a half pallet?A half pallet still costs full ~£50+, making each unit expensive.Agree: wait to fill — except to rescue a hero line from stocking out.
No-double-pack freezeOnce packed, the tool could re-recommend it next night → packed twice.Confirm: packed qty counts as on-the-way, releases only when SENT — no time-based reset.
Lock packed quantity?A packed item's qty must freeze so re-runs can't change it under you.Agree qty locks when a shipment is committed; team records actual packed count.