{
  "namespace": "https://ref.openepcis.io/extensions/eu/detergent/",
  "version": "0.9.9",
  "title": "OpenEPCIS Detergent Vocabulary",
  "description": "Detergent-specific vocabulary for EU Regulation 2026/405 on Detergents and Surfactants compliance.\n\nIMPORTANT: The detergent extension properties defined here are NOT YET STANDARDISED by GS1.\nThese are OpenEPCIS extensions for detergent DPP data that have no equivalent in GS1 standards.\n\nEPCIS 2.0 Extension:\nThis vocabulary is a first-class EPCIS 2.0 extension per Section 12.3. Declare it using:\n  GS1-Extensions: eudet=https://ref.openepcis.io/extensions/eu/detergent/\n\nEU Regulation 2026/405 replaces the legacy Detergents Regulation 648/2004 and mandates\nDigital Product Passports for detergents. Entry into force: March 2026, full application:\nSeptember 2029. Detergents are a priority product category under ESPR 2024/1781.\n\nThe DPP is model-based: same manufacturer + identical formulation = one DPP (not per batch).\n\nThis vocabulary provides:\n- Domain-specific enumerations (DetergentCategory, ProductForm, SurfactantType, etc.)\n- Extension properties for detergent-specific formulation and biodegradability data\n- INCI ingredient nomenclature support\n- CLP hazard classification properties\n- Surfactant biodegradability test results per Annex III\n- Microorganism disclosure per Article 19\n\nFor master data, use standard GS1 Web Vocabulary:\n- gs1:Product for products\n- gs1:Organization for supply chain actors\n- gs1:QuantitativeValue for measurements\n\nFor shared DPP patterns, reuse from core:\n- oec:HazardousSubstance for CLP-classified substances\n- oec:OperatorInformation for economic operator data\n- oec:DocumentReference for safety data sheets and reports\n\nReferences:\n- EU Regulation 2026/405: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405\n- ESPR 2024/1781: https://eur-lex.europa.eu/eli/reg/2024/1781\n- Legacy Regulation 648/2004: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32004R0648",
  "classes": [
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct",
      "localName": "DetergentProduct",
      "label": "Detergent Product",
      "comment": "A detergent or surfactant product subject to EU 2026/405. Use as @type alongside gs1:Product. The DPP is model-based: same manufacturer + identical formulation = one DPP.",
      "subClassOf": [
        "https://ref.gs1.org/voc/Product"
      ],
      "broadMatch": [
        "https://ref.gs1.org/voc/Product",
        "https://schema.org/Product",
        "https://vocabulary.uncefact.org/untp/Product",
        "https://w3id.org/eudpp#Product"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/FragranceAllergen",
      "localName": "FragranceAllergen",
      "label": "Fragrance Allergen",
      "comment": "A fragrance allergen that must be disclosed when present above the concentration threshold, identified by name and CAS number.",
      "seeAlso": [
        "https://schema.org/ChemicalSubstance"
      ],
      "broadMatch": [
        "https://schema.org/ChemicalSubstance",
        "https://ref.gs1.org/voc/AllergenDetails"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/Ingredient",
      "localName": "Ingredient",
      "label": "Ingredient",
      "comment": "A single ingredient entry in a detergent formulation, identified by INCI name with functional role and weight percentage range.",
      "seeAlso": [
        "https://schema.org/ChemicalSubstance"
      ],
      "broadMatch": [
        "https://w3id.org/eudpp#Substance"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/MicroorganismInfo",
      "localName": "MicroorganismInfo",
      "label": "Microorganism Information",
      "comment": "Information about microorganisms intentionally added to the detergent product per Article 19. Requires species identification and strain designation.",
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/SurfactantBiodegradability",
      "localName": "SurfactantBiodegradability",
      "label": "Surfactant Biodegradability",
      "comment": "Ultimate aerobic biodegradability test result for a surfactant per EU 2026/405 Annex III. Each surfactant type in the formulation requires a separate test result.",
      "subClassOf": [
        "https://ref.openepcis.io/extensions/common/core/Biodegradability"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405"
    }
  ],
  "properties": [
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/allergenCasNumber",
      "localName": "allergenCasNumber",
      "label": "Allergen CAS Number",
      "comment": "CAS registry number of the fragrance allergen.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/FragranceAllergen"
      ],
      "range": [
        "xsd:string"
      ],
      "seeAlso": [
        "https://ref.gs1.org/voc/hasAllergen"
      ],
      "closeMatch": [
        "https://ref.openepcis.io/extensions/common/core/casNumber"
      ],
      "broadMatch": [
        "https://dpp-keystone.org/spec/v2/terms#componentCasNumber"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "AuthorizedOnly",
      "accessLevelMandatedBy": "https://eur-lex.europa.eu/eli/reg/2004/648",
      "accessLevelRationale": "CAS-level substance identification is Annex VII C datasheet content for medical personnel; the public list uses INCI names.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/allergenConcentration",
      "localName": "allergenConcentration",
      "label": "Allergen Concentration",
      "comment": "Concentration of the allergen as weight percentage.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/FragranceAllergen"
      ],
      "range": [
        "xsd:decimal"
      ],
      "broadMatch": [
        "https://w3id.org/eudpp#hasConcentration"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "AuthorizedOnly",
      "accessLevelMandatedBy": "https://eur-lex.europa.eu/eli/reg/2004/648",
      "accessLevelRationale": "Exact allergen concentrations belong to the Annex VII C ingredient datasheet Reg. (EC) 648/2004 reserves for medical personnel; the public label carries presence above threshold instead.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/biodegradationPercentage",
      "localName": "biodegradationPercentage",
      "label": "Biodegradation Percentage",
      "comment": "Measured ultimate aerobic biodegradation as percentage (>=60% required to pass).",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/SurfactantBiodegradability"
      ],
      "range": [
        "xsd:decimal"
      ],
      "seeAlso": [
        "https://ref.openepcis.io/extensions/common/core/biodegradationPercentage"
      ],
      "exactMatch": [
        "https://ref.openepcis.io/extensions/common/core/biodegradationPercentage"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "The headline biodegradation percentage substantiates the pass/fail claim against the 60% Annex III threshold; aligned with core oec:biodegradationPercentage (Public).",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/dosageInstructions",
      "localName": "dosageInstructions",
      "label": "Dosage Instructions",
      "comment": "Human-readable dosage instructions including water hardness guidance.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "rdf:langString"
      ],
      "broadMatch": [
        "https://ref.gs1.org/voc/consumerUsageInstructions"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "Dosage instructions are on-pack consumer information required for laundry detergents by Reg. (EC) 648/2004 Art. 11(4).",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/endProductCharacteristics",
      "localName": "endProductCharacteristics",
      "label": "End Product Characteristics",
      "comment": "Description of the end product characteristics of the microorganism (enzymes produced, metabolites, etc.).",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/MicroorganismInfo"
      ],
      "range": [
        "xsd:string"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "AuthorizedOnly",
      "accessLevelRationale": "Metabolite/enzyme characteristics of added micro-organisms are technical assessment detail for authorities, not consumer information.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/filmBiodegradabilityPercentage",
      "localName": "filmBiodegradabilityPercentage",
      "label": "Film Biodegradability Percentage",
      "comment": "Measured biodegradability of the water-soluble film as a percentage.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "xsd:decimal"
      ],
      "closeMatch": [
        "https://ref.openepcis.io/extensions/common/core/biodegradationPercentage"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "The measured film-biodegradability percentage substantiates the public film claim.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/filmBiodegradable",
      "localName": "filmBiodegradable",
      "label": "Film Biodegradable",
      "comment": "Whether the water-soluble film (for capsules/pods) meets biodegradability requirements.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "xsd:boolean"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "Biodegradability of the water-soluble capsule film is a consumer-facing environmental compliance claim.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hasBiodegradabilityTestReport",
      "localName": "hasBiodegradabilityTestReport",
      "label": "Biodegradability Test Report",
      "comment": "Reference to the full biodegradability test report. Reuses oec:DocumentReference.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "https://ref.openepcis.io/extensions/common/core/DocumentReference"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "AuthorizedOnly",
      "accessLevelRationale": "The full test report is the technical file evidence competent authorities may request (Art. 9), not consumer information.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hasFragranceAllergens",
      "localName": "hasFragranceAllergens",
      "label": "Fragrance Allergens",
      "comment": "Fragrance allergens present above the disclosure threshold.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "https://ref.openepcis.io/extensions/eu/detergent/FragranceAllergen"
      ],
      "seeAlso": [
        "https://ref.gs1.org/voc/hasAllergen"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelMandatedBy": "https://eur-lex.europa.eu/eli/reg/2004/648",
      "accessLevelRationale": "Allergenic fragrances above the 0.01% threshold must be declared to consumers on the label per Reg. (EC) 648/2004 Art. 11(3)/Annex VII A.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hasHazardousSubstances",
      "localName": "hasHazardousSubstances",
      "label": "Hazardous Substances",
      "comment": "CLP-classified hazardous substances in the product. Reuses oec:HazardousSubstance.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "https://ref.openepcis.io/extensions/common/core/HazardousSubstance"
      ],
      "seeAlso": [
        "https://ref.openepcis.io/extensions/common/core/hasHazardousSubstances",
        "urn:samm:io.BatteryPass.MaterialComposition:1.2.0#hazardousSubstanceClass",
        "https://dpp-keystone.org/spec/v2/terms#textileSubstancesOfConcern",
        "urn:samm:io.BatteryPass.MaterialComposition:1.2.0#hazardousSubstanceIdentifier"
      ],
      "broadMatch": [
        "https://ref.openepcis.io/extensions/common/core/hasSubstancesOfConcern"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "CLP-classified substances driving the label classification are consumer safety information; aligned with the shared hazardousSubstances alias (Public in core and battery).",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2008/1272"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hasIngredientFunction",
      "localName": "hasIngredientFunction",
      "label": "Ingredient Function",
      "comment": "Functional role of the ingredient in the formulation.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/Ingredient"
      ],
      "range": [
        "https://ref.openepcis.io/extensions/eu/detergent/IngredientFunction"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "The functional role of an ingredient (surfactant, enzyme, fragrance) adds consumer-friendly context to the public ingredient list without revealing exact formulation.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hasIngredientList",
      "localName": "hasIngredientList",
      "label": "Ingredient List",
      "comment": "List of ingredients in the detergent formulation, using INCI nomenclature.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "https://ref.openepcis.io/extensions/eu/detergent/Ingredient"
      ],
      "broadMatch": [
        "https://ref.gs1.org/voc/ingredientStatement",
        "https://ref.gs1.org/voc/ingredientName",
        "https://schema.org/activeIngredient"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelMandatedBy": "https://eur-lex.europa.eu/eli/reg/2004/648",
      "accessLevelRationale": "The INCI ingredient list is the consumer-facing disclosure Reg. (EC) 648/2004 Art. 11(3) and Annex VII D require on label and website.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hasMicroorganisms",
      "localName": "hasMicroorganisms",
      "label": "Microorganisms",
      "comment": "Microorganisms intentionally added to the product per Article 19.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "https://ref.openepcis.io/extensions/eu/detergent/MicroorganismInfo"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "The presence of intentionally added micro-organisms is consumer-relevant product information under the recast detergent rules; strain-level detail is tiered separately.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hasProductForm",
      "localName": "hasProductForm",
      "label": "Product Form",
      "comment": "The physical form of the detergent product (liquid, powder, capsule, etc.).",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "https://ref.openepcis.io/extensions/eu/detergent/ProductForm"
      ],
      "closeMatch": [
        "https://ref.gs1.org/voc/productFormDescription"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "The physical product form (liquid, powder, capsule) is apparent from the product itself.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hasRecommendedDosage",
      "localName": "hasRecommendedDosage",
      "label": "Recommended Dosage",
      "comment": "Recommended dosage per use (e.g., 35 ml for medium water hardness). Uses gs1:QuantitativeValue.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "https://ref.gs1.org/voc/QuantitativeValue"
      ],
      "seeAlso": [
        "https://schema.org/doseValue"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "The recommended dosage quantity is the structured form of the on-pack dosage information (Art. 11(4)).",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hasSafetyDataSheet",
      "localName": "hasSafetyDataSheet",
      "label": "Safety Data Sheet",
      "comment": "Reference to the product's Safety Data Sheet (SDS). Reuses oec:DocumentReference.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "https://ref.openepcis.io/extensions/common/core/DocumentReference"
      ],
      "exactMatch": [
        "https://dpp-keystone.org/spec/v2/terms#safetyDataSheet"
      ],
      "closeMatch": [
        "https://vocabulary.uncefact.org/untp/materialSafetyInformation"
      ],
      "broadMatch": [
        "https://ref.gs1.org/voc/safetyInfo"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "AuthorizedOnly",
      "accessLevelRationale": "The SDS is supplied to professional recipients under REACH Art. 31; consumer-relevant safety content is carried by the public CLP label fields.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2006/1907"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hasSignalWord",
      "localName": "hasSignalWord",
      "label": "Signal Word",
      "comment": "CLP signal word (Danger or Warning) per Regulation 1272/2008.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "https://ref.openepcis.io/extensions/eu/detergent/SignalWord"
      ],
      "exactMatch": [
        "https://ref.openepcis.io/extensions/common/core/hasHazardSignalWord"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "The CLP signal word is a label element printed on the consumer package (Reg. (EC) 1272/2008 Art. 17).",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2008/1272"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hasSurfactantBiodegradability",
      "localName": "hasSurfactantBiodegradability",
      "label": "Surfactant Biodegradability",
      "comment": "Biodegradability test results for surfactants in the formulation per Annex III.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "https://ref.openepcis.io/extensions/eu/detergent/SurfactantBiodegradability"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "AuthorizedOnly",
      "accessLevelRationale": "The per-surfactant biodegradability test record is Annex III technical evidence for authorities; the public tier carries the headline pass/fail and percentage.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hasSurfactantType",
      "localName": "hasSurfactantType",
      "label": "Surfactant Type",
      "comment": "Classification of the surfactant by ionic charge.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/SurfactantBiodegradability"
      ],
      "range": [
        "https://ref.openepcis.io/extensions/eu/detergent/SurfactantType"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "The ionic surfactant class (anionic, non-ionic) is the same classification the public label discloses in ingredient brackets.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hasTestMethod",
      "localName": "hasTestMethod",
      "label": "Test Method",
      "comment": "Standard test method used for the biodegradability assessment.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/SurfactantBiodegradability"
      ],
      "range": [
        "https://ref.openepcis.io/extensions/eu/detergent/BiodegradabilityTestMethod"
      ],
      "closeMatch": [
        "https://schema.org/measurementMethod"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "AuthorizedOnly",
      "accessLevelRationale": "The Annex III test-method reference is technical-file detail accompanying the professional test record.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hazardPictograms",
      "localName": "hazardPictograms",
      "label": "Hazard Pictograms",
      "comment": "GHS hazard pictogram codes (GHS01-GHS09) per CLP Regulation 1272/2008.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "xsd:string"
      ],
      "exactMatch": [
        "https://ref.openepcis.io/extensions/common/core/hazardPictogramCode"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "GHS pictograms are CLP label elements printed on the consumer package (Reg. (EC) 1272/2008 Art. 17).",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2008/1272"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/hStatements",
      "localName": "hStatements",
      "label": "H Statements",
      "comment": "CLP hazard statements (e.g., H302, H315, H318).",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "xsd:string"
      ],
      "exactMatch": [
        "https://ref.openepcis.io/extensions/common/core/hazardStatement"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "Hazard statements are CLP label elements printed on the consumer package (Reg. (EC) 1272/2008 Art. 17).",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2008/1272"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/intendedUse",
      "localName": "intendedUse",
      "label": "Intended Use",
      "comment": "Description of the product's intended use or application.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "xsd:string"
      ],
      "closeMatch": [
        "https://schema.org/potentialUse"
      ],
      "broadMatch": [
        "https://ref.gs1.org/voc/consumerUsageInstructions"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "The intended use is ordinary on-pack consumer information.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/isSurfactant",
      "localName": "isSurfactant",
      "label": "Is Surfactant",
      "comment": "Whether this ingredient is a surfactant (relevant for biodegradability testing requirements).",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/Ingredient"
      ],
      "range": [
        "xsd:boolean"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "Flagging an ingredient as a surfactant restates public Annex VII A label content (surfactant classes are declared in brackets on-pack).",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/passesUltimateBiodegradability",
      "localName": "passesUltimateBiodegradability",
      "label": "Passes Ultimate Biodegradability",
      "comment": "Whether the surfactant passes the ultimate aerobic biodegradability test (>=60% within 28 days).",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/SurfactantBiodegradability"
      ],
      "range": [
        "xsd:boolean"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "Passing the Art. 4/Annex III ultimate-biodegradability requirement is the compliance claim under which the product is marketed.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/phosphateCompliant",
      "localName": "phosphateCompliant",
      "label": "Phosphate Compliant",
      "comment": "Whether the product complies with phosphorus/phosphate limits set by the regulation.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "xsd:boolean"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "Compliance with the Annex VIa phosphorus limits is a public regulatory compliance claim.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/phosphorusContentPercent",
      "localName": "phosphorusContentPercent",
      "label": "Phosphorus Content Percent",
      "comment": "Total elemental phosphorus content as weight percentage.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "xsd:decimal"
      ],
      "broadMatch": [
        "https://ref.gs1.org/voc/ingredientContentPercentage"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "Phosphorus content is declared on the label in Annex VII A brackets and is the datum behind the Annex VIa phosphate limits.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/pStatements",
      "localName": "pStatements",
      "label": "P Statements",
      "comment": "CLP precautionary statements (e.g., P101, P102, P280).",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/DetergentProduct"
      ],
      "range": [
        "xsd:string"
      ],
      "exactMatch": [
        "https://ref.openepcis.io/extensions/common/core/precautionaryStatement"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelRationale": "Precautionary statements are CLP label elements printed on the consumer package (Reg. (EC) 1272/2008 Art. 17).",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2008/1272"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/strainDesignation",
      "localName": "strainDesignation",
      "label": "Strain Designation",
      "comment": "Specific strain designation or collection number.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/MicroorganismInfo"
      ],
      "range": [
        "xsd:string"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "AuthorizedOnly",
      "accessLevelRationale": "Strain designations are formulation-level know-how relevant to authorities and professional assessors, beyond the public presence disclosure.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/testDurationDays",
      "localName": "testDurationDays",
      "label": "Test Duration Days",
      "comment": "Duration of the biodegradability test in days (typically 28 days).",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/SurfactantBiodegradability"
      ],
      "range": [
        "xsd:integer"
      ],
      "broadMatch": [
        "https://schema.org/activityDuration"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "AuthorizedOnly",
      "accessLevelRationale": "The test duration is technical-file detail accompanying the professional test record.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/weightPercentRange",
      "localName": "weightPercentRange",
      "label": "Weight Percent Range",
      "comment": "Weight percentage range using prescribed brackets (e.g., '<5%', '5-15%', '15-30%', '>=30%') per labelling requirements.",
      "domain": [
        "https://ref.openepcis.io/extensions/eu/detergent/Ingredient"
      ],
      "range": [
        "xsd:string"
      ],
      "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405",
      "accessLevel": "Public",
      "accessLevelMandatedBy": "https://eur-lex.europa.eu/eli/reg/2004/648",
      "accessLevelRationale": "The prescribed weight-percentage brackets are exactly how Annex VII D of Reg. (EC) 648/2004 requires ingredient quantities to be published for the general public.",
      "accessLevelSource": "https://eur-lex.europa.eu/eli/reg/2004/648"
    }
  ],
  "enumerations": [
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/BiodegradabilityTestMethod",
      "localName": "BiodegradabilityTestMethod",
      "label": "Biodegradability Test Method",
      "comment": "Standard test methods for ultimate aerobic biodegradability per EU 2026/405 Annex III.",
      "values": [
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/ISO14593",
          "localName": "ISO14593",
          "label": "ISO 14593",
          "comment": "CO2 headspace test (ISO 14593) for ultimate aerobic biodegradability."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/OECD301B",
          "localName": "OECD301B",
          "label": "OECD 301B",
          "comment": "CO2 evolution test (modified Sturm test) for ready biodegradability."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/OECD301D",
          "localName": "OECD301D",
          "label": "OECD 301D",
          "comment": "Closed bottle test for ready biodegradability."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/OECD301F",
          "localName": "OECD301F",
          "label": "OECD 301F",
          "comment": "Manometric respirometry test for ready biodegradability."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/OECD310",
          "localName": "OECD310",
          "label": "OECD 310",
          "comment": "CO2 in sealed vessels test for ready biodegradability."
        }
      ]
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/DetergentCategory",
      "localName": "DetergentCategory",
      "label": "Detergent Category",
      "comment": "Product categories for detergents and surfactants per EU 2026/405 Article 2.",
      "values": [
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/AllPurposeCleaner",
          "localName": "AllPurposeCleaner",
          "label": "All-Purpose Cleaner",
          "comment": "General surface cleaning product for household or commercial use."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/DishwasherDetergent",
          "localName": "DishwasherDetergent",
          "label": "Dishwasher Detergent",
          "comment": "Detergent intended for automatic dishwashing machines."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/HandDishwashingDetergent",
          "localName": "HandDishwashingDetergent",
          "label": "Hand Dishwashing Detergent",
          "comment": "Detergent intended for washing dishes by hand."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/IndustrialDetergent",
          "localName": "IndustrialDetergent",
          "label": "Industrial Detergent",
          "comment": "Detergent intended for industrial cleaning applications."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/InstitutionalDetergent",
          "localName": "InstitutionalDetergent",
          "label": "Institutional Detergent",
          "comment": "Detergent intended for institutional cleaning (hospitals, schools, etc.)."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/LaundryDetergent",
          "localName": "LaundryDetergent",
          "label": "Laundry Detergent",
          "comment": "Detergent intended for washing textiles in household or commercial laundry machines."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Surfactant",
          "localName": "Surfactant",
          "label": "Surfactant",
          "comment": "Surface-active agent sold as a standalone product or raw material."
        }
      ]
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/IngredientFunction",
      "localName": "IngredientFunction",
      "label": "Ingredient Function",
      "comment": "Functional roles of ingredients in detergent formulations.",
      "values": [
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/AntiRedeposition",
          "localName": "AntiRedeposition",
          "label": "Anti-Redeposition",
          "comment": "Agent preventing removed soil from redepositing on surfaces."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Bleach",
          "localName": "Bleach",
          "label": "Bleach",
          "comment": "Oxidising agent for stain removal (e.g., sodium percarbonate)."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Builder",
          "localName": "Builder",
          "label": "Builder",
          "comment": "Water softener that enhances surfactant performance (e.g., zeolites, citrates)."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Colorant",
          "localName": "Colorant",
          "label": "Colorant",
          "comment": "Dye or pigment for product appearance."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Enzyme",
          "localName": "Enzyme",
          "label": "Enzyme",
          "comment": "Biological catalyst for breaking down specific stain types (protease, amylase, lipase, etc.)."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Filler",
          "localName": "Filler",
          "label": "Filler",
          "comment": "Inert bulk material (e.g., sodium sulphate in powder detergents)."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/FoamRegulator",
          "localName": "FoamRegulator",
          "label": "Foam Regulator",
          "comment": "Agent that controls foam generation (booster or suppressor)."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Fragrance",
          "localName": "Fragrance",
          "label": "Fragrance",
          "comment": "Scenting agent (parfum)."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/pHAdjuster",
          "localName": "pHAdjuster",
          "label": "pH Adjuster",
          "comment": "Acid or base used to control product pH."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Preservative",
          "localName": "Preservative",
          "label": "Preservative",
          "comment": "Antimicrobial agent preventing product degradation."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Solvent",
          "localName": "Solvent",
          "label": "Solvent",
          "comment": "Carrier liquid (typically water or alcohol-based)."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/SurfactantFunction",
          "localName": "SurfactantFunction",
          "label": "Surfactant",
          "comment": "Surface-active agent providing primary cleaning action."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Thickener",
          "localName": "Thickener",
          "label": "Thickener",
          "comment": "Viscosity modifier for product consistency."
        }
      ]
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/ProductForm",
      "localName": "ProductForm",
      "label": "Product Form",
      "comment": "Physical form of the detergent product.",
      "values": [
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Capsule",
          "localName": "Capsule",
          "label": "Capsule",
          "comment": "Water-soluble film capsule (pod) containing liquid or powder detergent."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Gel",
          "localName": "Gel",
          "label": "Gel",
          "comment": "Gel formulation."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Liquid",
          "localName": "Liquid",
          "label": "Liquid",
          "comment": "Liquid formulation."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Paste",
          "localName": "Paste",
          "label": "Paste",
          "comment": "Paste formulation."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Powder",
          "localName": "Powder",
          "label": "Powder",
          "comment": "Powder formulation."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Sheet",
          "localName": "Sheet",
          "label": "Sheet",
          "comment": "Dissolvable sheet formulation."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Spray",
          "localName": "Spray",
          "label": "Spray",
          "comment": "Spray formulation."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Tablet",
          "localName": "Tablet",
          "label": "Tablet",
          "comment": "Compressed tablet formulation."
        }
      ]
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/SignalWord",
      "localName": "SignalWord",
      "label": "Signal Word",
      "comment": "CLP signal words per EU Regulation 1272/2008 Article 20.",
      "values": [
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Danger",
          "localName": "Danger",
          "label": "Danger",
          "comment": "Signal word for more severe hazard categories."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Warning",
          "localName": "Warning",
          "label": "Warning",
          "comment": "Signal word for less severe hazard categories."
        }
      ]
    },
    {
      "id": "https://ref.openepcis.io/extensions/eu/detergent/SurfactantType",
      "localName": "SurfactantType",
      "label": "Surfactant Type",
      "comment": "Classification of surfactants by ionic charge per EU 2026/405 Annex III.",
      "values": [
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Amphoteric",
          "localName": "Amphoteric",
          "label": "Amphoteric",
          "comment": "Surfactant that can carry positive or negative charge depending on pH (e.g., betaines)."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Anionic",
          "localName": "Anionic",
          "label": "Anionic",
          "comment": "Surfactant with a negatively charged hydrophilic group (e.g., LAS, SLS)."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/Cationic",
          "localName": "Cationic",
          "label": "Cationic",
          "comment": "Surfactant with a positively charged hydrophilic group (e.g., quaternary ammonium)."
        },
        {
          "id": "https://ref.openepcis.io/extensions/eu/detergent/NonIonic",
          "localName": "NonIonic",
          "label": "Non-Ionic",
          "comment": "Surfactant with no ionic charge (e.g., alcohol ethoxylates)."
        }
      ]
    }
  ]
}