HomeDashboardLate deliveries

Analysis 08 of 28Operations

How much lower do late deliveries score?

When a marketplace order arrives after the date the customer was promised, how much lower is its review score, how does that change with the days late, and does it hold once delivery status and order value are taken into account?

The short answer Late orders average 2.27 stars against 4.29 for orders on time or early, and 53.8% of them get one star against 6.6%. The score falls fast over the first week late: 3.29 at 1 to 3 days, 2.10 at 4 to 7, about 1.7 after that. Part of that is timing: Olist sends its review survey on delivery or when the estimated date is due, so 64.0% of late orders were answered before they arrived. Late orders answered on or after arrival still average 3.41, 0.88 below on time. The overall gap is about two stars in every order value band. Orders never marked delivered score lowest, 1.74.

  • Public data
  • Anonymized marketplace orders
  • Correlation, not cause

Data as of · fixed dataset

Lead conversion The same marketplace, from the seller side.

Source
Brazilian E-Commerce Public Dataset by Olist (orders, order items, order reviews)
Period
Orders Sep 2016 to Aug 2018
Licence
CC BY-NC-SA 4.0
Charts
5, each with its data table and CSV

Key figures

  • 6.7%Delivered orders that arrived late6,381 of 95,824 delivered orders with a review
  • 2.27Average score, late against on timeagainst 4.29 on time or early, out of 5
  • 53.8%One-star reviews, late ordersagainst 6.6% on time or early
  • 64.0%Late orders answered before arrivalOlist sends its survey on delivery or when the estimated date is due
  • 3.41Late orders answered on or after arrivalagainst 4.29 on time or early

The charts

Chart 1Lead chart · average score by delivery against the estimate

Late orders score far lower, and the score falls fast over the first week late.

How does the review score change with how early or late the order arrived?

Orders that arrived on or before the estimated date average 4.03 to 4.32 by band. 1 to 3 days late averages 3.29, 4 to 7 days late 2.10, and 8 or more days late about 1.7. 74.0% of delivered orders arrived 8 or more days before the estimate.
Download CSV

Olist marketplace orders · public data

Days late: 8 rows. 95,824 delivered orders with a review. Days late: delivery date minus the estimated delivery date shown at purchase, calendar days.
Delivery against the estimateAverage review scoreOrdersOne star (%)Five stars (%)
15 or more days early4.3234,7716.564.3
8 to 14 days early4.3136,1586.463.0
1 to 7 days early4.2017,2347.157.5
On the estimated day4.031,2808.550.6
1 to 3 days late3.291,85225.133.2
4 to 7 days late2.101,74858.614.1
8 to 14 days late1.671,44670.66.8
15 or more days late1.721,33569.07.2

Chart 2Share of each star rating

One-star reviews rise from 6.6% on time to 69.8% at 8 or more days late.

How does the mix of star ratings change once an order is late?

On time or early, 62.3% of reviews give five stars and 6.6% one star. At 1 to 3 days late one star is already 25.1%, and at 4 to 7 days late 58.6%.
Download CSV

Olist marketplace orders · public data

Star mix: 4 rows. Each row adds to 100% (to rounding).
DeliveryOrders1 star (%)2 stars (%)3 stars (%)4 stars (%)5 stars (%)
On time or early89,4436.62.68.120.462.3
1 to 3 days late1,85225.17.014.720.033.2
4 to 7 days late1,74858.69.19.88.414.1
8 or more days late2,78169.89.59.04.77.0

Chart 3Average score by when the review was answered

64.0% of late orders were answered before they arrived, and those reviews score lowest.

Is the customer reviewing the product, or the wait?

Olist's description of the data says its survey is emailed when the order arrives or when the estimated delivery date is due, so a late order can be answered before it arrives. Late orders answered on or after arrival still average 3.41 against 4.29 on time or early. At 8 or more days late, 2,685 of 2,781 were answered before arrival; the 96 answered after it average 3.11.
Download CSV

Olist marketplace orders · public data

Review timing: 4 rows. The date the customer answered the survey against the delivery date, calendar days. An average is shown only where there are 30 or more reviews; the counts are in the table.
DeliveryBefore arrivalOn or after arrivalAnswers before arrivalAnswers on or after arrivalShare answered before arrival (%)
On time or early3.864.2915389,2900.2
1 to 3 days late1.543.512051,64711.1
4 to 7 days late1.603.181,19655268.4
8 or more days late1.653.112,6859696.5

Chart 4Average score by order status

Orders never marked delivered score lowest: 1.74 on average.

Is a late order better or worse than one that is never delivered?

Delivered on time or early averages 4.29, delivered late 2.27. Orders shipped but never marked delivered, canceled, unavailable or not yet shipped (2,841 in all) average 1.74, with 78.2% one or two stars.
Download CSV

Olist marketplace orders · public data

Delivered or not: 6 rows. All 98,673 orders with a review, except 8 marked delivered with no delivery date.
Order statusAverage review scoreOrdersOne or two stars (%)
Delivered on time or early4.2989,4439.3
Delivered late2.276,38162.4
Shipped, never marked delivered2.001,03269.6
Canceled1.8060576.9
Unavailable1.5359584.9
Not yet shipped (invoiced, processing, created, approved)1.4660987.5

Chart 5Late against on time, by order value

The gap is about two stars in every order value band.

Is the gap just a cheap-order or an expensive-order effect?

Delivered orders cut into quarters by value (item prices plus freight). Late orders score 1.97 to 2.04 lower in every quarter. Expensive orders are a little more often late (7.5% against 5.7% in the cheapest quarter).
Download CSV

Olist marketplace orders · public data

