Skip to main content
Card class: HeroCategory: Shipping & Courier

At a glance

Share of Shippo-printed shipments delivered on or before the carrier’s estimated delivery date. The merchant-facing “did it turn up when promised” number, computed across every shipment Shippo brokered to USPS, UPS, FedEx, or DHL in the period.
What it countsCOUNT(transactions WHERE actual_delivery_date <= eta) / COUNT(transactions WHERE actual_delivery_date IS NOT NULL). Each delivered shipment scores 0 or 1 against its carrier ETA.
API endpointShippo GET /tracks and GET /transactions (Shipping API v2024-04). The card reads eta, tracking_status, tracking_history, servicelevel.token, and rate.amount per transaction.
Delivery success criteriontracking_status.status = "DELIVERED" confirmed by carrier scan. Pre-transit, transit, and out-for-delivery rows are excluded from the denominator until they reach a terminal state.
On-time thresholdCarrier-quoted eta exactly, no grace day. USPS Priority Mail two-to-three day promises and UPS Ground zone-based ETAs are scored against the carrier’s own commitment.
Carrier scopeAll carriers pooled. USPS (the bulk of Shippo volume), UPS, FedEx, DHL Express, and any regional carrier the merchant has connected. Use OTD by Route for per-carrier breakdown.
Service level scopeAll services. USPS Priority, Priority Express, Ground Advantage, First-Class Package, UPS Ground, UPS 2nd Day Air, FedEx Home Delivery, FedEx Ground are pooled. Each shipment is judged against its own ETA, not a flat SLA.
Returns / RTORTO (return-to-sender) shipments are excluded from numerator and denominator. They never reach DELIVERED at the original address; they reach RETURN_TO_SENDER. Treated as a separate denominator in Returned to Sender.
Commercial Plus pricing impactNone on this card directly. Commercial Plus discounts apply to label cost, not transit time. USPS prioritises Commercial Plus parcels in the same way as standard Priority Mail; OTD parity is expected.
Q4 / peak seasonalityUSPS typically degrades 8 to 15 percentage points from mid-November through 24 December as the network saturates. UPS and FedEx degrade 3 to 8 points. The card pools both, so the headline drop is carrier-mix-weighted. Read November and December numbers in seasonal context.
Time window30D vsP (rolling 30 days vs prior 30 days)
Alert trigger<95% (warn) / <90% (critical), drives the on_time_delivery_rate sentiment.
Rolesowner, operations

Calculation

Calculated automatically from your Shippo data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

A US DTC apparel brand on Shopify, shipping ~3,000 parcels per month, mostly via USPS Priority Mail with Commercial Plus pricing, plus UPS Ground for parcels over 5 lb. Reading taken at 09:00 ET on 12 Mar 26 for the trailing 30 days (10 Feb 26 to 11 Mar 26).
Carrier serviceShipmentsDelivered on or before ETAOTD Rate
USPS Priority Mail1,8401,73794.4%
USPS Ground Advantage62055589.5%
UPS Ground41039897.1%
FedEx Home Delivery908897.8%
All carriers (this card)2,9602,77893.9%
The card reads 93.9% on the gauge; the alert at <95% is tripped at warn level but not at critical (<90%). Five things to notice:
  1. USPS Ground Advantage is dragging the headline. At 89.5% it has tripped its own critical threshold, but the aggregate masks that. USPS Ground Advantage replaced First-Class Package in 2023 with two-to-five day windows that USPS regularly misses on long-zone deliveries (East Coast to West Coast). Use OTD by Route to confirm.
  2. Commercial Plus does not change OTD. The brand pays USPS Commercial Plus rates via Shippo (saving 30 to 40% on label cost vs retail), but transit time is the same as retail Priority Mail. The cost saving in Avg Shipping Cost does not buy faster delivery.
  3. UPS and FedEx outperform USPS at 97 plus percent. If reliability matters more than label cost for a SKU (e.g. high-value items, time-sensitive customers), routing those orders to UPS Ground via Shippo’s rate-shopper lifts OTD on that segment, at higher label cost.
  4. The 182 missed shipments are not all “Shippo’s fault”. Carrier delays, recipient address errors, weather, and missed pickups all count against OTD. Shippo’s accountability ends at label generation and pickup handoff; the rest is carrier execution. Label Generation Success tracks Shippo’s own leg.
  5. Q4 context matters. This same brand was at 81.2% in their 30 Nov 25 reading: USPS dropped to 76% during the post-Black-Friday wave when USPS sortation backed up. The Q4 dip was structural; February to early March is the calmer baseline and the right window for steady-state benchmarking.

