Five mistakes that make estimated delivery dates wrong on Shopify (and how to fix each)

✍️ Mindaugas Bružas4 min readShopifyEstimated Delivery DateCutoff TimeShipping HolidaysShopify MarketsDelivery PromiseArrivioShopify Apps
Five mistakes that make estimated delivery dates wrong on Shopify (and how to fix each)

A delivery date on the product page raises conversion only when it is right. When it is wrong, it creates a support ticket and a one-star review. After looking at how stores set up delivery estimates, the same five errors come up again and again. Here they are, with the fix for each.

1. No cutoff time

The store ships same day for orders "placed today". An order at 23:50 counts as today, but the warehouse closed at 16:00, so the parcel leaves tomorrow at the earliest. Every evening shopper gets a promise one day too early.

Fix: set a cutoff hour in the store's timezone. Orders after it count from the next dispatch day. If your carrier collects at 15:00, the cutoff is 14:00, not 15:00, because someone has to pack the order.

2. Counting weekends as dispatch days

"Ships in 1–2 days" written on Friday afternoon means Monday or Tuesday, but a naive calculation says Saturday or Sunday. The same applies to a Monday-off warehouse or a carrier that does not collect on Saturdays.

Fix: define dispatch days explicitly (for example Monday to Friday) and let the calculation skip the rest. Separate dispatch days from transit days: the carrier may deliver on Saturday even if you do not ship on Saturday.

3. Ignoring public holidays

Easter Monday, Midsummer, 1 May, Christmas week: every one of them turns a "Tuesday" promise into Thursday. Stores that hard-code a delivery range never account for them, and the complaints arrive in bursts around each holiday.

Fix: keep a holiday calendar for the country you ship from and the countries you ship to. A parcel from Lithuania to Germany is delayed by German holidays too. This is tedious to maintain by hand, which is why an app with built-in national calendars is worth it.

4. One date for every country

The store shows "Delivery in 2–3 days" to a shopper in Spain because that is what domestic delivery takes. Cross-border takes 5–8. The Spanish shopper orders on Tuesday for the weekend and gets it the following Wednesday.

Fix: delivery profiles per country or Shopify Market, each with its own transit range. If you use Shopify Markets, the shopper's market is known before they reach the product page; the date should follow it.

5. A date drawn by JavaScript after the page loads

The date is correct, but it appears half a second after the page renders and pushes the Buy button down. On mobile the shopper's thumb was already on the button. Google counts the jump as layout shift and it costs you in Core Web Vitals.

Fix: render the date on the server as part of the page HTML, and use JavaScript only for the countdown. Most delivery date apps do not do this; check before installing.

Getting all five right in one go

Arrivio was built around exactly this list. When you install it, it reads your shipping zones and proposes a delivery profile per zone. Each profile has a cutoff hour, dispatch days, processing time and a transit range. Holiday calendars for 25 countries are preloaded and applied on both the origin and destination side. The date is rendered on the server in the shopper's language (30 languages, localised month names), and the free plan covers one profile with no usage limits. Pro adds per-country and per-collection profiles, a cutoff countdown and a delivery timeline. The Arrivio documentation shows each setting with an example.

A quick self-test

Open your store on a Friday at 22:00, on a public holiday, and from a foreign IP (or with a different Shopify Market selected). If the date shown is one you would actually meet in all three cases, you are fine. If not, one of the five mistakes above is the reason.

Frequently asked questions

Should I show a single date or a range? A range. "Sep 16 – Sep 18" absorbs a one-day carrier delay; "Sep 16" does not. Set the range from your real transit statistics, not the carrier's marketing.

What about made-to-order products? Give them their own profile with a longer processing time, targeted by collection. Or show no date for them at all rather than a wrong one.

Does a countdown ("order in the next 2 h to ship today") help? Yes, measurably, but only if the cutoff logic behind it is correct. A countdown that promises same-day dispatch at 16:30 when the warehouse closed at 16:00 does more harm than good.


Arrivio is built by MB „Liūto media" in Lithuania. All our Shopify apps are listed at liutoapps.com.

MB
Mindaugas Bružas

Founder of MB „Liūto media“ — building six focused Shopify apps: estimated delivery dates, shipping bars, product badges, email deliverability, theme cleanup and reorder reminders.

Built by the team behind six Shopify apps. See what we make →