D-CAT Group ↗ Contact ENTRDEESAZ
Start a 4-week pilot

Solutions · by department · supply chain & inventory

Supply chain: the order, the shelf and the supplier, read every morning

Chief supply chain officer (service level, inventory, cost to serve) · supply and inventory planners (days of cover, stock-outs, excess) · purchasing manager (supplier on-time, lead time, expedites) · distribution-centre and branch managers (their own cut) · CIO (the ERP, the warehouse system and the carrier feed are three systems with three edges; the model states each). The buyer is the supply chain head with the CFO; the daily reader is the planner.

How the three agents on this page read one semantic modelOne semantic model on the left; three scheduled agents in the middle - Chief Supply Chain Officer Agent, Inventory Health Agent, Supplier Performance Agent; each publishes findings, recommendations and a brief on the right.semantic modelimported from Axoria Data Studioorder_lineslines_otifotif_ratelines_on_timelines_in_fullChief Supply ChainOfficer Agentmonthly on the 3rd · 06:00FfindingRrecomm.BbriefInventory Health Agentweekly · Monday 05:30FfindingRrecomm.BbriefSupplier PerformanceAgentmonthly on the 3rd · 06:30FfindingRrecomm.Bbriefevery number in a record carries an evidence address

Questions

The questions the head of supply chain asks every month

  • Where did we miss OTIF — customers, distribution centres, carriers — and was it stock, capacity or transport?
  • Which SKUs drove forecast error, and what shortage or excess resulted?
  • How much inventory do we hold against plan, where is it ageing, and what is the excess exposure?
  • Which suppliers slipped lead time or fill, and what did expediting cost?

In conversation

Sample questions people type into the conversation

deepen path — the finding's evidence is carried frozen; a new number needs a new query, and the agent says so

  • "Break DC East's August OTIF misses down by customer segment."
  • "Which branch carries the A-class stock-out days?"
  • "Show slow-moving stock value by supplier range."
  • "Did the two late suppliers also slip in August 2025?"
  • "How current is the stock snapshot?"

Personas

Three example agents

The agents below are examples for this department, not a fixed set: Chief Supply Chain Officer Agent · Inventory Health Agent · Supplier Performance Agent. Each one’s scheduled run is shown in the example sets that follow.

Set 1

Chief Supply Chain Officer Agent

Audience: chief supply chain officer, CFO, distribution-centre managers.

Set 2

Inventory Health Agent

Audience: inventory planners, branch managers.

Set 3

Supplier Performance Agent

Audience: purchasing manager, supply planners.

An agent's name says which measures it reads and for whom. It holds none of the role's authority: it does not decide, approve or act.

Agents for the topics you choose

An agent is a job description, a bound semantic model and a schedule — not code — so the topics it watches are yours to set: a payer, a service line, a campaign, a supplier. We write the first ones with you.

Build your agents with us →

Example sets

Three example sets, one run each

Each set is one agent persona and one scheduled run’s output — the brief, the recommendations and the findings they rest on — in the product’s own record envelope. The first set is open; the other two are collapsed. The model and the measures the sets assume are listed at the foot of the page.

IllustrativeSet 1Chief Supply Chain Officer Agent
Persona
Produces the monthly briefing for the supply chain head of a distributor of electrical and plumbing products — two distribution centres, six branches, 11,400 active SKUs, sales in €; separates a service miss into where it happened and which half of "on time, in full" failed, and an inventory rise into fast movers and slow. · Audience: chief supply chain officer, CFO, distribution-centre managers. · Tone: direct, number-led; states which feed a ratio was built on. · Output language: en
Signals it watches
(1) OTIF by distribution centre and customer segment, with the line base. (2) Inventory days against sales growth — stock rising faster than sales is a finding even when sales rise. (3) Slow-moving share of stock value. (4) Logistics cost ratio, stamped provisional while the freight-invoice feed is incomplete. (5) Two stars side by side — order lines from the warehouse system, stock from the ERP — compared in the sentence, never by a join the model does not have.
Thresholds it was given
finding 10 % · critical 30 % · ratio metrics (OTIF, shares, days) 2 points, critical 6 points · minimum share 5 % of order lines · severity rule: medium when a threshold is crossed, high when a ratio metric moves more than 1.25× its threshold or a count metric more than 1.5× the finding threshold, critical above the critical threshold; an ongoing topic keeps the severity it was given · override: a below-threshold move that has held its direction for three runs is published at low as a watch item

