EnableYourData.com

KPI · Logistics

Dock-to-stock time: formula and example.

Dock-to-stock time is the time between a delivery arriving at the dock and the goods being in their location and available to sell in the system. It covers unloading, checking, booking in and putaway. Until goods are put away you cannot sell them, even though they are already in your warehouse.

Dock-to-stock time formula

Sum of (time in stock − time of arrival) across receipts ÷ number of receipts

Worked example

In May 2026 Acme Groothandel processed 120 inbound deliveries. Together they took 1,080 hours from arrival to stock. The average dock-to-stock time is 1,080 ÷ 120 = 9 hours.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A shorter dock-to-stock time means new stock is available for orders sooner and back orders ship sooner. Peaks often appear when many deliveries arrive at once or when the delivery note does not match the purchase order. Compare by supplier, day of the week and delivery type with your own earlier periods.

Pitfalls with dock-to-stock time

  • Starting the clock at unloading rather than arrival, so time waiting at the dock is missed.
  • Leaving deliveries with discrepancies out of the average, when they take the longest.
  • Treating booking in as the end point while the goods are not yet in their location.

SQL & DAX

Calculating dock-to-stock time in SQL and DAX

Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.

SQL · PostgreSQL
SELECT date_trunc('month', arrived_at) AS month,
       COUNT(*) AS receipts,
       ROUND(AVG(EXTRACT(epoch FROM stocked_at - arrived_at) / 3600)::numeric, 1) AS avg_dock_to_stock_hours,
       COUNT(*) FILTER (WHERE stocked_at - arrived_at > interval '24 hours') AS over_24_hours
FROM receipts
WHERE stocked_at IS NOT NULL
GROUP BY 1
ORDER BY 1;
DAX · Power BI
Stocked Receipts = CALCULATE(COUNTROWS(Receipts), NOT ISBLANK(Receipts[StockedAt]))
Dock to Stock (hours) = DIVIDE(SUMX(FILTER(Receipts, NOT ISBLANK(Receipts[StockedAt])), DATEDIFF(Receipts[ArrivedAt], Receipts[StockedAt], MINUTE)) / 60, [Stocked Receipts])

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for dock-to-stock time per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.

Read more →

In your Power BI dashboard

Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.

Read more →

Custom dashboards (pilot)

Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.

Read more →

Monthly targets

With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.

Read more →

FAQ

Frequently asked questions

What is dock-to-stock time?

Dock-to-stock time is the time from a delivery arriving to the goods being available to sell from stock. It measures how quickly goods-in works. The shorter it is, the sooner new stock is available for orders.

How do you calculate dock-to-stock time?

For each receipt, subtract the arrival time from the time the goods were booked into their location. Take the average across all receipts in the period. Also count how many receipts take longer than your own target.

How do you reduce dock-to-stock time?

Ask suppliers for an advance shipping notice listing what is on the delivery, so you can prepare. Spread deliveries across the day in time slots and spot-check reliable suppliers instead of checking everything. Handle discrepancies separately so the rest of the delivery does not have to wait.

Use AI on your own data. Securely, and without the headache.

In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.