to select ↑↓ to navigate
Navgold

Navgold

Open in ChatGPT
Ask ChatGPT about this page
Open in Claude
Ask Claude about this page

Supplier Data Readiness

A pre-go-live checklist that flags suppliers whose price-and-stock data has gone stale, so purchasing decisions are not made on out-of-date supplier feeds.

Purpose

  • Used by the purchasing team before relying on supplier pricing/stock for sourcing.
  • Answers "which suppliers have stale price/stock data, and how stale?"
  • Shows item coverage and how many of those items are in stock per supplier.
  • Sorted worst-first (most days stale at the top) so the freshness backlog is obvious.

How to Access

Desk > Reports > Supplier Data Readiness, or /app/query-report/Supplier Data Readiness. Report type: Script Report. Reference DocType: Supplier Item Price and Stock.

Filters

Filter Type Required Description
Staleness Days Int No Default 7. A supplier is marked stale when its newest price/stock record is older than this many days.

Columns

Column Type Description
Supplier Link (Supplier) The non-disabled supplier being checked.
Items Int Count of Supplier Item Price and Stock rows for the supplier.
Items In Stock Int How many of those rows have stock_qty > 0.
Last Updated Datetime Most recent modified timestamp across the supplier's price/stock rows.
Days Stale Int Whole days between now and Last Updated. Rendered red when the row is stale.
Stale Check 1 if Days Stale exceeds Staleness Days, else 0.

How It Works

The report runs a single grouped query-builder aggregate over Supplier Item Price and Stock joined to Supplier, restricted to non-disabled suppliers (supplier.disabled = 0). Per supplier it computes the item count, an in-stock count via a Case summing rows where stock_qty > 0, and the latest modified timestamp via Max.

In Python, each row's days_stale is date_diff(now, last_updated) and is_stale is set when days_stale > staleness_days (default 7). Rows are then sorted by days_stale descending so the stalest suppliers surface first.

flowchart TD
  A[Supplier Item Price and Stock] --> J[join Supplier where disabled = 0]
  J --> G[group by supplier]
  G --> C1[Count rows = Items]
  G --> C2[Sum stock_qty > 0 = Items In Stock]
  G --> C3[Max modified = Last Updated]
  C3 --> D[days_stale = date_diff now, Last Updated]
  D --> S{days_stale > staleness_days?}
  S -- yes --> ST[Stale = 1 - days red]
  S -- no --> OK[Stale = 0]
  ST & OK --> SORT[sort by days_stale desc]

Conditional formatting

The JS formatter colors only the Days Stale cell red (var(--red-600)) when is_stale is truthy. There is no multi-level severity — a supplier is either stale or fresh against the single threshold.

Notes

  • Suppliers with disabled = 1 are excluded entirely.
  • Suppliers with zero Supplier Item Price and Stock rows do not appear (the join produces no group).
  • Items In Stock counts rows with positive stock_qty; it is not a sum of quantities.
  • Lower the Staleness Days filter to tighten the freshness bar before go-live.
  • Companion pre-go-live report: Amazon Go-Live Data Readiness.
Last updated 1 month ago
Was this helpful?
Thanks!