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

At a glance

Share of ShippyPro shipments delivered on or before the carrier-promised delivery date, pooled across every carrier ShippyPro orchestrated for the merchant (BRT, DHL Express, GLS, Poste Italiane, Colissimo, SDA, UPS, FedEx, etc.). ShippyPro is the EU/Italy multi-carrier orchestration layer; the rate moves with (a) carrier mix more than with rate-shop savings, and (b) which sub-carrier handled each parcel more than with overall network performance.
What it countsCOUNT(shipments WHERE actual_delivery_date <= expected_delivery_date) / COUNT(shipments WHERE delivered_at IS NOT NULL) over the trailing 30 days. Each shipment is judged against its own carrier-promised delivery window stored at label creation.
Delivery success criterionShippyPro normalises every carrier’s POD model (BRT signature, DHL Express signature, Poste Italiane scan-only on Posta 4) to a single delivered flag with delivered_at timestamp. Updates from in-transit re-estimates do not move the goalposts; the original promise stands.
On-time thresholdThe carrier-promised expected_delivery_date from the label-creation rate response, no grace. Each carrier and each service tier has its own promise; the card honours per-shipment promises rather than a flat threshold.
Returns / RTOOutbound only. Easy Return shipments and RTS events appear in Returned to Sender.
Service level scopeAll services pooled (Standard, Express, Same-Day, Economy across all 100+ supported carriers). Per-carrier breakdown lives in OTD by Route and Rate-Shop Winner Mix.
Multi-country complexityShippyPro is heavily IT/EU-focused but supports cross-border lanes; a UK-IT shipment via BRT and a DE-DE shipment via DHL Express have different OTD dynamics. The card pools them. Use service-mix breakdowns when comparing windows.
Mix-driven, not rate-drivenUnlike ShipTheory (rate-shopping for savings on UK lanes), ShippyPro accounts typically optimise carrier choice by service tier and country lane, not by per-parcel cost. A swing in OTD usually means the merchant changed which carrier wins which lane, not that any individual carrier degraded.
CurrencyNot applicable.
Time window30D vsP (rolling 30 days vs the prior 30). Daily readings exist but are noisy below 200 shipments per day.
Alert trigger<95% warn, <90% critical, driven by sentiment_key: otd_rate. EU/IT DTC benchmark on a balanced mix is 92 to 96 percent; below 90 percent typically means Poste Italiane share has surged on cost-sensitive lanes.
Rolesowner, 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 IT, GLS for FR/DE/ES). Reading taken at 09:00 CET on 12 Mar 26 for the trailing 30 days (10 Feb 26 to 11 Mar 26).
CarrierShipmentsDelivered on or before promiseOTD Rate
BRT (IT domestic)7,3607,09696.4%
DHL Express (EU cross-border)3,6803,56997.0%
Poste Italiane (IT low-value)2,0401,72984.8%
GLS (FR/DE/ES)2,9202,75294.2%
All carriers (this card)16,00015,14694.7%
The card reads 94.7 percent on the dial; the alert at <95% warn is firing marginally but the <90% critical floor is not. Five things to notice that are specific to ShippyPro and the EU/IT mix-driven model:
  1. Poste Italiane drags the headline by 1.9 points alone. 311 of 854 lates come from Poste’s IT low-value share. The carrier’s structural OTD on Posta 4 is in the 82 to 88 percent range; this is not a degradation, it is the cost-quality point the merchant signed up for. The decision is whether the cost saving still justifies the OTD trade after seeing the customer-experience cost on those parcels.
  2. DHL Express at 97 percent on cross-border is the benchmark and worth its premium. EU cross-border via DHL Express is structurally more reliable than domestic via Poste Italiane because DHL’s network is built for express. If DHL share were to drop materially (e.g. to save cost via DPD or GLS Express on cross-border), the cross-border share of OTD would dip even though no single carrier degraded.
  3. BRT at 96.4 percent on IT domestic is healthy. BRT is the workhorse of Italian DTC; their OTD typically sits in the 95 to 97 percent band on metro-heavy mixes. Sub-95 percent for BRT alone is worth investigating, often a regional depot capacity issue (e.g. Milan, Roma during industrial action).
  4. Cross-border GLS is noisier than domestic. GLS at 94.2 percent across FR/DE/ES is on the lower end of acceptable; FR national strikes, DE customs complexity for non-EU items, and ES regional logistics all contribute. Read Avg Transit (days) alongside.
  5. Italian holidays warp the dial. August is fragile across all Italian carriers (ferragosto, mass holiday); pre-Christmas is fragile in Q4; Pasqua weeks vary year-on-year. Pre-baseline customer-facing copy on those windows; the OTD card will dip even when the merchant did nothing wrong.