Run header

  • Scheduled monthly on the 3rd, 06:00, Europe/Amsterdam
  • Period: August 2026 vs August 2025 — equal calendar days (31), equal working days (21)
  • Data complete through 2026-09-02, measured via max(SHIP_DATE) for orders and max(STOCK_DATE) for inventory, 5 hours ago; the freight-invoice feed is complete through 2026-08-12 and declares a three-week lag
  • Scope: both distribution centres, all six branches; no row-level rule is bound to this agent
  • Model: the workspace's approved model, written onto the run
  • Cost: recorded on the run
Brief

August 2026: OTIF 94.20 % → 90.80 % on 51,004 Lines, DC East at 87.10 % — Inventory Days 61.2 → 68.9 With Slow Movers 11.4 % of Value; Logistics Cost Ratio 4.71 %, Provisional

Assumptions strip

You did not state a period; last full month (August 2026) was assumed against August 2025. Orders and stock are two stars in this model; comparisons between them are built in the sentence, not by a join. The logistics ratio is built on an incomplete invoice feed and is stamped provisional (trust B).

More lines shipped and fewer of them arrived on time and complete: OTIF fell from 94.20 % to 90.80 % on 51,004 lines, and DC East carries 99.31 % of the additional misses, at 87.10 % on 55.00 % of the month's lines against DC West's 95.33 %; whether East's misses were late or short cannot be told while the feed sends one flag. Stock grew 15.75 % against sales growth of 5.80 %, taking inventory days from 61.2 to 68.9, and the growth is in stock that has not sold for six months — 11.4 % of value, up from 8.1 % — while A-class cover fell. Logistics cost reads 4.71 % of sales against 4.38 %, provisional until the carrier invoices complete.

covers: Finding 1, Finding 2, Finding 3

— Run: monthly, the workspace's approved model, data complete through 2026-09-02 (freight through 2026-08-12). Guard Ledger: held 1 — candidate f-04 (margin lost on late lines), reason numeric_provenance: an op declared with a margin operand that no envelope holds; duplicate 1 — candidate f-05 (OTIF restated by carrier) merged into Finding 1 on a fingerprint match (metric otif_lines + period + cell); trust downgrade 1 — Finding 3 stamped B (weakest evidence: freight_invoices envelope incomplete); not_selected 0.

Recommendation 1

Ask the warehouse-system owner to send the on-time and in-full flags separately; until then, break DC East's August misses down by customer segment and by supplier-of-record for the SKU

based_on: Finding 1 · owner: DC East manager, with supply planning

A service miss that cannot be split into "late" and "short" cannot be assigned to transport or to stock. The second flag is a feed change, not a model change. Until it arrives, the segment and supplier cuts — both in this model — will show whether the misses cluster on SKUs whose supplier also slipped (Set 3) or on customers with a particular delivery window.

The findings this rests on

Finding 1

OTIF 94.20 % → 90.80 % of Order Lines (45,414 of 48,210 → 46,312 of 51,004; −3.40 Points) While Lines +5.80 % — DC East at 87.10 % on 55.00 % of Lines Against DC West 95.33 %

severity criticaldirection downnovelty newtrust Abreakdown DISTRIBUTION_CENTRE = East

