Overview
When your network moves a million dollars’ worth of inventory per day, “out of stock” isn’t just a missed sale — it’s a system failure.
I built the allocation and transfer layer that kept Razor’s Amazon FBA network alive, balanced, and efficient.
We had multiple 3P warehouses, fluctuating demand signals, and fixed Amazon intake capacities.
Our task was to decide, every day, where to send what, before the market or algorithms punished us for guessing wrong.
The Challenge
Traditional ERP rules were too static.
They didn’t understand time, demand, or the friction between “available” and “fulfillable.”
We needed a dynamic allocator that could see the entire network, not just one warehouse at a time.
The system had to:
Anticipate FBA warehouse capacity limits
Respect SLA and carrier cut-offs
Prevent overshipments and stranded stock
Recompute allocations multiple times a day without human bottlenecks
In short, the logic had to behave like a trader, not a clerk.
The Solution
I designed a heuristics-driven allocation engine that scored every SKU by demand urgency, margin, and penalty cost.
Transfers were grouped into “waves,” each optimized for fill rate and lead time.
Redis queues handled concurrency and retries; PostgreSQL kept state across multiple transfer sessions.
The engine didn’t aim for theoretical optimality — it aimed for resilience.
Every decision was traceable, explainable, and reversible.
If a downstream feed failed, the system rolled back only the affected batch, not the entire cycle.
We integrated forecasting data from FBA and Razor’s ERP to trigger pre-emptive replenishments,
making the pipeline proactive instead of reactive.
The Impact
Supported >$1M/day FBA throughput without major stockouts
Reduced idle inventory by 20%+ and improved flow balance across regions
Increased SLA adherence from 85% → 98%
Enabled faster recovery from Amazon intake fluctuations and logistics bottlenecks
What used to take hours of manual adjustments became an automated daily ritual —
visible, explainable, and quietly reliable.
The Learning
Optimization is a negotiation, not a formula.
You can’t brute-force perfect allocation — you design constraints that fail gracefully.
The real skill is knowing what not to optimize.
That’s where stability lives.
Tech Stack
Python · OR-Tools · Redis · PostgreSQL · Async Jobs · ERP Integrations · Grafana
Status
Confidential Internal Build
Architecture and logic proprietary to Razor Group.