Skip to main content
Card class: Cross-ChannelCategory: Shipping & Courier
Per-channel Royal Mail OTD - which sales surface is suffering most from carrier delays. Hero.

At a glance

Royal Mail on-time delivery rate broken down by the sales channel that originated the order. The card joins Royal Mail shipment delivery data to the commerce platform’s order data on order_ref, then groups by order.channel. Surfaces which sales surface is suffering most when Royal Mail slips, because the downstream cost of late delivery varies dramatically by channel: marketplaces (eBay, Amazon Seller-Fulfilled) penalise via feedback hits and listing demotion, D2C absorbs via WISMO tickets and refund requests, wholesale B2B may have contractual delivery SLAs.
What it countsCOUNT(roy.shipments WHERE actual_delivery <= aim_date) / COUNT(roy.shipments WHERE status = 'DELIVERED') GROUP BY commerce_sibling.order.channel. The numerator and denominator are Royal Mail tracked-service shipments; the grouping is the commerce-platform channel.
Cross-channel joinRequires a connected commerce platform sibling (Shopify, BigCommerce, Adobe Commerce). The join uses order_ref (Shopify order number, BC order ID, etc.).
API endpointRoyal Mail Tracking API for delivery events + commerce sibling order endpoint for channel attribution.
Service level scopeTracked services only (Tracked 24, Tracked 48, Special Delivery, International Tracked). 1st / 2nd Class untracked is excluded because there is no delivered scan.
Returns / RTOOutbound only.
Industrial action handlingNot auto-excluded. The 2022-2023 CWU industrial action depressed all channels uniformly, so per-channel comparisons within that window are still meaningful in relative terms (which channel was hurting most), even though absolute numbers are depressed.
Time zoneUK local.
Time window30D (rolling 30 days).
Alert triggerAny single channel <90%. The aggregate may be healthy at 96 percent while one channel sits at 88 percent; the per-channel alert catches the channel-specific gap.
Currencyn/a directly.
Rolesowner, operations, marketing

Calculation

Calculated automatically from your Royal Mail 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 gifting brand running a multi-channel commerce stack: Shopify D2C as the flagship, Amazon Seller-Fulfilled (not Prime) for incremental volume, eBay for clearance, Etsy for handmade range, and direct wholesale B2B. Royal Mail Tracked 48 is the default carrier for everything below £80; APC is used for higher-AOV. Reading taken at 09:00 BST on 12 Mar 26 for the trailing 30 days (10 Feb 26 to 11 Mar 26).
ChannelRoyal Mail shipmentsOTDChannel notes
Shopify (D2C)5,89096.1%Flagship channel
Amazon Seller-Fulfilled1,42089.5%Below alert threshold
eBay92095.8%Healthy
Etsy48096.4%Healthy
Wholesale B2B portal11094.5%Healthy on small volume
All channels (Royal Mail)8,82095.6%Aggregate above alert
The card fires on Amazon (89.5%). Five things to notice:
  1. Aggregate hides the Amazon problem. On-Time Delivery Rate reads 95.6 percent across all channels. But Amazon at 89.5 percent is below the alert threshold and below Amazon’s own published Seller-Fulfilled standard (95 percent on-time delivery). The merchant is at risk of order defect rate degradation on the Amazon listing.
  2. Why is Amazon worst? Most likely upstream dispatch lag. Shopify orders typically print labels within 4 to 6 hours; Amazon orders flow through a webhook with 30 to 90 minute delay, and Amazon’s “expected delivery” is calculated from order placement, not label print. The Royal Mail leg performs identically; the gap is the time tax of the Amazon channel pipeline.
  3. The action is to tighten Amazon dispatch lag, not to switch carrier. Spot-check 20 Amazon late shipments to see the gap between order placement and label print. If the median is 18 hours vs Shopify’s 6 hours, the warehouse process for Amazon orders needs to align.
  4. eBay and Etsy at 96+ percent are healthy. Smaller marketplaces, in this merchant’s mix, get faster attention precisely because they are smaller. Watch for performance degradation when these channels grow.
  5. Wholesale B2B at 94.5 percent on 110 shipments is small-volume noise, but watch the trend. Wholesale orders typically have contractual delivery SLAs with retailer chargebacks. If 94.5 percent is the steady state, the merchant pays chargebacks on roughly 5 to 6 percent of B2B orders monthly.

Sibling cards merchants should reference together

Per-channel OTD is a cross-channel metric. Pair it with these to act:
CardWhy pair itWhat the combination tells you
On-Time Delivery RateThe aggregate.If aggregate holds but one channel slides, the issue is upstream of Royal Mail.
Tracked24 Service Day PromiseThe premium tier’s SLA.Per-channel premium-tier slippage is the most immediately costly.
Late ShipmentsAbsolute count.A 7 percent late rate on 1,400 Amazon shipments = 98 listing-quality hits.
Collection vs Post-Office Handover Failure RateProcess attribution.Channel-specific handover patterns can explain channel-specific OTD gaps.
P58 Claim Age DistributionService-credit claim pipeline.Channel-specific late shipments translate to channel-specific filings.
Cross-connector: shopify.fulfilment_lead_timeUpstream timing.Channel dispatch lag drives per-channel OTD gaps.
Cross-connector: amazon_seller_central.account_healthAmazon’s measurement of Seller-Fulfilled performance.Should track this card’s Amazon slice; divergence indicates Amazon includes pre-carrier time.
Cross-connector: shopify.refund_rateDownstream impact.Late D2C deliveries drive refund requests at higher rates than late marketplace deliveries (which drive feedback hits).

