EN
Back to the archive

The encyclopedia · Engineering & Operations · Operational decision · 2018–2021

OCP modeled its whole phosphate chain, from mine to port, as one problem

OCP built a multi-period mixed-integer model spanning mines, plants, inventory and ports, adding about $400 million a year in profit.

OCP Group · Dynamic Ideas

the move

OCP is the world's largest phosphate miner and a leading fertilizer producer, so it decides across mines, chemical plants, inventories and a port while also deciding what to sell to which clients.

Those choices were made in separate silos, so each unit optimized its own piece and the whole was worse off. OCP and the analytics firm Dynamic Ideas built a multi-period mixed-integer model of the entire supply chain that chooses mines, treatments, inventory, ports and client sales portfolios together to maximize total profit.

The model unified the supply chain and sales teams around one plan, and OCP reported incremental annual profits of roughly $400 million. The work was named a finalist for the 2021 INFORMS Franz Edelman Award.

why it works

  • Linking every stage into one model exposes trade-offs between mining cost, storage and shipping that separate plans hide.
  • Optimization turns the flexibility of the mine and the port into value instead of leaving it unused.
  • One plan removes the friction of sales promising what supply cannot profitably deliver.
  • Multi-period modeling captures seasonality, so capacity is used where it earns the most over the year.
the payoffModel the mine-to-port chain as one integer probleminspired

what transfers

When one company's decisions feed another's, a single model beats a set of locally optimal departments.

what came after

OCP kept the model in production and the project was shortlisted for the 2021 Franz Edelman Award, with the approach described in an INFORMS journal paper. It became a template for how a raw-materials company can coordinate extraction, processing and distribution into a single plan.

references

spotted an error? The archive wants to know.

same kind of clever