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

At a glance

Share of DPD parcels that hit at least one exception event in transit (refused, damaged, customs-held, address-incorrect, recipient-refused, undelivered-after-3-attempts, lost). The “something went wrong” rate, distinct from late (parcel arrived late) and failed (parcel never reached the customer). DPD UK runs ~1% on premium DTC vs ~3 to 5% on Evri for the same lane; the gap is what merchants pay the premium for.
What it countsCOUNT(parcels WHERE event_log CONTAINS any of [refused, damaged, address_correction, customs_held, lost, recipient_refused, undelivered_3rd_attempt]) / COUNT(parcels). A parcel counts once even with multiple exception events.
Exception event taxonomyDPD pushes 30+ status codes; the card maps these to 7 exception buckets in config/vortex_mind/manifests/dpd.yaml -> exception_buckets.
Tracking event semanticsDPD posts a webhook on every scan with eventCode. The card consumes the full event log per parcel; an exception state can be cleared by a subsequent successful event (e.g. address-correction then delivered) but the parcel still counts because at least one exception fired.
Service-level scopeAll DPD services pooled (Next Day, EU Classic, Saturday, etc.). EU outbound has structurally higher exception rates (customs); pull these out with UK to EU Cross-Border Exception Rate.
Returns / RTORTO parcels (returned to sender after 3 failed attempts or refused) count as exceptions; they do not additionally count on Late Shipments or OTD.
Predict-slot quirkOut-of-slot is not an exception; the parcel arrived. Slot misses surface only on Predict Slot Accuracy.
Geographic scopeUK domestic + DPD UK outbound to EU and rest-of-world. EU origins served by sister carriers report through their own connectors.
Lost-parcel sub-rateDPD’s lost-parcel sub-bucket runs ~0.05% on premium DTC, an order of magnitude below Evri’s ~0.4%. This is where the premium price visibly earns out.
Peak-period degradationQ4 typically lifts UK domestic exception rate by 0.5 to 2 pp, EU outbound by 2 to 5 pp (customs surge).
Time window30D vsP (rolling 30 days vs prior 30 days)
Alert trigger>3% (gauge: good <1%, warn 1 to 3%, critical >3%)
Rolesowner, operations

Calculation

Calculated automatically from your DPD 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 premium-DTC fashion brand (AOV £160, ~12,000 parcels / month, 8% EU outbound) ships via DPD Next Day for UK and DPD EU Classic for Europe. Reading taken at 09:00 GMT on 12 Mar 26 for the trailing 30 days.
Exception bucketParcels affectedShare of total
Address correction needed640.53%
Damaged in transit180.15%
Recipient refused220.18%
Undelivered after 3 attempts (RTO)410.34%
Customs held (EU outbound only)380.32% (3.95% of EU sub-population)
Lost (no scan in 14 days)60.05%
Total exceptions (this card)1891.58%
The card reads 1.58% with the gauge in the warn (yellow) band, the >3% alert is not tripped. Five things to notice:
  1. The 1.58% headline is in the expected band for premium DTC on DPD UK. Network benchmark is ~1% in normal weeks, ~1.5 to 2% in moderate-disruption periods. This is healthy.
  2. EU customs at 3.95% of the EU sub-population is the actionable signal. It is buried in the 1.58% headline because EU is only 8% of volume. Pull EU out using UK to EU Cross-Border Exception Rate and it dominates the conversation, the IOSS or VAT paperwork is the likely root cause.
  3. The 6 lost parcels is the part of the metric where the premium price earns out. At 0.05% lost rate, an Evri-equivalent lane (~0.4% lost) would have lost ~50 parcels at AOV £160 = ~£8,000 in claim exposure. DPD’s premium of ~£2 per parcel x 12,000 = ~£24,000, less than the £8k saved on lost parcels alone, before counting CS time and refund-and-resend goodwill. The maths works once AOV is high enough.
  4. Address-correction at 0.53% is largely customer-typed addresses at checkout. DPD’s address-validation API at label-print time can knock this down to ~0.2%; not yet enabled for this account.
  5. Recipient-refused at 0.18% is unusually high. Industry baseline is ~0.05 to 0.10%. Likely a sub-population (returning customer cohort or bundle SKU) where customers ordered, regretted, and refused at the door instead of using the returns flow. Cross-reference with shopify.refund_rate and the customer-cohort filter.

