Six carriers, two quarterly contract renegotiations, and the question is always the same: "which one is the best?". "Best" is subjective, but the Netorigo Logistics carrier-performance dashboard tries to pin down four numbers per carrier so procurement does not negotiate on vibes.
The four metrics that matter
- On-time delivery %: what share of dispatched parcels arrived within the SLA. The definition differs slightly per carrier (DHL Express 24h, MPL "next business day", Foxpost "in-locker within 48h"), so we store the commitment in
carrier_sla_definitionsand calculate per carrier. - Exception rate: what share of shipments hit an exception state (failed_delivery, customer_not_home, address_invalid, damaged_in_transit). This is the "how much do we need to babysit" measure.
- Damage claim ratio: what share of shipments ended in a damage claim. This is the "how much does the carrier's mistakes cost us in post-incident work".
- COD-settlement lag: average days delay between cash-on-delivery collection and remittance. Direct cash-flow impact.
These four sit on a per-carrier scorecard, refreshed monthly. Plus a weekly dashboard for quick exceptions.
The weekly dashboard
The weekly view is operational: 7-day on-time rate, daily exception graph, list of damaged/lost shipments (with drill-down). The logistics manager needs to see this daily in case something tips over.
The on-time threshold is 95%. If a carrier drops below it for a week, an automatic alert fires to Slack, email or a webhook. One of our partners CC's their CTO on the alert because their NPS is tied directly to delivery experience.
The monthly scorecard
The monthly view is for the procurement team. PDF report with four numbers per carrier plus year-on-year comparison. The "changes" section flags +/- shifts ("MPL exception rate +2.1 pp", "GLS COD-settlement -1.3 days"). This feeds into quarterly carrier renegotiation prep.
The CSV export delivers the same data machine-readable, so procurement can drop it into their own pricing models in Excel.
The real story, March 2026
A mid-tier carrier (one of the six) saw exception rate jump from 0.8% to 3.4% on the first Monday of March. The alert fired at 09:00. Our logistics lead was on the phone with the carrier's account manager that afternoon and learned that a regional depot had lost two dispatchers to extended sick leave at the same time, and the remaining team was overwhelmed. The fix: we temporarily paused new shipment allocation to that carrier in WarehouseShippingPolicyService and rerouted volume to two other carriers. Within 6 days the carrier's exception rate was back to 1.1% and we restored volume.
Without the dashboard the issue would have run for 3-4 weeks before the partner's support team felt the "my parcels are late" complaint wave.
What is deliberately NOT on the scorecard
Cost-per-shipment. On purpose. Pricing lives in the contract negotiation, and partners want to run their own buying tactics; we do not want the Logistics dashboard "objectively" declaring a cheapest carrier. Procurement uses their own price sheet alongside our CSV export.
Delivery-customer-satisfaction either. That is too close to the webshop NPS and should be measured on the webshop side, not in Logistics.
The scale question
The dashboard works from 100 shipments onward but becomes statistically meaningful at 1000+. For smaller partners (50 orders/day) the monthly volume is roughly 1500 shipments, enough to estimate on-time rate reliably. For larger ones (5000 orders/day) weekly numbers are reliable too, so they can react faster.