Starter contract

fmcg_product

15 rules · plain YAML · starts in observation mode

OpenDQV Cloud starter template (v0.1) — your tenant inherits this baseline. First customer edit creates v1.0 in your audit trail; pin by yaml_hash for replay. FMCG (Fast-Moving Consumer Goods) product sales record validation. Enforces GS1 GTIN barcode format and check digit (8-, 12-, 13-, or 14-digit numeric product identifiers used across UK and global retail supply chains), ISO 3166-1 alpha-2 country of origin, ISO 4217 currency codes, and product category taxonomy aligned with GS1 Global Product Classification (GPC). Prevents invalid product codes, uncategorised products, and ambiguous pricing records from entering retailer EDI, POS, and category management systems. Pack unit standardisation prevents unit-of-measure mismatches in NPD and promotional analysis pipelines.

These are starting points you own. Every rule below ships in the trial, starts in observation mode, and is yours to read, edit, or delete from day one. Rules that reference a lookup list (lookup_file) validate against reference data you control in your tenant.
Rules as at 29 August 2026 — starting points you own, not a maintained regulatory feed. We correct errors in these samples; tracking regulatory change in your active contracts is yours.
RuleFieldSeverityWhat it enforces (the message your team sees)
product_code_requiredproduct_codeerrorproduct_code is required
product_code_gtin_formatproduct_codeerrorproduct_code must be a valid GS1 GTIN: 8, 12, 13, or 14 numeric digits (EAN-8, UPC-A, EAN-13, or ITF-14). e.g. 9521234567899 (GS1 demonstration prefix 952)
product_code_gtin_validproduct_codeerrorproduct_code has an invalid GS1 check digit (e.g. valid: 9521234567899, GS1 demonstration prefix 952) — full check-digit verification (was: shape-only format check)
brand_requiredbranderrorbrand is required
brand_max_lengthbrandwarningbrand exceeds 70 characters — will be truncated in GS1 EDI and retailer catalogue systems
category_requiredcategoryerrorcategory is required
category_valuescategorywarningcategory should be one of the defined FMCG category values for cross-retailer compatibility (map to GS1 GPC brick codes in your PIM/GDSN feed if you syndicate)
unit_price_minunit_priceerrorunit_price must be >= 0
currency_formatcurrencyerrorcurrency must be a valid ISO 4217 three-letter code (e.g. GBP, EUR, USD)
units_sold_minunits_solderrorunits_sold must be >= 0
pack_unit_valuespack_unitwarningpack_unit must be a standard unit: g, kg, ml, l, units, cl, oz, lb, sheets, pairs, tablets, capsules, sachets
store_id_requiredstore_iderrorstore_id is required
sale_date_formatsale_dateerrorsale_date must be a valid date (YYYY-MM-DD)
shelf_life_days_minshelf_life_dayserrorshelf_life_days must be >= 0
country_of_origin_formatcountry_of_originwarningcountry_of_origin must be a 2-letter ISO 3166-1 alpha-2 country code (e.g. GB, DE, FR, US) — required for UK/EU food labelling regulations

Run your own data against this contract in the free trial — drop a CSV in the dashboard, no code, no credit card. Start free trial →