Skip to main content
Card class: Cross-ChannelCategory: Marketplace
Costco PO ship-by SLA isolated to orders fulfilled through ShipBob, separates 3PL performance from internal-warehouse performance.

At a glance

Cross-channel SLA dial showing the on-time-ship percentage for Costco POs that are fulfilled through ShipBob (the supplier’s 3PL) rather than through the supplier’s internal warehouse. Many SIP suppliers run a hybrid fulfilment model: high-velocity SKUs out of internal warehouses (cost advantage at scale), long-tail or specific-DC-routed SKUs out of ShipBob (capacity flexibility, reach to East Coast Costco DCs that the internal warehouse cannot serve cost-effectively). When a Costco fill-rate or on-time-ASN dial dips, the natural first question is “is the warehouse breaking or is ShipBob breaking?” This card isolates the ShipBob-fulfilled subset so the merchant can answer that question directly.
What it countsCOUNT(po WHERE fulfilled_via_shipbob AND ship_by >= asn_sent_at) / COUNT(po WHERE fulfilled_via_shipbob). Only POs routed to ShipBob; POs fulfilled internally are excluded and surfaced on On-Time ASN Rate.
API endpointTwo-side join. Costco-side from EDI 850 PO po_number, ship_by, dc_destination, plus EDI 856 ASN asn_sent_at. ShipBob-side from ShipBob API GET /shipment external_order_id, created_at, shipped_at, tracking_number. Joined by po_number mapped to ShipBob’s external_order_id.
Routing ruleThe card requires the supplier’s order-management system to tag each Costco PO with a fulfilment route (internal_warehouse or shipbob). Where the routing tag is missing the PO is excluded from this card and surfaced as “untagged” in the drill-down.
On-time definitionasn_sent_at <= ship_by at the day-level (Pacific Time). Same definition as the parent On-Time ASN Rate; the card is the ShipBob-only filter.
CancellationsCancelled POs (EDI 860 with cancellation_indicator=Y) excluded from both numerator and denominator.
Currency / valueThe card is a percentage; for value join with PO line-item totals via Weekly PO Value.
FBA / FBMNot applicable; Costco SIP is wholesale via ShipBob, not marketplace fulfilment. ShipBob’s role is 3PL warehouse-and-pack-and-ship, not last-mile carrier.
DC routingShipBob has multiple US fulfilment centres; Costco’s PO dc_destination is matched to the optimal ShipBob FC for that lane. The card aggregates across ShipBob FCs by default; per-FC drill-down is available.
Time window30D (rolling 30-day average; smaller than 7D because ShipBob volume per merchant on Costco POs is typically 30 to 100 POs per week and 7D is too noisy).
Alert trigger<95% on-time. Triggers when ShipBob-fulfilled SLA drops below 95 percent. The internal-warehouse subset is held to the same 95 percent benchmark via the parent on-time-ASN card.
Cross-channel only flagonly_when: has_shipbob_sibling. Card hides if no ShipBob connector is integrated.
Rolesowner, operations

Calculation

Calculated automatically from your Costco SIP 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 same US household-goods supplier on Costco SIP, hybrid fulfilment model: roughly 65 percent of POs go through internal warehouse in Cincinnati OH, roughly 35 percent through ShipBob (East Coast volume to Carlisle PA Costco DC, plus ad-hoc capacity overflow). Reading taken at 09:00 PT on 11 Mar 26 for the trailing 30 days.
Fulfilment routePOs in periodOn-time countOn-time %Avg lead-time hours (booking → ASN)
Internal warehouse (Cincinnati OH)19619298.0%18
ShipBob FC1 Pennsylvania787596.2%22
ShipBob FC2 Texas242187.5%31
ShipBob aggregate (this card)1029694.1%25
The card reads 94.1 percent; alert at <95% on-time is firing on the ShipBob-aggregate. Five things to notice:
  1. The Texas FC is the entire problem. Pennsylvania FC reads 96.2 percent (above threshold); Texas FC reads 87.5 percent. Triage: open a ShipBob support ticket on the Texas FC’s recent throughput, ask for FC-level capacity reports for the period, consider re-routing Texas-FC POs to Pennsylvania or to internal warehouse until the issue resolves.
  2. The aggregate hides the spread. Reading the aggregate alone would suggest “ShipBob is generally fine but slipping”; reading the per-FC breakdown shows “one specific FC is struggling badly while the other is healthy”. Always drill down per-FC when this card alerts.
  3. Lead-time creep is the leading indicator. Texas FC lead-time at 31 hours is meaningfully above the 18 to 22 hour healthy band. Lead-time-creep-without-SLA-impact is week 1; SLA dip is week 2. Pair with Last Successful Outbound and ShipBob’s own dashboards for week-1 detection.
  4. Internal warehouse is performing better than ShipBob. 98.0 percent vs 94.1 percent. This is the expected pattern for high-volume routes (the supplier’s own warehouse is tuned for Costco PO patterns); it justifies the hybrid model. If internal warehouse drops below ShipBob, the routing decision needs review.
  5. The card is the cause-isolation lens. When the parent On-Time ASN Rate dips, this card answers “which fulfilment route is breaking”. If both routes look fine but the parent dips, the issue is in the EDI translator or SFTP layer, not in fulfilment.

