> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Label-Generation Success Rate, ShippyPro

> ShippyPro's core SLA - did label generation succeed across the carrier mix? How to read it, why it matters, and how to act on it.

**Metrics type:** [Key Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Shipping & Courier](/nerve-centre/connectors#connectors-by-type)

> ShippyPro's core SLA - did label generation succeed across the carrier mix?

## At a glance

> Share of label-creation API calls in the last 24 hours that returned a valid printable shipping label. The single most-actionable connector-health number for ShippyPro: when this drops below 98%, **orders cannot be despatched**, regardless of how healthy the carriers, the warehouse, or the rate-shop ruleset are. The fault is between Vortex IQ and ShippyPro, or between ShippyPro and the underlying carriers.

|                             |                                                                                                                                                                                                                                                                                                                                                                                  |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**          | `COUNT(label_create_calls WHERE status = 'success') / COUNT(label_create_calls)` over the trailing 24 hours. Each call is one label attempt; retries count as separate calls.                                                                                                                                                                                                    |
| **API endpoint**            | `POST /shipments/labels` (ShippyPro's label-creation endpoint). The card reads HTTP response code and parsed `success` flag from each attempt.                                                                                                                                                                                                                                   |
| **Failure modes counted**   | (1) Carrier downtime, the underlying carrier API rejected the rate-shop call. (2) ShippyPro internal errors, 5xx from ShippyPro itself. (3) Validation errors, invalid address, invalid weight, missing customs declaration on cross-border. (4) Auth errors, 401 from expired token (links to [Days to Token Expiry](/nerve-centre/kpi-cards/shippy-pro/days-to-token-expiry)). |
| **Carrier-mix sensitivity** | Failures are not uniformly distributed. Italian and EU regional carriers (Poste Italiane, BRT) have higher native API instability than majors (DHL Express, GLS, UPS). A 95% reading on a Poste-heavy account often resolves to 99% if Poste is excluded.                                                                                                                        |
| **Returns / RTO**           | Includes Easy Return label generation; treats them identically to outbound.                                                                                                                                                                                                                                                                                                      |
| **Service level scope**     | All services and carriers pooled. Per-carrier breakdown lives in the carrier sub-tile of the same card.                                                                                                                                                                                                                                                                          |
| **Currency**                | Not applicable.                                                                                                                                                                                                                                                                                                                                                                  |
| **Time window**             | `24H` (rolling 24-hour window)                                                                                                                                                                                                                                                                                                                                                   |
| **Alert trigger**           | `<98%`. Tripped when success rate drops below 98 percent. The 2 percent cushion is industry-standard for label-print SLA; below that, despatch operations notice queue stall.                                                                                                                                                                                                    |
| **Sentiment key**           | `label_generation_success`                                                                                                                                                                                                                                                                                                                                                       |
| **Roles**                   | owner, operations                                                                                                                                                                                                                                                                                                                                                                |

## Calculation

Calculated automatically from your ShippyPro 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 Italian DTC fashion brand. Reading taken at 09:00 CET on 12 Mar 26 for the trailing 24 hours.

| Carrier                      | Label calls (24h) | Successful | Failures | Success rate | Most common failure    |
| ---------------------------- | ----------------- | ---------- | -------- | ------------ | ---------------------- |
| BRT                          | 920               | 916        | 4        | 99.6%        | Address validation     |
| DHL Express                  | 410               | 410        | 0        | 100.0%       | (none)                 |
| GLS                          | 380               | 376        | 4        | 98.9%        | Carrier 5xx            |
| Poste Italiane               | 240               | 218        | 22       | 90.8%        | Carrier 503 (downtime) |
| UPS                          | 60                | 60         | 0        | 100.0%       | (none)                 |
| **All carriers (this card)** | **2,010**         | **1,980**  | **30**   | **98.5%**    |                        |

The card reads **98.5%**; the alert at `<98%` is **not** firing at the aggregate but Poste Italiane alone is materially below. Five things to notice:

1. **Poste Italiane's 90.8% drags the aggregate down by 1.4 points.** If Poste volume rises (rate-shop swings to it for cheap parcels), the aggregate drops below 98% even with no other change. The aggregate masks the per-carrier instability; per-carrier sub-tiles are mandatory reading.
2. **22 Poste failures over 24 hours = 22 orders that could not despatch.** They sit in the warehouse queue waiting for retry. The operational fix during a Poste downtime is to override rate-shop temporarily to BRT for those parcels (at 30 to 50 percent higher per-label cost) and despatch. The card is the trigger for the override decision.
3. **DHL Express and UPS at 100% are the carrier-network benchmark.** If they ever drop below 99%, the issue is almost certainly ShippyPro-side or your-account-side, not carrier-side. Use them as the control.
4. **The 4 BRT and 4 GLS failures are noise-floor.** Under 1 percent failure on healthy carriers is normal; address-validation rejections (postcode does not match city, missing house number) account for most. They retry successfully on next attempt; the 24-hour window absorbs them.
5. **Aggregate 98.5% is the intervention threshold.** At 98% exact, queue stall is visible to despatch staff (\~10 to 30 orders waiting at any moment); at 95%, full operations escalation; at 90%, P1 incident regardless of which carrier is failing. The card's alert at 98% is calibrated for the first-detection signal, not the visible-pain threshold.

## Sibling cards merchants should reference together

Label-generation success is the gate; many other cards depend on it being green. Pair with these:

| Card                                                                                                | Why pair it with Label Generation Success                                   | What the combination tells you                                                                                                            |
| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| [Days to Token Expiry](/nerve-centre/kpi-cards/shippy-pro/days-to-token-expiry)                     | Token expiry produces 100 percent failure with 401 errors.                  | Both cards red simultaneously = expired token, rotate immediately.                                                                        |
| [API Error Rate](/nerve-centre/kpi-cards/shippy-pro/api-error-rate)                                 | Same underlying signal, different angle.                                    | Error rate climbing while label success is dropping = carrier-side or ShippyPro-side issue.                                               |
| [Shipments](/nerve-centre/kpi-cards/shippy-pro/shipments)                                           | Volume processed; reflects label-success in absolute terms.                 | Volume drop without label-success drop = upstream order-flow drop (not connector). Volume drop with label-success drop = connector issue. |
| [OTD by Route](/nerve-centre/kpi-cards/shippy-pro/otd-by-route)                                     | Per-carrier breakdown context.                                              | If a carrier's label success is degrading, watch its OTD; carrier API instability often correlates with carrier physical-network issues.  |
| Cross-connector: [`shopify.unfulfilled_orders`](/nerve-centre/kpi-cards/shopify/unfulfilled-orders) | Downstream impact. Failed labels = unfulfilled orders piling up in Shopify. | Climbing Shopify unfulfilled is the customer-visible symptom of label-generation drop.                                                    |
| Cross-connector: warehouse-management system queue depth                                            | Direct operational view of orders waiting for label.                        | Queue stalling without label-success drop = warehouse-side problem. Queue stalling with label-success drop = ShippyPro-side problem.      |

## Reconciling against the vendor's own dashboard

**Where to look in ShippyPro's own dashboard:**

[ShippyPro Dashboard](https://www.shippypro.com/app) → **API Health → Label Creation Stats** (not always exposed by default; visible to enterprise tier or by support request). The closest like-for-like is *Last 24h, All Carriers, All Services*. ShippyPro also exposes a per-call audit log at *Logs → API Calls → Filter type:label\_create* that shows the actual error response per failure.

**Why our number may legitimately differ from ShippyPro's portal:**

| Reason                         | Direction             | Why                                                                                                                                                                                                                                                                                              |
| ------------------------------ | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Retry counting**             | Ours sometimes lower  | The card counts each retry as a separate attempt; some portal views collapse retries into a single "shipment" outcome. If a label took 3 attempts to succeed, the card scores 2 failures and 1 success (66.7% on that shipment); the portal may show 100% (the shipment ultimately got a label). |
| **Internal-error attribution** | Either                | ShippyPro classifies some 5xx errors as carrier-side, others as ShippyPro-side; the card pools them. Different filter states in the portal may show different denominators.                                                                                                                      |
| **Validation pre-check**       | Ours sometimes higher | If your client-side validation rejects a label before submitting (e.g. weight = 0), the card never sees it; ShippyPro's portal may show it as a "rejected" attempt.                                                                                                                              |
| **Timezone**                   | Boundary hour off     | Card defaults to UTC; portal defaults to workspace timezone. The 24h boundary shifts.                                                                                                                                                                                                            |

**Cross-connector reconciliation:**

| Card                                                                               | Expected relationship                                                    | What causes legitimate divergence                                                                                  |
| ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
| [`shopify.unfulfilled_orders`](/nerve-centre/kpi-cards/shopify/unfulfilled-orders) | Downstream effect; label-failure drops directly raise unfulfilled count. | Manual fulfilment, B2B flows, Shopify-app retry behaviours that mask the label failure.                            |
| Direct carrier status pages (DHL service status, BRT alerts)                       | Upstream truth on carrier-side downtime.                                 | Carriers post outage notices on their status pages; correlate to the timestamped failures in the card's audit log. |

***

<details>
  <summary><em>Documentation cross-reference (for agencies running multi-platform stacks)</em></summary>

  Label-generation success is the universal Key Metrics card across shipping connectors. The semantics are essentially identical; the carrier mix and failure-mode distribution differ.

  * [Sendle Label Generation Success](/nerve-centre/kpi-cards/sendle/label-generation-success) (single-carrier, simpler failure-mode distribution)
  * [ShipTheory Label Generation Success](/nerve-centre/kpi-cards/ship-theory/label-generation-success-rate) (UK aggregator, sub-carrier failure attribution)
</details>

## Known limitations / merchant FAQs

**Why is Poste Italiane structurally less reliable than DHL Express?**
Capacity model. Poste Italiane runs on Italian-public-postal infrastructure with batch-mode label issuance windows; their API takes occasional 503 spells during peak processing. DHL Express runs a private-network real-time API with multi-region failover. The cost-vs-reliability trade is real and intentional in the rate-shop ruleset.

**The card shows 95% but our orders are still going out. Why?**
Retry behaviour. ShippyPro's connector retries failed labels up to 3 times with 30-second backoff. A 95% first-attempt success rate often resolves to 99%+ post-retries on shipment level. Operations only sees the queue stall when retries also fail (5%-of-5%, 0.25% of shipments). The card flags the upstream signal before that translates to user-visible pain.

**My account is mostly DHL and we still see 97%. Why?**
Address-validation rejections. DHL's API is strict about postal-code-vs-city alignment, especially for cross-border. If your customer-data quality is uneven (typos, missing house numbers, IT/SM/VA address ambiguity), DHL rejects the label. The fix is upstream address validation, not carrier change.

**Should I exclude failed validation attempts from the metric?**
Trade-off. Including them gives you the full-stack picture (everything that broke between order and label). Excluding them isolates the connector-and-carrier picture. Default is included; for diagnosis, the audit log shows the failure-mode breakdown.

**Why 24h window and not 1h?**
Smoothing. Carrier APIs have transient 5xx spells (especially Poste Italiane mid-day, BRT during overnight maintenance windows). A 1h window would alert constantly on noise; 24h gives enough samples to distinguish persistent issues from blips. For real-time incident-response, watch the audit log directly.

**My label success rate dropped sharply. What is the diagnosis flow?**
Five steps. (1) Check [Days to Token Expiry](/nerve-centre/kpi-cards/shippy-pro/days-to-token-expiry), expired token = 100 percent failure. (2) Check carrier-mix sub-tile, is one carrier failing or all? (3) Check the failing carrier's status page (DHL, GLS, BRT all publish). (4) Check the audit log for failure-message distribution, validation vs 5xx vs auth. (5) If unclear, contact ShippyPro support with the timestamped failure samples; they can correlate against their internal queue.

**What is "ShippyPro's core SLA"?**
The label-creation API is the highest-criticality endpoint ShippyPro operates. Their internal SLA targets 99.9% availability for the label endpoint excluding carrier-side failures. Most enterprise contracts include credits if they breach. The card's 98% threshold is the merchant-facing operational threshold, not the SLA contract threshold.

**Cross-border / customs labels, do they have a different failure profile?**
Yes. Labels for non-EU destinations (UK post-Brexit, CH, NO) require customs declaration data that the merchant must provide; missing fields produce validation failures. These typically show as 60-80 percent success on the affected lane until the merchant's order data pipeline includes the customs fields. Read this card alongside [Shipments by Destination](/nerve-centre/kpi-cards/shippy-pro/shipments-by-destination) to spot lane-specific issues.

**Can I use this card to negotiate carrier contracts?**
Yes, indirectly. Pair it with carrier-specific reliability extracts from the audit log; carriers running materially below 99% on healthy windows lose volume in the rate-shop and accept that as the outcome. If you want to bring it up in QBR, present 90-day rolling reliability per carrier from the trend view, not the snapshot.

***

### Tracked live in Vortex IQ Nerve Centre

*Label-Generation Success Rate* is one of hundreds of KPI pulses Vortex IQ tracks across ShippyPro and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English.

[Start for free](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
