At a glance
Share of EasyPost label-purchase requests that returned a valid shipping label in the last 24 hours. Every failed label is a parcel that cannot leave the despatch bench: it blocks the order, stalls the picking queue, and pushes the dispatch deadline at risk. This is a despatch-floor health metric, watched hourly during picking shifts. The alert fires at <98% because anything below that is already creating a visible backlog at the packing station.
What it tracks
Label generation success is the proportion of EasyPost label-buy calls that succeeded over the trailing 24 hours, measured against EasyPost’s label-purchase endpoint (POST /v2/shipments/{id}/buy and the one-call buy flow). A request fails when EasyPost or the underlying carrier rejects it: a malformed or undeliverable address, a parcel exceeding the carrier’s weight or dimension limits, a carrier account with incomplete or expired credentials, an out-of-funds postage balance, or a transient carrier API outage. Because EasyPost rate-shops across carriers, a failure on one carrier can sometimes be recovered by failing over to another, so the headline rate reflects net success after any automatic retry or failover. A sustained dip almost always traces to one root cause rather than random noise: most commonly an expired carrier or API credential (see Days to Token Expiry) or a carrier-side outage that also shows on API Error Rate. The 24-hour window is deliberately short so the despatch team sees a problem inside one shift, not after a day of blocked orders. When this dips, on-time despatch and downstream On-Time Delivery Rate are the first things to feel it.
Reconcile against the EasyPost Dashboard Logs view, filtering to label-buy API calls over the last 24 hours and comparing successful responses to errors; expect small differences from sync latency, and remember log timestamps follow EasyPost account time.