Sibling cards merchants should reference together

Exception rate is the network-quality signal. Pair it with these to triage which exception type is rising and what it costs the business.
CardWhy pair it with Exception RateWhat the combination tells you
On-Time Delivery RateDifferent miss type. OTD measures “arrived late”; this measures “something went wrong in transit”.High OTD + high exceptions = network is delivering, but a slice is being damaged or misrouted; ops drill-in.
Late ShipmentsSequential. Many late parcels (carded, redelivered) eventually become exceptions if they miss 3 attempts.Today’s late cohort feeds tomorrow’s exception cohort.
Failed DeliveriesSubset overlap. Failed = 3 attempts then RTO; that lands in the exception bucket here.Both tracking same end-state; this card is broader.
Open ClaimsDirect financial mapping. Every claim has an underlying exception.Claim count rises ~2 weeks after exception rate rises (customer waits, then files).
UK to EU Cross-Border Exception RateSplits EU outbound from UK domestic.EU customs lifts the headline; isolating it reveals if UK domestic is healthy.
Returned to SenderSubset, RTO is one of the exception buckets here.Diverging trends mean the type-mix is shifting (e.g. more recipient-refused, fewer customs-held).
Cross-connector: shopify.refund_rateDownstream. Damaged or lost parcels become refunds.1 pp exception-rate rise -> ~0.3 to 0.5 pp refund-rate rise at 7 to 14 days lag.
Cross-connector: jira.open_ticketsCS workload. Each exception roughly = 1 to 1.5 CS tickets.Use to predict CS staffing for the upcoming week.

Reconciling against the vendor’s own dashboard

Where to look in DPD’s own dashboard: MyDPD Business portal -> Reports -> Service Performance -> Exceptions Report, with toggles for date, exception type, and depot. The closest like-for-like view is All Exception Types, Last 30 Days, Aggregate. For per-parcel audit use Track -> Filter “Exceptions” -> Last 30 days and export as CSV. Why our number may legitimately differ from MyDPD’s portal:
ReasonDirectionWhy
Time zoneBoundary days offMyDPD defaults to Europe/London (BST or GMT). The card uses UTC. Boundary-day count can shift slightly.
Tracking-feed lagOurs lower for last 4 to 6 hoursDPD pushes status webhooks within 5 to 30 seconds, but POD scans from rural rounds upload at end of shift. T-1 days fully reconcile.
Peak-period throttlingOurs lower during BFCMWebhook queue can throttle during peak; events post 2 to 6 hours late into the index. T-2 days fully reconcile.
Predict-slot vs delivered timestampEitherMyDPD’s “Exceptions” report does not include slot misses (correctly). The card here also excludes slot misses. Some merchants confuse the two; align by checking the slot card separately.
Exception-bucket mappingEitherDPD has 30+ raw event codes; the card buckets them into 7 categories. MyDPD has its own 12-category breakdown. The aggregate counts will match; the per-bucket cuts will not.
Cross-connector reconciliation against commerce platform unfulfilled:
CardExpected relationshipWhat causes legitimate divergence
shopify.unfulfilled_ordersUpstream. Address-incorrect exceptions correlate with bad checkout-address data.If unfulfilled is fine but exceptions rising, look at customer-typed addresses (often a checkout-form regression).
shopify.refund_rateDownstream. Damaged or lost drives refunds.1 pp exception rise -> 0.3 to 0.5 pp refund rise at 7 to 14 days lag.
Cross-3PL: shipbob.sb_otd_ratePeer 3PL outcome.Different parcel populations entirely. Do not arithmetically reconcile.

Known limitations / merchant FAQs

