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 counts | COUNT(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 endpoint | Shippo 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 criterion | tracking_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 threshold | Carrier-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 scope | All 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 scope | All 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 / RTO | RTO (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 impact | None 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 seasonality | USPS 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 window | 30D vsP (rolling 30 days vs prior 30 days) |
| Alert trigger | <95% (warn) / <90% (critical), drives the on_time_delivery_rate sentiment. |
| Roles | owner, 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 service | Shipments | Delivered on or before ETA | OTD Rate |
|---|---|---|---|
| USPS Priority Mail | 1,840 | 1,737 | 94.4% |
| USPS Ground Advantage | 620 | 555 | 89.5% |
| UPS Ground | 410 | 398 | 97.1% |
| FedEx Home Delivery | 90 | 88 | 97.8% |
| All carriers (this card) | 2,960 | 2,778 | 93.9% |
<95% is tripped at warn level but not at critical (<90%). Five things to notice:
- 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.
- 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.
- 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.
- 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.
- 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:| Card | Why pair it with On-Time Delivery Rate | What the combination tells you |
|---|---|---|
| OTD by Route | Splits 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 Shipments | The numerator-side counter. | Spikes here predict OTD drops 3 to 7 days later when those shipments deliver. |
| Exception Rate | Upstream cause. | Climbing exceptions (weather, address issues, carrier delays) precede OTD drops by 2 to 5 days. |
| Label Generation Success | Diagnostic for Shippo’s own leg. | If labels generate cleanly but OTD drops, the issue is carrier-side, not Shippo-side. |
Cross-connector: shopify.unfulfilled_orders | Upstream 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_rate | Downstream 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 survey | Downstream 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 App → Reports → 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 betweeneta 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:
| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary days off | Shippo 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 shipments | Ours rolling | In-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 filters | Either | Shippo’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 lag | Ours 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 classification | Ours excludes | Shippo’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. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
shopify.unfulfilled_orders | Upstream 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_orders | Same 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-shipmenteta 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.