Forecasting

Designing a Markdown Optimization Engine with States

Markdown planning explodes when weeks, events, discount levels, and phases are modeled as separate dimensions. Collapsing each week into a single state turns it into a clean optimization problem.

April 18, 2026
Share on
7 min read

A markdown engine has two layers that are usually conflated: the optimizer that searches, and the abstraction the business has to read, audit, and extend.

Modern MIP solvers (Gurobi, Hexaly) handle the search part well, even at SKU scale, with discretized response curves and branch-and-bound. The optimizer is rarely the bottleneck.

What breaks in production is the layer above it: a model where week, event, phase, discount level and stock are treated as loose, independent variables that no one outside the data team can read or modify safely.

Collapse every weekly choice into a single object, a markdown state, and the entire problem becomes tractable.

About the author

Cyril Noirot

Cyril Noirot

Lead Data Scientist

Freelance data scientist. I design and ship decision systems — forecasting, pricing, marketing measurement, optimization.

Newsletter

Technical writing on forecasting, pricing, and decision systems. No fixed schedule, no spam.

Enter your email
Subscribe