Inventory Management

Shipment & Delivery Tracking Sheet

Monitor shipments, delivery dates, and logistics performance in real-time

Get this built around your data

✓ Free to download  ·  ✓ Excel 2016+ and Google Sheets  ·  ✓ Custom version in 24h

Tracking shipments in a spreadsheet is worth doing only if it answers the question a customer actually asks: is it late, and by how much. This template keeps promised and actual dates side by side so that is a formula.

What the worksheet looks like

The actual columns, with sample rows

Shipments sheet with promised versus actual, so lateness is derived.
ABCDEFG
1ShipmentCarrierPromisedActualDays lateStatus
2SH-8841DPD2026-07-042026-07-040On time
3SH-8842UPS2026-07-052026-07-083Late
4SH-8843DPD2026-07-062In transit
5SH-8844DHL2026-07-092026-07-08-1Early

The formulas that do the work

Why each one is written the way it is

  • =IF([@Actual]="", MAX(0,TODAY()-[@Promised]), [@Actual]-[@Promised]) Days late for delivered and in-transit shipments alike. An undelivered shipment past its promise date is late now, not once it eventually arrives.
  • =IFS([@Actual]="","In transit", [@[Days late]]>0,"Late", [@[Days late]]<0,"Early", TRUE,"On time") Status derived from the dates, so it cannot contradict them.
  • =COUNTIFS(Ship[Carrier],[@Carrier],Ship[Status],"Late")/COUNTIFS(Ship[Carrier],[@Carrier]) Late rate per carrier — the figure to take into a rate negotiation.
  • =AVERAGEIFS(Ship[Days late],Ship[Carrier],[@Carrier],Ship[Status],"Late") Average lateness when a carrier is late. A carrier that is late 5% of the time by four days is worse than one late 12% of the time by half a day.

Choosing a carrier on the right number

A worked example with real numbers

A retailer was about to switch carriers on a 4% price difference. The tracking sheet showed the cheaper carrier late on 11% of shipments by an average of 3.4 days, against 4% by 0.8 days. At their volume the difference was roughly 60 additional late deliveries a month — more support contacts than the saving covered. They stayed, and used the numbers to negotiate 6% off instead.

What is in the workbook

Tab by tab

Every tab in the workbook and what it is for.
TabContents
ShipmentsOne row per shipment with promised and actual dates.
CarriersCarrier reference with service levels and rates.
ExceptionsFailed deliveries, returns and claims.
DashboardLate rate and average lateness by carrier and month.
READMEWhere tracking numbers and delivery confirmations come from.

Features and related templates

What is included, and what to look at next

What it does

  • Shipment status tracking
  • Delivery date monitoring
  • Carrier performance metrics
  • Route optimization
  • Delivery confirmation
  • Exception handling
  • Cost tracking
  • Performance analytics

Need it adapted?

  • Built around your own data and column names
  • Connected to your source system
  • Delivered within 24 hours

Questions about this template

Specific to this workbook, not generic

Can it pull live tracking status?

Most carriers publish a tracking API. Fetching status on a schedule is a small Apps Script project; without it, the actual date is entered on delivery confirmation.

Should the promised date be the carrier's or ours?

Yours — the date you gave the customer. Measuring against the carrier's estimate tells you about the carrier; measuring against your promise tells you about the customer's experience.

How do I handle a lost shipment?

Mark it as an exception with a reason rather than leaving it in transit forever. Otherwise the days-late figure grows indefinitely and distorts the carrier averages.

"This tracking system has revolutionized our logistics operations. We've improved our on-time delivery rate by 35% and significantly reduced shipping costs."

- Thomas R., Logistics Manager