At a glance
Share of FedEx parcels that arrived at the customer on or before FedEx’s published service-promise date. The merchant-facing “did the parcel turn up when we said it would” number, computed across every shipment booked through the FedEx Ship Manager API in the period. FedEx Express services carry a money-back guarantee on this number; Ground does not.
| What it counts | COUNT(shipments WHERE actualDeliveryDateTime <= scheduledDeliveryDate) / COUNT(shipments WHERE actualDeliveryDateTime IS NOT NULL). Each delivered shipment scores 0 or 1 against its FedEx commit date. Shipments still in transit are excluded from both numerator and denominator until they post a final scan. |
| Delivery success criterion | A shipment is counted “delivered” when FedEx posts a Code 01 (DL) Delivered scan to the Tracking API, with actualDeliveryDateTime populated. POD signature is not required for the card; non-signature-required services count on-scan. |
| On-time threshold | actualDeliveryDateTime ≤ scheduledDeliveryDate (no grace window). FedEx Express commits to a clock-time on the commitment date (e.g. Priority Overnight by 10:30 ET); the card uses the date-level commit only. For clock-time scoring on Priority Overnight specifically, see Priority Overnight Service Promise. |
| Returns / RTO | Excluded. Shipments that were Returned to Sender (Code 70 / RTS) do not count as a delivery; they fall out of both numerator and denominator. They are tracked separately in Returned to Sender. |
| Service level scope | All FedEx services pooled by default. Priority Overnight, Standard Overnight, 2Day, Express Saver, Ground, Home Delivery, SmartPost, International Priority, International Economy, Freight, all contribute. Each shipment is judged against its own service-specific commit date, not a flat SLA. To isolate, see Shipments by Service. |
| Zone-based transit variance | Critical context. FedEx Ground transit time depends on origin-DC-to-customer Zone 1 to 8 (Zone 2 = same metro, Zone 8 = coast-to-coast). A merchant shipping from one fulfilment centre in TN sees 2-day Ground to Zone 2 customers and 5-day Ground to Zone 8 customers. The card pools all zones, so the headline can drop simply because customer-mix shifted toward far zones, not because FedEx degraded. Pair with OTD by Route to disaggregate. |
| Money-back guarantee | FedEx Express services (Priority Overnight, Standard Overnight, 2Day, Express Saver, International Priority) carry a money-back guarantee for the shipper on missed commitments, claimable via the FedEx Billing portal within 15 days. Ground, Home Delivery, SmartPost do not carry a guarantee. The card flags lateness; the claim is a separate operational step, see the FAQ below. |
| Saturday delivery | FedEx Home Delivery delivers Tuesday through Saturday (no Monday) by default; Saturday counts as a normal delivery day for these shipments. Express Saturday Delivery is an opt-in surcharge service. The card respects FedEx’s per-service business-day calendar. |
| Peak-period seasonality | Q4 (Black Friday through 24 Dec) typically degrades the rate by 4 to 10 percentage points across the FedEx network. Truck capacity is constrained, weather disrupts hub-and-spoke routing (Memphis SuperHub bottleneck), and Ground enters managed-volume mode. Read November and December in seasonal context. |
| Time window | 30D vsP (rolling 30 days, period-over-period comparison) |
| Alert trigger | <95% (warn) / <90% (critical), sentiment thresholds at good=95, warn=90 |
| Roles | owner, operations |
Calculation
Calculated automatically from your FedEx 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 US DTC outdoor-apparel brand shipping out of a Reno, NV fulfilment centre using FedEx as primary carrier. Reading taken at 09:00 PT on 12 Mar 26 for the trailing 30 days (10 Feb 26 to 11 Mar 26).| FedEx Service | Shipments | Delivered on or before commit | On-Time Rate |
|---|---|---|---|
| Ground (Zone 2 to 4, West Coast) | 6,820 | 6,587 | 96.6% |
| Ground (Zone 5 to 8, East Coast / Mid-South) | 4,940 | 4,358 | 88.2% |
| Home Delivery | 2,380 | 2,259 | 94.9% |
| 2Day (Express) | 1,210 | 1,191 | 98.4% |
| Priority Overnight | 480 | 472 | 98.3% |
| All services (this card) | 15,830 | 14,867 | 93.9% |
- Zone, not service, is the dominant driver. Zone 5 to 8 Ground at 88.2% is the headline drag. The same Ground product hits 96.6% in nearby zones. The fix is not “switch carriers”, it is “pre-position inventory closer to East Coast customers”. A second DC in Memphis or Atlanta would lift this number 3 to 4 points without any change in FedEx behaviour. Pair this card with OTD by Route to confirm the zone hypothesis.
- Express services hit their commit dates near-perfectly because of the money-back guarantee. FedEx allocates the most reliable trucks and routes to Priority Overnight and 2Day; the network is engineered for these. The 1.6% to 1.7% miss is mostly weather and address corrections, not capacity. Claim the missed commits in the FedEx Billing portal within 15 days for a refund of the freight charge.
- The 963 missed shipments are not all “FedEx’s fault”. Address corrections (DAS / SmartPost handoff issues), recipient-not-home retries on Home Delivery, weather embargoes in the Rockies, and customer-requested holds all count against on-time. FedEx Tracking API exception codes (07 EX, 09 NF, 12 HD) help triage; the card pools them. The actionable subset is typically 60% to 70% of misses.
- February-March is calmer than Q4. This same brand sat at 84.7% in their 30 Nov 25 reading, lost 9.2 points to peak-period chaos centred on Memphis SuperHub. Q4 drops are structural for FedEx; do not benchmark against Nov-Dec.
- The headline crosses the 95% green threshold occasionally. Watch for whether crossings are sustained or one-day blips. The 30D vsP comparison smooths daily noise; the alert at <90% trips on persistent degradation, not on a single bad weather day. Run the trend chart Shipments Over Time alongside to confirm shape.
Sibling cards merchants should reference together
On-time delivery is a customer-facing outcome metric. Pair it with these to diagnose root cause:| Card | Why pair it with On-Time Delivery Rate | What the combination tells you |
|---|---|---|
| OTD by Route | Splits the aggregate across origin-destination zones. | Identifies whether the headline drop is a single far-zone issue or network-wide. Far-zone Ground drops are a fulfilment-centre-location fix, not a FedEx fix. |
| Avg Transit (days) | Companion timing metric. | Rising transit days + falling on-time = the network is slower than the commit calendar. FedEx may be on its feet but the merchant’s customer expectation is now stale. |
| Late Shipments | The absolute count behind the percentage. | Useful when total volume swings, percentage can stay flat while late counts double during volume spikes. |
| Shipments by Service | Service mix split. | Shifting from Express toward Ground (cost-cutting) usually drops headline on-time even if each service holds steady, because Ground has weaker on-time than Express. |
| Priority Overnight Service Promise | Premium-tier subset with money-back guarantee semantics. | If Priority Overnight slips, the merchant has both a service and a finance impact (refunds claimable). |
| Exception Rate | Lead indicator. Exception scans (weather, address, customer-not-home) precede misses by 12 to 48 hours. | Exception rate climbing 24h before on-time-rate drops is the early-warning signal. Act on the exception, not the on-time number. |
| International Customs-Hold Rate by Lane | International subset. | Customs holds (Code 67 / CD scans) cause 2 to 5 day delays on International Priority shipments. Pull lane-level customs-hold rate when international on-time degrades. |
| FedEx OTD by Sales Channel | Channel-mix split. | Marketplace orders (Amazon, Walmart) often have stricter SLAs than DTC; channel-mix shifts move the aggregate even if FedEx behaviour holds. |
Cross-connector: shopify.unfulfilled_orders | Upstream cause. Orders waiting unfulfilled cannot meet the FedEx commit if the warehouse cannot pick them in time. | Climbing Shopify backlog predicts a FedEx on-time-rate dip 1 to 3 days later. |
Cross-connector: shopify.refund_rate | Downstream impact. Late deliveries drive refund and chargeback requests. | A 3 to 5 percentage-point drop in on-time-rate typically precedes a 0.5 to 1.0 percentage-point rise in refund rate at 7 to 14 days lag. |
Reconciling against the vendor’s own dashboard
Where to look in FedEx’s own dashboard: FedEx Reporting Online (FROL) → Reports → Service Performance → On-Time Performance. The closest like-for-like view is All Services, Last 30 Days, by Tracking Number. FROL also exposes per-shipment audit at Tracking → Detailed Tracking showing the gap betweenscheduledDeliveryDate and actualDeliveryDateTime. For Express services with money-back-guarantee claims, see FedEx Billing Online → Money-Back Guarantee → Eligible Shipments.
Why our number may legitimately differ from FedEx’s portal:
| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary days off | FROL defaults to your account’s billing time zone (typically the shipper’s local time). The card defaults to UTC for period boundaries. For 30-day windows the gap averages out; for “today” or “yesterday” the boundary day shifts can move the number 0.5 to 1.5 percentage points. |
| Service-level scoping | Either | FROL on-time tile defaults to the service you click in the dropdown. The card aggregates every FedEx service. To match like-for-like, set FROL to “All Services”. |
| Money-back-guarantee exclusions | FedEx may show higher | FedEx’s own on-time-performance reports sometimes exclude shipments under “service exceptions” the carrier deems beyond its control (declared severe weather, customer address errors). The card scores by raw scan dates and includes these. The FedEx number you compare against may legitimately read 2 to 4 percentage points higher in storm months. |
| Suspended-service flagging | Either | FedEx flags certain ZIPs as suspended (post-hurricane, wildfires) and excludes shipments to them. The card does not flag, so all shipments to a suspended ZIP that delivered late count as late. Pull the FROL exclusion log to reconcile. |
| Tracking sync lag | Ours lower for “today” | FedEx tracking scans flow into the Tracking API with 30-min to 4-hour lag during normal volumes; up to 12 hours during Q4. Today’s number may understate; T-2 days fully reconcile. |
| Multi-piece shipment scoring | Either | A multi-piece shipment (one master tracking + N piece tracking) is scored at master-tracking level. FedEx may break it out per piece in some reports. If the master delivered late but pieces 2 and 3 delivered on time, the card counts 1 late; FedEx’s piece-level report counts 1 late + 2 on-time. |
| International shipments and customs holds | Ours lower | International Priority shipments held in customs (Code 67 / CD) post actualDeliveryDateTime after the hold clears, often days late. The card scores them late; FedEx’s domestic on-time tile excludes them since they are international, but the international on-time tile includes them. Use International Customs-Hold Rate by Lane to triage. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
shopify.unfulfilled_orders | Upstream input. Shopify hands orders to the WMS or label-print app, which books FedEx; lag is typically 1 to 4 hours. Persistent unfulfilled implies orders FedEx has not yet been booked for. | Webhook delivery failures, B2B / pre-order flow that bypasses standard label generation. |
usps.usp_otd_rate | Peer carrier. Different parcel populations entirely. Most multi-carrier merchants run both. Not a reconciliation, an independent comparison. | USPS uses dimensional/weight breakpoints differently; FedEx Ground beats USPS Priority Mail on far zones, USPS beats FedEx on sub-1lb deliveries. |
easypost.eas_otd_rate | If EasyPost is the booking layer in front of FedEx, EasyPost’s view of FedEx shipments is a subset of this card. EasyPost adds 100 to 500 ms reconciliation latency; counts agree at T-1. | EasyPost rate-shopping may have routed some shipments to UPS or USPS. Filter EasyPost by carrier=FedEx to compare. |
| Cross-connector: customer NPS or returns rate | Downstream sentiment. Customers who waited longer than promised score lower on NPS surveys. | Survey response bias, sample size. |
Known limitations / merchant FAQs
FedEx vs UPS, which is the better carrier for my brand? Different jobs. UPS is stronger on Ground in dense urban Northeast and Midwest corridors; FedEx is stronger on Express, hub-and-spoke air routing, and small-parcel hand-off (SmartPost). Most multichannel brands run both, splitting by zone or by service requirement. The card scores FedEx-only volume; the equivalent UPS card is on the connector roadmap. Use this card alongside the cost-per-shipment cards to decide carrier mix per zone. FedEx vs USPS, which is the better carrier for my brand? Different jobs. USPS Priority Mail beats FedEx Ground for sub-1lb shipments on cost; FedEx Ground beats USPS for parcels over 2lb and for Saturday/Sunday delivery (USPS has limited Sunday outside Amazon partnership). FedEx Express has a money-back guarantee; USPS Priority Mail does not. Useusps.usp_otd_rate to compare on-time across the two for the same merchant.
How does FedEx zone pricing affect this card?
Zone is hidden inside the headline. FedEx Ground promises a transit-day count keyed to the origin-destination zone (Zone 2 = 1 day, Zone 8 = 5 days). The card scores each shipment against its zone-specific commit, so a shift in customer-mix toward far zones does not mechanically lower the rate. However, far-zone shipments have more failure modes (weather embargoes, address-correction holds, multi-hub routing) and empirically deliver late more often. A merchant whose customer-mix shifts from 60% Zone 2 to 4 to 60% Zone 5 to 8 will see a 3 to 6 percentage-point drop in this card without FedEx changing anything. Track OTD by Route to confirm the cause.
Can I claim a refund when a FedEx Express shipment misses its commit?
Yes, on a per-shipment basis. FedEx’s Money-Back Guarantee covers Priority Overnight, Standard Overnight, 2Day, Express Saver, and International Priority Express services. File the claim within 15 calendar days of the original ship date via FedEx Billing Online → Money-Back Guarantee → File a Claim, referencing the tracking number. FedEx refunds the freight charge (not the surcharges, not the declared-value insurance). The guarantee is suspended during declared service disruptions (named storms, network outages); FedEx publishes the suspension list at www.fedex.com/serviceupdates. Ground, Home Delivery, SmartPost do not carry a guarantee.
Why does my FedEx shipment show “delivered on time” in tracking but the card says “late”?
Three usual reasons. (1) Commit-date mismatch. The card uses scheduledDeliveryDate from the booking (set at label print). If FedEx revised the commit later (e.g. weather embargo) and tracking now shows the revised commit, the card holds the original. Reconcile by pulling the original ship-time commit from FROL. (2) Multi-piece scoring. Master-tracking scoring vs piece-level scoring can disagree (see reconciliation table). (3) Sync lag. Tracking scans take 30 minutes to 4 hours to flow during normal volumes; up to 12 hours during Q4. Re-check after T-1.
Why does my FedEx number look low compared to the FedEx portal?
Most common reason: storm or service-disruption exclusions. FedEx’s portal reports often exclude shipments to ZIPs flagged as suspended (post-hurricane, wildfires, named winter storms). The card does not exclude. During an active disruption your card may legitimately read 2 to 5 percentage points lower than FedEx’s portal. Pull the FROL exclusion log for the period and adjust mentally; both numbers are right, they answer different questions (“did FedEx hit its commit on the parcels it accepted?” vs “did the customer get the parcel on time?”).
How do I plan for Q4 / BFCM peak?
Three actions. (1) Pre-position inventory in a second DC closer to East Coast customers if your primary is West-Coast (or vice versa); reduces zone count when the Memphis SuperHub bottlenecks. (2) Lean toward FedEx Express in the last 5 days before Christmas even at higher unit cost, the money-back guarantee is your hedge against missed commits. (3) Set customer expectations in checkout copy (e.g. “delivered by 24 Dec if ordered by 18 Dec via 2Day”), and switch to “ground orders close 15 Dec” messaging from 10 Dec onward. The card will still drop 4 to 10 points; the goal is to recover by mid-January.
Does this card include FedEx SmartPost / Ground Economy?
Yes by default. SmartPost (now FedEx Ground Economy) hands the parcel off to USPS for the final-mile leg. The card uses FedEx’s actualDeliveryDateTime which fires when USPS scans the final delivery, so the scoring is end-to-end. SmartPost has materially weaker on-time than pure FedEx Ground because of the carrier handoff (typically 4 to 8 percentage points below) and longer transit times. If your merchant uses SmartPost heavily, exclude it via Shipments by Service before benchmarking.
Does international FedEx Priority count in this card?
Yes, but it skews lower because customs holds (Code 67 / CD) extend transit time. The card scores international shipments by the same scheduledDeliveryDate ≤ actualDeliveryDateTime rule, so a customs-held parcel that delivered 3 days after the original commit counts as late. To isolate international performance, see International Customs-Hold Rate by Lane.
My customer NPS dropped, is on-time the cause?
Often the leading cause but rarely the only one. Late delivery hurts NPS, but unboxing experience, product quality, and customer-service responsiveness move NPS more in absolute terms. Use this card as one of three or four operational inputs to NPS regression analysis, not as the single explanatory variable.
Why does the rate swing day-to-day?
The 30D vsP default smooths most noise. If the merchant’s volume is low (<200 shipments/day), individual zone shifts and weather events can move daily on-time by 5+ percentage points. Look at the rolling 30-day on the card, not a daily figure; the alert at <90% trips on persistent issues, not on a single bad weather day.