At a glance
Share of APC Overnight consignments that arrived at the addressee on or before the contracted service-promise time. APC sells time-definite SLAs (NextDay by 9am, by 10:30, by 12:00, NextDay anytime, Pallet 24, Pallet 48), so “on time” is judged against the promised cutoff time on the promised day, not just “delivered the next day”. Each delivered consignment scores 0 or 1 against its own service-code aim.
| What it counts | COUNT(shipments WHERE actual_delivery_datetime <= promised_delivery_datetime) / COUNT(shipments WHERE status IN ('DELIVERED','FAILED')). Each delivered consignment scores 0 or 1 against its own service cutoff. Still-in-transit parcels are excluded from both numerator and denominator until a final scan lands. |
| API endpoint | APC Overnight web service getConsignmentTrackingDetails plus the consignment dispatch endpoints. Reads serviceCode, consignmentNumber, promisedDeliveryDateTime, actualDeliveryDateTime, lastEventCode. Driver POD scans land via the Track & Trace event feed. |
| Delivery success criterion | APC POD (Proof of Delivery) scan or signature event. A consignment without a POD scan but flagged delivered by the destination depot still counts as delivered. Carded / failed-attempt parcels do not satisfy the on-time test until rescheduled and successfully delivered. |
| On-time threshold | Promised cutoff time on the promised date. NextDay-9am missing 09:00 by even 5 minutes counts late. NextDay-12 cuts off at 12:00, NextDay-10:30 at 10:30. NextDay anytime uses end-of-business 17:30. Pallet 24 / Pallet 48 use 17:30 on the contracted day. No grace period is applied; APC’s own QBR dashboard sometimes adds a soft 30-minute grace, the card does not. |
| Returns / RTO | Outbound only. Returns to sender are excluded from the denominator (tracked separately on Returned to Sender). Failed-and-redelivered parcels score against the first attempted delivery, so a parcel re-attempted on day 2 and successfully delivered scores 0 (late). |
| Service level scope | All APC services pooled (NextDay-9am, NextDay-10:30, NextDay-12, NextDay anytime, Pallet 24, Pallet 48, Saturday and By-Hand uplifts). Per-service breakdown lives on Shipments by Service and the premium-only sub-card NextDay 9am Service Promise. |
| Failure-cause attribution | Customer-fault exceptions (recipient absent, refused, wrong address, access denied) and weather / network events sit in the same denominator. APC publishes a failureReason per failed POD; Vortex IQ pulls it through to Exception Rate but does not subtract those rows from the OTD calculation here. |
| Time zone | All scan timestamps are UK local time (GMT or BST). APC’s network is UK-only; the Globe export network for international consignments stores UK time at handover and destination-country time downstream, the international leg is not in scope for this card. |
| B2B vs B2C | Pooled. B2B (auto-parts, medical, dental, replenishment) typically buys 9am or 10:30; B2C buys NextDay anytime. The same parcel “5 minutes late at 09:05” is critical for a dental practice and immaterial for a consumer; the rate treats them identically. |
| Time window | 30D vsP (rolling 30 days, period-over-period). Daily readings exist but are noisy below 100 consignments per day. |
| Alert trigger | <95% warn, <90% critical. Premium UK express benchmark is 96 to 98 percent; below 95 percent on a sustained reading is grounds for an account-team conversation. Below 90 percent is contract-renegotiation territory. |
| Roles | owner, operations |
Calculation
Calculated automatically from your APC Overnight 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 homewares brand, around 1,200 outbound consignments per week, dual-carrier strategy: APC Overnight on time-definite NextDay-12 for high-AOV breakable items (£75+ orders, glassware, ceramics) and Royal Mail Tracked 48 for everything below £50. APC is roughly 35 percent of total parcel volume but 65 percent of revenue-weighted shipments. Reading taken at 09:00 GMT on 12 Mar 26 for the trailing 30 days (10 Feb 26 to 11 Mar 26). APC leg only:| Service code | Consignments | Delivered on or before cutoff | OTD Rate | Avg cost per parcel |
|---|---|---|---|---|
| NextDay-12 (premium, money-back) | 1,640 | 1,571 | 95.8% | £9.20 |
| NextDay anytime | 124 | 121 | 97.6% | £6.85 |
| Pallet 24 (B2B replenishment) | 32 | 30 | 93.8% | £42.50 |
| All APC (this card) | 1,796 | 1,722 | 95.9% | £9.85 |
<95% is just clear. Five things to notice:
- NextDay-12 sets the headline. It is 91 percent of APC volume; the headline rate moves with NextDay-12 directly. If NextDay-12 dips below 95 percent the dial trips. Pair with NextDay 9am Service Promise if the brand also runs 9am for B2B; the 9am book is contractually tighter and demands its own dial.
- Refund eligibility is the sub-text. The 69 NextDay-12 parcels that delivered after 12:00 are each a candidate for an APC service-failure refund on the carriage charge (£8 to £14 per shipment). At an estimated £11 average refund, that is roughly £760 of recoverable carriage per 30 days if the merchant files within APC’s 14-day claim window. Most merchants leave that money on the table, see Open Claims.
- Pallet 24 at 93.8 percent is small-volume noise, but watch the trend. 32 pallets per month, two late = 6.2 percent late rate. One bad pallet trips the percentage. But if the same depot keeps producing the misses (Birmingham, Cumbernauld, and Glasgow are common offenders for pallet routing), see OTD by Origin Depot, the small count is the early signal of a structural network gap.
- Compare to Royal Mail leg, not to the absolute target. This same merchant’s Royal Mail Tracked 48 leg likely runs at 96 to 98 percent OTD at £3.40 per parcel. APC at 95.9 percent and £9.85 looks worse on both dials, that is the point: the brand pays APC’s premium for the time-definite cutoff, not for a higher OTD percentage. Royal Mail is “on the right day”; APC is “by 12 noon on the right day”. Different denominators.
- The “rate suddenly degraded” debug case. A 4 to 8 point sudden drop on premium UK express is rarely the carrier breaking; it is almost always (a) a depot capacity squeeze in late autumn / Q4 peak, (b) a single warehouse process change pushing dispatch-cutoff later in the day so parcels miss APC’s last collection, or (c) an account-level rate dispute that has triggered de-prioritisation. Royal Mail-style strike risk does not apply: APC drivers are owner-operators on franchise depots, not unionised employees, so industrial action is rare.
Sibling cards merchants should reference together
On-time delivery is the customer-facing outcome metric. Pair it with these to diagnose root cause:| Card | Why pair it with OTD Rate | What the combination tells you |
|---|---|---|
| NextDay 9am Service Promise | Splits out the premium-tier 9am book from the aggregate. | 9am has a tighter contract and the highest service-credit ceiling. If the aggregate drops but 9am holds, the issue is in NextDay-12 or anytime, not the premium tier. |
| Late Shipments | The absolute count behind the percentage. | A 96 percent OTD on 1,800 consignments equals 72 late deliveries equals 72 candidates for service-failure refund. The percentage feels fine; the count is the workload. |
| Exception Rate | What fraction of consignments threw a tracking exception (recipient absent, address invalid, refused). | Rising exception rate predicts a falling OTD rate at 24 to 48 hours lag. |
| OTD by Origin Depot | Splits OTD across APC’s 100+ UK depots. | Single-depot dips are an APC account-team conversation; network-wide dips are peak-period or weather. |
| Pallet Shipment OTD | Pallet-only sub-slice. APC’s pallet network has different SLAs and routing from parcel. | If the parcel headline holds but pallet OTD slips, the merchant has a pallet-routing or palletisation issue, not a parcel-network one. |
| APC OTD by Sales Channel | Per-channel breakdown. | Marketplace customers (eBay Premium Listings, Amazon Seller-Fulfilled-Prime) penalise late deliveries with feedback hits; D2C customers refund. Same OTD drop, different downstream cost. |
Cross-connector: shopify.unfulfilled_orders | Upstream cause. Orders waiting for a label cannot meet OTD if they sit too long. | Climbing unfulfilled count predicts an OTD dip 2 to 4 days later. |
Cross-connector: shopify.refund_rate | Downstream impact. Late premium deliveries drive refund requests at a higher rate than late standard parcel. | A 3 to 5 point OTD drop on APC typically precedes a 0.5 to 1.5 point refund-rate rise at 7 to 14 days. |
Cross-connector: shipbob.sb_otd_rate | Adjacent 3PL OTD when ShipBob handles the warehouse leg and APC handles last-mile. | Different populations of shipments; useful for an agency running both, not a like-for-like reconciliation. |
Reconciling against the vendor’s own dashboard
Where to look in APC’s own portal: APC Overnight Customer Portal → log in to Track & Trace → Reports → Service Performance. Filter by Date Range = Last 30 Days, Service = All, Status = Delivered + Failed. The portal exposes a Delivered On Time aggregate at the top of that filtered view; that figure should reconcile with this card. For account-managed customers, APC’s quarterly business review (QBR) deck published by the account manager carries the same figure broken down by depot, by service, and by failure-cause code. Vortex IQ pulls the same underlying scan data through APC’s API; the QBR adds APC’s own commentary. Why our number may legitimately differ from APC’s portal:| Reason | Direction | Why |
|---|---|---|
| Cutoff-time strictness | Ours stricter | APC’s portal sometimes counts a 9am shipment delivered by 09:30 as “marginal on time”. Vortex IQ enforces the cutoff exactly: 09:00 is the line. Expect a 0.5 to 1.5 point gap on 9am and 10:30 services. |
| In-transit treatment | Ours higher for “today” | Vortex IQ excludes still-in-transit consignments from numerator and denominator until a final scan lands. APC’s same-day portal view sometimes pre-categorises in-transit-but-late-ETA as already late, depressing today’s number. T-2 days fully reconcile. |
| Failure-cause exclusions | APC higher | APC’s portal may quietly exclude “customer fault” failures (recipient absent, refused, wrong address) from the headline OTD number for QBR purposes. Vortex IQ includes every overrun regardless of cause; the merchant’s customer experiences the lateness either way. Use Exception Rate to split. |
| Time-zone of the report | Boundary days off | APC’s portal uses UK local time (GMT or BST); Vortex IQ also uses UK local for the cutoff comparison. The 30-day window boundary may differ by a day depending on whether the portal’s “Last 30 days” includes today. |
| POD-not-yet-uploaded shipments | Ours higher | Driver POD scans can lag depot upload by 2 to 6 hours. The card excludes scan-pending parcels until POD lands. APC’s portal sometimes shows these in a separate “pending” bucket; reconcile against the previous calendar day, not today. |
| Saturday and bank-holiday handling | Either | NextDay services do not run on Sundays in the UK; APC’s promise auto-bumps a Friday-shipped parcel to the following Monday. Vortex IQ honours this in promised_delivery_datetime. Mismatched calendars between the merchant’s checkout copy and APC’s working-day calendar are the most common source of unexpected gaps. |
apc_late_shipments_count = apc_shipments_total × (1 - apc_otd_rate), ignoring rounding and in-transit treatment of the most recent two days.
Cross-connector reconciliation:
| Card | Expected relationship | Causes of legitimate divergence |
|---|---|---|
shipbob.sb_otd_rate | When ShipBob is the warehouse and APC is the last-mile, ShipBob’s OTD includes warehouse-floor time AND carrier transit; this card is carrier-only. | Different populations; ShipBob can be on-time-shipped but APC late, or vice versa. |
shopify.unfulfilled_orders | Upstream input. Shopify orders waiting for an APC label cannot meet OTD if the warehouse cannot ship them in time. | Webhook delivery failures, manual fulfilment delays, B2B / pre-order flows. |
shopify.refund_rate | Downstream sentiment proxy. Late premium deliveries drive refunds and chargebacks. | Refund rate has many drivers; OTD is one input. |
Documentation cross-reference (for agencies running multiple UK shippers). OTD-rate metrics exist with conceptually similar definitions across other UK carriers and 3PLs. These are not parallel measurements of the same shipments; they are independent operations. Use these cross-links only to navigate documentation.
royal_mail.roy_otd_rate(UK national postal carrier peer)hermes_evri.her_otd_rate(UK courier peer)dpd.dpd_otd_rate(UK premium courier peer)shipbob.sb_otd_rate(3PL peer)
Known limitations / merchant FAQs
APC vs Royal Mail vs DPD, which should I send with? Different jobs. APC wins on time-definite premium UK express, especially the 9am and 10:30 B2B book (medical, dental, automotive). Royal Mail wins on consumer trust, letterbox-friendly small items, and per-parcel cost on standard tracked services. DPD wins on the Predict 1-hour-window experience for B2C high-value parcels. The healthy multi-carrier pattern is to use APC for time-definite high-AOV, Royal Mail Tracked 48 for everyday, and DPD or Evri for the consumer-experience tier. Read this card alongsideroyal_mail.roy_otd_rate and dpd.dpd_otd_rate, and Avg Shipping Cost to see the cost-vs-reliability trade.
Why does the card show 95.9 percent but my customer-service tickets are spiking?
Three usual reasons. (1) The 4.1 percent late tail is concentrated on premium-promise traffic, the customers who paid £9.20 for “by 12pm” and got a parcel at 13:45. They complain at roughly 10x the rate of standard-shipping customers. (2) Customer perception is anchored on PDP copy, not service codes. “By 12pm” on the product page is what the customer remembers; APC’s 17:30 cutoff for NextDay anytime is invisible to them. (3) The headline averages over very different services. Always look at the per-service breakdown alongside the aggregate; the per-service is the actionable reading.
My OTD just dropped 6 points this morning, what is the playbook?
In order of likelihood: (1) Check APC’s service alerts in the customer portal, depot capacity squeezes and weather events get posted there before they show up here. (2) Check Exception Rate, a spike in “address invalid” or “access denied” exceptions points to upstream label-data issues, not carrier failure. (3) Check OTD by Origin Depot, if the drop is concentrated in 2 or 3 depots the issue is local; if it is uniform the issue is network-wide. (4) Check NextDay 9am Service Promise separately, if 9am holds but NextDay-12 drops, APC is prioritising the most expensive tier (normal during peak). (5) Open a ticket with APC’s account team if (1) to (4) do not explain it.
Can I claim a refund for every late shipment in this card’s denominator?
No, only on guaranteed services. APC offers money-back-on-late on its time-definite premium tiers (NextDay-9am, NextDay-10:30, NextDay-12) where the failure was APC’s responsibility. You cannot claim on (a) NextDay anytime, (b) Pallet services, (c) failures caused by recipient absence, refusal, wrong address, or access issues, (d) declared force-majeure events. Filing window is typically 14 days from the failed POD.
Tracked vs untracked, how does APC handle it?
APC is fully tracked. Every consignment carries a barcoded label, every service produces sortation and POD scans. Untracked is not a concept on APC’s network, that is a Royal Mail concern. The OTD denominator is therefore unambiguous on APC.
Why does Shopify show “shipped” but APC tracking is empty?
Two-stage handover. Shopify marks the order shipped when the label is generated (fulfilment.created); APC does not show a tracking event until the depot collection scan, typically 1 to 4 hours after the driver picks up. If the gap exceeds 12 hours the parcel was probably never collected, check whether dispatch-cutoff time has slipped. APC’s last collection of the day is typically 16:00 to 16:30 in most regions; orders booked after that miss collection.
How should I plan for Q4 / BFCM peak on APC?
Three actions. (1) Pre-book volume capacity with APC’s account team in September for November and December (premium UK express books capacity tighter than Royal Mail). (2) Pull dispatch-cutoff forward by 60 to 90 minutes during peak weeks; APC’s depot saturation pushes routing decisions back, and the parcel that misses 16:00 collection becomes day-2. (3) Soften the customer promise on the PDP for peak weeks (move “by 12pm” to “next business day”) so the OTD dial, when it inevitably drops 3 to 8 points, does not translate one-for-one into broken promises.
Why does the “today” reading bounce around?
Volume. A merchant doing 60 consignments a day has a 1.7 percentage-point step per shipment on the daily reading. Use the rolling 30-day reading for trend, the daily reading only for outage detection. Below 100 daily consignments, the daily reading is too noisy to act on.