Reconciling against the vendor’s own dashboard

Where to look: This card is a derived view; Royal Mail’s portal does not surface OTD by sales channel because Royal Mail does not see the upstream channel attribution. Reconciliation is against the merchant’s own commerce-platform order data joined to Royal Mail’s tracking data. For Amazon Seller-Fulfilled specifically, Amazon Seller CentralPerformance → Account Health → Shipping Performance exposes Amazon’s measurement of Seller-Fulfilled on-time delivery; that figure should track the Amazon slice of this card. Why our number may legitimately differ from upstream sources:
ReasonDirectionWhy
Order-reference join missesChannel under-countedSome commerce platforms (especially custom B2B portals) do not consistently pass order_ref to Royal Mail; shipments without a matching order go to “unknown”.
Amazon’s threshold differsEitherAmazon’s published “on-time” definition includes order acceptance and ship-by time; this card includes only Royal Mail’s carrier-leg performance.
Channel taxonomyEitherShopify source_name, BC order_source, Adobe order_channel. Vortex IQ normalises; merchant-customised channel values may need re-mapping.
Webhook lag on commerce siblingOurs staleOrder-channel attribution comes from the commerce sibling; if that connector lags, the channel field can be missing temporarily.
Untracked vs tracked filterEitherThis card is tracked-services-only; Amazon’s measurement includes untracked 1st Class.
Time zone of joinBoundary days offOrder timestamps from commerce vs delivery from Royal Mail use different timezone bases; the join uses UTC.
Internal identity (within Royal Mail): Volume-weighted average of per-channel OTD ≈ aggregate roy_otd_rate (tracked services). If they diverge by more than 2 points, the order-reference join is dropping volume. Cross-connector reconciliation:
CardExpected relationshipCauses of legitimate divergence
amazon_seller_central.account_healthShould track the Amazon slice.Amazon includes pre-carrier time; this card is carrier-only.
shopify.fulfilment_lead_timePer-channel fulfilment lead time on the commerce side.High lead time on a channel correlates with low OTD on the carrier side.

Documentation cross-reference (cross-channel OTD on other carriers). Per-channel OTD cards exist on every shipping connector that supports the cross-channel join.

Known limitations / merchant FAQs

Why does Amazon Seller-Fulfilled always look worse than D2C? Two structural reasons. (1) Amazon’s “expected delivery” starts at order placement, not label print. The 30 to 90 minute lag between order and label print counts against OTD. D2C has shorter upstream lag. (2) Amazon’s standard is tighter, the same delivery performance scores fine on D2C and just-below on Amazon. A new channel just appeared with very low volume and 100% OTD, why? Sample-size noise. Below 50 shipments per 30-day window the per-channel rate is too volatile to read. The card surfaces channels above 50 by default; very-low-volume channels can produce extreme readings. Wait for volume to stabilise. My channel taxonomy is custom, can the card group correctly? Yes if the channel field is populated consistently in the commerce platform. The card normalises channel values via the field map; custom values need adding to the channel allowlist or they fall into “unknown”. Why is there an “unknown” channel? Royal Mail shipments without a matching commerce-platform order go to “unknown”. Common causes: B2B portals that do not pass order_ref, lagging commerce sibling connector, or order_ref format mismatch between dispatch and commerce. My wholesale chargebacks are bigger than my Amazon listing-quality risk, why does the card alert Amazon first? The alert at <90% is uniform across channels and does not weight by financial impact. For a brand where wholesale chargebacks are the bigger exposure, override the threshold per-channel via the connector manifest. Can this card join to my custom OMS? Only if the OMS exposes order_ref and order_channel. If the OMS is connected via a generic connector, the join may fall back to a softer key (customer email, postcode + name). My Amazon channel is at 89.5 percent, am I about to lose Seller-Fulfilled eligibility? At 89.5 percent against Amazon’s 95 percent threshold, the listing is at risk. Amazon’s automated monitoring looks at on-time-delivery rate plus order-defect rate plus on-time-shipment rate over a rolling 30 to 60 day window. A single bad month is a warning; two months in a row often triggers automated demotion. Action: tighten Amazon dispatch lag immediately and watch this card daily for the next 30 days. The D2C channel slipped during a Royal Mail strike day, but the marketplace channels held up, why? Strikes affect the network uniformly, but timing-of-dispatch matters. A merchant who dispatches D2C orders late in the day (after the last Royal Mail collection) sees those parcels held overnight and impacted by the next day’s strike. Marketplace orders dispatched earlier in the day may have been already in the network before the strike-affected sortation period. The card surfaces the timing differential without knowing the cause. Why is post-strike recovery showing slightly lower than pre-strike across all channels? Royal Mail’s permanent volume loss to Evri / DPD post-2022-23 strikes has left the network leaner. Steady-state for tracked services is now 95-96 percent, vs 96-98 percent pre-strike. Per-channel patterns are roughly the same shape; absolute numbers are 1 to 2 points lower.

Tracked live in Vortex IQ Nerve Centre

Royal Mail OTD by Sales Channel is one of hundreds of KPI pulses Vortex IQ tracks across Royal Mail 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.