In August 2026 the company shipped 51,004 order lines against 48,210 a year earlier (+5.80 %); 46,312 of them were on time and in full (90.80 %) against 45,414 (94.20 %) — a 3.40-point fall, 1.70× the 2-point ratio threshold. The miss is not spread evenly: DC East handled 28,052 lines (55.00 % of the month) at 87.10 % OTIF (24,433) against 93.55 % (25,178 of 26,914) a year earlier — a 6.45-point fall, above the 6-point critical line for the finding's cell (severity critical) — while DC West handled 22,952 at 95.33 % (21,879) against 95.02 % (20,236 of 21,296). Of the 1,896 additional missed lines, DC East carries 1,883 (99.31 %). Volume grew at both centres; service fell at one. On time and in full arrive as one flag in this model — the warehouse system carries both, the feed sends one — so which half failed at DC East cannot be separated here.

Recommendation 2

Break the slow-moving stock value down by supplier range and by last-receipt month, and put open purchase orders beside it once they are in the model

based_on: Finding 2 · owner: inventory planner, with the purchasing manager

Slow stock that is still being received is the exposure that grows. The supplier-range and last-receipt cuts are in this model; open purchase commitments are not and would have to be read from the ERP beside the record.

The findings this rests on

Finding 2

Inventory Days 61.2 → 68.9 (+12.58 %) While Sales +5.80 %: Stock Value 14.6 → 16.9 M € (+15.75 %), Slow-Moving Share of Value 8.1 % → 11.4 % (+3.3 Points) — Fast Movers' Days Fell

severity highdirection upnovelty newtrust Abreakdown ABC_CLASS = C

Month-end stock stood at 16.9 M € against 14.6 M € a year earlier (+15.75 %) while net sales grew 5.80 %, so inventory days rose from 61.2 to 68.9 (+12.58 %, 1.26× the 10 % finding threshold). The growth sits in the slow end: stock with no sales in 180 days rose from 8.1 % (1.18 M €) to 11.4 % (1.93 M €) of value — a 3.3-point rise, 1.65× the 2-point ratio threshold, the finding's cell and its severity (high); +40.74 % relative — while A-class days of cover fell from 24.1 to 22.7. The company is holding more of what does not sell and less of what does. Open purchase commitments are not in this model, so how much more slow stock is already on order cannot be read here.

Also published in this run, with no recommendation resting on it

Finding 3

Logistics Cost 4.38 % → 4.71 % of Net Sales (+7.53 % Relative) — Provisional: the Freight-Invoice Feed Carries 78 % of August's Expected Invoices

severity lowdirection upnovelty newtrust Bbreakdown COST_TYPE = Transport

Logistics cost as a share of net sales reads 4.71 % for August against 4.38 % a year earlier, a +7.53 % relative move below the 10 % finding threshold on its own; it is published at low under the three-run watch override, and because the reader needs to know the ratio is provisional: the carrier-invoice feed declares a three-week lag and has delivered 1,204 of the 1,544 invoices expected for August (77.98 %). The record carries trust tier B for that reason and the ratio will be re-read when the feed completes. The transport-versus-warehousing split is in this model and shows transport carrying the rise; the lane cut was not opened this run.

What this run could not see.

The second OTIF flag. Open purchase commitments. Freight invoices after 12 August. The lane cut of transport cost was not opened this run.

IllustrativeSet 2Inventory Health Agent
Persona
Reads the shelf for the planners and branch managers of the same distributor, weekly: stock-out days on the SKUs that matter, excess on the ones that do not, and whether the count in the system matches the count on the shelf. · Audience: inventory planners, branch managers. · Tone: plain and operational. · Output language: en
Signals it watches
(1) A-class stock-out days as a share of SKU-branch-days, by branch. (2) Excess stock — value with more than 180 days of cover — by supplier range. (3) Cycle-count accuracy by branch, as a data state when a branch posts no counts. (4) Days of cover by ABC class against the planning tool's target. (5) Ageing — stock by last-receipt month.
Thresholds it was given
finding 15 % · critical 40 % · ratio metrics (stock-out share, accuracy) 1 point · minimum share 3 % of stock value · severity rule: medium when a threshold is crossed, high when a ratio metric moves more than 1.25× its threshold or a count metric more than 1.5× the finding threshold, critical above the critical threshold; an ongoing topic keeps the severity it was given

