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

At a glance

Share of DPDLocal consignments that hit any non-happy-path tracking event (refused, damaged, address invalid, recipient absent multiple times, depot delay, weather hold, customs hold for EU). The “something broke on the way” rate, the early-warning signal that precedes OTD drops by 2 to 5 days.
What it countsCOUNT(consignments WHERE ANY tracking_event.status IN [exception_codes]) / COUNT(consignments_in_window). DPDLocal’s tracking-event taxonomy includes ~30 exception codes; the card pools them all by default.
Common exception codesRECIPIENT_NOT_AVAILABLE (carded), ADDRESS_INVALID, REFUSED_BY_RECIPIENT, DAMAGED_IN_TRANSIT, DEPOT_DELAY, WEATHER_HOLD, CUSTOMS_HOLD (EU lane), MISSING_INFO, LOST_IN_NETWORK. The full list is in the DPDLocal API event-code dictionary.
Delivery outcome agnosticA consignment that hits an exception then eventually delivers still counts in the numerator. The card measures friction in the journey, not just terminal outcome. Use On-Time Delivery Rate for terminal outcome.
Returns / RTORTOs count as exceptions (RETURN_TO_SENDER is itself an exception code). They are also reported separately in Returned to Sender.
Service level scopeAll DPDLocal services pooled. EU lane typically has higher exception rate due to customs friction; pin a per-service panel to separate.
Time window30D vsP (rolling 30 days vs prior 30 days)
Alert trigger>3%, drives the gauge sentiment. The good/warn thresholds (1% good, 3% warn) are conservative cross-merchant defaults; tune per realm based on customer category and EU share.
Rolesowner, operations

Calculation

Calculated automatically from your DPDLocal 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 UK fashion DTC brand on BigCommerce, ~12,000 DPDLocal parcels per month (mostly NextDay, ~8% Predict, ~4% EU). Reading taken at 09:00 GMT on 12 Mar 26 for the trailing 30 days (10 Feb 26 to 11 Mar 26).
Exception codeCount% of total
RECIPIENT_NOT_AVAILABLE1681.4%
ADDRESS_INVALID840.7%
REFUSED_BY_RECIPIENT360.3%
DAMAGED_IN_TRANSIT120.1%
DEPOT_DELAY600.5%
CUSTOMS_HOLD (EU only)240.2%
WEATHER_HOLD180.15%
OTHER60.05%
Aggregate4083.4%
The card reads 3.4%. The alert at >3% is tripped. Three things to notice:
  1. Recipient-not-available is dominant at 1.4%. This is an address-data and customer-experience issue, not a carrier issue. Fix it on the storefront: surface “what to do if you’ll be out” copy at checkout, allow safe-place selection, push delivery-day notifications via Klaviyo. Typical lift: -0.4 to -0.8 points within 4 to 8 weeks.
  2. EU customs hold is small at 0.2% of total but high as % of EU volume. With EU at ~4% of total volume, 24 customs holds out of ~480 EU consignments is 5%, materially higher than the cross-service average. Pin an EU-only panel to track in isolation; HS-code accuracy is the lever.
  3. DEPOT_DELAY at 0.5% may be a network capacity warning. A persistent climb from 0.2% to 0.5% over four weeks would precede an OTD drop. Talk to the DPDLocal account team about depot capacity.

Sibling cards merchants should reference together

Exception Rate is the leading indicator. Pair with these to diagnose root cause:
CardWhy pair it with Exception RateWhat the combination tells you
Exception Reasons (top 10)Splits the rate by reason.Tells you whether the lever is storefront / address-data, carrier-network, or EU customs.
On-Time Delivery RateLagged outcome.Exceptions today predict OTD drops in 2 to 5 days. Climbing exceptions with healthy OTD is the calm-before-the-storm signal.
First-Attempt Delivery RateThe recipient-not-available subset.If first-attempt is dropping but other exception codes are flat, the issue is purely address-collection or notification-flow.
Open ClaimsDownstream financial impact.DAMAGED_IN_TRANSIT and LOST_IN_NETWORK exceptions feed the claims funnel.
Customs Dwell Time by LaneEU customs friction peer.If EU customs holds are climbing on DPD, they’re often climbing on DHL too, network-wide UK-EU friction event.
Cross-connector: shopify.address_validation_rateUpstream cause for ADDRESS_INVALID.Storefront address-validation regressions surface here within 7 days.

