Skip to content
Praval Technologies

Case study

Real-time shipment, fleet & OTIF visibility

A US third-party logistics provider replaced overnight spreadsheets with a live control tower: TMS, WMS and telematics unified in Microsoft Fabric, surfaced through Power BI for OTIF, dwell and exceptions.

OTIF performance
+6.4 ptsOTIF performance86.9% → 93.3%
Exception detection lag
14 hrs → 15 minException detection lag
Average dwell time
↓22%Average dwell timeAcross the network
Reporting cycle effort
↓80%Reporting cycle effort2 FTE released to analysis

Yesterday's answers to today's questions

A Louisville-based 3PL moves roughly 9,000 shipments a week for retail and industrial clients across 8 sites, 40+ carriers, and both truckload and parcel. Leaders could describe last week accurately. Nobody could say what was happening right now. The engagement ran around four months, phased, for the Head of Supply Chain and the CDO.

Reporting ran overnight. Performance data landed each morning describing the previous day, too late to intervene on anything still in motion.

Three systems, three truths. TMS, WMS and telematics each held part of the picture, with different shipment IDs and no common definition of "on time."

Customers found out first. The client often called about a late delivery before the operations team knew there was a problem.

Analysts as a reporting factory. Two analysts spent most of each week rebuilding the same dwell and OTIF spreadsheets by hand.

Every problem found too late to fix

In freight, a problem spotted in motion is recoverable: reroute, expedite, warn the customer. A problem spotted the next morning is just a penalty and an apology.

  • 14 hrs median lag between an exception occurring and anyone noticing.
  • 86.9% OTIF against client contracts averaging a 95% commitment.
  • 2 FTE of analyst effort consumed by manual reporting each week.

The same event (a trailer sitting three hours past its appointment) under overnight reporting and under live monitoring:

Overnight batch (before)Live control tower (after)
14:20 · trailer misses its dock appointment14:20 · trailer misses its dock appointment
17:00 · dwell accumulating, nobody alerted14:35 · dwell threshold breached, alert fires
21:30 · delivery window missed14:50 · site team reprioritises the door
07:15 next day · appears in the morning report15:30 · load released, ETA recalculated
09:40 · client calls to complain first15:35 · client notified proactively
Detected after the fact · nothing recoverableDetected in 15 minutes · delivery saved

"Our reports were excellent at telling us what we'd already lost. By the time a dwell number reached me, the truck had been sitting for a shift and the customer had already noticed."

— Head of Supply Chain, Louisville-based 3PL

What "real time" had to mean in practice

We mapped every feed against the decisions it needed to support. Not everything needed to be instant, but the handful of things that did were exactly the things running on overnight batch.

  • One shipment identity across TMS, WMS and telematics.
  • One agreed definition of OTIF, dwell and exception.
  • Status refreshed in minutes, not overnight.
  • Alerts pushed to the people who can act, not just dashboards.
  • Views by site, carrier, mode and client account.
  • Client-safe reporting, without exposing other accounts.

A control tower, not another report

We unified the three feeds into one shipment-level model in Microsoft Fabric, then surfaced it in Power BI as a live board, with thresholds that fire alerts rather than waiting to be read.

One shipment spine. TMS, WMS and telematics records stitched to a single shipment ID in a Fabric lakehouse.

Thresholds that fire. Dwell, ETA slip and appointment breaches trigger alerts to the site and account owner.

One definition of OTIF. A governed semantic model ends the "whose number is right?" argument between sites and clients.

Account-safe sharing. Row-level security lets clients see their own freight, and only their own.

A network view positions every active load from telematics and carrier feeds, coloured by status: the view that replaced "let me call the carrier and find out." Beside it, the live shipment board the floor now watches, refreshed every 15 minutes, surfaces exceptions rather than burying them:

In transitAt dockDwell watchAt riskException
1,284 tracking to plan316 within appointment47 approaching threshold19 ETA past commitment6 act now

Two sites first, then the network

The definitions were agreed before a single dashboard was built: the step that usually gets skipped, and the reason the numbers went unchallenged once live.

  1. Feed audit: inventory TMS, WMS and telematics feeds; assess latency, coverage and ID overlap.
  2. Agree the metrics: lock definitions of OTIF, dwell and exception with operations, sites and account teams.
  3. Build the model: a shipment-level model in Fabric with incremental refresh and a governed semantic layer.
  4. Pilot two sites: run the live board alongside existing reports; tune thresholds against real exception traffic.
  5. Scale and retire: roll out across all eight sites, extend client views, and decommission the manual spreadsheets.

OTIF is a product, not an average: a load that arrives on time but two pallets short fails both the customer and the metric. Splitting it showed the gap was almost entirely in full, which pointed the fix at the docks rather than the road. Before the rollout, 92.4% on time × 94.0% in full gave 86.9% OTIF; after it, 96.2% × 97.0% gives 93.3%.

With one definition applied everywhere, OTIF became comparable across modes for the first time. LTL through non-core carriers was carrying most of the shortfall, which is where the next round of carrier conversations went:

ModeCoreContractBackupSpot
Truckload95.4%94.1%93.6%91.2%
LTL93.8%92.5%91.0%88.4%
Parcel96.1%95.2%94.4%92.8%
Dedicated97.2%96.4%95.8%94.6%

Problems caught while they're still fixable

The 3PL stopped reporting on freight and started running it. Exceptions surface in minutes, site teams act inside the shift, and clients hear about a delay from their provider rather than the other way round. The two analysts who used to rebuild spreadsheets now work on carrier and network analysis instead.

BeforeAfter
OTIF86.9%93.3%
Detection lag14 hours15 minutes
Average dwell—↓ 22%
Reporting effort—↓ 80%

How these are defined here. OTIF is the share of loads that arrive both inside the delivery window (on time) and complete, with no shortage or damage (in full). Dwell is the time a trailer spends at a site beyond its appointment. An exception is a dwell, ETA-slip or appointment breach past its agreed threshold.

Built on Microsoft Fabric and Power BI.