Sibling cards merchants should reference together

ShipBob fulfilment SLA isolates the 3PL leg. Pair with these:
CardWhy pair it with ShipBob SLAWhat the combination tells you
On-Time ASN RateThe parent dial.If parent dips and ShipBob is fine, internal warehouse is the cause; if ShipBob is the cause, this card identifies it.
POs Missing ASNReal-time queue of late POs.The drill-down shows fulfilment route per row; ShipBob-tagged rows that miss ASN are this card’s failures in real-time.
Late ASN Count (30d)Cumulative count of late ASNs.Pair to see the absolute count of ShipBob-route lateness vs the percentage.
Fill RateDifferent SLA dimension.ShipBob can be on-time-shipped but partially-filled; both dimensions matter.
Chargeback Risk (30d)Dollar consequence of SLA dips.Falling ShipBob SLA contributes to chargeback exposure.
Cross-connector: shipbob.sb_otd_rateShipBob’s own SLA reading.This card uses Costco’s ship_by deadline; ShipBob’s own card uses ShipBob’s internal due_at. The two should reconcile but can diverge if the supplier has set tighter ShipBob deadlines than Costco’s.
Cross-connector: shipbob.sb_orders_openShipBob open-order queue.Rising open-order count at ShipBob predicts SLA dip on this card 24 to 72 hours later.
Cross-connector: jira.tracker_open_issuesEscalation queue.When this card alerts, a Jira ticket should open against ShipBob support.

Reconciling against the vendor’s own dashboard

Where to look in Costco’s own portal: Costco Supplier PortalOrders → Performance does not break out fulfilment-route. The on-time-ASN figure Costco’s portal reports is for the supplier as a whole; this card is the supplier’s internal cross-channel join that Costco does not see. Compare the supplier-aggregate figure in the portal against the volume-weighted average of On-Time ASN Rate (internal) and this card (ShipBob). Where to look in ShipBob’s own portal: ShipBob Merchant AppReports → Order Fulfilment SLA filtered to the Costco PO channel (typically tagged via external_order_id prefix). ShipBob’s own SLA reading uses ShipBob’s internal due_at which the supplier sets at order-creation time; this card uses Costco’s ship_by from the EDI 850. The two should reconcile if the supplier sets ShipBob’s due_at equal to Costco’s ship_by minus a buffer. Why our number may legitimately differ from ShipBob’s portal:
ReasonDirectionWhy
Deadline definitionEitherCard uses Costco ship_by; ShipBob portal uses ShipBob due_at. If supplier sets ShipBob due_at 24 hours before Costco ship_by (buffer), card’s reading is more permissive than ShipBob’s.
Order-tag filteringEitherCard uses POs explicitly tagged fulfilled_via_shipbob in the supplier’s OMS. If the tagging is incomplete, ShipBob’s portal sees more orders than the card.
CancellationsEitherCard excludes Costco-cancelled POs (EDI 860); ShipBob portal may still count them if the cancellation did not propagate to ShipBob.
Timezone (PT vs FC-local)Boundary days offCard stores in UTC; ShipBob portal uses fulfilment-centre local time.
Cross-connector reconciliation:
CardExpected relationshipCauses of legitimate divergence
shipbob.sb_otd_rateShould approximate this card’s reading.Different deadline definition (Costco vs ShipBob internal); different population (this card is Costco-only).
shipbob.sb_orders_openPredictive of SLA dip.Open-order pile-up at ShipBob = SLA risk on this card 1 to 3 days later.

Known limitations / merchant FAQs

