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

At a glance

Share of Deutsche Post consignments that arrived at the recipient on or before the agreed promise day. Deutsche Post is the brand for the German national postal service: domestic letter, Maxibrief, and DHL Paket within Germany, plus DHL Päckchen national. The DHL brand network (DHL Express international, DHL Parcel cross-border EU, DHL Global Forwarding, DHL eCommerce) is owned by the same DHL Group parent and shares some rate-cards but uses a different network and SLA structure. This card is for the domestic Deutsche Post / DHL Paket network; international DHL Express and DHL Parcel cross-border are on separate cards. The dial reads across every German-domestic shipment with a delivered scan in the period, against the Deutsche Post service-code commitment for that lane (DHL Paket = E+1 working day domestic, DHL Päckchen = E+2 to E+4 working days, DHL Paket Pro Sunday Delivery = next-Sunday-inclusive premium).
What it countsCOUNT(shipments WHERE delivered_at <= promised_delivery_date) / COUNT(shipments WHERE delivered_at IS NOT NULL). Each delivered consignment scores 0 or 1 against its own service-code promise.
API endpointDHL Geschäftskundenportal Shipping API POST /parcel/de/shipping/v2/orders returns shipmentNumber, product (V01PAK = DHL Paket, V62KP = DHL Päckchen, V01PAK_S = Paket Pro Sunday), targetDeliveryDate. DHL Tracking API GET /track/shipments?shipmentNumber={x} returns the event stream including delivered. The card joins booking + tracking on shipmentNumber.
Delivery success criteriondelivered scan with recipientType IN (recipient, neighbour, mailbox, packstation_collected). A packstation_dropped scan without a customer collection is not counted as delivered until the recipient picks it up. Mailbox-delivery (Briefkasten) for compliant Päckchen-size parcels counts as delivered.
On-time thresholdThe card uses DHL’s targetDeliveryDate from the booking response, the promised day for that service code. Delivery on or before midnight Berlin time on that date counts as on-time. There is no intra-day cut-off for standard residential parcel; DHL Paket commits to “next working day” not “by 18:00”.
Service-tier scopeAll DHL Paket and Päckchen tracked services within Germany: V01PAK Paket, V62KP Päckchen, V01PAK_S Paket Pro Sunday, V01PRIO Paket priority. Letter products (Standardbrief, Kompaktbrief, Maxibrief) are excluded because letters do not carry a delivered scan. International DHL Paket International (V53WPAK) is not on this card; see DHL Parcel cross-border connector if connected.
Sunday deliveryGermany allows Sunday parcel delivery for selected Paket Pro tariffs in metropolitan areas; the card includes Sunday-delivered consignments and treats Sunday as a working day for those service codes. Standard DHL Paket does not deliver on Sunday and the promise date excludes Sundays from the working-day count.
Returns / RTOOutbound only. DHL Retoure (the standard German consumer return product) and merchant-initiated return labels are tagged direction = inbound and excluded. Return-leg performance is on Returned to Sender.
CurrencyThe dial is a percentage; cost lives on Avg Shipping Cost.
Time window30D vsP (rolling 30 days, period-over-period). Daily readings are noisy below 200 consignments per day.
Alert trigger<95% warn, <90% critical. Domestic Germany DHL Paket typically runs 96 to 98 percent OTD; Päckchen runs 92 to 96 percent. German national-postal reliability is among the highest in Europe; sub-95 percent readings warrant investigation.
Sentiment key{'type': 'gauge', 'thresholds': {'good': 95, 'warn': 90}}
Rolesowner, operations

Calculation

Calculated automatically from your Deutsche Post 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 German DTC homeware brand based in Düsseldorf, around 6,500 outbound parcels per week, mostly domestic-Germany distribution: 80 percent DHL Paket (the everyday default), 12 percent DHL Päckchen (small / letterbox-friendly items), 6 percent DHL Paket Pro Sunday in metropolitan postcodes, 2 percent Hermes (price-sensitive overflow). Reading taken at 09:00 CET on 12 Mar 26 for the trailing 30 days (10 Feb 26 to 11 Mar 26). Deutsche Post / DHL Paket leg only:
ProductConsignmentsDelivered on or before promiseOTD RateAvg cost per parcel
V01PAK DHL Paket22,50021,93797.5%EUR 4.89
V62KP DHL Päckchen3,3603,16894.3%EUR 3.45
V01PAK_S DHL Paket Pro Sunday1,6801,66499.0%EUR 7.20
All Deutsche Post tracked (this card)27,54026,76997.2%EUR 4.81
The dial reads 97.2 percent; warn at <95% is comfortably clear. Five things to notice:
  1. DHL Paket is the German national-postal benchmark and it shows. 97.5 percent on residential next-day is the published Deutsche Post baseline; if a merchant’s reading drops below 96 percent on a normal-volume week, the issue is usually upstream (warehouse pick-and-pack delay, induction-cut-off missed) rather than network failure. Pair with shopify.fulfillment_speed before opening a DHL ticket.
  2. Päckchen runs structurally lower because the promise window is wider. E+2 to E+4 means there are four target dates that count as on-time and the merchant cannot easily disentangle “delivered day 2” from “delivered day 4”. If your customer-facing copy says “2 to 4 days”, the contractual reading and the customer-felt reading diverge; prefer “up to 4 working days” to align the two.
  3. Paket Pro Sunday is the high-margin halo. 99.0 percent on Sunday delivery in metropolitan postcodes is a reliable upsell at checkout; merchants who sell time-sensitive gift items (cake, flowers, perishables) regularly default this option in the right postcodes. The cost premium (EUR 7.20 vs EUR 4.89) is recoverable as a checkout upgrade.
  4. Brand confusion to flag in customer comms. German consumers say “DHL” when they mean Deutsche Post / DHL Paket; the recipient often sees the yellow van and reads “DHL”. Customer support tickets that say “where is my DHL parcel” almost always refer to a DHL Paket booking, not DHL Express. Train CS to disambiguate by tracking-number prefix: JD = Deutsche Post / DHL Paket; JJD = DHL Express international.
  5. The dial is steady week-to-week and that is normal for Germany. Deutsche Post / DHL Paket is one of the most predictable parcel networks in Europe. A 1-point swing on a normal week is unusual; a 2-point swing is a signal worth chasing immediately rather than waiting for trend confirmation.

