CHAPTER 02Concepts & Glossary
Req. prefix: GLv0.4 draft
2.1Glossary
| Term | Definition |
| HI space | The entry world. Holds forecast-modification entries at whatever level they were made. Named "high", though technically an entry may be made at the lowest level too. |
| LO space | The disaggregated world. Holds, per entry, the exploded volume at base grain. Read-only; derived entirely from HI + inputs. |
| Base grain | Product ID × Location ID × Week. The grain of LO rows and of the input forecast. No customer dimension. |
| UPC | Universal Product Code — the externally defined article, parent level of the two-level product hierarchy. One UPC contains one or more Product IDs. |
| Product ID | The finished product actually produced; child level of the hierarchy and the product component of base grain. Forecast is defined here and rolls up to UPC. |
| Attribute | Flat name→value classification on a product (brand, category, subcategory, sector, …). Attributes do not nest and are not hierarchy levels. The built-in fields upc and product_id are addressable as attributes too, so one uniform mechanism scopes any level (D-25). |
| Entry | One forecast modification: a scope, a value in SU, a state. The unit of everything — disaggregation, reporting identity, deletion. |
| Scope | The region of planning space an entry covers: a product scope (exactly one attribute=value pair — upc, product_id, brand, …), a location (or all), an optional customer, and a time period. |
| SU | Statistical unit. The single unit of measure in the system. All values are non-negative integers in SU. |
| Master data | All read-only inputs: product/location/customer masters, planning calendar, forecast, split tables, phase profiles. Synthetically generated per seed profile (Ch. 10); never ingested or edited; viewable read-only in the UI (D-23). |
| Forecast | Read-only weekly master data at base grain, synthetically generated. Never shown as modification output; used exclusively as the proportional splitting basis. |
| Basis | The set of weights used to split a value at one pipeline stage. Forecast-derived by default; overridden by phase profiles (UPC→product) and split tables (location). |
| Split table | Forward-looking location fractions per product, in week-range form, optionally per customer. Overrides forecast proportions for the location stage (Ch. 05). |
| Phase profile | Week-range fractions dividing a UPC's volume among its products, optionally per customer. The mechanism of NPI (ramp from zero) and EOL (ramp to zero). Absent profile ⇒ forecast proportions (Ch. 05). |
| NPI / EOL | New Product Introduction / End Of Life. Not special objects: an NPI is a product whose phase-profile share ramps up from zero (it typically has no own forecast); an EOL product's share ramps down to zero. |
| Planning calendar | Master data mapping every Week to a Month and Quarter. The sole authority on period membership; no civil-calendar arithmetic anywhere. |
| Disaggregation | The four-stage pipeline Time → Attribute→UPC → UPC→Product → Location that turns one HI entry into its LO rows (Ch. 06). |
| Batch | Full re-disaggregation of all entries against current inputs; nightly, on demand, or after input regeneration (DE-08); timed and reported. |
| Seed / Reset | The canned demonstrator dataset, and the action restoring it (Ch. 10). |
2.2Core principles (normative)
GL-01LO is derived state. It MUST be reproducible at any time from HI entries plus current inputs; it carries no information of its own.
GL-02An entry's identity is preserved end-to-end: every LO row references its parent entry. Entries never blend in LO.
GL-03Customer is an entry-scoping and split-driving dimension only. It is consumed during disaggregation; LO has no customer column. Consequently, "volume by customer" is answerable only at entry level — reporting MUST NOT suggest otherwise.
GL-04The forecast is a basis, never an output. No interface exposes forecast values as part of modification results. (The read-only master-data view of Ch. 07 shows the forecast as master data, clearly separated from modification reporting.)
GL-05When any rule needed to split an entry is missing or degenerate, the system MUST NOT invent a fallback: the entry enters InError with a reason (Ch. 04). A basis is degenerate only when it is zero in total; individual zero-weight elements simply receive nothing (DR-03).
2.3Shared example dataset
All worked examples in this specification use the following miniature dataset. It is intentionally small
enough to verify by hand and is included verbatim in the seed data as scenario MINI (Ch. 10).
Master data
| Object | Content |
| UPCs / Products | U1 = {P1} (stable). U2 = {P2, P3}: P2 phasing out, P3 = NPI phasing in per the phase profile below. |
| Attributes | All of P1, P2, P3: brand=B1, category=C-A. (Brand B1 therefore spans both UPCs.) |
| Locations | L1, L2 |
| Customers | C1 |
| Calendar | Weeks W1…W4; Month M1 = {W1…W4} |
Forecast (SU, base grain)
| Product | Location | W1 | W2 | W3 | W4 | Σ |
| P1 | L1 | 10 | 20 | 30 | 40 | 100 |
| P1 | L2 | 30 | 20 | 30 | 20 | 100 |
| P2 | L1 | 20 | 20 | 30 | 30 | 100 |
| P3 | — | no forecast rows (NPI) — volume arises from U2's phase profile (Ch. 05) |
Aggregated to UPC: U1 = P1 rows; U2 = P2 rows (P3 contributes nothing).
Phase profile for U2 (week-range form)
| UPC | Customer | Week(s) | Product | Fraction |
| U2 | null | W1 | P2 | 1.00 |
| U2 | null | W2 | P2 | 0.50 |
| U2 | null | W2 | P3 | 0.50 |
| U2 | null | W3–W4 | P3 | 1.00 |
Reading: within U2, P3 replaces P2 over M1 — all volume on P2 in W1, an even split in W2, all on P3 from W3. U1 has no profile: its UPC→product step falls back to forecast proportions (trivially all P1).
Split table (week-range form; used in Ch. 05 examples)
| Product | Customer | Week(s) | Location | Fraction |
| P1 | null | W3–W4 | L1 | 0.50 |
| P1 | null | W3–W4 | L2 | 0.50 |
| P1 | C1 | W1–W4 | L1 | 1.00 |
| P3 | null | W1–W4 | L1 | 1.00 |
Reading: from W3 the sourcing network changes — P1 ships 50/50 from L1/L2 regardless of forecast history. Customer C1 is served exclusively from L1 at all times. P3, having no own forecast, launches at L1 only via its split-table row (see Q-03 in the decision log).