At a glance
Share of Norway-to-EU outbound shipments that cleared export customs within three days of leaving the despatch terminal. Norway is outside the EU customs union, so every parcel crossing the border needs an export customs declaration (a tolldokument). Bring auto-generates the export documentation as part of the cross-border booking, but the declaration can still fail or stall: missing or mismatched commodity codes, an absent EORI number, an unstated value, or a goods description Norwegian or destination customs rejects. When the declaration stalls, the parcel sits at the border and the customer’s clock keeps running. This dial is the early-warning that your export-paperwork pipeline has broken.
| What it counts | COUNT(no_to_eu_shipments WHERE customs_cleared_at <= terminal_departure + 3 days) / COUNT(no_to_eu_shipments) over the rolling 30-day window, period-over-period. Scope is Norwegian-origin outbound to any EU destination (and EEA non-EU where a declaration is still required); intra-Norway and Norway-to-Sweden free-circulation parcels are out of scope. |
| API endpoint | Bring Booking API POST /booking/v3/bookings carries the customs payload (customsDeclaration, commodityCode, contentValue, senderEori) and returns consignmentNumber. Bring Tracking API GET /tracking/v3/tracks/{consignmentNumber} exposes the customs lifecycle events: export_customs_started, export_customs_cleared, customs_held, and import_customs_* on the destination side. The dial clocks the gap from terminal departure to export_customs_cleared. |
| Three-day threshold | The card measures Norwegian export clearance specifically (the tolldokument leg), not destination import clearance. Three calendar days from terminal departure is the working benchmark; clean declarations normally clear same-day to next-day, so a three-day cut-off is generous and isolates genuine stalls. |
| What “tolldokument” means | The tolldokument is the Norwegian export customs document Bring generates from your booking’s customs payload. If the payload is incomplete or the commodity code is wrong, the document cannot be lodged with Norwegian customs (Tolletaten) and the parcel is held before it ever crosses the border. |
| Held vs cleared | A consignment that reaches customs_held and never reaches export_customs_cleared within three days scores as a miss. Parcels still inside the three-day window with no clearance event yet are pending, not counted as failures until the window lapses. |
| Why it matters | An export stall is invisible to your warehouse (the label printed, the parcel left) but very visible to the customer (tracking frozen at the border). It is the single most common cause of “my international parcel is stuck” tickets for Norwegian merchants. |
| Time window | 30D vsP (rolling 30 days, period-over-period). The period-over-period delta is the signal: a sudden drop usually means a code change in your product feed or a Bring / Tolletaten process change. |
| Alert trigger | <85%. A healthy export pipeline clears well above 95 percent within three days; below 85 percent means a systematic paperwork fault, not random border friction. |
| 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 home-electronics accessories brand based in Sandefjord, around 1,900 outbound parcels per week, with a growing EU export book: roughly 35 percent of volume now ships Norway-to-EU (Germany, Netherlands, Poland) via Bring Cross-Border, the rest domestic. Reading taken at 09:00 CET on 14 Apr 26 for the trailing 30 days (15 Mar 26 to 13 Apr 26), compared with the previous 30 days. NO-to-EU leg only:| Destination | NO-to-EU shipments | Cleared within 3 days | Clearance rate | Previous period |
|---|---|---|---|---|
| Germany | 1,640 | 1,490 | 90.9% | 96.2% |
| Netherlands | 720 | 668 | 92.8% | 96.0% |
| Poland | 410 | 296 | 72.2% | 95.1% |
| All NO-to-EU (this card) | 2,770 | 2,454 | 88.6% | 95.9% |
<85% alert is not tripped at the aggregate, but Poland alone has collapsed to 72.2 percent. Five things to notice:
- The period-over-period drop is the real signal. 88.6 percent in isolation looks acceptable; an overnight 7-point fall does not. Something changed: a product feed update, a commodity-code remap, an EORI lapse, or a Tolletaten process change. The trend, not the level, tells you a fault was introduced.
- Poland is the broken lane. 72.2 percent against a 95.1 percent baseline says the failure is destination-specific. The usual culprit is a commodity code (HS code) that Norwegian export or Polish import customs newly rejects for a SKU range, or a value threshold that tripped a manual review. Open three held Polish consignments in Mybring and read the customs reason text.
- The tolldokument is generated from your booking payload. Bring auto-builds the export document, but only from the data you send. A blank
commodityCode, a missingsenderEori, or acontentValueof 0 produces a document customs will not accept. Check whether a recent catalogue sync stripped HS codes from the affected SKUs. - 316 stalled parcels is the customer-facing cost. Each one is a frozen tracking page and a likely WISMO ticket, plus the risk the parcel times out and returns. Pair with Exception Rate, customs holds surface there as exceptions, and with Nordic Export OTD (NO to SE/DK/FI) for the wider cross-border picture.
- Three days is generous on purpose. Clean declarations clear same-day to next-day. The three-day window deliberately ignores normal border latency so the dial only moves when something is genuinely stuck. A parcel still pending on day 2 is not yet a miss.
Sibling cards merchants should reference together
Customs clearance is an upstream gate: if the paperwork stalls, every downstream delivery metric on the cross-border lane degrades. Pair it with these:| Card | Why pair it with NO Export Customs Clearance Rate | What the combination tells you |
|---|---|---|
| Nordic Export OTD (NO to SE/DK/FI) | The Nordic cross-border delivery outcome. | Sweden / Denmark / Finland clearance is lighter (closer customs cooperation); EU clearance failures hit OTD harder. |
| Exception Rate | Customs holds surface as tracking exceptions. | A customs-hold spike in the exception feed is the leading indicator for this dial dropping. |
| Avg Transit (days) | Border stalls add days to end-to-end transit. | Transit creep on EU lanes with no domestic creep isolates the cause to customs. |
| On-Time Delivery Rate | The aggregate delivery outcome. | A customs-driven EU stall pulls the headline OTD down only on the export slice; the route split shows where. |
| Shipments by Destination | Which EU lanes carry your export volume. | Tells you which destination’s clearance failure costs the most. |
Cross-connector: shopify.refund_rate | Downstream impact of stuck cross-border parcels. | A customs-clearance dip precedes a refund-rate rise on international orders at 7 to 14 days. |
Reconciling against the vendor’s own dashboard
Where to look in Bring’s own portal: Mybring is the merchant-facing portal. Navigate to Tracking to read the customs lifecycle on an individual held consignment (theexport_customs_started, customs_held and export_customs_cleared events carry reason text), and to Statistics → Cross-Border Performance for the aggregate clearance view. For the document itself, the Customs / Tolldokument section of the booking shows the generated declaration and any validation errors Bring flagged before lodging it.
The closest like-for-like view is Cross-Border Outbound, Origin Norway, Destination EU, Last 30 Days, Customs Outcome.
Why our number may legitimately differ from Mybring:
| Reason | Direction | Why |
|---|---|---|
| Export vs import clearance scope | Either | This card measures Norwegian export clearance (the tolldokument leg) only. Mybring’s cross-border report may blend export and destination-import clearance into one number; import holds in Germany or Poland are a separate gate. |
| Three-day window definition | Either | The card clocks three calendar days from terminal departure. If Mybring measures from booking, from label print, or uses a different cut-off, the totals will diverge even on identical parcels. |
| Timezone (CET / CEST vs UTC) | Boundary days off | Customs scan timestamps are recorded in carrier-local time; Mybring presents Oslo local time, the card stores UTC. Across 30 days the effect is small; a single-day boundary can shift by one. |
| Tracking-event ingestion lag | Ours lower for “today” | The customs lifecycle events arrive via the tracking stream, typically minutes behind, longer at peak. A just-cleared parcel may not show export_customs_cleared in our index for a few minutes. |
| Pending parcels | Ours higher mid-period | Parcels still inside the three-day window are pending, not failures. If Mybring counts any not-yet-cleared parcel as a miss, its rate reads lower than ours mid-period; they converge as the window closes. |
| Card | Expected relationship | Causes of legitimate divergence |
|---|---|---|
shopify.refund_rate | Downstream sentiment proxy on international orders. | Refund rate has many drivers; customs stalls are one, lagged 7 to 14 days. |
shopify.unfulfilled_orders | Upstream: orders missing customs data cannot ship cleanly. | A SKU feed missing HS codes shows here as fulfilment friction before it shows as a customs stall. |