Sibling cards merchants should reference together

OTD rate is the customer-facing outcome metric. For ShippyPro the diagnostic flow runs through carrier-mix and per-lane rather than rate-shop tuning, because ShippyPro accounts typically optimise on service-tier, not per-parcel cost.
CardWhy pair it with OTD RateWhat the combination tells you
OTD by RouteThe per-carrier and per-lane breakdown.Identifies which carrier and which destination country are dragging. ShippyPro’s value-add is multi-carrier orchestration; this is the card that makes it actionable.
Late ShipmentsThe absolute count behind the percentage.A 94.7 percent OTD on 16,000 shipments = 854 late deliveries = 854 customer-service tickets. The percentage feels recoverable; the count is the workload.
Avg Transit (days)Companion timing metric.OTD falling + avg transit rising = carriers slowing. OTD falling + avg transit flat = promise dates were tight at label print.
Exception RateLeading indicator for OTD drops.Climbing exception rate predicts a 2 to 5 day OTD dip.
Rate-Shop Winner MixWhich carrier is winning the rate-shop and why.Mix shifts toward Poste Italiane = OTD softening expected; mix toward DHL Express = OTD hardening but cost rising.
Failed DeliveriesFailed-and-recovered shipments still count as late.Tracking together identifies recipient/address quality issues vs network speed.
Label Generation SuccessAdjacent operational signal.If labels are failing to generate, the parcels never enter the OTD denominator; the headline reads better than reality.
Cross-connector: shopify.unfulfilled_ordersUpstream pressure.Slow Shopify-to-warehouse handoff compresses transit time and lowers OTD.
Cross-connector: shopify.refund_rateDownstream impact.A 3 to 5 point OTD drop typically precedes a 0.5 to 1.5 point refund-rate climb at 7 to 14 days.
Cross-connector: shipbob.sb_otd_rateAdjacent 3PL OTD when ShipBob handles warehouse and ShippyPro routes carriers.Different populations of shipments; useful for an agency running both, not a like-for-like reconciliation.

Reconciling against the vendor’s own dashboard

Where to look in ShippyPro’s own dashboard: ShippyPro DashboardAnalytics → Delivery Performance (Italian: Performance di Consegna). The page exposes the same headline rate plus a per-carrier breakdown. Closest like-for-like view: Last 30 Days, All Carriers, All Services. ShippyPro also provides a per-country lane breakdown useful for diagnosing cross-border performance. Why our number may legitimately differ from ShippyPro’s portal:
ReasonDirectionWhy
Sync lag on the most recent 6 to 12hOurs lower brieflyShippyPro’s tracking webhook posts in near-real-time but the 30-day window includes shipments still in-flight at the boundary; the portal recomputes overnight. The gap closes within 24 hours.
Promise-date staleness during peakEitherShippyPro stores the carrier-promised delivery date at label creation. If carriers issue mid-week service downgrades (common before Italian public holidays), the portal may judge against the re-estimate while the card stays strict against the original promise.
Carrier-event normalisationTinyThe 100+ supported carriers have varying event taxonomies; ShippyPro normalises to a unified delivered flag. ~95 percent map cleanly; the residual 5 percent (typically legacy regional Italian carriers, Spanish customs codes) can shift the count by 0.1 to 0.3 points.
Time zoneBoundary daysShippyPro uses workspace timezone (typically CET/CEST for IT/EU accounts) for daily aggregation; we use UTC for cross-connector arithmetic. The 30-day window absorbs this.
Italian holiday smoothingEitherThe portal historically allowed an “exclude ferragosto” toggle for August. The card does NOT smooth; the actual depressed rate is recorded. Year-on-year comparisons across August windows should annotate.
Returns legEitherEasy Return shipments excluded by default here; the portal sometimes includes them unfiltered.
Internal identity (within ShippyPro): This card pairs with Late Shipments by the identity: shippy_pro.otd_rate = 1 - (shippy_pro.late_shipments_count / shippy_pro.shipments_total) over the same window. If the two cards do not satisfy this within ~0.5 percent on the same day, the cause is window boundary differences (late count uses 7D, OTD uses 30D), status filtering differences, or sync timing. None are bugs. Cross-connector reconciliation. Direct-carrier connectors vs ShippyPro: If you also have direct-carrier connectors (e.g. direct DHL, direct Poste Italiane) connected, do not sum their OTD rates. Each direct connector reads from the carrier’s own API with the carrier’s promise model:
  • ShippyPro’s view uses the promise stored at ShippyPro label creation.
  • Direct-DHL connector uses DHL’s promise model with its own service-day calendar.
  • Differences of 1 to 3 points are normal; larger gaps suggest one of the two filters shipments differently.