Sibling cards merchants should reference together

On-time delivery is the customer-facing outcome metric. Pair it with these to diagnose root cause:
CardWhy pair it with OTD RateWhat the combination tells you
Late ShipmentsThe absolute count behind the percentage.97.2 percent OTD on 27,540 parcels = 771 late deliveries, that is the actual ticket workload.
Exception RateTracking-event exceptions (held at sortation, address invalid, recipient absent, customs delay, weather hold).Rising exception rate predicts a falling OTD rate at 24 to 72 hours lag.
Avg Transit (days)Median end-to-end time, not just on-time / late.OTD can hold while transit creeps up; transit creep predicts OTD failure at the next service-code revision.
First-Attempt Delivery RateWhether the parcel was delivered or had to be redelivered / collected from Postfiliale or Packstation.First-attempt failure does not always cause OTD failure (recipient picks up from Packstation next day), but the gap is the customer-friction tax.
OTD by RouteWhere the dial is being dragged from.German rural postcodes (e.g. East Frisian Islands, Eifel rural lanes) drag the average; if drag is concentrated, action is route-specific.
Cross-connector: shopify.unfulfilled_ordersUpstream cause. Orders waiting for a DHL label cannot meet OTD if they sit too long.Climbing unfulfilled count predicts an OTD dip 2 to 5 days later.
Cross-connector: shopify.refund_rateDownstream impact. Late deliveries drive WISMO tickets and refund requests.A 3 to 5 point OTD drop typically precedes a 0.5 to 1.5 point refund-rate rise at 7 to 14 days.
Cross-connector: hermes_germany.her_otd_rateAdjacent German parcel-network OTD on the same lane mix.Many German DTC merchants split between DHL and Hermes; comparing the two on the same period informs the carrier mix.

Reconciling against the vendor’s own dashboard

Where to look in Deutsche Post’s own portal: DHL Geschäftskundenportal (the merchant-facing portal for Deutsche Post / DHL Paket) → Berichte → Service Performance, then filter to Letzte 30 Tage and the relevant product-code set. Mid-size and enterprise merchants on a Vertragskundennummer also see the Quality Report PDF that DHL publishes monthly and which is the authoritative version for any service-credit conversation. Smaller merchants on the Online-Frankierung tariff see a simplified version under DHL Online → Berichte. The closest like-for-like view is DHL Paket + Päckchen + Paket Pro Sunday, Last 30 Days, Outbound Only, Domestic Germany. Toggle product codes to compare per-tier. Why our number may legitimately differ from the DHL portal:
ReasonDirectionWhy
Timezone (CET / CEST vs UTC)Boundary days offThe Geschäftskundenportal reports in Berlin local time; the card uses UTC. A delivery completed at 23:30 CET on Sunday is “Sunday” in the portal and may read as “Monday” in the card. Across a 30-day window the boundary effect is below 0.1 percentage points.
Tracking-event ingestion lagOurs lower for “today”DHL’s tracking-events stream typically lags actual scan by 5 to 30 minutes; during peak (December, Black Week) it can be 1 to 4 hours behind. The portal has the same source.
Sunday-delivery countingEitherSome portal views exclude Sunday-delivered consignments from the OTD calculation entirely; the card includes them when the service code is Paket Pro Sunday. Reconcile by toggling the Sunday-delivery filter on both sides.
Brand-product confusionEitherIf the merchant accidentally booked a parcel as DHL Paket International (V53WPAK) instead of domestic V01PAK, the consignment goes through a different network and shows in a different portal report. The card filters to domestic codes; the portal default-view sometimes mixes both.
Returns inclusionOurs lower if return-heavyPortal default sometimes includes DHL Retoure consignments; the card excludes them. A return-heavy merchant sees a slightly different denominator.
Cross-connector reconciliation:
CardExpected relationshipCauses of legitimate divergence
hermes_germany.her_otd_rateAdjacent German parcel network on the same lane mix.Different shipments, different network. Useful for a merchant choosing between the two; not a like-for-like reconciliation.
shopify.unfulfilled_ordersUpstream input. Orders waiting for a DHL label cannot meet OTD if the warehouse cannot ship them in time.Webhook delivery failures, manual fulfilment delays, B2B / pre-order flows.
shopify.refund_rateDownstream sentiment proxy. Late deliveries drive refunds.Refund rate has many drivers (sizing, quality, returns); OTD is one input.