Why is my ShipBob SLA worse than my internal warehouse SLA? Three structural reasons. (1) Routing optimisation: the supplier’s OMS routes the highest-volume, easiest-to-fulfil SKUs to internal warehouse and the long-tail / capacity-overflow / specific-DC-routed POs to ShipBob; the ShipBob population is structurally harder. (2) Tighter deadlines: ShipBob FCs typically operate to a same-day-by-noon cut-off for next-day-shipped orders; Costco POs that arrive late afternoon hit ShipBob’s next-day queue while internal warehouse may run a second shift to catch them. (3) Communication latency: the supplier-OMS-to-ShipBob hop adds 30 to 90 minutes of order propagation that the internal warehouse does not have. The healthy gap is roughly 1 to 2 percentage points; gaps of 5+ percent are worth investigating. ShipBob’s portal says we are at 96 percent SLA but this card says 94 percent. Who is right? Both, for different definitions. ShipBob measures against ShipBob’s due_at (which the supplier or ShipBob-routing-rules set at order creation); this card measures against Costco’s ship_by from the EDI 850. If the supplier’s order-creation rules set ShipBob due_at more permissively than Costco’s ship_by, ShipBob can be on-time-by-ShipBob-deadline but late-by-Costco-deadline. Reconcile by setting ShipBob due_at = Costco ship_by - 24h so the two metrics align. Should I move all my Costco PO fulfilment to ShipBob? Usually no. ShipBob’s per-PO cost is structurally higher than internal warehouse for high-volume SKUs because ShipBob amortises across many merchants. Internal warehouse wins on cost for the volume tail; ShipBob wins on flexibility (capacity overflow, specific-DC routing, geographic coverage). The hybrid model is the typical SIP supplier setup; pure-ShipBob makes sense only at very small volume or when the supplier has no warehouse infrastructure. Should I move my Costco PO fulfilment fully off ShipBob? Usually no. ShipBob fills specific gaps in internal warehouse coverage (East Coast Costco DCs reachable cost-effectively from ShipBob Pennsylvania FC but not from Cincinnati, capacity overflow during peak), and pulling those orders back into the internal warehouse pipeline often degrades both internal and overflow SLA simultaneously. Pull back only if ShipBob SLA is structurally below internal warehouse and the cost-per-PO premium is no longer justified. The card excludes “untagged” POs. How do I find which? Drill-down lists every PO with routing_tag field; null or “untagged” rows are the ones where the supplier’s OMS did not set a fulfilment route. Common causes: (1) recently-onboarded SKUs without routing rules, (2) routing rule mismatch with new DC destination, (3) manual PO entry that bypassed the OMS routing logic. Address these to get full coverage; until addressed they are excluded from both this card and the parent on-time-ASN reading for the ShipBob subset. Costco shifted PO routing to a new East Coast DC (Carlisle PA). My ShipBob SLA dropped. Why? Likely the supplier’s routing rules send Carlisle PA POs to ShipBob’s Pennsylvania FC, which is closer to Carlisle but is now seeing higher volume than before. ShipBob’s FC capacity scales with notice; sudden volume increases of 30+ percent can cause SLA dips for 2 to 4 weeks while ShipBob staffs up. Coordinate with ShipBob’s account team to share the routing change and request capacity planning. Can I see per-FC breakdown without configuring filters? Yes, the card’s drill-down has a “Group by ShipBob FC” toggle. Default view aggregates across FCs; toggle to per-FC for the breakdown shown in the worked example. Most ops teams keep the per-FC view as their default. My ShipBob FC1 SLA is 96 percent on this card and 94 percent on ShipBob’s portal. Why the gap? Reverse of the typical case: the card is more permissive than ShipBob’s portal. Likely the supplier’s OMS sets ShipBob due_at slightly tighter than Costco’s ship_by (a buffer to ensure ShipBob hits Costco’s deadline). The card uses Costco’s ship_by as the deadline; ShipBob’s portal uses the tighter ShipBob due_at. Both are valid; align them if you want consistent reading. The card alerts at <95 percent but my Costco contract has a 98 percent SLA. The card threshold is configurable. Set to 98 percent at the integration layer to match contractual obligations. The default 95 percent is calibrated to match Costco’s standard SIP supplier-handbook benchmark; specific contracts may run tighter.

Tracked live in Vortex IQ Nerve Centre

Costco POs via ShipBob (SLA) is one of hundreds of KPI pulses Vortex IQ tracks across Costco SIP 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 or book a demo to see this metric running on your own data.