At a glance
Share of PostNord shipments that threw a tracking exception (held at delivery office, address invalid, weather delay, customs clearance issue, attempted-no-answer, recipient refused, damage detected, etc) at any point during their transit. The leading indicator for Late Shipments and OTD Rate drops, exceptions today predict late deliveries 24 to 72 hours from now.
| What it counts | COUNT(shipments WHERE any tracking event has eventType IN exception_codes) / COUNT(shipments) over the trailing 30 days. The exception_codes list covers PostNord’s full taxonomy: WEATHER_DELAY, ADDRESS_INVALID, RECIPIENT_NOT_HOME, RECIPIENT_REFUSED, CUSTOMS_HELD, DAMAGED, RETURN_TO_SENDER, LOST_IN_TRANSIT, MISSORT, plus the partner-carrier codes for cross-border. |
| What’s counted vs not | A consignment with multiple exception events counts once (not once per event). A delivered consignment that threw an exception en route still counts in the denominator (it shipped) and in the numerator (it had an exception). |
| Exception event sources | GET /shipments/v1/parcels/{id}/events returns the full event stream; the engine filters for exception event types and aggregates per-shipment. Cross-border consignments include the destination-carrier’s exception events when PostNord propagates them, which it does for ~80 percent of partner carriers. |
| Climate sensitivity | The exception rate is the single most weather-sensitive metric on the PostNord connector. A single major snowstorm in southern Sweden and Denmark can push the 30-day exception rate from 1.5 percent to 4 percent overnight, all driven by WEATHER_DELAY codes. The rate stays elevated for the duration of the storm plus a 3 to 5 day recovery tail. |
| Why it leads OTD | An exception event happens during transit (parcel held, address re-attempt scheduled, customs clearance pending); the late-vs-on-time verdict only lands when the parcel finally delivers, 24 to 72 hours later. Exception rate climbing today predicts OTD dropping in the days ahead. |
| Returns / RTO | Includes the RETURN_TO_SENDER event type (counts as exception); excludes intentional returns dispatched via separate return labels (those have a different shipment record). |
| Refresh cadence | Hourly. Exception status flips to “exception” the moment the first qualifying event ingests. |
| Time window | 30D vsP (rolling 30 days, period-over-period). Daily reading is available but volatile. |
| Alert trigger | >3%. The 3 percent threshold is calibrated against typical Nordic weather-noise baseline (which sits at 1 to 2 percent). |
| Sentiment key | {'type': 'gauge', 'thresholds': {'good': 1, 'warn': 3}}. |
| Roles | owner, operations |
Calculation
Calculated automatically from your PostNord data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
The Stockholm outdoor-apparel brand. Reading taken at 09:00 CET on 14 Mar 26 for the trailing 30 days.| Exception type | Count (30d) | Share of exceptions | What it means |
|---|---|---|---|
WEATHER_DELAY (snow / ice / wind) | 142 | 51% | Climate-driven, recovers as conditions clear |
RECIPIENT_NOT_HOME (home delivery only) | 64 | 23% | Driver attempted, no answer, redelivery scheduled |
ADDRESS_INVALID | 28 | 10% | Wrong address at checkout or PostNord couldn’t decode |
CUSTOMS_HELD (cross-border NO/FI only) | 18 | 6% | Norwegian / Finnish customs clearance delay |
MISSORT (parcel routed to wrong hub) | 14 | 5% | Operational error, recoverable |
DAMAGED | 8 | 3% | In-transit damage; triggers claim |
LOST_IN_TRANSIT | 4 | 1% | Permanent loss; triggers claim |
| Total exceptions | 278 | 100% | |
| Total shipments (30d) | 10,080 | ||
| Exception rate (this card) | 2.76% | Below 3% warn |
- 2.76 percent exception rate, alert at >3% just clear. The card sits in WARN-near territory; weather-driven exceptions push the rate close to threshold during winter, which is normal seasonal variation.
- Weather is half the exceptions. 142 of 278 (51 percent) are
WEATHER_DELAY. The card does not auto-exclude weather-affected days; the 2.76 percent rate is the actual experienced rate including weather. If you reset thresholds for winter (Dec to Feb) to 4 percent, the alert framing matches reality. Open Settings → Alerts → PostNord Exception Rate to apply seasonal thresholds. - The address-invalid 10 percent share is the actionable trim. 28 exceptions caused by wrong addresses at checkout. Each costs roughly 2 days of redelivery cycle plus a customer-service ticket. The fix is upstream: enable PostNord’s address-verification widget at checkout (or use Klarna’s Nordic-aware address autocomplete). A typical implementation reduces address-invalid by 60 to 80 percent within 4 weeks.
- The recipient-not-home 23 percent share is partially preventable. Either ship more volume via MyPack Collect (pickup-point) where this exception cannot happen, or invest in a more aggressive delivery scheduling tool (e.g. PostNord’s “Choose your delivery time” feature when offered for the route). Recipient-not-home is structurally lower in dense urban areas and structurally higher in rural Sweden / Norway.
- The 18 customs-held cases are the cross-border specific issue. Norway (not in the EU customs union) requires a customs declaration on cross-border parcels; ensure your fulfilment integration is sending complete CN23 data. Missing or incomplete customs data is the primary cause of
CUSTOMS_HELD, fixable upstream of PostNord. - The leading-indicator behaviour. This brand’s reading 14 days ago was 1.92 percent. The rise to 2.76 percent over 14 days is the early-warning shape that predicted the late-shipments spike on 14 Feb (peer card showed 13.1 percent late on that week). Watch this card daily during winter; act on a 0.5pp daily rise before it cascades.
Sibling cards merchants should reference together
| Card | Why pair it with Exception Rate | What the combination tells you |
|---|---|---|
| OTD Rate | Downstream lagging indicator. | Exception rate up today predicts OTD down 24 to 72 hours later. |
| Late Shipments | Downstream count. | Exception count predicts late count at 1.5 to 2.5× ratio with 2 to 3 day lag. |
| Failed Deliveries | Hard-failure subset of exceptions. | Failed = exception that never recovered; ratio between exception rate and failed-delivery rate is the recovery rate. |
| Returned to Sender | One specific exception type. | RTS rising while overall exception rate stable means address quality is degrading specifically. |
| Open Claims | Money-impact subset. | DAMAGED and LOST_IN_TRANSIT exceptions feed claims; exception rate up does not always mean claim volume up. |
| First-Attempt Delivery Rate | Recipient-side exceptions. | First-attempt down equals RECIPIENT_NOT_HOME up; consistent narrative. |
| OTD by Route | Country / route breakdown. | Cross-border routes have higher exception rates from CUSTOMS_HELD; per-route breakdown helps target fix. |
Cross-connector: shopify.support_ticket_volume, bigcommerce.bc_support_ticket_volume | CS workload predictor. | Exception count predicts WISMO volume at ~0.6× to 1.0× ratio over the next 5 days. |
Cross-connector: bring.bri_exception_rate | Adjacent Nordic carrier peer. | Compare carrier-mix exception shapes during Nordic winter. |
Reconciling against the vendor’s own dashboard
Where to look in PostNord’s own portal: PostNord Business Portal → Reports → Tracking Events, filter on event-type categories matching the exception taxonomy. PostNord doesn’t publish a single “exception rate” dial; the merchant must aggregate event-types per shipment manually. This card automates that aggregation. For service-status during weather events: postnord.se/driftinformation (Swedish), postnord.dk/driftinformation (Danish), and equivalents on.no and .fi.
Why our number may legitimately differ from a manual aggregation:
| Reason | Direction | Why |
|---|---|---|
| Exception taxonomy mapping | Either | PostNord uses ~40 distinct event codes; the card maps them to ~10 exception categories. Different mapping choices change the count slightly. |
| Cross-border partner-carrier events | Ours lower if propagation incomplete | Cross-border consignments use destination-carrier scans; PostNord propagates ~80 percent of partner exception codes. Missing 20 percent show as “no exception” on the card but might appear in destination-carrier portals. |
| Time zone | Boundary days off | Portal uses local TZ; card uses UTC. |
| Multi-event consolidation | Ours lower | Card counts each shipment with at least one exception once; portal often shows event-count rather than shipment-count, inflating the apparent number. |
| Recovered-without-late | Same | An exception that resolves before the aim date passes still counts here; the card is about whether an exception occurred, not its outcome. |
| Currency / tax irrelevant | n/a | This card is non-monetary; the typical FX / tax reconciliation reasons don’t apply. |
| Card | Expected relationship | Causes of legitimate divergence |
|---|---|---|
bring.bri_exception_rate | Same metric, adjacent Nordic carrier. | Different exception taxonomies; absolute values differ by carrier methodology. |
| PostNord Late Shipments | Exception today predicts late count in 24 to 72 hours. | Lag varies by exception type (RECIPIENT_NOT_HOME has shortest lag; CUSTOMS_HELD has longest). |
shopify.refund_rate, bigcommerce.bc_refund_rate | Exception spikes drive refund-rate uptick at 14 to 21 day lag. | Many drivers; this is one input. |
shopify.support_ticket_volume | Exception count drives WISMO ticket volume at 0.6 to 1.0× ratio over 5 days. | Ticket rate per exception varies by exception type (DAMAGED → high ticket rate; WEATHER_DELAY → low if comms is proactive). |