Historical transactions / simulated inventory As of 2011-11-30sl-61f664e09e9c9098

Public data source

The source citation, limits, and artifact status stay visible.

UCI Online Retail II · Dataset 502

Chen, D. (2012). Online Retail II. UCI Machine Learning Repository. https://doi.org/10.24432/C5CG6D. The repository reports 1,067,371 transaction rows from 2009-12-01 through 2011-12-09. This workbench shows an illustrative 14-SKU slice of it.

Open the official dataset page

License: Creative Commons Attribution 4.0 International. The SHA-256 recorded alongside this demo is a pinned reference value for the official UCI archive. Nothing in this repository downloads or hashes the source, so it has not been verified here — treat it as a value to check against, not as proof of provenance. The UI fixture is separate from the pending full transformation and backtest run.

Interface states

What the workbench shows while it is working, when a filter matches nothing, and when a view fails. All three are wired into the live surfaces; they are reproduced here so the handling is visible without breaking anything.

Cleaning contract

Each invalid row receives a reason code before aggregation.

  • Cancellation markerSeparate invoices that begin with the documented cancellation marker.
  • Returns and negative unitsKeep return events apart from gross positive demand.
  • Price validityQuarantine zero or negative unit prices with a reason code.
  • Product scopeExclude postage, adjustments, manual entries, and other non-merchandise codes.
  • IdentifiersRemove customer identifiers from every deployment artifact.
  • Temporal leakageChoose eligible products and model features from training windows only.

Core policy formulas

Inputs remain visible; no safety factor is hidden in a second term.

  • inventory_position = on_hand + on_order − backorders − allocatedUnits available or expected after commitments.
  • recommended_raw = max(0, order_up_to_level − inventory_position)Unrounded policy quantity before supplier rules.
  • recommended_quantity = round_to_case_pack(max(MOQ, recommended_raw))MOQ applies only when the raw quantity is positive.
  • unit_fill_rate = fulfilled_units / requested_unitsReturns and cancellations do not reduce the demand denominator.