We built a
Retail Simulator.
Real-world data is sparse on failures. So we built a Vectorized Causal Simulator to generate millions of "synthetic failures"—teaching Sentinel the physics of stockouts before it ever sees your data.
The Sentinel Data Pipeline
From raw, messy ERP snapshots to precise JSON action signals.
class RetailPhysicsEngine: def simulate_day(self, state): # 1. Conservation of Mass state.soh = state.soh - sales + receipts # 2. Stochastic Demand (Poisson) sales = poisson(state.velocity * seasonality) # 3. Supply Chain Delays if state.order_date == today: receipts = delayed(state.order_qty, state.lead_time) return state
Methodology 01
The World Builder
To train a model to find "needles in a haystack" (stockouts), you need a lot of needles. Real data is often incomplete.
We built a Causal Simulator that models the physics of retail:
- Conservation of Mass: Tracking every unit in and out.
- Variable Lead Times: Simulating vendor delays.
- Stochastic Demand: Poisson-distributed sales spikes.
Result: We generate millions of training examples where the ground truth (Future Stockout) is mathematically known.
Methodology 02
The Vision
The model "sees" the supply chain through three distinct lenses to determine true risk:
State
Where are we now? (Current SOH, In-Transit Quantity).
Velocity
How fast is it moving? (1-Day, 7-Day, and 28-Day sales trends).
Constraints
What limits us? (Vendor Lead Time, Shelf Capacity).
| Feature | Value | Lens |
|---|---|---|
| velocity_7d | 42.5 | VELOCITY |
| qty_on_hand | 12 | STATE |
| lead_time_days | 5 | CONSTRAINT |
| shelf_capacity | 50 | CONSTRAINT |
Gradient Boosted Trees
AlgorithmWe utilize state-of-the-art boosting algorithms for O(N) speed and native handling of non-linear interactions (e.g., "High Sales is only bad if Lead Time is long").
Class Weighting
TechniqueTargeted detecting of rare stockout events (<5% prevalence) without drowning in false positives.
Methodology 03
The Brain
We replaced simple logic with Gradient Augmented Decision Trees.
Unlike linear regression, trees can learn "cliffs"—sharp cutoff points where risk spikes suddenly. Sentinel builds thousands of these weak learners to form a consensus on the probability of failure.