Sibling cards merchants should reference together

On-time delivery is a customer-facing outcome metric. Pair it with these to diagnose root cause:
CardWhy pair it with On-Time Delivery RateWhat the combination tells you
OTD by RouteSplits the aggregate by carrier service.Identifies which carrier service is dragging the headline. USPS Ground Advantage frequently drags; UPS Ground and FedEx Home Delivery typically run higher than aggregate.
Avg Transit (days)Companion timing metric.Long average transit + low OTD = network is too slow for the promise; consider routing heavy / high-value SKUs to UPS or FedEx via Shippo’s rate-shopper.
Late ShipmentsThe numerator-side counter.Spikes here predict OTD drops 3 to 7 days later when those shipments deliver.
Exception RateUpstream cause.Climbing exceptions (weather, address issues, carrier delays) precede OTD drops by 2 to 5 days.
Label Generation SuccessDiagnostic for Shippo’s own leg.If labels generate cleanly but OTD drops, the issue is carrier-side, not Shippo-side.
Cross-connector: shopify.unfulfilled_ordersUpstream cause.A persistent Shopify backlog means orders are not even reaching Shippo for label printing; OTD will sag 2 to 4 days later as those parcels deliver late.
Cross-connector: shopify.refund_rateDownstream impact.A 3 to 5 percentage-point OTD drop typically precedes a 0.5 to 1.5 point refund-rate climb at 7 to 14 days lag.
Cross-connector: customer NPS / Klaviyo post-purchase surveyDownstream sentiment.Late deliveries depress “How was your delivery?” survey scores within 14 days.

Reconciling against the vendor’s own dashboard

Where to look in Shippo’s own dashboard: Shippo AppReports → Shipping Performance. The closest like-for-like view is All Carriers, All Services, Last 30 Days. Shippo also exposes a per-shipment audit at Orders → Filter “Late”; each row shows the gap between eta and actual_delivery_date. Useful when the headline number disagrees and you need to see which shipments missed. Why our number may legitimately differ from Shippo’s report:
ReasonDirectionWhy
Time zoneBoundary days offShippo defaults to the merchant’s account-level time zone (set in Settings). The card uses UTC. For a 30-day window the gap averages out; for “today” it can shift the number meaningfully.
In-transit shipmentsOurs rollingIn-transit shipments without actual_delivery_date are excluded from both numerator and denominator. As they deliver, the rolling window numerator grows. Shippo’s report includes a “pending” bucket separately.
Service-level filtersEitherShippo’s report defaults to “all services” but lets the merchant filter by servicelevel.token. The card pools every service. Click a service chip to compare like-for-like.
Carrier scan-event lagOurs lower for “today”Shippo polls carrier tracking APIs every 1 to 4 hours. During Q4 peaks the lag can stretch to 6 to 12 hours. Today’s number may understate; T-2 days fully reconcile.
RTO classificationOurs excludesShippo’s report shows RETURN_TO_SENDER as “delivered” in some legacy views. The card excludes RTOs from both numerator and denominator; they live in Returned to Sender.
Cross-connector reconciliation:
CardExpected relationshipWhat causes legitimate divergence
shopify.unfulfilled_ordersUpstream input. Shopify orders flow to Shippo via app integration; backlog there means parcels are not yet labelled, which delays delivery.Shopify-to-Shippo app sync failures, B2B / pre-order flow that bypasses Shippo.
Carrier-direct OTD (USPS Business Customer Gateway, UPS CampusShip)Same shipments, different lens.The carrier’s own OTD calculation uses scan-based windows (e.g. UPS Ground 1 to 5 business days at zone level) which can differ from Shippo’s eta. The card uses Shippo’s eta as truth.
bigcommerce.unfulfilled_ordersSame as Shopify upstream pressure.Same caveat.