DPD vs DPDLocal exception rates, which is more reliable in practice? DPD UK runs a touch tighter than DPDLocal (~1.0% vs ~1.5% on premium DTC) but the gap is narrower than the price gap suggests. The reason: both rides on the same depot-and-driver network; the difference is service-tier features (predict-slot, Saturday, premium-claim handling) rather than core handling quality. For exception risk specifically, the choice should be driven by the value of the parcel (use DPD for AOV >£100 where claim exposure matters) rather than by raw exception rate. How is in-slot delivery measured, and why does it not appear here? In-slot is on Predict Slot Accuracy. A parcel that arrived outside the chosen 1-hour window is not an exception in DPD’s taxonomy, the parcel arrived. It is a separate quality metric. Read the two together: a customer who paid for a 10 to 11 am slot and got the parcel at 13:45 will file a CS ticket but not a claim; a customer who got their parcel damaged will file a claim. Different remedies, different cards. How does DPD’s predict-app integration affect exceptions? Recipients with the DPD app can redirect mid-transit (deliver to neighbour, leave with shop, divert to PUDO). App users have ~30% lower address-correction exceptions because they fix bad addresses before delivery. App users also have slightly higher recipient-refused exceptions because the in-app refuse-this-parcel button removes friction. Net effect on the headline: app-heavy customer bases run 0.1 to 0.3 pp lower exception rate than non-app bases. Why does the count spike during Q4 even though DPD’s network is purpose-built for it? Three reasons. (1) EU customs surge post-Brexit; cross-border volume jumps in November and December and customs queues at Calais and Coquelles back up. (2) Address quality drops during gift-buying season because customers ship to recipients (parents, friends) and type addresses they do not know well; the address-correction bucket lifts ~50% in December. (3) Weather, snow disrupts trucking and lifts damaged-in-transit when parcels are mishandled in icy depots. Plan for 0.5 to 2 pp on UK domestic and 2 to 5 pp on EU outbound; this is structural, not a process fault. The customer says “DPD said delivered but parcel did not arrive”. Is this an exception? No, this counts as a false-positive delivery, which surfaces on Open Claims when the customer files. The exception-rate card here only counts events DPD itself flagged. False-positive deliveries are a separate concern (driver scanned wrong door, parcel left somewhere visible then stolen). DPD’s POD-photo feature reduced this category by ~80% over 2022 to 2024 but it still happens at ~0.05% of parcels. Pair with Open Claims and look for “delivered but customer says not received” in the reasons mix. The claim count is rising but exception rate is flat. What is happening? Two possibilities. (1) Higher-value claims, customers are filing on more expensive parcels rather than more parcels (e.g. a campaign that shifted SKU mix to premium items lifts claim value without lifting exception count). Cross-reference with Claim Value (open). (2) Reporting lag, claims lag exceptions by ~14 days; today’s exception rate predicts the next-fortnight claim count, not today’s. If exception rate jumped 14 days ago and is now back to baseline, claims are catching up. What is the returns flow and what does it have to do with exceptions? DPD returns ride either DPD’s “Inbound Consumer Returns” service (label sent to customer, customer drops at PUDO or hands to next collection) or a manual courier return. Returns themselves are not exceptions. But “recipient refused at door” is one of the exception buckets because the parcel never landed cleanly; that parcel then becomes a return. The two cards are sequential. Multi-shipper strategy, when do I move volume off DPD? Move volume off DPD when (a) the per-parcel premium is not justified by exception savings (low-AOV products where a £2 saving outweighs claim exposure), or (b) the destination is poorly served (e.g. very rural Scotland or NI where DPDLocal or Royal Mail can be more cost-effective). The Premium-Service Uplift card on DPDLocal is the right place to do this calculation. As a rough guide: if your average claim cost is £40 and DPD saves you 1 pp of exceptions vs Evri at £2 per parcel premium, the maths works above ~£200 AOV. Below that, the premium does not earn out on exception alone, you need OTD lift to justify.

Tracked live in Vortex IQ Nerve Centre

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