CHAPTER 10Demonstrator & Seed Data
Req. prefix: DEv0.4 draft
10.1Seed profiles
DE-01The system ships four named deterministic seed profiles plus a
CUSTOM profile with free sizing: the user MAY specify products, locations, customers, weeks and entry
count (within sane bounds documented in-app), so the demonstrator can be initialised at any size. Generation
is seeded-random: the same profile (or the same CUSTOM parameter set + seed) always produces the identical
dataset (supports DF-05 testing and comparable benchmarks). The generator produces all master data —
masters, calendar, forecast, split tables, phase profiles — and the seed entries; there is no other way data
enters the system (D-23). [D-29]
| Profile | Products | Locations | Customers | Weeks | Entries | Purpose |
MINI | 3 | 2 | 1 | 4 | 3 | the Ch. 02 dataset, verbatim — hand-verifiable |
S | 1 000 | 5 | 20 | 52 | 100 | development, quick demos |
M | 10 000 | 12 | 50 | 104 | 1 000 | realistic feel |
L | 100 000 | 20 | 200 | 104 | 5 000 | performance evidence (DF-10/11/12); ≈5 M LO rows |
CUSTOM | user-specified sizing | experiments at arbitrary scale |
DE-02Each profile MUST contain, in demonstrable proportion: NPI products
with like-products and phase-in profiles; EOL products; split tables including at least one mid-horizon
sourcing change and one customer-specific rule; entries of all three archetypes (HE-03); and at least one
entry seeded to be InError (so the error UX is visible out of the box).
DE-03Forecast synthesis model. Each populated (product, location)
series is a random oscillation around a base level with a slow trend:
q(w) = max(0, base · (1 + trend·w) · season(w) · (1 + noise(w))) — with base drawn
per series (e.g. log-normal so product sizes differ realistically), trend a small per-series
drift (positive or negative, a few permille per week), season(w) a gentle low-frequency
oscillation (e.g. sinusoidal, ±10–30%), and noise(w) week-to-week randomness (e.g. ±5–15%).
All draws come from the profile's seeded RNG (DE-01). The result: visibly non-uniform time splits (demo
requirement) and recognisable but noisy patterns. [D-29]
10.2Reset & forecast regeneration
DE-04Reset = destroy all application state (entries, LO, batch
reports) and generated master data, regenerate the selected profile (named or CUSTOM with parameters), then
run one full batch so the system lands in a fully Disaggregated state (except
intentional DE-02 error seeds). One action in UI (typed confirmation), API (POST /admin/reset)
and MCP (reset_demo with confirm:true).
DE-05Reset target duration: profile L ≤ 3 min including the batch; progress
displayed. Smaller profiles proportionally faster.
DE-08Regenerate forecast = produce a new synthetic forecast for the
active profile per the DE-03 model (new deterministic sub-seed; masters, split tables, phase profiles and
entries untouched), atomically replace the old one (AP-09), and set all entries
RequiresDisaggregation (HE-07). This is the demonstrator's stand-in for a
nightly forecast drop and the lever that makes the batch meaningful. Available in UI (S6), API and MCP
(with confirm).
10.3Authentication
DE-06Exactly two fixed accounts: user and admin,
each with a static password set at deployment. Login per AP-02.
DE-07No authorization: both accounts can perform every operation, including
reset. The role name appears only in attribution fields (created_by) and the UI header.
This is a stated demonstrator simplification (OV non-goals).
10.4Demo script (informative)
- Reset to profile M — show the timed restore.
- Create the brand-campaign entry (E6-A shape) in S2, showing the live preview; save; open its LO rows in S3.
- Show an error: create an entry on a product/period combination with no forecast anywhere in scope — zero total basis at the time stage; precise message, no guessing (DR-03, HE-08). (Note: an entry on an EOL product beyond its phase-out is not an error — explicit scope wins, DR-10/D-22.)
- Sourcing change: pivot a product with a split-table change and show location mix flipping mid-horizon (E5-B); show the underlying split-table rows in the S5 master-data view.
- NPI ramp: pivot an NPI product inside a brand entry — volume appearing along the phase-in profile (profile visible in S5).
- Performance finale: switch to profile L, regenerate the forecast (DE-08), hit Run batch now, and read the DF-08 report aloud.
10.5Acceptance checklist (normative summary)
- Σ LO(entry) = value_su for every Disaggregated entry, all profiles (DF-04).
- Byte-identical LO between on-entry and batch disaggregation of the same entry (DF-05).
- MINI profile reproduces examples E5-A, E5-B, E6-A exactly.
- DF-10/11/12 targets met on profile L, reported by the batch console.
- Every FM-management action demonstrably executable via UI, API and MCP (OV-04 / AP-01 / MC-01); master-data views present and strictly read-only (D-23).
- Forecast regeneration (DE-08) flips all entries to RequiresDisaggregation and the following batch restores full consistency.
- CUSTOM profile initialises correctly at user-chosen sizes; identical parameters + seed reproduce identical datasets (DE-01).
- Reset returns the system to a state indistinguishable from first deployment (DE-04).