← All work

Python · forecasting

A shorter delivery promise that held up

Could Olist show an earlier delivery date without missing it more often?

3 daysshorter average promise on the test period
Chart comparing average delivery promises and late rates for Olist, a baseline, and the proposed model.
The model offered a shorter promise and a lower late rate on the test period.

Why this question matters

Olist showed customers a delivery date at checkout. Across its historical orders, the date often sat far beyond the actual arrival, yet some orders were still late. A better promise needed to balance speed with reliability.

How I approached it

I analyzed about 96,000 delivered orders, checked how lateness related to review scores, and trained a LightGBM quantile model. I compared it with Olist’s original estimates and a simpler seller-state to customer-state baseline on the same held-out period.

What the evidence showed

  • On the test period, Olist’s own estimate averaged 20.94 days with 4.50% late deliveries. The model averaged 17.91 days with 3.44% late deliveries.
  • Very late arrivals were costly: about two-thirds of orders more than five days late received a one-star review. Extra padding stopped adding much to review scores after a point.
  • Destination, distance, and purchase month helped the model improve on a simple state-pair lookup.

The decision it supports

Pilot the revised promise on selected routes. Track the late rate and customer response before changing the checkout date for everyone.

Where the evidence stops

This is a historical, offline comparison. The data cannot establish whether a shorter displayed promise would increase conversion or how a live model would perform after deployment.