Reconciling against the vendor’s own dashboard

Where to look in MyDPD: MyDPD Business PortalTracking → Filter “Exceptions”, last 30 days. The portal also offers a downloadable exception-codes CSV. Why our number may legitimately differ from MyDPD:
ReasonDirectionWhy
Code-set scopeEitherDPDLocal occasionally adds new exception codes; if the connector’s exception-set list lags an API change, the card may underread. Vortex IQ refreshes the exception-set quarterly.
Multi-event consignmentsSameA consignment that hits two exceptions (e.g. recipient-not-available then later refused) counts once in this card and once in each per-code split.
Time zoneEdge casesUTC vs UK local; boundary days off.
In-transit treatmentSameException is counted as soon as the event surfaces, regardless of whether the consignment ultimately delivers.
Cross-connector reconciliation:
CardExpected relationship
shopify.refund_rateException spikes precede refund-rate climbs by 5 to 14 days.
Customs Dwell TimeEU customs friction is correlated across UK couriers; DPDLocal customs holds often track DHL InExpress customs holds within 1 to 2 days.

Known limitations / merchant FAQs

My exception rate is rising but OTD is still healthy. Should I act? Almost always yes. Exception rate is a leading indicator; OTD is a lagging outcome. Climbing exceptions with healthy OTD means the network is recovering from incidents (drivers redelivering, depots clearing backlogs) but the underlying friction is still building. If exception rate climbs four weeks running, expect OTD to drop in the next 2 to 5 days. The biggest contributor is “RECIPIENT_NOT_AVAILABLE”. Is that on me or the carrier? Mostly on the storefront experience, not the carrier. Customers carded once and not collected within 5 days are a sign the customer was not informed (no day-of-delivery email/SMS), did not have a safe-place option, or the address-collection at checkout did not capture an alternate delivery instruction. Klaviyo / Dotdigital “delivery-day” flows triggered on OUT_FOR_DELIVERY cut this code by 30 to 50%. EU exception rate is much higher than UK. Is that fixable? Partly. Some friction is structural post-Brexit (every parcel needs a customs declaration; HMRC and EU member-state customs run their own holds). But ~60% of EU exception is operator-fixable through better commercial-invoice data, EORI registration in destination markets, IOSS for low-value B2C, and DDP terms. A focused 6-week project typically lifts EU OTD by 4 to 8 points and cuts exception rate by 0.5 to 1 percentage point of EU-only volume. Why does the card include RTOs in the numerator? They’re a separate event. RTOs are a terminal exception, the parcel never reached the customer. Counting them here keeps the rate consistent with the underlying “something didn’t go to plan” definition. If you want pure mid-transit friction, filter out the RTO codes; the Returned to Sender card has the dedicated view. The threshold is >3% warn but my fashion peers run at 4 to 5% and we are growing fine. Should I raise the threshold? Yes. The default thresholds (1% good, 3% warn) are conservative defaults; tune to the merchant. Fashion DTC commonly runs 3 to 6% exception rate baseline; supplements / health typically 1 to 2%; B2B sub-1%. Set warn at 1.5x your trailing-90-day baseline rather than the cross-merchant default. A weather event spiked exceptions one week. Should I exclude that period from trend reads? Yes, you can flag the week in the Vortex IQ annotations layer; this stops the spike polluting WoW alerts and the 30-day baseline. Storms, depot fires, and industrial action are the usual reasons. Persistent unexplained spikes warrant a real investigation; one-off weather is annotation territory. Predict slot misses, do they count as exceptions? A 30-min slot miss without other failure codes does not count here, the parcel still delivered, just outside the slot. Use Predict Slot Accuracy for the slot-precision read. If the miss escalated to a recipient-not-available or refused event, then it counts.

Tracked live in Vortex IQ Nerve Centre

Exception Rate is one of hundreds of KPI pulses Vortex IQ tracks across DPDLocal 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.