Delivery dates your carrier actually keeps.

One API call that keeps three calendars apart: the days you dispatch and your cutoff time, the days your carrier delivers, and public holidays. So a Friday order with 3-day transit says Wednesday, not Monday.

Try the live demo Get early API access

Cutoff in your timezoneSaturday carriersHolidays: GB, US, DE, IN, AU, CAExplains every stepNo date library, no I/O, deterministic

Try it: when does this order arrive?

Defaults reproduce the classic bug: Friday order, Mon-Fri dispatch, a carrier that delivers Saturdays, 1-3 day transit.

Why existing "estimated delivery date" tools get it wrong

ShipDate treats dispatch days, carrier delivery days, cutoff (in the merchant timezone), public holidays and your own closures as separate inputs, and returns the reasoning so you can check it.

Pricing (planned)

Free

$0

1,000 API calls / 30 days. All countries, explain output.

Pay as you go

$1 / 1,000 calls

After the free tier. No minimum, cancel any time.

Shopify app

$7 / mo per store

Storefront "arrives by" widget with these rules. Coming after the API.

Nothing is charged today. Join the list and we'll email you once when the API opens.

API

curl -X POST https://shipdate.wrenbench.com/api/v1/delivery-date \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "ordered_at": "2026-10-23T09:00:00Z",
    "tz": "Europe/London",
    "cutoff": "14:00",
    "dispatch_days": ["mon","tue","wed","thu","fri"],
    "carrier_delivery_days": ["mon","tue","wed","thu","fri","sat"],
    "transit_days": { "min": 1, "max": 3 },
    "holiday_country": "GB",
    "extra_closures": ["2026-12-24"]
  }'

{
  "dispatch_date": "2026-10-23",
  "delivery_min": "2026-10-26",
  "delivery_max": "2026-10-28",
  "explain": ["Order placed 2026-10-23 10:00 Europe/London (Fri); cutoff 14:00.", "..."],
  "holidays_applied": [],
  "weekdays": { "dispatch": "fri", "delivery_min": "mon", "delivery_max": "wed" }
}

Invalid input returns 422 with a machine-readable code. Over quota returns 402 with payment options in the body, so AI agents and checkout bots can pay per call without a signup (planned).

FAQ

Which holidays are included?
Nationwide public holidays for GB, US, DE, IN, AU, CA for 2026 and 2027, including substitute days. Regional and lunar-calendar holidays are not included yet; a nightly Nager.Date sync covering 100+ countries is next.
Does a public holiday stop dispatch or delivery?
Both. Your own closure dates stop dispatch only, because the carrier still moves parcels already in its network.
What happens exactly at the cutoff minute?
An order placed at 14:00 with a 14:00 cutoff is treated as after cutoff and dispatches on the next dispatch day.
Can I use it from a Shopify theme today?
Not yet. The validation stage is this page and the API. Leave your email and say "Shopify" and we will prioritise the storefront widget.
Is my data stored?
The demo stores nothing. The waitlist stores your email, platform and note. That is all.

Get early access

Free tier at launch. No spam, one email when it is ready.

Would you pay $9/month for this?