Known limitations / merchant FAQs

Why is my Shippo OTD lower than my carrier’s own dashboard? Three usual reasons. (1) Different SLA definitions. USPS and UPS publish zone-based windows (“1 to 3 business days”) while Shippo records the carrier’s per-shipment eta at label print, which is often tighter. (2) Pickup-to-acceptance gap. A label generated at 17:00 may not be scanned into the carrier network until the next morning, costing a day on the clock. (3) Carrier scan-event lag. Shippo’s tracking poll runs every 1 to 4 hours; the dashboard catches up within 12 hours. Does Commercial Plus pricing affect my OTD? No. Commercial Plus is a discount on the label cost, not a faster service tier. A USPS Priority Mail parcel at Commercial Plus rates moves on the same trucks and through the same sortation as the same service at retail rates. If reliability matters more than cost, route those orders to UPS Ground or FedEx Home Delivery via Shippo’s rate-shopper, not to a “premium” USPS service that does not exist. Should I switch from USPS to UPS / FedEx if my OTD drops? Maybe, with caveats. The 30 to 40% Commercial Plus saving on USPS Priority is meaningful for low-margin SKUs; UPS Ground typically costs 1.5 to 2.5 times more for the same parcel. The right answer depends on what the late delivery is costing you (refund rate, reorder rate, NPS). Run the maths: if a 5 percentage-point OTD lift cuts refund rate by 0.5 points and your refund cost is $30 per case, you have a budget for the carrier upcharge. My USPS Ground Advantage parcels miss frequently. Why? Ground Advantage replaced First-Class Package in July 2023 with a two-to-five business-day window. USPS regularly hits five days on long-zone deliveries (East Coast to West Coast, especially weekends and holidays). The card scores against the eta USPS quotes at label print, which is typically the optimistic end of the window. If long-zone deliveries dominate your traffic, switching those segments to USPS Priority Mail (one-to-three day) or UPS Ground often lifts OTD by 5 to 10 points. Why does the carrier tracking page show “Delivered on time” but Shippo says late? Three usual reasons. (1) Definition variance. USPS scans against its zone window; Shippo records against eta. (2) Recipient-not-home retry. Carriers may scan “out for delivery” multiple times; the actual handoff date gets the on-time scoring. (3) Sync lag. Wait 12 hours and re-check; carrier-scan events take 2 to 6 hours to flow through Shippo’s tracking poll. How do I plan for Q4 / BFCM peak with this card? Three actions. (1) Pre-position carrier mix. Increase UPS / FedEx share for time-sensitive SKUs from October. USPS saturates first and degrades most. (2) Communicate expectations in checkout copy. Change “delivered in three to five days” to “delivered by 23 December if ordered by 18 December” during peak. (3) Raise the alert threshold temporarily to <85% for 25 Nov 25 to 5 Jan 26 to avoid alert fatigue while the network is structurally degraded. Why does my OTD swing from one week to the next? Small numbers are noisy. If you ship under 200 parcels a week, a single bad-weather event in one carrier hub can move the rate 3 to 5 points. Look at the rolling 30-day OTD, not the daily figure; that is why the alert window defaults to 30D vsP. Does Shippo Insurance / claims affect this card? No. Insurance and claims live downstream of delivery. A late-delivered parcel that triggers a customer claim still counts as late on this card and as a claim on Open Claims. The two cards measure different things in the same shipment lifecycle.

Tracked live in Vortex IQ Nerve Centre

On-Time Delivery Rate is one of hundreds of KPI pulses Vortex IQ tracks across Shippo and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.