Specification
System Specification
A complete account of what the platform holds, calculates and produces - from component-level packaging data to submission-ready regulatory outputs.
Contents
39 sections
Platform & Architecture
Platform & Architecture
- Multi-tenant SaaS with per-tenant data isolation enforced at the data-access layer
- Tenant-level feature flag system (text tokens, case-insensitive)
- Visibility flags (default ON) for component, SKU and report fields, tabs and sections
- Opt-in flags (default OFF) for BOM packaging levels, movements, loads, documents, messages, audits, API access and webhooks
- Outbound webhooks with signed payloads, retry, and per-tenant delivery log
- Tenant-scoped API keys with scope-based authorisation and key rotation
- Documented REST API covering all master data, reporting and administration
- ULID primary keys stored as uniqueidentifier across all entities
- Enums persisted as both int value and string name
- SQL Server data store (Azure SQL in production)
- Azure Blob Storage for documents
- Structured logging and distributed tracing
- Full internationalisation - no hardcoded English strings
- Mobile-responsive views
Identity & Authentication
Identity & Authentication
- Email and password registration with hashed credentials
- Email verification flow with resend
- Forgot password and password reset
- Multi-factor authentication (MFA)
- Invitation-based onboarding for supplier users
- Current-user endpoint returning role, default tenant, accessible tenants and feature flags
- Session and login audit logging
User & Role Management
User & Role Management
- User entity with email, name, phone, language preference
- Roles: Super Admin, Tenant Admin, Editor, Supplier User
- Multi-tenant user - a single user can belong to many tenants with a default tenant
- Row-level supplier scoping so supplier users see only their own data
- Supplier domain allowlist for routing invitations to the correct vendor
- User list, edit and invite views
- User activation and deactivation
- Per-user language preference
Vendors
Vendors
- Vendor entity: code, name, tier (Strategic / Operational / Transactional), default language
- Primary email domain plus secondary domains
- Hierarchical vendor taxonomy tagging
- Active / inactive status
- Vendor list, grid, detail and edit views
- Bulk CSV/XLSX import with locations
- Bulk export with locations, domains and taxonomy tags
Suppliers
Suppliers
- Supplier entity per vendor location: address, city, postcode, country (ISO-2)
- Contact name, email, phone, language preference
- Completeness tracking (city, postcode, country)
- Supplier list, grid, detail and edit views
- "My Supplier" view for supplier users
- Supplier taxonomy tagging
Supplier Audits
Supplier Audits
- Vendor audit and per-SKU audit status tracking
- Audit create, list and detail views
- Supplier audit feed / activity view
- Audit progress per SKU
Products / SKUs
Products / SKUs
- SKU code, product description, brand, product line
- EAN with status (Live / Delisted / Unknown)
- Product type: Unit, Multi-pack, Bundle, Kit
- Parent and child SKU relationships
- Dimensions length / width / height (mm)
- Effective from and effective to date versioning
- Markets supplied (free text, for example "UK, France, Germany")
- Intended use (food contact, beverage bottle, and similar)
- Product size / weight excluding packaging
- Digital identifier capture (type, value, assigned date) for Digital Product Passport
- EEE / battery content flag
- "Our obligation" flag (brand versus retailer responsibility)
- Completion status (Not Started / In Progress / Complete)
- SKU taxonomy tagging
- SKU list, grid, detail and edit views
- SKU bulk export
Components
Components
- Component code, name, description
- Packaging level: Primary / Secondary / Tertiary / Transit
- Component type (Box, Film, Label, Closure, and similar)
- Weight in grams
- Base material: Paper / Plastic / Metal / Glass / Fibre / Wood / Other
- Extended material (47-value enum across polymers, composites and wood derivatives)
- Colour and masterbatch percentage
- Plastic rigidity (Rigid / Flexible)
- Glass colour
- Recyclability grade A-E with assessment date, basis and expiry
- PCR % and PIR % (post- and pre-consumer recycled content)
- Declaration source and certification for recycled content
- Print process (Flexo / Offset / Digital / Screen / InkJet)
- Print coverage percentage
- Mineral oil content category (None / Category 1 / Category 2)
- Ink and varnish substance tokens (EuPIA compliance)
- Label presence, material and coverage percentage
- Tape presence and material
- FSC / PEFC certification with chain-of-custody owner
- Reusability flag plus reuse scheme name
- Contact-sensitive flag
- Beverage bottle flag
- Food-contact tri-state (not stated / yes / no)
- Compostable status plus certification standard (EN13432, OK-Compost, and similar)
- Biodegradable flag, distinct from compostable
- Thermoset plastic flag
- Glitter content flag
- Product residue flag (food / liquid / other residue at disposal)
- EEE / battery content flag at component level
- First-class SVHC flag in addition to auto-derivation
- Urea / melamine resin flag
- Wax-coating type (paraffin, microcrystalline, vegetable, and similar)
- Chlorine bleaching process flag for paper and card
- Material density as a numeric value (g/cm3) alongside additive tokens
- Disposed-with-component relationship for end-of-life pairing
- Additive flag tokens (oxo-degradability additives, density-changing additives, UV stabilisers, AA blockers, oxygen scavengers, and others)
- Barrier and coating material tokens
- Materials and adhesives tokens
- Substances or adhesives tokens
- Component length / width / height (mm) for PPWR recyclability assessment
- Component taxonomy tagging
- Component list, grid, detail and edit views
- Manage Component Documents view
- Component bulk export
Multi-layer Lamination
Multi-layer Lamination
- Lamination layer child entity per component
- Layer material, weight percentage and weight in grams
- Layer coverage percentage
- Layer position (Outer / Middle / Inner)
- Support for up to five layers per component
- Adhesive chemistry per interlayer bond (for example PU-on-PE versus PU-on-PP) with percentage bands and numeric values
Substance Assessments
Substance Assessments
- Per-component, per-category assessments (PFAS, bisphenols, heavy metals)
- Status: not assessed / Compliant / Non-compliant / Unknown
- Assessment basis: Declaration of Conformity / Supplier Declaration / Lab Test / Design Standard / Literature
- Assessment date, expiry date and notes
- Lab test method and lab reference
- Bisphenol use declaration (BPA / BPS / BPF / Unclear)
- Bisphenol transition category (Retained / Transitioning / Phased-out)
- Substance test result rows for individual analyte results
- Assessment document rows with expiry tracking
- SVHC auto-derivation from extended material and additive tokens
- UK REACH compliance mapping
Bill of Materials (BOM)
Bill of Materials (BOM)
- BOM version snapshots with an effective-from date
- BOM item: SKU by component by quantity
- Per-line packaging-level override
- BOM manage view with a grid of components, quantities, levels and weights
- BOM bulk export
Packaging Type (PPWR DoC grouping)
Packaging Type (PPWR DoC grouping)
- Packaging type entity with a deterministic SHA-256 BOM signature
- Multi-SKU sharing of a single packaging type, and its DoC, when BOMs match
- Code, description and intended use
- Reusability derived from component composition
- First-seen creation timestamp
- Packaging type list and detail views
Declarations of Conformity - PPWR
Declarations of Conformity - PPWR
- PPWR Declaration of Conformity per packaging type
- Declaration date, declared-by, version, status (Draft / Current / Superseded / Expired)
- Signatory name, function and place of issue
- Substance compliance assertion and notes (PFAS, bisphenols, heavy metals)
- Minimisation compliance assertion and justification
- Recyclability compliance assertion and grade at time of declaration
- Recycled content compliance assertion and declared PCR percentage
- Reusability compliance assertion and scheme reference
- Technical documentation reference
- Staleness flag reset on any component or BOM change
- DoC create, list and detail views
- DoC export as XLSX or PDF
Supplier Declarations
Supplier Declarations
- Declaration entity with an immutable JSON snapshot
- Title, reference number and version counter
- Signature data, signed-by name / email / job title, signed-at timestamp
- Signed indicator
- Optional vendor reference
- Declaration new, list and detail views
Documents
Documents
- Document upload, versioning and expiry tracking
- Document version history
- Many-to-many linking of documents to components
- Document classes: FSC, PEFC, recycled-content declaration, lab report, supplier declaration, and others
- Document list, grid, detail and edit views
- Document expiry alerts
Movements (EPR Traceability)
Movements (EPR Traceability)
- Movement direction: Inbound / Outbound
- Movement type: Sale / Return / Adjustment / Loss, and others
- Reference code, jurisdiction and sub-jurisdiction (for example Wales)
- Date, quantity and channel
- Counterparty name and type
- Match status (Unmatched / matched to SKU or load)
- Optional SKU or load reference
- Movement list, grid, detail and edit views
Loads (Shipment Traceability)
Loads (Shipment Traceability)
- Load code, description, vendor, pallet type (Pallet / Tray / Crate / none)
- Pallet return for reuse flag
- Load SKU rows (SKU plus quantity)
- Load packing item rows for physical items
- Load packing version timeline
- Load list, detail, edit and packing manage views
Messaging
Messaging
- In-app message threads
- Sender, recipient, subject, body and timestamps
- Linked entity references (supplier, component, SKU, declaration)
- Scheduled messages for time-released sends
- Scheduled message status: Pending / Sent / Failed / Cancelled
- Messages inbox view
- Supplier-facing inbox
Audit Trail
Audit Trail
- Global audit log: action, detail, entity type, entity id, user, tenant, timestamp
- Separate supplier audit log for supplier-initiated activity
- Audit log export with a date-range filter
- Per-document audit of uploads and expiries
- Declaration signing audit
Taxonomy
Taxonomy
- Hierarchical taxonomy tree of parent and child nodes
- Per-node colour
- Tag bridges for vendors, suppliers, components and SKUs
- Taxonomy tree builder view
Reports - Master Data & Audit
Reports - Master Data & Audit
- Master data export (components, SKUs and vendors) as XLSX
- Audit log export with a date-range filter as XLSX or CSV
- Vendor engagement report as XLSX
Reports - UK EPR
Reports - UK EPR
- UK Recycling Packaging Data (RPD) CSV submission
- UK Plastic Packaging Tax exposure report as XLSX
- Deposit Return Scheme tracking report
Reports - France EPR
Reports - France EPR
- France CITEO submission CSV
- France CITEO annual declaration as XLSX or PDF
Reports - Germany EPR
Reports - Germany EPR
- Germany LUCID XML (PLAN and ACTUAL)
- Germany LUCID annual declaration as XLSX or PDF
Reports - EU PPWR
Reports - EU PPWR
- EU PPWR Declaration of Conformity as XLSX or PDF
- Recyclability assessment report
- Recycled content declaration report
- Compliance risk and gap report
- Space efficiency / void space report
- Packaging reduction and reuse report
Reports - UK Supplier Data Hub
Reports - UK Supplier Data Hub
- 82-field UK Supplier Data Hub XLSX export
Reports - Sustainability & Analytics
Reports - Sustainability & Analytics
- Carbon footprint report as XLSX
- Portfolio analysis (H1/H2) as XLSX
- Collection target tracker as XLSX
- Digital product identifier readiness as XLSX
- Multi-jurisdiction dashboard as XLSX
Report Infrastructure
Report Infrastructure
- Asynchronous report job queue: request generation, poll for status, then download
- Signed preview tokens for inline previews
- Parameters stored as JSON snapshots on the job
- Job status tracking (Queued / Running / Completed / Failed)
Direct Synchronous Exports
Direct Synchronous Exports
- Vendors (CSV or XLSX, with locations)
- Components (CSV or XLSX)
- SKUs (CSV or XLSX)
- Bills of materials (CSV)
- Movements
- Loads
Dashboards
Dashboards
- Main dashboard: counts, completeness, recent activity, insights, PPWR and EPR readiness
- Data completeness: SKU %, component %, BOM link rate, document submission rate
- PPWR compliance dashboard
- EPR compliance dashboard (UK / France / Germany)
- UK Plastic Packaging Tax dashboard
- Deposit Return Scheme dashboard
- Digital Product Passport readiness
- Recyclability dashboard (grades and redesign gaps)
- Recycled content gaps
- Sorting labels - PPWR (JRC Annex IX) and UK OPRL side by side
- Multi-jurisdiction overview
- EPR fee modelling (scenario analysis)
- EPR fee liability detail (cost breakdown by jurisdiction)
Alerts
Alerts
- Alert entity with type, severity and target
- Alerts view
- Expiring certificate alerts
- Non-compliant component alerts
- Overdue supplier alerts
- Expiring document alerts
- Stale Declaration of Conformity alerts
Saved Searches
Saved Searches
- Reusable filter sets across list views
Jurisdictions & Fee Configuration
Jurisdictions & Fee Configuration
- Jurisdiction: code, currency, reporting cadence (H1/H2), deadlines, producer thresholds
- Fee schedule per year with status (Draft / Active / Archived)
- Fee rate per material and packaging level (per tonne or per unit)
- Eco-modulation rules: PCR bonus, design-for-recycling adjustment, reusable discount
- Eco-modulation BAG / BAE / BGE flags
- Small and large producer thresholds (tonnage and turnover)
- Fee schedule list and edit views
Recyclability Rules
Recyclability Rules
- Rule mapping base material, extended material and material category to a RAG rating
- Automatic assessment of new components
- Recyclability rules administration view
Targets
Targets
- Collection target per jurisdiction, packaging level and year
- Recycled content target per jurisdiction and year
- Reduction target per jurisdiction and year
- Collection targets administration view
Tenant Administration
Tenant Administration
- Tenant create, read, update and delete
- Per-tenant feature flag editor
- Tenant list view with flags
Accessibility
Accessibility
- Every input, select and textarea has a linked label
- Help text and error messages linked with aria-describedby
- aria-invalid on validation errors
- aria-required on required fields
- Fieldset and legend grouping for radio and checkbox groups
- Tooltips with role="tooltip" reachable by keyboard
- Visible focus indicators on all interactive elements
- Inline help text on every form control type
Regulatory Coverage Summary
Regulatory Coverage Summary
- EU PPWR (Reg. 2024/1700) - substance, minimisation, recyclability A-E, recycled content, reusability, JRC sorting labels, DoC per packaging type
- UK pEPR (2024) - per-tonne fees, eco-modulation, H1/H2 reporting, large and small producer thresholds, RPD CSV
- French EPR (CITEO) - annual declaration, CSV plus XLSX or PDF
- German EPR (VerpackG / LUCID) - PLAN and ACTUAL XML, annual declaration
- UK Plastic Packaging Tax - PCR percentage tracking, exemption status, exposure report
- UK Supplier Data Hub - 82-field export
- REACH / SVHC - auto-derived flags plus supporting documents
- PFAS, bisphenols and heavy metals - full assessment workflow
- UK Deposit Return Scheme - in-scope container tracking
- Digital Product Passport - identifier capture and readiness dashboard
Business Outcomes
Business Outcomes
- Compliance risk reduction through an evidence trail per component
- Single source of truth across the UK, France, Germany and EU-wide PPWR
- Submission-ready artefacts (CSV / XML / XLSX / PDF) for every supported regulator
- Fee modelling and eco-modulation optimisation
- Supplier engagement at scale with row-level scoping
- Data governance via immutable snapshots, versioned BOMs and documents, audit logs and expiry alerts
- Forward compatibility for Digital Product Passport, EEE and battery content, Deposit Return Scheme and PPWR minimisation