EPU Identity Change and Versioning Policy
1. Purpose
This policy defines how ZAYAZ decides whether a change to a product:
- has no EPU identity impact;
- creates a new version of the existing product definition;
- requires governed human review; or
- requires a new EPU identity.
The policy exists to prevent inconsistent identity decisions across ERP integrations, PLM imports, supplier updates, DPP workflows, lifecycle calculations and product-management interfaces.
The central rule is:
EPU identity follows the governed product definition, not the current sustainability state, data quality, supplier state, calculation result or disclosure state.
2. Decision outcomes
Every material product-change event must resolve to exactly one governed outcome.
NO_IDENTITY_IMPACT
NEW_PRODUCT_VERSION
HUMAN_REVIEW
NEW_EPU_REQUIRED
2.1 NO_IDENTITY_IMPACT
Use when the observed change does not alter the governed product definition.
Examples:
- additional evidence is received;
- a supplier declaration is renewed;
- a footprint is recalculated;
- an emission factor is updated;
- a verifier completes a review;
- a DPP disclosure is regenerated;
- a logistics route changes while the product definition remains unchanged;
- a production batch is created;
- a serialized item is manufactured.
2.2 NEW_PRODUCT_VERSION
Use when the governed product definition changes but still represents the same product identity under applicable policy.
Examples may include:
- a BOM revision that does not create a new commercial/technical identity;
- a supplier substitution that preserves the same product specification;
- an approved material substitution within tolerance;
- packaging revision where the product identity remains unchanged;
- a firmware revision that does not create a separately identified product;
- a technical-documentation update affecting current state but not product identity.
2.3 HUMAN_REVIEW
Use when automated policy cannot determine identity impact with sufficient confidence or when organizational/regulatory policy requires human approval.
Examples:
- significant formulation change with uncertain market identity consequences;
- external identifier changed without clear reason;
- multiple source systems disagree about whether two products are equivalent;
- product specification changed across several dimensions simultaneously;
- local/regulatory rules produce conflicting identity expectations.
2.4 NEW_EPU_REQUIRED
Use when the change creates a materially distinct governed product definition.
Typical triggers include:
- successor/replacement product;
- distinct trade item or SKU/variant created under applicable identification policy;
- material technical configuration change that results in a distinct product definition;
- materially different capacity, size, formulation, regulated composition or functional configuration sold/managed as a distinct product;
- an external authoritative product-identity event that clearly creates a separate product identity;
- a change that alters applicable regulatory product classification in a way that creates a distinct governed product definition.
3. Identity policy is contextual
EPU must not hard-code simplistic rules such as "new GTIN always means new EPU" or "supplier change never means new EPU".
Identity decisions may depend on:
- product category;
- jurisdiction;
- applicable identification standards;
- contractual/business rules;
- technical specification;
- regulated composition;
- commercial presentation;
- lifecycle and serviceability requirements;
- tenant policy where it does not violate canonical semantics.
The policy engine therefore evaluates a structured change event against a versioned rule profile.
4. Product Identity Change Event
Canonical event envelope:
ProductIdentityChangeEvent
├── change_event_id
├── epu_id
├── observed_at
├── effective_at
├── source_ref
├── source_system
├── prior_product_definition_version
├── proposed_product_state_ref
├── changed_dimensions[]
├── external_identifier_changes[]
├── classification_changes[]
├── composition_changes[]
├── regulatory_context_refs[]
├── evidence_refs[]
└── provenance_ref
changed_dimensions should use a governed vocabulary rather than free text.
Representative dimensions:
COMMERCIAL_IDENTITY
TECHNICAL_SPECIFICATION
DIMENSION_OR_CAPACITY
FORMULATION_OR_COMPOSITION
PACKAGING
SUPPLIER_CONFIGURATION
MANUFACTURING_LOCATION
FIRMWARE_OR_SOFTWARE
REGULATORY_CLASSIFICATION
EXTERNAL_IDENTIFIER
BRANDING
LIFECYCLE_CHARACTERISTICS
OTHER_GOVERNED_DIMENSION
5. Decision pipeline
Product change observed
↓
Normalize change event
↓
Resolve applicable identity policy profile
↓
Deterministic rule evaluation
↓
Context checks / external identifier policy
↓
Confidence calculation
↓
┌────────────────────────────────────┐
│ NO_IDENTITY_IMPACT │
│ NEW_PRODUCT_VERSION │
│ HUMAN_REVIEW │
│ NEW_EPU_REQUIRED │
└────────────────────────────────────┘
↓
Persist immutable decision record
↓
Publish identity lifecycle event
AI-assisted comparison may support ambiguous cases, but authoritative decisions must be explainable and tied to governed policy/rules.
6. External identifier changes
External identifiers are evidence about identity, not identity itself.
Examples:
GTIN changed
SKU changed
ERP material number changed
PLM identifier changed
manufacturer part number changed
Each event must be evaluated in context.
Possible outcomes:
- source-system renumbering → same EPU, new alias mapping;
- commercial variant split → new EPU;
- merger/system migration → same EPU, alias migration;
- duplicate/incorrect identifier → conflict resolution;
- successor product introduction → new EPU with supersession relationship.
7. Product-definition version semantics
A product-definition version captures the effective state of the product definition without changing canonical identity.
Recommended characteristics:
- immutable once activated;
- effective-dated;
- explicit
supersedesrelationship; - linked to the exact source/evidence state that caused the version;
- historical versions remain queryable;
- composition/BOM versions may change independently but must be linkable to the applicable product-definition version.
Example:
EPU-123
├── ProductDefinition v1 2026-01-01 → 2026-05-31
├── ProductDefinition v2 2026-06-01 → 2026-09-14
└── ProductDefinition v3 2026-09-15 → current
8. EPU supersession
When a change requires a new EPU, ZAYAZ must preserve lineage between old and new identities.
EPU-A
│
└── superseded_by ──> EPU-B
Allowed lineage predicates should distinguish at least:
SUPERSEDED_BY
REPLACED_BY
SPLIT_INTO
MERGED_INTO
VARIANT_OF
DERIVED_FROM
The exact predicate vocabulary is governed by the Product Graph ontology.
A superseded EPU remains historically resolvable and retains all prior relationships, results, evidence and disclosures.
9. Split and merge cases
9.1 Split
One product identity may evolve into multiple distinct successor products.
EPU-A
├── split_into ──> EPU-B
└── split_into ──> EPU-C
Prior history must not be copied blindly into successors. Successors reference the appropriate inherited state and provenance explicitly.
9.2 Merge
Multiple product definitions may be consolidated into one canonical successor.
EPU-A ──┐
├── merged_into ──> EPU-C
EPU-B ──┘
The merge must preserve source identity history and must not erase prior distinctions.
10. Supplier and manufacturer changes
Supplier/manufacturer relationships are graph relationships, not identity attributes.
A supplier or manufacturer change therefore normally creates:
- ended prior relationship edge;
- new effective-dated relationship edge;
- potentially a new product-definition/BOM version where the underlying product definition changed;
- a new EPU only if the change creates a materially distinct product identity under policy.
Example:
EPU-123
├── supplied_component_by ECO-A valid_to: 2026-06-30
└── supplied_component_by ECO-B valid_from: 2026-07-01
11. Manufacturing-location changes
Production location is primarily production context, not identity.
A product produced at multiple sites can therefore remain the same EPU while calculations and DPP disclosures use site-specific production context.
New EPU creation is considered only where location materially creates a separately governed/commercially distinct product identity.
12. Composition and formulation changes
Composition changes require special care because they can alter regulatory classification, footprint, recyclability, hazard status and product performance.
Decision process should evaluate:
- whether the product remains within the same governed technical specification;
- whether external trade-item identity changes;
- whether regulated composition thresholds/classification change;
- whether functional performance/capacity changes;
- whether product-category-specific identity rules require separation.
A changed carbon footprint alone is never sufficient reason for a new EPU.
13. Packaging changes
Packaging should generally be modeled separately from the product identity, but packaging can affect product identity in some markets/product categories.
The default policy should therefore be:
packaging-only change
↓
NEW_PRODUCT_VERSION or NO_IDENTITY_IMPACT
unless applicable commercial/regulatory identity policy indicates a distinct product definition.
14. Batch, lot and serial changes
Creating a new batch, lot or serialized physical item never creates a new EPU merely because the instance is new.
EPU
├── Batch 001
├── Batch 002
└── Serialized items ...
Instance-specific composition, evidence, provenance or footprint may differ while inheriting the same EPU identity.
15. Calculation, evidence and disclosure changes
The following must never directly change EPU identity:
- new PCF/PEF/LCA result;
- new MICE engine version;
- changed emission factor/dataset;
- new supplier evidence;
- evidence expiration;
- changed TrustGate score;
- verification result;
- disclosure/DPP publication;
- marketing claim change;
- repair/recycling instruction change.
These are state, result, evidence, assurance or disclosure changes.
16. Identity decision record
Every evaluated change event must produce an immutable decision artifact.
IdentityChangeDecision
├── decision_id
├── change_event_id
├── epu_id
├── outcome
├── new_product_definition_version_id?
├── successor_epu_id?
├── policy_profile_id
├── policy_version
├── triggered_rules[]
├── confidence
├── evidence_refs[]
├── reviewer?
├── rationale
├── decided_at
└── provenance_ref
This artifact is essential for audit, replay, support and future policy migration.
17. Conflict handling
Conflicting identity assertions must create explicit conflict state.
Examples:
- one GTIN maps to two candidate EPUs;
- ERP and PLM claim different successor identities;
- supplier and manufacturer source systems disagree on product equivalence;
- duplicate source records represent the same product under different internal IDs.
ZAYAZ must not resolve such conflicts with silent last-write-wins logic.
Conflict workflow:
conflict detected
↓
quarantine affected identity mapping
↓
collect evidence / source authority
↓
apply policy
↓
automated resolution or human review
↓
publish correction/supersession event
18. Point-in-time reconstruction
Identity and versioning data must support reconstruction of both:
- the product definition valid at a historical business date;
- what ZAYAZ knew/believed at a historical system date.
This is required for reproducing historical calculations, disclosures and assurance decisions.
19. Initial policy registry
A future machine-readable registry should contain at least:
policy_profile_id
product_category_scope
jurisdiction_scope
applicable_identifier_standards[]
change_dimension_rules[]
automation_thresholds
human_review_conditions
new_epu_conditions
version_only_conditions
policy_effective_from
policy_effective_to
policy_version
owner
approval_state
The MDX policy remains the conceptual contract until that registry is introduced.
20. Acceptance tests
A production implementation should pass at least these scenarios:
- ERP renumbers a material but GTIN/specification remain unchanged → same EPU, new alias history.
- Supplier is replaced with equivalent approved material → same EPU; relationship/BOM version changes.
- Product capacity changes from 5 Ah to 8 Ah and is sold as a distinct variant → new EPU.
- PCF changes because supplier-specific primary data replaces an estimate → same EPU.
- Existing model is discontinued and a successor product launched → new EPU linked with
SUPERSEDED_BY/REPLACED_BYsemantics. - Two source systems disagree whether a new formulation is equivalent →
HUMAN_REVIEW. - New production batch at another plant → same EPU, new production context/instance.
- Product is split into two commercially distinct variants → two successor EPUs with preserved lineage.
The implementation is not production-grade until each outcome is explainable, replayable and auditable.