Known limitations / merchant FAQs

Why is my ShippyPro OTD rate dropping? Three usual causes, in order of likelihood:
  1. Carrier mix has shifted toward Poste Italiane or similar low-cost carriers. A small change in the rate-shop ruleset (e.g. weight thresholds, country-of-destination rules) can move 10 to 20 percent of volume off DHL Express onto Poste Italiane Posta 4, dropping headline OTD by 1 to 3 points without any single carrier degrading. Open Rate-Shop Winner Mix to confirm.
  2. An Italian or EU national event. Ferragosto (15 Aug week), Pasqua, Christmas-New Year period, French national strikes, German rail action all hit specific carriers and lanes. The aggregate dips because affected carrier share-weighted contribution falls.
  3. Volume mix shifted to harder lanes. A campaign expanding into Sicily/Sardinia, NL/BE cross-border, or non-EU lanes adds parcels with structurally lower OTD without any rate-shop change.
Action: before re-tuning, identify whether the cause is mix shift (operational decision), national/seasonal (wait or shift volume), or lane expansion (widen checkout copy on those countries). My OTD is 94.7 percent. Is that good or bad? Marginal. Most ShippyPro accounts running balanced IT/EU mixes sit at 93 to 96 percent. If trend is flat at 94.7, no action; if descending, retune before crossing 92 percent. How can I raise ShippyPro OTD? Five practical levers, in rough order of impact and cost:
  1. Move medium-value parcels off Poste Italiane onto BRT or DHL Express. A few cents per parcel for material OTD lift. Most ShippyPro accounts under-route premium because the rate-shop optimises on cost; the OTD trade is worth it on parcels above EUR 25.
  2. Tighten Friday cutoffs. A label printed Friday 16:00 misses BRT and DHL Express collection windows; pull cutoffs to 13:00 to claim the Friday afternoon collection.
  3. Audit rate-shop rules quarterly. Carrier rates and SLAs change; rate-shop rules tuned 18 months ago routinely produce sub-optimal carrier choices today. Quarterly review with ShippyPro’s account team typically lifts headline OTD by 1 to 2 points.
  4. Install Italian / EU address validation at checkout. EgonReg for IT, addresseva for FR/ES, address validators for DE substantially reduce upstream address exceptions; OTD follows with 24 to 72 hour lag.
  5. Pre-empt Italian holidays in checkout copy. Customers seeing “delivered by 18 Aug” on a 15 Aug order will complain when ferragosto delays it; “delivered by 22 Aug” sets expectation correctly and reduces the perceived OTD problem even when the operational number is unchanged.
Why does my daily OTD swing so much? Small-number noise plus carrier-specific batch events. A single BRT depot incident can move daily OTD by 5 to 10 points. Look at the rolling 7-day or 30-day rate, not the daily figure. Does the August / ferragosto period affect my baseline? Yes, materially. Italian DTC OTD typically drops 4 to 8 points during the 10 to 25 Aug window across all carriers. Year-on-year comparisons across August should normalise; quarter-on-quarter that includes August should annotate. ShippyPro shows higher OTD than my direct DHL Express connector. Is that real? Often yes. ShippyPro pools across all carriers including premium DHL Express and lower-tier Poste Italiane; the direct DHL connector only sees the DHL leg. Direct DHL OTD can be 97 to 99 percent while ShippyPro aggregate sits at 94 to 96 percent because the slower carriers drag the aggregate. Both are correct; they answer different questions. Should I retune my rate-shop ruleset based on this card alone? No, not without the per-carrier breakdown. The aggregate tells you something is wrong; OTD by Route and Rate-Shop Winner Mix tell you which carrier and lane. Always pair before retuning. My cross-border parcels show different OTD from domestic. Is that normal? Yes. EU cross-border via DHL Express typically delivers at 96 to 98 percent OTD; cross-border via GLS/DPD typically 92 to 95 percent; non-EU (UK, CH) adds customs variability and runs 88 to 94 percent. The card’s aggregate hides this; the per-lane breakdown surfaces it. Customer expectations for cross-border should be set looser at checkout. When does today’s OTD reading swing most? After 15:00 CET. Before that, the morning’s BRT and Poste deliveries have not all completed; same reading at 17:00 is more stable. Use 24-hour-old readings for board-grade decisions; same-day for triage only.

Tracked live in Vortex IQ Nerve Centre

On-Time Delivery Rate 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 or book a demo to see this metric running on your own data.