Upload & Map Data

Bring your inventory data in as CSV files. The first file powers ABC, Excess Stock + DIO and Safety Stock. The second file is dedicated to Forecasting because it needs a longer history and a sales-type filter.

Operational data — ABC, Excess Stock + DIO, Safety Stock

This single file is enough for the first three tools. It gives us value, turnover, current stock and context so we can classify items, flag excess, and run the safety-stock analysis.

Required columns

  • item_codeItem coderequiredUnique key for the item — one row per item.
  • item_descriptionItem descriptionrequiredUsed for readable outputs and exports.
  • sales_value_6mLast 6 months sales valuerequiredTotal value sold over the period, in one currency.
  • sales_qty_6mLast 6 months sales quantityrequiredTotal units sold — drives the turnover-based tier.
  • current_stock_qtyCurrent stock quantityoptionalLets ABC show where money sits versus where it moves.
  • unit_costUnit costoptionalTurns stock quantity into stock value for cross-analysis.
  • categoryCategory / product groupoptionalEnables ABC within each group instead of one global list.
  • locationLocation / warehouseoptionalClassify per site when stock is held in several places.
  • uomUnit of measureoptionalKeeps quantities readable in outputs (EA, KG, CTN).

Sample data

item_codeitem_descriptionsales_value_6msales_qty_6mcurrent_stock_qtyunit_costcategorylocationuom
SKU-1001Steel Bolt M8 x 4018450092250184001.85FastenersDXB-MAINEA
SKU-1002Hydraulic Hose 1/2in96300321054022.40HydraulicsDXB-MAINEA
SKU-1003Bearing 6204 ZZ41250550021005.10BearingsAUH-DCEA
SKU-1004Grease Cartridge 400g8750125031004.90LubricantsDXB-MAINEA
SKU-1005Filter Element FE-22013204486021.00FiltrationAUH-DCEA

Forecasting data — 24-month history + sales type

Forecasting needs a time series. Upload the last 24 months of sales quantity per item, tagged by sales type. The Forecast tool will then let you choose which types (e.g. Actual) represent real demand and which to ignore (e.g. Returns, Promotions).

Required columns

  • item_codeItem coderequiredMust match the operational file if you later merge results.
  • item_descriptionItem descriptionrequiredReadable name used in forecast exports.
  • sales_typeSales typerequiredClassify each row, e.g. Actual, Promotion, Return, Intercompany, Sample.
  • month_1 ... month_24Last 24 months sales quantityrequiredOne column per month, oldest to newest. Quantity is the recommended unit.

Sample data

Recommended layout: one row per item + sales-type combination. The example below shows one item with both regular Actual demand and a separate Promotion row. In the Forecast tool you will choose which sales types count as true demand.

item_codeitem_descriptionsales_typem1m2m3...m22m23m24
SKU-1001Steel Bolt M8 x 40Actual120011501300...16501720
SKU-1001Steel Bolt M8 x 40Promotion00800...00
SKU-1002Hydraulic Hose 1/2inActual808582...112115

The full file contains 24 monthly columns (m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24). Long-format uploads (date, quantity, sales_type) can be supported later.

Order book history — Supplier Performance

One row per PO line receipt. This file feeds the Supplier Performance page: on-time, in-full (OTIF), lead-time reliability and the supplier-by-month matrix. Upload at least 6 months of closed PO lines — 12 months is strongly preferred so seasonality and one-off bad months do not distort the score. Partial receipts against the same PO line should each get their own row; the tool lets you decide whether to score them as one commitment or separately.

Required columns

  • po_numberPO numberrequiredPurchase order reference.
  • line_numberPO line numberrequiredPO number + line number is the unique key for a delivery commitment.
  • item_codeItem coderequiredMust match the operational file so results can be linked to ABC classes.
  • supplier_codeSupplier coderequiredUnique supplier key used for grouping.
  • supplier_nameSupplier nameoptionalReadable name shown in charts and the matrix (optional; supplier code is used if blank).
  • order_dateOrder dateoptionalDate the PO line was placed — used to measure actual lead time (optional).
  • requested_dateRequested delivery daterequiredThe date you asked for. On-time is measured against this date.
  • delivered_dateActual delivery daterequiredLeave blank for open lines — they are excluded until received.
  • order_qtyOrdered quantityrequiredQuantity committed on the PO line.
  • delivered_qtyDelivered quantityrequiredQuantity actually received. Partial receipts get one row each.
  • supplier_lead_time_daysAgreed supplier lead time (days)optionalContracted lead time — lets us compare promised versus actual.
  • po_typePO typeoptionalStandard, Urgent, Backorder… lets you exclude rush orders from scoring.
  • destination_locationDestination locationoptionalWarehouse or site — enables performance per delivery point.
  • buying_priceBuying priceoptionalOptional. Lets OTIF be weighted by value instead of line count.

Sample data

po_numberline_numberitem_codesupplier_codesupplier_nameorder_daterequested_datedelivered_dateorder_qtydelivered_qtysupplier_lead_time_dayspo_typedestination_locationbuying_price
PO-402311SKU-1001SUP-100Gulf Fasteners LLC2026-01-052026-01-262026-01-2550050021StandardDXB-MAIN1.82
PO-402312SKU-1003SUP-100Gulf Fasteners LLC2026-01-052026-01-262026-02-0230018021StandardDXB-MAIN5.05
PO-402312SKU-1003SUP-100Gulf Fasteners LLC2026-01-052026-01-262026-02-1130012021StandardDXB-MAIN5.05
PO-402881SKU-1002SUP-210Hydro Parts Co2026-01-122026-02-162026-02-2412012035UrgentAUH-DC21.90
PO-403101SKU-1004SUP-440Lubritech Trading2026-02-022026-02-232026-02-2140042021StandardDXB-MAIN4.85