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
| # | Screen | Purpose |
| S1 | Entry Workspace | List/filter/sort all HI entries; states at a glance; entry point to everything |
| S2 | Entry Editor | Create/edit one entry with live disaggregation preview |
| S3 | LO Explorer | Pivot/aggregate the LO store; drill from any level to base grain |
| S4 | Batch Console | Trigger the batch, watch live progress, inspect DF-08 performance report |
| S5 | Master Data | Read-only browser over all synthetic inputs (UI-only view, D-23) |
| S6 | Admin | Seed profile selection (incl. CUSTOM sizing), forecast regeneration, reset |
| S7 | Login | Username/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]