Known limitations / merchant FAQs

Deutsche Post or DHL, which is delivering my parcel? Both are the same DHL Group company; the brand depends on the product and the network. Deutsche Post is the brand for the German national network: DHL Paket and DHL Päckchen domestic, plus all letter products. DHL Express is the international time-definite premium service (separate network, separate rate-card, JJD tracking-prefix). DHL Parcel is the cross-border EU SME network (separate again). The merchant books through whichever brand the customer-facing portal exposes; the recipient sees DHL on the van. This card covers Deutsche Post / DHL Paket domestic-Germany only. My customer says they got a “DHL parcel” but our records show Hermes. How? Either (1) the customer is using “DHL” as a generic for “parcel” (common in Germany; “DHL” is the everyday word the way “Hoover” was for vacuum cleaners in the UK), or (2) Hermes contracted with DHL for the last-mile leg in their postcode (rare but does happen for capacity-constrained rural routes). Check the tracking-number prefix; JD means Deutsche Post, JJD means DHL Express, Hermes prefixes start with H. Why does the dial read 97 percent for DHL Paket but my customer-service queue is full of WISMO tickets? Three usual reasons. (1) Päckchen has a wider promise window and Päckchen-arrived-day-4 customers complain even though it is contractually on-time. Tighten checkout copy from “2-4 days” to “up to 4 working days”. (2) Rural / Eifel / East Frisian Islands postcodes drag the felt experience. Use OTD by Route to confirm. (3) Customer expectation gap. German consumers expect parcel-day-1 reliability; even a 3 percent late tail produces a noticeable ticket volume because expectations are calibrated to “the post always arrives”. My OTD just dropped 5 points overnight. What is the playbook? In order of likelihood: (1) Check DHL service updates for declared incidents (terminal fire, IT outage, regional weather). (2) Check Exception Rate, a spike in held_at_sortation or address_unknown exceptions points to upstream data issues, not network failure. (3) Check OTD by Route, if the drop concentrates in 2-3 postcode regions the issue is local; if uniform it is network-wide. (4) Check Verdi (the German postal union) for declared industrial action, German DHL strikes are uncommon but happen during pay-bargaining cycles. (5) Open a ticket with your DHL Geschäftskundenmanager if (1) to (4) do not explain it. Should I default DHL Paket or DHL Päckchen at checkout? Depends on size and urgency. DHL Päckchen is roughly 25 to 40 percent cheaper per parcel for letterbox-friendly small items but has a 2 to 4 working-day promise window vs DHL Paket’s E+1. The healthy pattern: Päckchen for items under 2kg with no urgency premium, Paket for everything else, Paket Pro Sunday as a paid upgrade in metropolitan postcodes. Read this card alongside Avg Shipping Cost to see the cost-vs-reliability trade. How does the German Sunday-no-trading rule affect this dial? Standard DHL Paket does not deliver on Sunday; the promise date excludes Sundays from working-day counting. A Friday-booked Paket has a target-delivery date of Monday, not Saturday or Sunday. Paket Pro Sunday in metropolitan postcodes is the exception and the card treats Sunday-delivered consignments correctly for that service code. Saturday delivery is supported by DHL Paket as an option for an extra fee but is not the default. Can I see Sunday-vs-weekday performance separately? Yes, via the time-window control or by filtering on Paket Pro Sunday product code. Sunday delivery typically runs higher OTD than weekday Paket (around 99 percent vs 97 percent) because the network is less loaded; if your business case relies on Sunday performance, monitor it separately. Why does Shopify show “shipped” but DHL tracking is empty for hours? Two-stage handover. Shopify marks the order shipped when the label is generated (fulfillment.created); DHL does not show a tracking event until the parcel hits the first sortation scan, typically 2 to 8 hours after label print depending on the warehouse pickup window. If the gap exceeds 24 hours the parcel was probably never handed over (the most common cause is a missed DHL pickup at the warehouse). How should I plan for Q4 / BFCM / Christmas peak? DHL publishes last-recommended-posting dates for Christmas Eve delivery in late October each year; expect OTD to drop 2 to 4 points across all tracked services from 1 December to 23 December. Three actions: (1) tighten checkout copy with DHL’s published cut-off dates, (2) shift price-sensitive volume to Hermes or DPD where DHL capacity is constrained, (3) negotiate Paket Pro Sunday capacity with your DHL account manager for the 19 to 23 December gift window.

Tracked live in Vortex IQ Nerve Centre

On-Time Delivery Rate is one of hundreds of KPI pulses Vortex IQ tracks across Deutsche Post 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.