Run header

  • Scheduled weekly, Monday 05:30, Europe/Amsterdam
  • Period: week 37 of 2026 (7–13 September) vs week 33 (10–16 August) — equal days (7), equal trading days (6)
  • Data complete through 2026-09-13, measured via max(STOCK_DATE), 30 hours ago (the stock snapshot is nightly; Sunday's is the edge)
  • Scope: all six branches; both distribution centres
  • Model: the workspace's approved model
  • Cost: recorded on the run
Brief

Week 37 2026: A-Class Stock-Outs 2.10 % → 3.90 % of SKU-Branch-Days, Branch 4 Holds 41.40 % — Excess Stock +20.31 % to 2.31 M €, Two Ranges 61.47 % of It; Branch 2 Posted No Counts

Assumptions strip

You did not state a period; the last complete week (week 37, 7–13 September 2026) was compared with week 33. Sunday's nightly snapshot is the edge. Branch 2's missing cycle counts are recorded as a data state, not a finding.

A-class stock-outs rose while excess stock grew. A-class stock-out days rose 85.59 % in four weeks, from 2.10 % to 3.90 % of SKU-branch-days, and branch 4 holds 41.40 % of them on 16.67 % of the base. Excess stock grew 20.31 % to 2.31 M € while the C-class it belongs to fell 4.33 %, and 61.47 % of the excess sits in two supplier ranges whose minimum order quantities the model does not carry. Branch 2 posted no cycle counts this week, so its record accuracy is unmeasured rather than unchanged.

covers: Finding 1, Finding 2

— Run: weekly, the workspace's approved model, data complete through 2026-09-13. Guard Ledger: held 0; data state 1 — cycle_count_accuracy returned 0 rows for Branch 2 in week 37; structural drop 1 — candidate r-03 (a Branch 2 recommendation resting only on the data state) dropped at gate 0; duplicate 0; not_selected 0.

Recommendation 1

Break branch 4's A-class stock-out days down by SKU and by open-purchase-order status

based_on: Finding 1 · owner: branch 4 manager, with the purchasing manager

A stock-out on a SKU that is on order is a lead-time question; one on a SKU that is not on order is a replenishment-parameter question. The cut is in this model and costs one query.

The findings this rests on

Finding 1

A-Class Stock-Outs 2.10 % → 3.90 % of SKU-Branch-Days (1,006 → 1,867 of 47,880; +85.59 % Relative) — Branch 4 Holds 41.40 % of the Stock-Out Days

severity criticaldirection upnovelty newtrust Abreakdown BRANCH = Branch 4

Across 1,140 A-class SKUs, six branches and seven days — 47,880 SKU-branch-days — 1,867 were stock-out days in week 37 (3.90 %), against 1,006 in week 33 (2.10 %): a 1.80-point rise, 1.80× the 1-point ratio threshold, and +85.59 % relative, above the 40 % critical threshold (severity critical). Branch 4 carried 773 of the 1,867 (41.40 %) on 16.67 % of the SKU-branch-days (7,980 of 47,880); the other five branches are between 2.2 % and 3.4 %. Whether the branch 4 stock-outs are SKUs on order or SKUs not ordered is in the open-purchase-order status dimension, which this model carries and which the agent did not open in this run because the budget went to the excess axis.

Recommendation 2

Put the two supplier ranges' excess value on the weekly watch with their last-receipt month, and ask purchasing whether a minimum order quantity applies

based_on: Finding 2 · owner: inventory planner, with the purchasing manager

The watch will show whether the excess is still being received; the agent will stamp it ongoing rather than alert weekly. The minimum order quantity is not in the model; purchasing reads the supplier agreement beside the record.

The findings this rests on

Finding 2

Excess Stock (Cover > 180 Days) 1.92 → 2.31 M € (+20.31 %) — 61.47 % of It in Two Supplier Ranges, While C-Class Total Value Fell 4.33 %

severity mediumdirection upnovelty ongoingtrust Abreakdown SUPPLIER_RANGE = the two named ranges

Stock with more than 180 days of cover stood at 2.31 M € on 13 September against 1.92 M € four weeks earlier (+20.31 %, 1.35× the 15 % finding threshold — severity medium; the topic was first reported two runs ago at medium and is stamped ongoing). Two supplier ranges hold 1.42 M € of the 2.31 (61.47 %). The C-class total, of which excess is a part, fell from 6.24 to 5.97 M € (−4.33 %) in the same window, so the excess share of the class rose from 30.77 % to 38.69 %: the class is shrinking while its excess grows. This data cannot say whether the two ranges' excess is a minimum-order-quantity effect or a demand collapse: the supplier's minimum order quantity is not a metric in this model.

Data state

Data state (not a finding): Branch 2 posted no cycle counts in week 37; its inventory record accuracy has no value for the week. No severity, no recommendation rests on it; the branch manager and the model owner are notified.

What this run could not see.

Open-purchase-order status for branch 4 (in the model, not opened this run). Supplier minimum order quantities (not in the model). Branch 2's cycle counts.

IllustrativeSet 3Supplier Performance Agent
Persona
Reads the inbound side for the purchasing manager of the same distributor: receipts against promise dates, lead-time drift, and expedited orders placed beside the suppliers whose SKUs they were for — without saying that one caused the other. · Audience: purchasing manager, supply planners. · Tone: formal, exact. · Output language: en
Signals it watches
(1) Supplier on-time delivery on the receipt base, with the late count. (2) Concentration — how few suppliers carry the late receipts. (3) Lead-time drift on those suppliers, promised versus actual. (4) Expedited orders, month over month, and their supplier split. (5) Incoming-quality rejects where the warehouse records them.
Thresholds it was given
finding 10 % · critical 40 % · ratio metrics (on-time rate) 2 points · minimum share 3 % of receipts for a supplier to be named · severity rule: medium when a threshold is crossed, high when a ratio metric moves more than 1.25× its threshold or a count metric more than 1.5× the finding threshold, critical above the critical threshold; an ongoing topic keeps the severity it was given

Run header

  • Scheduled monthly on the 3rd, 06:30, Europe/Amsterdam
  • Period: August 2026 vs August 2025 — equal working days (21)
  • Data complete through 2026-09-02, measured via max(RECEIPT_DATE), 5 hours ago
  • Scope: both distribution centres; freight cost is outside this agent's scope
  • Model: the workspace's approved model
  • Cost: recorded on the run
Brief

August 2026: Supplier On-Time 91.30 % → 86.70 % on 3,655 Receipts, Two Suppliers Hold 58.23 % of Late Receipts With Lead Time +54.03 % — Expedites +71.43 %, 66.67 % for the Same Suppliers' SKUs

Assumptions strip

You did not state a period; last full month (August 2026) was assumed against August 2025. The promise date is the supplier's acknowledged date. Freight cost is outside this agent's scope; a draft cost figure was held.

Inbound service fell and the fall is concentrated in two suppliers: on-time receipts dropped from 91.30 % to 86.70 % on a base that grew 7.12 %, and two suppliers carry 58.23 % of the 486 late receipts, their lead time up 54.03 % to 19.1 days while three other top-ten suppliers improved. Expedited orders rose 71.43 %, and 66.67 % of them were for the same two suppliers' SKUs — a pairing the record shows and badges interpretive, because the flag says an order was rushed, not why. What the rushing cost is not in this agent's scope.

covers: Finding 1, Finding 2

— Run: monthly, the workspace's approved model, data complete through 2026-09-02. Guard Ledger: held 1 — candidate f-03 (premium freight), reason numeric_provenance: token about 40 k€ needs a freight-cost operand that is outside this agent's scope; claim-check 1 — candidate f-02's "the expedites are covering the lateness" badged interpretive, not held; duplicate 0; not_selected 0.

Recommendation 1

Put the two suppliers' promised-versus-actual receipt dates on a weekly watch by purchase order, and break their late receipts down by SKU family

based_on: Finding 1, Finding 2 · owner: purchasing manager

A weekly watch will show whether the lead-time drift is settling or widening, and the SKU-family cut whether it touches the A-class SKUs behind branch 4's stock-outs (Set 2 — the two agents read the same SKU dimension, and the comparison is built in the sentence). The agent will stamp the topic ongoing rather than alert weekly.

The findings this rests on

Finding 1

Supplier On-Time Delivery 91.30 % → 86.70 % of Receipts (297 Late of 3,412 → 486 Late of 3,655; −4.59 Points) — Two of the Top Ten Suppliers Hold 58.23 % of Late Receipts, Their Lead Time 12.4 → 19.1 Days (+54.03 %)

severity criticaldirection downnovelty newtrust Abreakdown SUPPLIER = the two named suppliers

Of 3,655 receipts in August 2026, 486 arrived after the promised date (86.70 % on time) against 297 of 3,412 (91.30 %) a year earlier — a 4.59-point fall, 2.30× the 2-point ratio threshold, on a receipt base that grew 7.12 %. The lateness is concentrated: two suppliers among the top ten by receipts, 22.60 % of receipts (826 of 3,655), account for 283 of the 486 late receipts (58.23 %), and their mean lead time from order to receipt moved from 12.4 to 19.1 days (+54.03 %, above the 40 % critical threshold for the finding's cell — severity critical); the other eight top-ten suppliers are inside threshold, and three improved. The promise date in this model is the supplier's acknowledged date; whether the company's own order timing changed is a purchase-order cut this model can produce and this run did not open.

Finding 2

Expedited Orders 84 → 144 (+71.43 %) While Receipts +7.12 % — 96 of the 144 (66.67 %) Are for the Same Two Suppliers' SKUs

severity criticaldirection upnovelty newtrust Ainterpretivebreakdown EXPEDITE_FLAG = Yes

Orders flagged expedited rose from 84 to 144 (+71.43 %, above the 40 % critical threshold — severity critical) in a month in which receipts rose 7.12 %; 96 of the 144 (66.67 %) were for SKUs supplied by the two suppliers named in Finding 1. The two facts stand side by side and the sentence "the expedites are covering the two suppliers' lateness" is interpretive and is badged so — the expedite flag records that an order was expedited, not why. Freight cost is outside this agent's scope, so what the expedites cost is not computed here; the sentence the agent drafted on it was held.

What this run could not see.

Freight cost. The company's own order-timing change (in the model, not opened). The reason behind an expedite.

Every number carries an address

In the product each figure binds to an evidence address — envelope, row, cell, check digit — and a number without one is held, not published. The anatomy of a record →

Derived figures show their operation

A change, a share or a gap is computed by the engine and carries its operands; the model never divides. How every number is proved →

AI governance is the publication layer

Eight deterministic gates, the trust tier, badged interpretation, an assumptions strip that cannot be switched off, and the Guard Ledger. Where the model can and cannot reach →

FAQ

Four questions this page is usually asked

01Our orders, stock and freight come from three systems. Does the agent join them?

Only if the imported semantic model does. Where the model holds them as separate stars, the agent compares them in the sentence and says so; it never builds a proxy join.

02What does "provisional" mean on a ratio?

The feed under one of its operands declares a lag and has not completed for the period; the record carries a lower trust tier and is re-read when the feed completes.

03Can it see pickers or drivers?

No. People are marked personal; the nearest allowed cuts are shift and crew.

04What if a branch stops posting counts?

The agent records a data state — no value, no severity — and notifies the model owner. An unmeasured branch is never read as an unchanged one.

Free data discovery study

See which of these signals your own warehouse can carry.

Send us the name of your data platform and the domain you argue about most. We read your semantic model with you and answer in writing: which of the signals on this page your model carries today, which need a change in Axoria Data Studio, and what a four-week pilot would measure. No cost, no sequence — a person replies within two working days.

What the examples assume

The data, the model and the measures behind the three sets

Nothing in a set rests on a source outside the model described here. Open what you want to reconcile.

01Assumed data sources — data the supply chain function already has

ERP (sales orders, deliveries, material master, stock levels, movements, purchase orders, goods receipts), warehouse management (inventory by location, receipts, picks, shipments, cycle counts), transport management (shipments, carriers, freight invoices), the planning tool's forecast and safety stock, supplier advance-shipping notices and order acknowledgements, carrier tracking events. Typical warehouse grain: one row per order line, receipt line or stock snapshot, daily; freight invoices weekly with a lag.

02Assumed semantic model — the minimum for the three personas
Measures
order_lines · lines_otif · otif_rate (engine-derived) · lines_on_time · lines_in_full (when the warehouse feed sends both flags) · net_sales · stock_value · stock_units · cogs_rolling · inventory_days (engine-derived) · slow_moving_value (no sales 180 days) · excess_value (cover > 180 days) · a_sku_branch_days · a_stockout_days · cycle_count_lines · cycle_count_matches · receipts · receipts_late · supplier_lead_days (avg, promised vs actual) · expedited_orders · logistics_cost · freight_invoices_received / expected.
Dimensions
order date · ship date · receipt date · stock date · distribution centre · branch · customer segment · SKU · ABC class · product family · supplier · supplier range · carrier · open-PO status · reason code where the warehouse sends one. Marked personal and never broken down by: picker or driver name (the nearest allowed cut is shift or crew).
Data edge
measured by the engine via max(ship_date) for orders and max(stock_date) for inventory; the freight-invoice feed declares its own lag and the ratio built on it is stamped provisional.
03Assumed KPIs — what supply chain leaders track
KPIDefinitionUnitTypical bandUsual breakdown
Perfect order rateon-time × complete × damage-free × documentation-accurate%median ≈ 90 % [S501][S502]customer/region · DC
On-time in full (OTIF)delivered on date with full quantity ÷ due%no cross-industry benchmark; on-time shipments best-in-class ≥ 99.5 % [S507]customer · carrier/lane
Order fulfilment cycle timeorder receipt → customer receiptdays≈ 7 median / ≈ 2 superior (secondary, unverified) [S503]channel · order type
Forecast accuracy (1 − MAPE)1 − Σ|actual − forecast| ÷ Σactual%top 95 / median 88 / bottom 80 [S505]product family · location
Inventory turnscost of sales ÷ average inventoryturns/yrmanufacturing ≈ 4.5, wholesale ≈ 6.8 (vendor, unverified) [S509]SKU/ABC class · site
Days of inventoryaverage inventory ÷ cost of sales × 365daysno public benchmark foundSKU class · site
Cash-to-cash cycleDIO + DSO − DPOdaystop 30 vs bottom 80 [S504]business unit
Fill rate (line/unit)lines shipped complete ÷ ordered%no public benchmark foundSKU · DC
Inventory record accuracylocations matching system ÷ counted%best-in-class ≥ 99.5 % [S507]DC · zone
Picking accuracyerror-free ÷ picked%best-in-class ≥ 99.68 % [S507]DC · shift
Dock-to-stock timearrival → put-awayhoursbest-in-class < 3.5 h [S507]DC · supplier
Supplier lead timepurchase order → receiptdaystop performers median 6 [S504]supplier · category
Logistics cost % of salestransport + warehousing ÷ net sales%no public benchmark foundlane/mode · DC
Excess and obsolete inventorystock beyond X months' cover ÷ total%no public benchmark foundSKU · site

Related

Where these pages lead