EN
Back to the archive

The encyclopedia · Software & IT · Product decision · 2021

Birchbox's reformulated MIP turned days-long box planning into minutes

Monthly subscription boxes are an integer program; when it took days to solve, a reformulation plus 'reciprocating' IP cut runs to under 20 minutes.

Birchbox

the move

Birchbox pioneered subscription boxes: each month a mixed-integer program decides which box configurations to produce and which subscribers get which box, balancing customer profiles, history, product and vendor attributes.

As the subscriber base grew, the MIP took days to solve, and experimenting with business requirements became impossible. Princeton Consultants analyzed the formulation, rebuilt it using Gurobi, and created Reciprocating Integer Programming (RIP), a technique that reuses structure across iterations.

The result: typical solve times under 20 minutes — about 99 percent faster on average — while the reformulated model needed fewer box configurations and enabled more subscriber clusters, meaning greater personalization.

The work was published in the 2021 Daniel H. Wagner Prize special issue of the INFORMS Journal on Applied Analytics.

why it works

  • Solve time is a product feature: minutes, not days, make the model usable.
  • Reciprocating IP reuses previous solutions instead of solving from scratch.
  • Fewer configurations with more clusters is a pure personalization win.
  • Fast re-runs let the business test assumptions weekly.
the payoffReformulate so the model can be re-runclever

what transfers

A model that solves overnight cannot run an interactive business; when optimization is fast enough to re-run, you can test rules and box definitions that were previously impossible.

what came after

Birchbox's new model cut average run time by about 99 percent (to typically under 20 minutes), reduced the configurations needed, and let the team re-run the optimization to test business parameters; the RIP technique was published in IJAA's 2021 Wagner Prize issue.

references

spotted an error? The archive wants to know.

same kind of clever