> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Late Shipments, ShippyPro

> Late Shipments for ShippyPro stores. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to act on it.

**Metrics type:** [Key Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Shipping & Courier](/nerve-centre/connectors#connectors-by-type)

## At a glance

> Count of shipments dispatched in the last 7 days where the **actual delivery date exceeded the carrier-promised delivery date**, pooled across every carrier ShippyPro connected on your account. ShippyPro is a multi-carrier orchestration layer (100+ carriers across the EU), so a "late shipment" here is judged against the **specific carrier and service** chosen for that label, not a flat house SLA.

|                                |                                                                                                                                                                                                                                                                                                           |
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**             | `COUNT(shipments WHERE actual_delivery_date > expected_delivery_date AND ship_date >= now-7d)`. Each shipment is judged against its own carrier-promised delivery window, not a flat SLA.                                                                                                                 |
| **Delivery success criterion** | ShippyPro tracks the carrier's POD (proof-of-delivery) status: `delivered` flag plus `delivered_at` timestamp from the carrier's tracking API. Shipments still `in_transit`, `out_for_delivery` or `exception` are excluded from numerator and denominator until terminal status arrives.                 |
| **On-time threshold**          | Carrier-promised `expected_delivery_date` is the cutoff, no grace period. ShippyPro stores the promised date at label creation from the carrier's rate response; updates from in-transit re-estimates do **not** move the goalposts.                                                                      |
| **Returns / RTO**              | Returns shipments (separate `Easy Return` flow) and Return-to-Sender events are excluded from this count; they appear in [Returned to Sender](/nerve-centre/kpi-cards/shippy-pro/returned-to-sender). Failed delivery attempts that eventually deliver count as late if they exceed the original promise. |
| **Service level scope**        | **All services pooled** (Standard, Express, Same-Day, Economy across DHL Express, GLS, BRT, SDA, Poste Italiane, UPS, FedEx, Colissimo, etc.). Each label is judged against its own service-tier promise. Filter by carrier in [OTD by Route](/nerve-centre/kpi-cards/shippy-pro/otd-by-route).           |
| **Multi-country complexity**   | ShippyPro is heavily Italy/EU-focused; a "7-day late count" for a UK→IT shipment using BRT means something operationally different from a DE→DE shipment using DHL. The card pools them. Use service-mix breakdowns when comparing windows.                                                               |
| **Currency**                   | Not applicable, this is a count. Cost-impact lives in [Avg Shipping Cost](/nerve-centre/kpi-cards/shippy-pro/avg-shipping-cost) and [Claim Value](/nerve-centre/kpi-cards/shippy-pro/claim-value).                                                                                                        |
| **API endpoint**               | `GET /shipments` (ShippyPro v2 REST API), filtered by `created_at` and joined with the carrier's tracking webhook for `delivered_at`. Ships rate-limit at 60 calls/minute/token.                                                                                                                          |
| **Time window**                | `7D` (rolling 7-day window)                                                                                                                                                                                                                                                                               |
| **Alert trigger**              | `>5% of total` shipments in the same 7D window. The trigger fires when late count divided by total shipped exceeds 5 percent.                                                                                                                                                                             |
| **Roles**                      | owner, operations                                                                                                                                                                                                                                                                                         |

## Calculation

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

## Worked example

An Italian DTC fashion brand using ShippyPro to orchestrate four carriers (BRT for IT domestic, DHL Express for EU cross-border, Poste Italiane for low-value, GLS for FR/DE/ES). Reading taken at 09:00 CET on 12 Mar 26 for the trailing 7 days (5 Mar 26 to 11 Mar 26).

| Carrier                       | Shipments dispatched | Delivered late vs promise | Late share |
| ----------------------------- | -------------------- | ------------------------- | ---------- |
| BRT (IT domestic)             | 1,840                | 64                        | 3.5%       |
| DHL Express (EU)              | 920                  | 28                        | 3.0%       |
| Poste Italiane (IT low-value) | 510                  | 78                        | 15.3%      |
| GLS (FR/DE/ES)                | 730                  | 41                        | 5.6%       |
| **All carriers (this card)**  | **4,000**            | **211**                   | **5.3%**   |

The card reads **211** in the headline; the share-of-total is **5.3%**, just over the `>5% of total` alert. Five things to notice:

1. **The carrier-mix masks where the problem actually is.** Poste Italiane alone is at 15.3% late, but it is only 13 percent of volume so it drags the aggregate by less than a point. BRT at 3.5% on 46 percent of volume holds the headline down. The aggregate count of 211 does not tell you that Poste is the single intervention point. Always pair with [OTD by Route](/nerve-centre/kpi-cards/shippy-pro/otd-by-route) and the carrier breakdown.
2. **The 5.3% trip is the moment to act, not after.** ShippyPro's strength is rate-shopping across carriers; the operator's job when this card trips is to **shift the next 7 days' Poste Italiane volume to BRT or GLS** in the rate-shop rules. The aggregate number signalling the trip is the trigger to pull the lever.
3. **EU cross-border is structurally noisier than domestic.** DHL Express at 3.0% on EU traffic is healthy; if it climbs to 8 percent during a French national strike or German customs delay, that is a signal about **transit conditions**, not warehouse output. Read [Avg Transit (days)](/nerve-centre/kpi-cards/shippy-pro/avg-transit) alongside.
4. **Promised-date staleness during peak.** ShippyPro stores the promised delivery date at label creation. If carriers declare embargoes or service downgrades mid-week (common before Italian public holidays), shipments late against the original promise may have re-estimated to "on-time" in the carrier's own portal. The card stays strict against the original promise. Reconcile manually for the affected days.
5. **Not all 211 lates are ShippyPro's fault.** Address errors, customer-not-home redeliveries, customs holds for non-EU shipments to UK/CH, and warehouse pick-pack delays before label print all roll into this number. ShippyPro can only orchestrate the carrier pickup; everything pre- and post-handoff is upstream/downstream. The card flags the symptom; root-cause work happens in the carrier-mix card and warehouse cards.

## Sibling cards merchants should reference together

Late Shipments is a count, not a rate; the rate is implicit in the alert. Pair with these to convert "211 lates" into action:

| Card                                                                                                        | Why pair it with Late Shipments                                                                                                        | What the combination tells you                                                                                                                                |
| ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [On-Time Delivery Rate](/nerve-centre/kpi-cards/shippy-pro/on-time-delivery-rate)                           | The rate counterpart, gauges the share of shipments that hit promise.                                                                  | Late count climbing while OTD rate stable = volume up, structural mix unchanged. Late count climbing and OTD rate falling = network-wide degradation.         |
| [OTD by Route](/nerve-centre/kpi-cards/shippy-pro/otd-by-route)                                             | Splits the late count across carriers and lanes.                                                                                       | Identifies which carrier and which destination country are dragging. ShippyPro's value-add is rate-shopping, this is the card that justifies a re-route.      |
| [Shipments by Service](/nerve-centre/kpi-cards/shippy-pro/shipments-by-service)                             | Volume mix per carrier service.                                                                                                        | If a low-volume cheap service (e.g. Poste Italiane economy) is producing disproportionate lates, the rate-shop rule needs tightening.                         |
| [Avg Transit (days)](/nerve-centre/kpi-cards/shippy-pro/avg-transit)                                        | Companion timing metric.                                                                                                               | Late count up + avg transit days up = transit times have stretched. Late count up + avg transit days flat = promise dates were too aggressive at label print. |
| [Failed Deliveries](/nerve-centre/kpi-cards/shippy-pro/failed-deliveries)                                   | A failed delivery attempt that eventually delivers still counts as late.                                                               | If late count and failed-delivery count rise together, the issue is recipient-availability or address-quality, not network speed.                             |
| Cross-connector: [`shopify.unfulfilled_orders`](/nerve-centre/kpi-cards/shopify/unfulfilled-orders)         | Upstream cause. Slow Shopify-to-warehouse acknowledgement adds to ship-out delay, which compresses transit time and raises late count. | Climbing Shopify backlog typically precedes a 1 to 3 day spike in this card.                                                                                  |
| Cross-connector: [`shopify.refund_rate`](/nerve-centre/kpi-cards/shopify/refund-rate)                       | Downstream impact. Late deliveries drive refund and chargeback requests.                                                               | A 5+ percentage point share-of-late rise typically precedes a 0.5 to 1.5 point refund-rate climb at 7 to 14 days lag.                                         |
| Cross-connector: [`bigcommerce.unfulfilled_orders`](/nerve-centre/kpi-cards/bigcommerce/unfulfilled-orders) | Same upstream relationship as Shopify, for multi-channel merchants.                                                                    | Watch both feed-streams when reading this card on a multi-store account.                                                                                      |

## Reconciling against the vendor's own dashboard

**Where to look in ShippyPro's own dashboard:**

[ShippyPro Dashboard](https://www.shippypro.com/app) → **Analytics → Tracking Performance → Late Deliveries** (Italian/EU operators may see "Spedizioni in Ritardo"). The closest like-for-like view is *Last 7 Days, All Carriers, All Services*. ShippyPro also exposes a per-shipment audit at *Track & Trace → Filter "Late"*; each row shows promised-vs-actual delivery date with the carrier identifier.

**Why our number may legitimately differ from ShippyPro's portal:**

| Reason                        | Direction              | Why                                                                                                                                                                                                                                                           |
| ----------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Timezone**                  | Boundary days off      | ShippyPro portal defaults to the workspace timezone (most often Europe/Rome). The card defaults to UTC. Boundary-day shifts of up to 2 hours are normal.                                                                                                      |
| **Carrier-tracking sync lag** | Ours lower for "today" | Some carriers (Poste Italiane, BRT for non-priority lanes) push tracking events on a 4 to 12 hour batch. Today's late-count understates; T-2 days fully reconcile.                                                                                            |
| **Promise-date staleness**    | Ours stricter          | The card holds carriers to the promise stored at label print. The portal sometimes re-renders against the carrier's currently-quoted ETA (re-estimated after holiday embargo declared). Differences widen during Italian/French/Spanish public-holiday weeks. |
| **Returns and RTO exclusion** | Ours lower             | The card excludes Easy Return shipments and Return-to-Sender events. ShippyPro's portal "Late" filter sometimes includes them depending on filter state.                                                                                                      |
| **Webhook delivery failures** | Either                 | If the carrier webhook drops a `delivered` event, ShippyPro retries up to 24 hours. The card reads ShippyPro's last-known status; portal shows the same. Persistent gap = check the carrier integration health page.                                          |

**Cross-connector reconciliation:**

| Card                                                                                       | Expected relationship                                                                       | What causes legitimate divergence                                                                                                                                      |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`shopify.unfulfilled_orders`](/nerve-centre/kpi-cards/shopify/unfulfilled-orders)         | Upstream input. Shopify hands orders to the warehouse; ShippyPro reads label-print-onwards. | Manual fulfilment outside ShippyPro, B2B / pre-order flows that bypass label automation.                                                                               |
| [`bigcommerce.unfulfilled_orders`](/nerve-centre/kpi-cards/bigcommerce/unfulfilled-orders) | Same as Shopify, for multi-channel merchants.                                               | Same caveat.                                                                                                                                                           |
| Carrier-direct connectors (e.g. DHL Express, BRT)                                          | Peer measurement of the same shipments from the carrier side.                               | Carriers track to their own SLA tables (zone-based transit days), not to the per-shipment promise ShippyPro stored at rate-shop. Differences are expected, not errors. |

***

<details>
  <summary><em>Documentation cross-reference (for agencies running multi-platform stacks)</em></summary>

  Multi-carrier orchestration platforms surface late-shipment metrics with conceptually similar definitions, but the carrier mix and the promise-date semantics differ per platform. These are independent operations on different shipments; the cross-link exists so multi-stack agencies can navigate documentation.

  * [ShipBob Late Shipments equivalent](/nerve-centre/kpi-cards/shipbob/on-time-delivery-rate) (3PL with bundled carrier handoff, US-centric)
  * [Sendle Late Shipments](/nerve-centre/kpi-cards/sendle/late-shipments) (flat-rate single-carrier model, AU/US)
  * [ShipTheory Late Shipments](/nerve-centre/kpi-cards/ship-theory/late-shipments) (UK aggregator with sub-carrier visibility)
</details>

## Known limitations / merchant FAQs

**ShippyPro vs sending direct to a carrier API, why does this card matter more?**
ShippyPro's whole reason for existing is rate-shopping across 100+ carriers. The choice of carrier per shipment is **dynamic**, picked at label time by your rate-shop rules. A late-shipment count without carrier breakdown is half the story; the next click should be [OTD by Route](/nerve-centre/kpi-cards/shippy-pro/otd-by-route) to see which carrier's rule needs adjusting. Direct-carrier integrations do not produce this rate-shop signal because the carrier is fixed.

**Why is my Italian domestic late count higher than my EU cross-border count?**
Counter-intuitive but common. Italian last-mile is uneven: Poste Italiane and SDA economy services run looser SLAs than DHL Express EU cross-border. Many Italian DTC merchants over-route to cheap domestic services for low-value parcels and absorb the late-count tax. Worth pairing with [Avg Shipping Cost](/nerve-centre/kpi-cards/shippy-pro/avg-shipping-cost) to see the cost-vs-late-count trade-off.

**Carrier shows on-time but ShippyPro says late, which is correct?**
ShippyPro is correct against your rate-shop promise. The carrier scans against its own internal SLA (e.g. BRT "Bartolini" 1 to 4 working days zone-based); ShippyPro stored a per-shipment promised date at label print that may have been tighter (e.g. carrier rate response said "estimated 12 Mar"). The card uses the stored promise as truth.

**How does the carrier-mix change my late count?**
Materially. Switching 30 percent of low-value Italian volume from Poste Italiane to BRT typically drops late count 40 to 60 percent on that slice (Poste lates run 12 to 18 percent, BRT 3 to 5 percent), at the cost of 10 to 20 percent higher per-parcel charge. The decision is a margin call, not a quality call. Read this card next to [Avg Shipping Cost](/nerve-centre/kpi-cards/shippy-pro/avg-shipping-cost).

**EU public holidays, how do I plan?**
Three actions. (1) Pre-publish carrier embargo dates in your rate-shop rules 2 weeks ahead (ShippyPro accepts cutoff overrides). (2) Raise the alert threshold from `>5%` to `>8%` for Italian Ferragosto week (mid-August), French strike windows, and the 23 to 31 December stretch; the dip is structural. (3) Switch any "DHL Express" rules to "DHL Express priority" during peak; the priority service prices \~30 percent higher but holds SLA when standard does not.

**What about UK shipments post-Brexit?**
ShippyPro handles UK as a non-EU destination with customs paperwork. Late count for IT→UK lanes is structurally higher (15 to 25 percent typical vs 3 to 5 percent for IT→DE) because customs adds 2 to 5 working days that the carrier rate response often does not predict accurately. If your UK volume is material, segment it: alert separately on UK and read [Shipments by Destination](/nerve-centre/kpi-cards/shippy-pro/shipments-by-destination) to see the share.

**Returns and RTO, where do they live?**
Easy Return shipments and Return-to-Sender events are **not** in this count. They live in [Returned to Sender](/nerve-centre/kpi-cards/shippy-pro/returned-to-sender) and the open-claims flow. A failed-delivery attempt that eventually delivers does count as late if it exceeds the original promise.

**Why does the alert percentage trip but the headline count seems small?**
Volume sensitivity. On a 200-shipment-per-week long-tail account, `>5% of total` trips at 11 lates. Operationally trivial in absolute terms; statistically meaningful as a leading indicator. Adjust the alert threshold per workspace if your volume is consistently below 1k/week.

***

### Tracked live in Vortex IQ Nerve Centre

*Late Shipments* is one of hundreds of KPI pulses Vortex IQ tracks across ShippyPro 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](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
