Side-by-side OTD comparison across ShipTheory’s sub-carriers - feeds the carrier-renegotiation conversation. Hero.
At a glance
Side-by-side On-Time Delivery rate per underlying UK sub-carrier (Royal Mail, DPD, Evri, Parcelforce, Yodel). The card that justifies why ShipTheory exists: by exposing each sub-carrier’s reliability directly, it lets the operator tune the rate-shop ruleset and feeds carrier-renegotiation conversations with empirical data. 30D window with a per-carrier <90% alert.
| What it counts | COUNT(shipments WHERE actual_delivery_date <= expected_delivery_date) / COUNT(delivered shipments) for each sub_carrier over a 30-day window. |
| API endpoint | GET /shipments joined with carrier tracking webhook for delivered_at, grouped by sub_carrier. |
| Delivery success criterion | Carrier POD delivered_at <= expected_delivery_date, normalised across the different UK carrier POD models (Royal Mail signature/scan, DPD photo+signature, Evri photo). |
| On-time threshold | Carrier-promised expected_delivery_date per shipment, no grace. Each sub-carrier’s promise is its own; like-for-like across services within sub-carrier, not across sub-carriers. |
| Returns / RTO | Outbound only. |
| Service level scope | Within each sub-carrier, all services pooled. So “Royal Mail” combines Tracked 24, Tracked 48, Special Delivery; “DPD” combines Next Day, Two Day; etc. |
| The point of the card | ShipTheory’s whole reason for being is the rate-shop dynamic across UK carriers. This card is the direct evidence for tuning that rate-shop. The aggregate OTD card hides which sub-carrier is dragging; this card surfaces it. |
| Renegotiation use | Quarterly business reviews with sub-carriers cite this card. A sub-carrier running materially below peer median for 90 days is a renegotiation lever (volume threat, contract revisions, service-tier escalations). |
| Currency | Not applicable. |
| Time window | 30D (rolling 30-day window per sub-carrier) |
| Alert trigger | any sub-carrier <90%. The card alerts as soon as any individual sub-carrier falls below 90% OTD even if aggregate is healthy. |
| Sentiment key | on_time_delivery_rate |
| Roles | owner, operations |
Calculation
Calculated automatically from your ShipTheory 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 UK home & garden merchant. Reading taken at 09:00 GMT on 12 Mar 26 for the trailing 30 days.| Sub-carrier | Shipments | Delivered on time | OTD rate | Alert |
|---|---|---|---|---|
| Royal Mail | 6,500 | 6,175 | 95.0% | OK |
| DPD | 2,820 | 2,792 | 99.0% | OK |
| Evri | 2,960 | 2,575 | 87.0% | <90%, FIRING |
| Parcelforce | 1,120 | 1,075 | 96.0% | OK |
| Yodel | 380 | 327 | 86.1% | <90%, FIRING |
| All sub-carriers | 13,780 | 12,944 | 93.9% | (aggregate OK) |
- Aggregate hides two sub-carrier-level problems. Evri at 87% on 21% of volume + Yodel at 86.1% on 3% of volume both being absorbed by Royal Mail (95%) and DPD (99%) on bigger shares. Without this card, the operator sees “shipping is fine”.
- DPD at 99% is the renegotiation benchmark. Their structural reliability is the comparator; if any other sub-carrier sits 5+ points below DPD on 30D, the rate-shop can rationally shift volume away. The card is the empirical evidence.
- Evri’s 87% is the operative intervention. Most ShipTheory operators respond by tightening the rate-shop ruleset to push Evri-eligible parcels (low-value, non-urgent) to Royal Mail Tracked 48 instead. The cost lift is GBP 0.30 to 0.60 per parcel; the OTD recovery is 5 to 8 percentage points.
- Yodel at 86.1% on 380 shipments is structurally fragile. Many ShipTheory accounts exclude Yodel entirely from rate-shop after seeing this card consistently fire on Yodel for 60+ days. The cost saving (Yodel typically GBP 0.20 to 0.40 cheaper than Royal Mail equivalents) does not justify the OTD risk for most mid-market merchants.
- The card is the QBR slide. Quarterly business reviews with each sub-carrier should reference 90-day rolling OTD from this card. Royal Mail at 95% on 47% volume share is the loyalty case; Evri at 87% is the renegotiation case; DPD at 99% is the gold-standard reference.
Sibling cards merchants should reference together
Sub-carrier OTD comparison answers “which carrier is dragging?” Pair with these to act.| Card | Why pair it with Sub-Carrier OTD Comparison | What the combination tells you |
|---|---|---|
| On-Time Delivery Rate | The aggregate counterpart. | Aggregate green + a sub-carrier red = the cross-cut is the only place the issue is visible. |
| Sub-Carrier Volume Mix | Volume share per sub-carrier. | A sub-carrier with low OTD and low share is low-risk; low OTD and high share is operational priority. |
| Late Shipments | The count counterpart. | This card answers “where is the OTD coming from”; the late count card answers “how much is it costing”. |
| Avg Shipping Cost | Cost-vs-reliability trade-off. | Together: the rate-shop tuning conversation. |
| Sub-Carrier OTD by Service | One layer deeper, by route. | If Evri is dragging, is it Evri Standard or Evri Next Day? |
Cross-connector: shopify.refund_rate | Downstream impact. | Sub-carrier OTD drop predicts Shopify refund-rate climb at 7 to 14 days lag. |
Cross-connector: bigcommerce.refund_rate | Same as Shopify for BC merchants. | Same lag. |
| Cross-connector: customer NPS surveys | Downstream sentiment. | Sustained OTD drop on a high-share carrier predicts NPS softening over 14 to 30 days. |
Reconciling against the vendor’s own dashboard
Where to look in ShipTheory’s own dashboard: ShipTheory Dashboard → Reports → Carrier Performance. The portal exposes the same per-sub-carrier OTD with bar comparison, plus drill-down into per-service breakdown. Closest like-for-like view: Last 30 Days, Group By: Carrier. Why our number may legitimately differ from ShipTheory’s portal:| Reason | Direction | Why |
|---|---|---|
| Service-level grouping | Either | The card pools all services within a sub-carrier; the portal sometimes splits Royal Mail Tracked 24 from Tracked 48. Toggle the portal to “all services within carrier” for like-for-like. |
| Tracking sync lag | Ours lower for “today” | Royal Mail and Evri tracking webhooks lag 4 to 12 hours during peak; T-2 days fully reconcile. |
| Promise-date staleness | Ours stricter | Card holds carriers to original promise; portal sometimes recalculates after carrier embargo. |
| In-transit exclusion | Both exclude | Parcels still in transit are out of both numerator and denominator. |
| Timezone | Boundary days off | Card UTC; portal GMT/BST. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
| Direct sub-carrier dashboards (Royal Mail OBA, DPD insight, Evri Send) | Peer measurement of same shipments from carrier side. | Carriers track to internal SLA tables, not your stored promise. |
shopify.refund_rate | Downstream sentiment for the affected sub-carrier’s volume. | Refund-rate is order-level, not sub-carrier-level; correlation is soft. |