Order value: 4 rows. Quarter cut points R$61.80, R$105.28 and R$176.16 (nearest rank), Brazilian reais. Gap from unrounded averages.
Order value (items plus freight)On time or earlyLateGapOrders on time or earlyLate ordersLate share (%)
Up to R$61.804.352.391.9722,5771,3585.7
R$61.80 to R$105.284.312.282.0422,4941,5796.6
R$105.28 to R$176.164.292.292.0022,2191,6496.9
Over R$176.164.202.162.0422,1531,7957.5

LimitsRead with care

What this data can't show.

  1. Why an order was late. No field records the cause: seller, carrier, distance or a busy week all look the same here.
  2. That lateness causes the low score. Late orders can differ in other ways (product, seller, region). These are averages side by side, checked against order value and review timing, not a controlled test.
  3. What most customers think once a very late order arrives. Of 2,781 orders 8 or more days late, 2,685 were answered before they arrived; only 96 answers came after.
  4. What a low score costs. Whether these customers bought again or stopped is not part of this analysis.
  5. What the comments say. The written reviews are not analysed here.

01Findings

What the charts say.

  1. Late orders average 2.27 against 4.29 on time or early; 3.29 at 1 to 3 days late and 2.10 at 4 to 7.

    Chart 1

  2. One-star reviews go from 6.6% on time to 25.1% at 1 to 3 days late and 69.8% at 8 or more.

    Chart 2

  3. 64.0% of late orders were answered before they arrived. Answered on or after arrival, late orders still average 3.41, 0.88 below on time.

    Chart 3

  4. Orders never marked delivered average 1.74, below even late deliveries (2.27).

    Chart 4

  5. The overall gap is 1.97 to 2.04 stars in every order value quarter.

    Chart 5

02Method

How the figures were built.

Steps

  1. Joined 99,441 orders to their reviews on order_id. 99,224 reviews cover 98,673 orders; for the 547 orders with more than one review the most recently answered is used, and the 768 orders without a review are left out (98,673 orders used).
  2. Days late: the delivery date minus the estimated delivery date shown to the customer at purchase, in calendar days. Late means 1 day or more. 95,824 delivered orders have both dates; 8 marked delivered have no delivery date and are left out.
  3. Order value: item prices plus freight, in Brazilian reais, summed over the order's items.
  4. Review timing: the review's answer time against the delivery date, as calendar dates (the review creation date in the file is the day the survey was sent). Olist's own description of the data says the survey is emailed when the order arrives or when the estimated delivery date is due.

99,441 orders and 99,224 reviews; 95,824 delivered orders with a review for the delivery charts. Every figure on this page comes from the chart tables in data/analyses/late_deliveries.json, built from the Olist CSV files; the table under each chart says how.

Checks

  • The orders and order items files match Kaggle's listed file sizes; the reviews file (downloaded Oct 12, 2026 from a GitHub copy) matches Kaggle's listed size and GitHub's own checksum for it.
  • The SQL below, run in DuckDB 1.5.5, returns the counts, averages and one-star shares on this page. Every number was recomputed by separate code (verify_r4.py: plain Python and the csv module) and matches.
  • Using each order's first review instead of its last gives on time or early 4.29 and late 2.27, the same as the page to two decimals.
  • In all 19 purchase months from January 2017 with at least 30 late orders, late orders average lower than orders on time or early.

The queries

This series is not in Live SQL. The data file behind every chart is data/analyses/late_deliveries.json, built by data/analyses/scripts/build_r4.py (prep, DuckDB) and data/analyses/scripts/verify_r4.py (independent check, plain Python) from the source downloads.

Score by days late (DuckDB, the published CSV files)

-- Late deliveries against the review score (delivered orders with a review)
WITH review AS (            -- one review per order: the most recently answered
    SELECT order_id, review_score
    FROM (SELECT *, row_number() OVER (PARTITION BY order_id
                                       ORDER BY review_answer_timestamp DESC, review_id) AS rn
          FROM olist_order_reviews)
    WHERE rn = 1
),
delivered AS (
    SELECT o.order_id, r.review_score,
           date_diff('day', o.order_estimated_delivery_date::DATE,
                            o.order_delivered_customer_date::DATE) AS days_late
    FROM olist_orders o JOIN review r USING (order_id)
    WHERE o.order_status = 'delivered' AND o.order_delivered_customer_date IS NOT NULL
)
SELECT CASE WHEN days_late <= 0 THEN 'On time or early'
            WHEN days_late <= 3 THEN '1 to 3 days late'
            WHEN days_late <= 7 THEN '4 to 7 days late'
            ELSE '8 or more days late' END AS delivery,
       count(*) AS orders,
       round(avg(review_score), 2) AS avg_score,
       round(100.0 * count(*) FILTER (WHERE review_score = 1) / count(*), 1) AS one_star_pct
FROM delivered
GROUP BY 1
ORDER BY min(days_late)

Caveats

  • Real but anonymized orders from Olist, a Brazilian marketplace, 2016 to 2018. Almost every order has a review. The data shows that late orders score lower; it does not show why.
  • The estimated delivery date is the date Olist showed the customer at purchase; most orders beat it by a week or more, so late means later than a cautious promise.
  • 768 orders have no review and are left out; reviews are in the language the customer wrote, and their text is not analysed here.

Releases and revisions

  • A fixed public release; it is not revised.

03Sources

Sources and licence.

Licence: CC BY-NC-SA 4.0. Credit: Olist. Non-commercial and share-alike. Public data.

Download the chart data

Each CSV is made in your browser from the rows in that chart's table.

All twenty-eight analyses on the Dashboard

04Contact

Want this kind of breakdown on your own data?

Open to e-commerce, data and operations roles. Los Angeles or remote.