At a glance
Share of parcels booked through EasyPost (across all underlying carriers. USPS, FedEx, UPS, DHL, regional) delivered on or before the carrier’s published service-promise date. EasyPost is a multi-carrier aggregator; the card pools every carrier’s on-time performance through one rolled-up number, with rate-shopped routing typically yielding 5 to 15% cost savings versus direct-to-carrier booking and similar-or-slightly-better on-time because EasyPost optimises for both cost and reliability.
| What it counts | COUNT(EasyPost shipments WHERE actual_delivery_date <= scheduled_delivery_date) / COUNT(delivered EasyPost shipments). EasyPost reads the underlying carrier’s commit date and actual delivery date through its unified Tracking API. |
| Delivery success criterion | EasyPost normalises carrier-specific delivery scans into a single Delivered status. Underlying carriers post their own scan-event taxonomy (USPS Code 01, FedEx Code DL, UPS “Delivered”); EasyPost maps them to the unified status with actual_delivery_date populated. |
| On-time threshold | actual_delivery_date <= scheduled_delivery_date. EasyPost computes scheduled_delivery_date from the rate-shopping decision: when a parcel is booked via FedEx 2Day, the FedEx 2Day commit applies; via USPS Priority Mail, the USPS standard applies. Each shipment is judged against the commit of the carrier-and-service it was actually shipped on. |
| Money-back guarantee | Carrier-dependent. FedEx Express services (booked through EasyPost) carry their MBG; USPS Priority Mail does not; UPS Air services do; etc. The card surfaces missed commits; refund eligibility depends on the underlying carrier-and-service. |
| Returns / RTO | Excluded. Tracked separately in Returned to Sender. |
| Carrier coverage | EasyPost integrates 100+ carriers; major DTC volume routes through USPS, FedEx, UPS, DHL eCommerce, OnTrac, LSO, Lasership. Each carrier contributes its own commit and scan data. |
| Reconciliation latency | EasyPost’s unified API has a slight reconciliation latency vs direct-carrier (typically 100 to 500 ms for label generation, 1 to 4 hours for tracking-event polling). Counts agree at T-1 day; today’s reading may slightly lag direct-carrier numbers. |
| Service level scope | All EasyPost-booked services pooled by default. To split, see Shipments by Service. |
| Rate-shopping effect | EasyPost rate-shops at booking time, choosing the cheapest service that meets the merchant’s preference rules (e.g. “cheapest USPS or FedEx in 2 to 3 days”). This often selects USPS Ground Advantage over FedEx Ground for sub-1lb, capturing 30 to 50% cost savings. The on-time outcome reflects the rate-shopped choice. |
| Time window | 30D vsP (rolling 30 days, period-over-period comparison) |
| Alert trigger | <95% (warn) / <90% (critical), sentiment thresholds at good=95, warn=90 |
| Sentiment key | gauge with thresholds good=95, warn=90 |
| Roles | owner, operations |
Calculation
Calculated automatically from your EasyPost 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 mid-market apparel merchant routing all parcels through EasyPost with rate-shopping between USPS, FedEx, and UPS. Reading taken at 09:00 ET on 12 Mar 26 for the trailing 30 days vs the prior 30 days.| Underlying Carrier | Shipments | On-Time | Notes |
|---|---|---|---|
| USPS Ground Advantage (sub-1lb) | 6,820 | 93.1% | Cheapest tier, EasyPost default for low weight |
| USPS Priority Mail | 3,940 | 91.8% | Mid-tier, no MBG |
| FedEx Ground | 2,180 | 95.4% | EasyPost rate-shopped winner for 1 to 5 lb medium-zone |
| FedEx 2Day | 410 | 97.6% | Premium tier, MBG applies |
| UPS Ground | 1,250 | 94.2% | Selected for specific lanes per merchant rules |
| OnTrac (regional West Coast) | 880 | 96.1% | Faster than national carriers in same-zone West Coast |
| All carriers (this card) | 15,480 | 93.7% | aggregate vs 92.1% (prior 30D) = +1.6 ppt |
- The +1.6 ppt improvement is rate-shopping working as designed. EasyPost’s algorithm picked OnTrac for 880 West Coast metro shipments instead of USPS or FedEx; OnTrac’s regional density delivered 96.1%. Without rate-shopping (direct USPS), the same shipments would have run 92 to 93%. The aggregate gain is real and structural.
- USPS Priority Mail at 91.8% is the headline drag. Same merchant, same volume, no MBG, and below the 92% USPS contractual baseline. Two options: (a) Configure EasyPost rate-rules to upgrade Priority Mail bookings to FedEx Ground when zone is 4+ (FedEx Ground beats USPS Priority on far zones for same cost or marginal premium). (b) Accept and adjust delivery-promise copy.
- The 5 to 15% cost saving is the EasyPost value proposition. Direct-to-carrier this merchant would pay ~4.55/parcel (-12.5%). The on-time gap vs direct-carrier is typically <1 ppt. Most DTC merchants come out ahead.
- Compare against direct-carrier cards.
usps.usp_otd_ratefor this merchant’s USPS subset would read 92.6% (very close to 92.4% the EasyPost-USPS line shows here). Reconciliation is tight; the small gap reflects EasyPost’s reconciliation latency. - The 977 missed shipments span all carriers. Not concentrated; carrier-mix issues are not the dominant explanation. Address quality, customer-mix toward far zones, and Q1 weather (Mountain West, Northeast) account for most. Investigate via Exception Rate and Cost by Zone.
Sibling cards merchants should reference together
| Card | Why pair it with On-Time Delivery Rate | What the combination tells you |
|---|---|---|
| Avg Shipping Cost | Cost-quality trade-off. | The whole EasyPost value proposition is “save cost without losing on-time”; reading both cards together verifies the trade. |
| OTD by Route | Geographic split. | Identifies which carriers’ rate-shopping is most effective per zone. |
| Late Shipments | Absolute count. | Customer-service workload metric. |
| Shipments by Service | Carrier-mix split. | If FedEx subset dominates volume but USPS subset has worse OTD, rate-rules may need adjustment. |
| Exception Rate | Lead indicator. | Cross-carrier exceptions catch upstream issues. |
Cross-connector: fedex.fed_otd_rate | Direct-carrier subset comparison. | Filter direct-FedEx vs EasyPost-FedEx subsets to validate rate-shopping isn’t degrading reliability. |
Cross-connector: usps.usp_otd_rate | Same as above for USPS. | Same caveat. |
Cross-connector: shopify.unfulfilled_orders | Upstream cause. | Backlog predicts on-time-rate dip 1 to 3 days later regardless of carrier. |
Reconciling against the vendor’s own dashboard
Where to look in EasyPost’s own dashboard: EasyPost Dashboard → Reports → Tracking → On-Time Delivery. Filter to All Carriers, Last 30 Days. EasyPost surfaces a similar aggregate plus per-carrier breakdown. The dashboard is the source of truth; the card mirrors it operationally. Why our number may legitimately differ from EasyPost’s portal:| Reason | Direction | Why |
|---|---|---|
| Carrier-scoping | Either | The portal allows filtering to specific carriers; the card aggregates by default. To match like-for-like, set both to “All Carriers”. |
| Tracking-event polling lag | Ours lower for “today” | EasyPost polls underlying carriers every 30 to 60 minutes; the card refreshes hourly. Today’s reading may show 1 to 3 hour lag. |
| Carrier-side service-disruption flagging | Either | When an underlying carrier (FedEx, USPS) flags shipments as MBG-suspended, the carrier may exclude from its on-time report; EasyPost may include or exclude depending on its dashboard config. |
| Time zone | Boundary days | EasyPost dashboard defaults to merchant time zone; card uses UTC. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
fedex.fed_otd_rate | EasyPost-routed FedEx subset of this card. | Filter to carrier=FedEx in EasyPost; FedEx-direct numbers may include shipments not booked through EasyPost. |
usps.usp_otd_rate | Same as above for USPS. | Same caveat. |
shopify.unfulfilled_orders | Upstream order source. | Order-to-label lag affects starting clock. |
Known limitations / merchant FAQs
EasyPost vs direct-to-carrier, which is the better setup? For most mid-market DTC merchants, EasyPost wins on cost (5 to 15% savings via rate-shopping and EasyPost’s negotiated carrier rates). On-time is similar or slightly better. The cost saving outweighs the operational complexity of managing one extra integration. Trade-off: enterprise-scale shippers ($5M+/year shipping spend) often prefer direct-carrier contracts because their negotiated rates beat EasyPost’s pooled rates. How does EasyPost’s rate-shopping decide which carrier to use? Merchant-configured rules. EasyPost’s API accepts acarrier_accounts array and a service_options array; the cheapest service meeting the merchant’s preference rules wins. Common rules: “USPS Ground Advantage if sub-1lb and zone <=4”, “FedEx Ground if 2 to 5 lb and zone 4+”, “FedEx 2Day if customer paid for 2-day”. The card scores against the chosen carrier’s commit.
Why is EasyPost on-time slightly different from the underlying carrier’s direct number?
Two reasons. (1) Reconciliation latency: EasyPost polls carriers every 30 to 60 minutes; some scan events arrive at the carrier first. (2) Subset overlap: Direct-carrier numbers include all shipments (some not booked via EasyPost); EasyPost includes only EasyPost-booked. Numbers should converge within ±1 ppt over a 30-day window.
What’s the EasyPost Insurance product?
EasyPost offers built-in shipping insurance (100 declared value) for parcels routed through their platform. Faster claim adjudication (5 to 10 days vs USPS’s 14 to 21) and similar pay-out rates. Configurable per-shipment via the insurance field at booking. Useful alternative to USPS Insured Mail or carrier-direct insurance.
Does the card include EasyPost test-mode shipments?
No. The card filters to production shipments only. Test-mode shipments (created with mode=test) don’t go to actual carriers and don’t have real delivery dates.
My OTD dropped suddenly. Is EasyPost broken or is one carrier broken?
Open Shipments by Service and split by carrier. If only one carrier (e.g. USPS) dropped, it’s a USPS issue. If all carriers dropped together, it’s likely an exogenous event (Q4 surge, weather event affecting all networks). EasyPost itself rarely “breaks” the on-time number; the underlying carrier reliability dominates.
Can I configure EasyPost to prefer carriers based on on-time performance?
Yes via custom rules in the EasyPost dashboard. Configure tracking-data-driven rate rules to weight on-time history into the rate-shopping decision (e.g. “prefer FedEx over USPS if FedEx’s recent on-time on this lane is 3+ ppt better and cost is within 10%”). Talk to EasyPost’s customer success team to set up; not all merchants have access by default.
How does EasyPost handle Q4 / BFCM peak?
EasyPost’s volume spikes proportional to merchant volume (300 to 500% in late November). Rate limits scale automatically; merchants don’t need to provision extra capacity. The on-time degradation is carrier-driven, not EasyPost-driven; expect 5 to 12 ppt drop similar to direct-carrier shipping.
Should I migrate from direct-carrier to EasyPost?
Test on a portion of volume first (10 to 20% of shipments). Compare on-time, cost, and operational overhead over 30 to 60 days. If cost saving exceeds 5% with no on-time degradation, migrate. Most DTC merchants under $10M/year shipping spend find EasyPost net-positive.