← INDEXCH 07 / 1008 API →

CHAPTER 07User Interface

Req. prefix: UIv0.5 draft

The UI is specified by screen, interaction obligations and responsiveness — not by visual design. Visual design is free within one constraint: it must read as a professional planning tool, dense with data, never decorative at the cost of information.

7.1Screen inventory

#ScreenPurpose
S1Entry WorkspaceList/filter/sort all HI entries; states at a glance; entry point to everything
S2Entry EditorCreate/edit one entry with live disaggregation preview
S3LO ExplorerPivot/aggregate the LO store; drill from any level to base grain
S4Batch ConsoleTrigger the batch, watch live progress, inspect DF-08 performance report
S5Master DataRead-only browser over all synthetic inputs (UI-only view, D-23)
S6AdminSeed profile selection (incl. CUSTOM sizing), forecast regeneration, reset
S7LoginUsername/password, two fixed accounts (Ch. 10)

7.2S1 — Entry Workspace

UI-01Columns: title, product scope, location scope, customer, period, value (SU), state chip (Disaggregated / InError / RequiresDisaggregation), updated by/at. Filterable and sortable on every column; free-text search on title and scope.
UI-02InError entries surface their error_message directly in the list (expandable row or tooltip) — no navigation needed to learn why.
UI-03Row actions: edit, duplicate, delete (with confirm), re-disaggregate. Bulk selection for delete and re-disaggregate.

7.3S2 — Entry Editor

UI-04Product scope = two controls reflecting DM-02: an attribute dropdown (built-ins product_id, upc, then all generated attribute names — brand, category, …) and a value type-ahead populated from the selected attribute's existing values. Further: location dropdown incl. ALL; optional customer type-ahead; period picker (week/month/quarter); integer SU value field.
UI-05Live preview — summary only: before saving, the editor shows the would-be disaggregation as a summary — weekly totals plus top product/location breakdown and the LO row count — or the precise error message. The preview never exposes the full LO row set; full rows exist only after save, via the LO Explorer and API. Preview uses the identical engine code path (DF-05) in a dry-run mode; target latency as DF-10. [Q-04 resolved → D-27]
UI-06Save is optimistic in feel but truthful: the entry appears immediately, its state chip resolving as the synchronous disaggregation (HE-06) returns. Errors never vanish silently.

7.4S3 — LO Explorer

UI-07Pivot over: product hierarchy levels, location, week/month/quarter, entry. Values = Σ quantity_su from LO only (DM-13). Default view: product hierarchy rows × month columns.
UI-08Drill-down from any aggregated cell to the underlying LO rows, each showing its parent entry. Stale/error entries excluded by default with visible count and an "include stale" toggle (HE-09).
UI-09The grid MUST stay fluid at profile-L volumes: virtualised rendering, server-side aggregation, no full-dataset transfer to the client. Interaction budget: ≤ 100 ms perceived response to scroll/expand; ≤ 2 s for any new aggregation (DF-12).
UI-10Any current pivot is exportable as CSV (delegates to the API export, AP-12).

7.5S4 — Batch Console

UI-11One prominent action: Run batch now. During a run: live progress (entries done/total, elapsed). After: the full DF-08 report — wall-clock, throughput, per-entry timing distribution, failures listed with messages. Previous run's report remains visible until replaced.

7.6S5 — Master Data (read-only)

UI-16Read-only, filterable views over all synthetic inputs: products with UPC and attributes; locations; customers; planning calendar; forecast (filter by product/location/period); split tables and phase profiles (shown in their native week-range form, filter by product/UPC/customer). Strictly no create/edit/delete and no upload anywhere — master data changes only via seed selection, reset, or forecast regeneration (D-23). These views exist in the UI only; they have no API/MCP counterpart beyond the reference reads of AP (masterdata for pickers).
UI-17Master-data views observe the same fluidity obligations as UI-09 at profile-L volumes (virtualised, server-side filtered).

7.7S6 — Admin

UI-12Actions: select seed profile (S/M/L/MINI, or CUSTOM with a sizing form — products, locations, customers, weeks, entries, per DE-01); Regenerate forecast (new deterministic seed, DE-08 — sets all entries RequiresDisaggregation per HE-07, with a prompt to run the batch); Reset demonstrator (typed confirmation, then OV-05 restore). No file upload of any kind (D-23).

7.8General obligations

UI-13Responsiveness budgets: navigation & local interactions ≤ 100 ms; entry save round-trip within DF-10; anything longer than 300 ms shows determinate progress.
UI-14Every forecast-modification, batch and admin action maps 1:1 onto a documented API operation (OV-04). The UI holds no logic of its own beyond presentation and input assembly. Sole exception: the read-only master-data views of S5, which are UI-only by design (D-23).
UI-15Desktop-first (planner tool); minimum supported width 1280 px; read-only degradation below that is acceptable for the demonstrator.
UI-18The application contains a Documentation section reachable from the main navigation: per-screen user help, and design documentation (architecture, data model, pipeline & rounding rules, performance design) including the implementation decision log. The app explains itself. [D-29]