At a glance
Absolute count of Shippo-printed shipments that delivered after the carrier’s eta, or are still in-transit past their promised date. The numerator side of On-Time Delivery Rate, surfaced as a count rather than a percentage so a small number of late parcels is still visible on a 100k-shipment-per-week store.
| What it counts | COUNT(transactions WHERE actual_delivery_date > eta OR (now() > eta AND status NOT IN ('DELIVERED','RETURN_TO_SENDER'))). Includes both delivered-late and currently-overdue. |
| API endpoint | Shippo GET /tracks and GET /transactions. The card reads eta, tracking_status.status, tracking_history, transaction.object_created per shipment. |
| Late definition | actual_delivery_date > eta for delivered parcels. For in-transit parcels, late = now() > eta and not yet at terminal status. The card pools both states into one count. |
| Carrier scope | All carriers pooled. USPS (typically the largest contributor on Shippo), UPS, FedEx, DHL Express. Use OTD by Route to split. |
| Service level scope | All services. USPS Priority, Ground Advantage, UPS Ground, etc. Each shipment is judged against its own carrier-quoted eta. |
| Returns / RTO | RTO shipments are excluded. They never had a chance to be on-time at the original address. Tracked separately in Returned to Sender. |
| Commercial Plus pricing impact | None on lateness directly. Discounts apply to label cost, not transit time. |
| Day-of-week pattern | Mondays and Tuesdays normally show the largest counts because USPS does not move parcels on Sunday; weekend label-printers all “go late” together when the Monday measurement is taken. Shape, not severity. |
| Q4 / peak amplification | The count typically spikes 3 to 8 times baseline from late November through 24 December. The 7D window means peak is fully visible by 5 December and falls back by mid-January. |
| Time window | 7D (rolling 7 days; sensitive enough to catch carrier-network disruptions inside a week) |
| Alert trigger | >5% of total, scales to volume so a 50-late-out-of-1000 alert fires the same as 500-late-out-of-10000. |
| 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 homewares brand on Shopify, shipping ~700 parcels per week through Shippo, mostly via USPS Priority Mail with Commercial Plus, plus UPS Ground for parcels over 5 lb. Reading taken at 09:00 ET on Friday 13 Mar 26 for the trailing 7 days (06 Mar 26 to 12 Mar 26).| Carrier service | Shipments | Late (delivered after ETA, or in-transit past ETA) | Late % |
|---|---|---|---|
| USPS Priority Mail | 420 | 18 | 4.3% |
| USPS Ground Advantage | 175 | 22 | 12.6% |
| UPS Ground | 90 | 2 | 2.2% |
| FedEx Home Delivery | 25 | 1 | 4.0% |
| All carriers (this card) | 710 | 43 | 6.1% |
>5% of total tripped (43 / 710 = 6.1%). Five things to notice:
- USPS Ground Advantage is the disproportionate driver. 22 of the 43 late shipments came from a service representing 25% of weekly volume but 51% of lateness. The rate-shopper should be biased away from Ground Advantage on long-zone deliveries this week.
- The count is sensitive to in-transit overdues, not just delivered-late. Of the 43, roughly 12 are in-transit past
etaand may still arrive on Monday. The number can drop on its own as those parcels deliver. Re-read in 48 hours before acting. - Day-of-week skews the read. Friday morning catches the Monday-Tuesday measurement bulge from weekend-printed Priority Mail labels that did not move until Monday’s first scan. Reading on Wednesday gives a calmer view of carrier-side late counts.
- Cross-reference with Exception Rate. If exception count is also up, late count is consequence; if exceptions are flat but late count is up, the issue is service-level mismatch (wrong service for the zone) rather than network disruption.
- The 43 late parcels each carry a refund-risk tail. If the brand’s customer-service team treats a 2-day late delivery as eligible for a 5 = $215 of margin at risk this week. Use this card for triage volume, not just OTD percentage.
Sibling cards merchants should reference together
Late count is a triage signal. Pair it with these to act on it:| Card | Why pair it with Late Shipments | What the combination tells you |
|---|---|---|
| On-Time Delivery Rate | The percentage view of the same data. | The count surfaces the absolute volume of customer-service tickets to expect; the percentage normalises across volume changes. Read together. |
| OTD by Route | Splits late count by carrier service. | Identifies which carrier service is contributing disproportionately. USPS Ground Advantage is the usual top contributor. |
| Exception Rate | Upstream cause. Exceptions (weather, address issues) precede late deliveries by 2 to 5 days. | Climbing exceptions + climbing late count = network disruption. Flat exceptions + climbing late count = service-mismatch (wrong service for the zone). |
| Avg Transit (days) | Companion timing metric. | Long average transit + high late count = network is too slow for the promise; recalibrate or upgrade carrier mix. |
| Failed Deliveries | Different failure mode. | Late vs failed are distinct: late = arrived after ETA, failed = never arrived (returned-to-sender, lost, refused). Both represent CS load. |
Cross-connector: shopify.refund_rate | Downstream impact. | A spike in late count typically precedes a 0.5 to 1.5 point refund-rate climb at 7 to 14 days lag. |
Cross-connector: shopify.unfulfilled_orders | Upstream pressure. | Backlogged Shopify orders take longer to print, which can push them past their carrier ETA; late count rises 3 to 7 days after a Shopify backlog spike. |
Reconciling against the vendor’s own dashboard
Where to look in Shippo’s own dashboard: Shippo App → Orders → Filter “Late”. The closest like-for-like view is All Carriers, Last 7 Days, Status: Delivered Late OR In-Transit Past ETA. Shippo’s report renders a count tile and a per-shipment table. Use the table for individual customer-service triage; use this card for trend. Why our number may legitimately differ from Shippo’s report:| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary days off | Shippo defaults to merchant time zone; the card uses UTC. The 7-day window can include or exclude one boundary day. |
| In-transit overdue counting | Either | Shippo’s tile sometimes counts in-transit-past-ETA in a separate “pending late” bucket. The card pools both into one count. |
| Tracking poll lag | Ours lower for “today” | Shippo polls carriers every 1 to 4 hours. Today’s count may understate by a few parcels still showing in-transit when they have actually delivered late. |
| RTO classification | Ours excludes | RTO shipments are excluded from this count; they live in Returned to Sender. Shippo’s report sometimes pools RTO into “exceptions”. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
shopify.refund_rate | Downstream consequence. Late count climbs precede refund-rate climbs by 7 to 14 days. | Refund causes other than late delivery (size / fit, damage, customer change-of-mind). |
shopify.unfulfilled_orders | Upstream pressure. | Shopify backlog spikes precede late count climbs by 3 to 7 days. |
| Carrier-direct late-shipment counts (USPS BCG, UPS) | Same shipments, different lens. | Carrier counts use scan-based windows; Shippo’s eta is per-shipment at label print. Counts do not match exactly. |
Known limitations / merchant FAQs
Late count is up but OTD percentage is flat. What is happening? Volume grew. The percentage stays steady because numerator and denominator both rose; the count grows because shipments grew. This is normal and not an alarm. Look at Shipments alongside; if shipments are up 30% and late count is up 30%, business as usual. Late count is up and OTD percentage is also down. What is the root cause? Three usual culprits, in order of likelihood:- Carrier-network disruption. Weather event, USPS sortation backlog, FedEx labour action. Check Exception Rate and the carrier’s own news page.
- Service-mix shift. Did Ground Advantage volume rise as a share of total? It runs 5 to 10 points lower OTD than Priority Mail. Check Shipments by Service.
- Cutoff drift. Are warehouse staff missing the 16:00 USPS pickup more often? A label printed at 17:00 misses the day-zero scan and shows late on the next-business-day measurement.
now() > eta and not yet at terminal status counts as late. This catches the “carrier network is backed up right now” signal early, before parcels actually deliver late. The count can fall back as those parcels deliver, even if they delivered on the next day.
How does Commercial Plus pricing affect the count?
It does not. Commercial Plus is a label-cost discount, not a service tier. A parcel sent at Commercial Plus rates moves through the same network as a retail-rate parcel. The cost saving in Avg Shipping Cost is real; it does not buy faster delivery.
Why is the alert at 5% of total and not an absolute threshold?
Volume varies by merchant. A 50-late-out-of-1000 alert (5%) is the same severity as 5-late-out-of-100 (5%) for triage purposes. An absolute threshold (“alert if late count > 50”) would never trip for small merchants and would always trip for large ones. The percentage threshold scales naturally.
Q4 / BFCM, the count tripled. Should I disable the alert?
Better: raise the threshold for the season. Recommend >10% for 25 Nov 25 to 5 Jan 26, then revert. Disabling alerts entirely loses the signal of a peak-on-peak event (a network outage during BFCM week). Adjust thresholds, do not silence.
Late vs failed, what is the difference?
Late (this card) = arrived after eta. Failed (Failed Deliveries) = never arrived: returned-to-sender, lost in network, refused at door, address invalid. Both create CS load; failed is usually more expensive per case (refund or reship). Track separately.