At a glance
Share of Bring consignments that arrived at the recipient on or before the agreed promise day. Bring is the parcel and logistics arm of Posten Norge (Posten Bring), and the network covers Norway end-to-end plus Sweden, Denmark, Finland and the wider Nordics through partner hand-overs. The card reads across every shipment with a delivered scan in the period, against the Bring service-code commitment for that lane (Bring Home Delivery Parcel = next-day domestic NO, Bring Pickup Parcel = 1 to 2 working days to a parcel locker or post-in-shop, Bring Business Parcel Bulk B2B = 1 to 3 working days, Bring Cargo / pallets = 2 to 4 working days, Bring Cross-Border to SE / DK / FI = 2 to 5 working days).
| What it counts | COUNT(shipments WHERE delivered_at <= promised_delivery_date) / COUNT(shipments WHERE delivered_at IS NOT NULL). Each delivered consignment scores 0 or 1 against its own service-code promise, then the dial averages across the period. |
| API endpoint | Bring Booking API POST /booking/v3/bookings returns consignmentNumber, service.id, expectedDelivery.estimatedDate. Bring Tracking API GET /tracking/v3/tracks/{consignmentNumber} returns the event stream including delivered and deliveredOnEstimatedDate. The dial joins booking + tracking on consignmentNumber. |
| Delivery success criterion | delivered scan with recipientType IN (recipient, neighbour, mailbox, parcel_locker_collected). A parcel_locker_dropped_off scan without a customer collection is not counted as delivered (the parcel is sitting waiting); it counts only once the recipient picks it up. |
| On-time threshold | The card uses Bring’s own expectedDelivery.estimatedDate from the booking response, which is the contractually-promised day for that service code. Delivery on or before midnight Oslo time on that date counts as on-time. There is no intra-day cut-off for standard parcel; Bring does not promise hour-of-day for residential. |
| Service-tier scope | All tracked services (Home Delivery, Pickup Parcel, Business Parcel, Cargo). Bring Mail (Posten letter products) is excluded because letters do not get a delivered scan. International Bring Cross-Border to non-Nordic destinations uses the destination carrier’s last-mile scan, so OTD on those lanes is contingent on partner-feed quality. |
| Returns / RTO | Outbound only. Bring Returns (consumer returns booked through Bring’s return portal) are tagged direction = inbound on the consignment object and filtered out. RTO is on Returned to Sender. |
| Climate / winter handling | Norwegian winter (Nov to Mar) introduces real transit-time impact on northern lanes (Tromsø, Bodø, Kirkenes, Svalbard). The card does not auto-adjust thresholds for weather; merchants on Highlands routes should watch OTD by Route and the destination breakdown rather than the headline. |
| Currency / charges | The dial is a percentage; cost lives on Avg Shipping Cost. Bring fuel surcharge and remote-area surcharge changes do not move OTD. |
| Time window | 30D vsP (rolling 30 days, period-over-period). Daily readings are noisy below 150 consignments per day, which is most non-Nordic merchants. |
| Alert trigger | <95% warn, <90% critical. Norwegian-domestic Bring Home Delivery typically runs 95 to 97 percent; Cross-Border Nordic lanes run 90 to 94 percent; non-Nordic destinations sit lower depending on the partner carrier. |
| Sentiment key | {'type': 'gauge', 'thresholds': {'good': 95, 'warn': 90}} |
| Roles | owner, operations |
Calculation
Calculated automatically from your Bring 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 Norwegian outdoor-apparel brand with the warehouse in Drammen, around 3,800 outbound parcels per week, mixed Nordic distribution: 70 percent Norwegian domestic (Bring Home Delivery + Bring Pickup Parcel), 20 percent Sweden / Denmark cross-border (Bring Cross-Border Standard), 10 percent rest-of-EU (handed to PostNord then DHL Parcel partner). Reading taken at 09:00 CET on 11 Mar 26 for the trailing 30 days (10 Feb 26 to 10 Mar 26). Bring leg only:| Service | Consignments | Delivered on or before promise | OTD Rate | Avg cost per parcel |
|---|---|---|---|---|
| Home Delivery Parcel (NO domestic, residential) | 7,820 | 7,538 | 96.4% | 89 NOK |
| Pickup Parcel (NO domestic, parcel locker / shop) | 3,460 | 3,377 | 97.6% | 64 NOK |
| Cross-Border Standard SE / DK | 3,140 | 2,889 | 92.0% | 142 NOK |
| Business Parcel Bulk B2B | 880 | 858 | 97.5% | 198 NOK |
| All Bring tracked (this card) | 15,300 | 14,662 | 95.8% | 108 NOK |
<95% was not tripped, but the cross-border lane is dragging the headline down by about 1.2 percentage points. Five things to notice:
- Pickup Parcel is the quiet hero. The locker / post-in-shop network is faster and more reliable than residential home-delivery in Norway because the recipient is the one collecting it from a fixed point during opening hours; there is no “address invalid” or “no one home” failure mode. Brands chasing OTD typically nudge checkout copy to default to Pickup Parcel.
- Cross-Border lanes pull the dial down. 92.0 percent on Sweden / Denmark is normal for the standard service; the upgrade to Bring Cross-Border Express runs 95 to 97 percent at roughly 1.6x the unit cost. Whether to upgrade is a margin call, not a network call.
- Brand confusion to watch. The recipient often sees “Posten” branded delivery (the postman / postwoman in red and yellow), even though the merchant booked through “Bring”. Posten Bring is one corporate group with two consumer-facing brands. Tracking emails go out from Bring; delivery van branding is Posten. Customers asking “where is my Posten parcel” are asking about a Bring shipment.
- Northern Norway has a 20 to 40 percent volume swing in winter. Tromsø and Kirkenes lanes run 88 to 92 percent OTD from December through March, then bounce back to 95+ in summer. The card does not auto-smooth winter; tighten the threshold for those routes via OTD by Route rather than re-baselining the global dial.
- The headline is not the workload. 95.8 percent on 15,300 parcels = 638 late deliveries = 638 customer service touchpoints. Pair with Late Shipments to see the absolute count and route ticket triage staffing accordingly.
Sibling cards merchants should reference together
On-time delivery is the customer-facing outcome metric. Pair it with these to diagnose root cause:| Card | Why pair it with OTD Rate | What the combination tells you |
|---|---|---|
| Late Shipments | The absolute count behind the percentage. | 95.8 percent OTD on 15,300 parcels = 638 late deliveries, that is the actual ticket workload. |
| Exception Rate | Tracking-event exceptions (held at terminal, address invalid, no answer at door, customs delay). | Rising exception rate predicts a falling OTD rate at 24 to 72 hours lag. |
| Avg Transit (days) | Median end-to-end time, not just on-time / late. | OTD can hold while transit creeps up; transit creep predicts OTD failure at the next service-code revision. |
| First-Attempt Delivery Rate | Whether the parcel was delivered or had to be redelivered / collected. | First-attempt failure does not always cause OTD failure (recipient picks up from locker the next morning), but the gap between OTD and first-attempt is the customer-friction tax. |
| OTD by Route | Where the dial is being dragged from. | Northern Norway, Svalbard, Arctic-circle postcodes typically drag the average; if the drag is concentrated, the action is route-specific. |
Cross-connector: shopify.unfulfilled_orders | Upstream cause. Orders waiting for a Bring label cannot meet OTD if they sit too long. | Climbing unfulfilled count predicts an OTD dip 2 to 5 days later. |
Cross-connector: shopify.refund_rate | Downstream impact. Late deliveries drive WISMO tickets and refund requests. | A 3 to 5 point OTD drop typically precedes a 0.5 to 1.5 point refund-rate rise at 7 to 14 days. |
Cross-connector: postnord.pos_otd_rate | Adjacent Nordic carrier OTD. | Many Nordic merchants split volume between Bring and PostNord; comparing the two on the same lane mix tells you which carrier is the better default for that catchment this quarter. |
Reconciling against the vendor’s own dashboard
Where to look in Bring’s own portal: Mybring is the merchant-facing portal. Navigate to Reports → Delivery Performance for the headline OTD view, or Statistics → Service Performance for the per-service-code breakdown that matches this card most closely. Larger Nordic merchants on a Bring Customer Service Account also see the Quality Report PDF that Bring publishes monthly and which is the authoritative version for any service-credit conversation. The closest like-for-like view is All Tracked Services, Last 30 Days, Outbound Only, Norway and Cross-Border Nordic. Toggle the service codes (Home Delivery / Pickup Parcel / Business Parcel / Cargo) to drill into per-tier readings. Why our number may legitimately differ from Mybring:| Reason | Direction | Why |
|---|---|---|
| Timezone (CET / CEST vs UTC) | Boundary days off | Mybring reports in Oslo local time. The card stores in UTC. Across a 30-day window the boundary effect averages out to less than 0.1 percentage points; on a single-day reading the boundary day can shift by one and skew daily readings during summer time. |
| Tracking-event ingestion lag | Ours lower for “today” | Bring’s tracking-events stream is normally 5 to 30 minutes behind the truck scan; during peak (December, Black Week) it can be 1 to 4 hours behind. Mybring has the same source and similar lag, but the two systems do not always lag in step. |
| Cross-Border partner-feed inclusion | Ours typically lower | For non-Nordic destinations Bring hands the parcel to PostNord, DHL Parcel, or another partner for last-mile. Bring’s Mybring report uses Bring’s own status until the hand-over scan; the card uses the recipient-side delivered scan from the partner feed (when available). For destinations where the partner feed is absent the card flags the consignment as “in transit indefinitely” and excludes from the OTD denominator after 21 days. |
| Posten / Bring brand split | Either | Posten Norge runs the residential delivery network; Bring books the parcel; the consumer-facing brand on the doorstep is Posten. Mybring shows the Bring view; the card joins on consignmentNumber so the answer is the same shipment, but historical reports archived under the “Posten” brand pre-2020 will not match. |
| Returns inclusion | Ours lower if RTO-heavy | Mybring’s default view sometimes includes the return leg. The card is outbound-only. A merchant with a 5 percent return-leg ratio sees a slightly different denominator. |
| Card | Expected relationship | Causes of legitimate divergence |
|---|---|---|
postnord.pos_otd_rate | Different carrier on the same Nordic lane mix. | Different shipments, different network. Useful for a merchant choosing between the two; not a like-for-like reconciliation. |
shopify.unfulfilled_orders | Upstream input. Orders waiting for a Bring label cannot meet OTD if the warehouse cannot ship them in time. | Webhook delivery failures, manual fulfilment delays, B2B / pre-order flows. |
shopify.refund_rate | Downstream sentiment proxy. Late deliveries drive refunds. | Refund rate has many drivers (sizing, quality, returns); OTD is one input. |
Known limitations / merchant FAQs
Posten or Bring, which one is actually delivering my parcel? Both. They are the same corporate group. Posten Norge (the postal service) and Bring (the parcel and logistics arm) merged operationally years ago and now share network, drivers and depots. The merchant-facing brand for booking is Bring; the consumer-facing brand on the van and the uniform is usually Posten in Norway. When a recipient asks “where is my Posten parcel” they are asking about a Bring shipment. Tracking emails go out under the Bring brand; door-step delivery is under the Posten brand. The two brands co-exist; do not try to pick one for customer-facing copy, use whichever the customer used to ask. Why does the card read 95 percent for the dial but my customer-service queue says everyone is complaining? Three usual reasons. (1) Cross-Border lanes are dragging the felt experience. If your customer mix is 70 percent Nordic-domestic and 30 percent rest-of-EU, the rest-of-EU lanes typically run 88 to 92 percent OTD because the partner-carrier hand-off introduces delay. The cross-border customers complain disproportionately. Use the route breakdown via Shipments by Destination. (2) Northern Norway lanes run 5 to 8 points lower than southern Norway. A merchant with a meaningful Tromsø / Bodø / Kirkenes catchment feels worse than the dial. (3) Customer-perceived “late” anchors on checkout copy. If checkout says “delivery in 1 to 2 working days” and parcel arrives day 3, it is contractually on-time (Bring’s promise was working day 2 cut-off) but customer-felt late. Norwegian winter is breaking my OTD on northern routes. What do I do? Three things. (1) Update checkout copy from November through March to set later expectations for postcodes 90xx to 99xx (Nordland, Troms, Finnmark). (2) Default Pickup Parcel rather than Home Delivery for those postcodes; Pickup Parcel is more weather-resilient because the parcel is held at the post-in-shop until conditions allow handover. (3) Re-baseline the OTD threshold to 90 percent for those routes during the winter window, not the global dial. Resetting the global dial would mask issues elsewhere; resetting per-route preserves visibility. Is Bring competitive with PostNord for cross-border Nordic? Mostly yes, with caveats. Bring is generally stronger on Norway (home network) and competitive on Sweden / Denmark / Finland. PostNord is stronger on Sweden (their home network) and Denmark, more contested in Norway, weaker in Finland. The healthy pattern for a Nordic-pan merchant is to default Bring for NO and PostNord for SE; Denmark splits roughly 50-50 on cost and reliability. Read this card alongsidepostnord.pos_otd_rate for the same period to make the call quarterly rather than once.
My OTD dropped 6 points overnight, what is the playbook?
In order of likelihood: (1) Check Bring service updates for declared incidents (terminal closure, IT outage, weather). (2) Check Exception Rate, a spike in “held at terminal” or “address invalid” exceptions points to upstream label-data issues, not network failure. (3) Check OTD by Route, if the drop is concentrated in 2 or 3 postcode ranges the issue is local; if uniform the issue is network-wide. (4) Check whether you switched service codes recently; moving from Home Delivery to Pickup Parcel mid-month changes the population on the dial. (5) Open a ticket with your Bring Customer Service Account team if (1) to (4) do not explain it.
My checkout says “next-day delivery” but Bring’s promise is “1 to 2 working days”. Should I rephrase?
Yes. “Next-day” anchors the customer on day 1 and you fail every time the parcel arrives day 2 (which Bring counts as on-time). The accurate phrasing for Bring Home Delivery in Norway is “1 to 2 working days for Oslo / Bergen / Stavanger / Trondheim, 2 to 4 working days for northern Norway”; for Bring Pickup Parcel “ready for collection in 1 to 2 working days, then up to 14 days held at the pickup point”. Tightening checkout copy is the lowest-cost lever for closing the perception gap.
Why does Shopify show “shipped” but Bring tracking is empty for hours?
Two-stage hand-over. Shopify marks the order shipped when the label is generated (fulfillment.created); Bring does not show a tracking event until the parcel hits the first sortation scan at the terminal, typically 2 to 12 hours after label print depending on collection time. If the gap exceeds 36 hours the parcel was probably never handed over, the most common cause is a missed terminal collection window on the merchant side.
How do I plan for Black Week / Christmas peak on Bring?
Bring’s last-recommended posting dates for Christmas Eve delivery in Norway are published mid-October each year; expect OTD to drop 2 to 5 points across all tracked services from 1 December to 23 December. Three actions: (1) tighten checkout copy with Bring’s published cut-off dates, (2) shift price-sensitive volume to Pickup Parcel where the network has more capacity than residential Home Delivery, (3) negotiate Cross-Border Express hold-back capacity with your Bring account team for the 19 to 22 December gift window if you sell time-sensitive items.
Does the card cover Bring Cargo (pallet / freight)?
Yes, Bring Cargo consignments are included, but only those booked with a tracked service code that reports a delivered scan. Pure ad-hoc freight bookings without a tracking number are excluded. If your shipping mix is more than 30 percent freight, Shipments by Service is the better entry point for OTD reading; the parcel and freight populations have different SLA profiles and aggregating them hides actionable signal.