
Implement a standardized interoperability baseline now: require GS1 identifiers, three public API endpoints (product master, event stream, verification), and a minimum dataset per batch that records species and scientific code, harvest date, vessel ID, landing port, processor ID, processing steps, batch ID, temperature logs, storage conditions and carbon intensity (kg CO2e). This specification defines what is needed to deliver near-real-time visibility across the seafood sector and to compare seafood products with plant-based alternatives.
Set measurable KPIs and governance elements: time-to-trace target <4 hours, percent of batches with full provenance >95%, and verified carbon per ton. Establish a schema registry, access-control roles, consent records and an immutable audit trail. Invite cross-sector dialogue among fishers, processors, retailers and government; government funding or tax credits often supports initial integration and reduces risk for small suppliers. Anticipate regulatory change and align schemas now to meet expected reporting deadlines so auditors and buyers understand provenance gaps and suppliers become aware of corrective steps.
Deploy pragmatic pilots that cover three nodes (vessel → primary processor → exporter) over a 3–6 month window, use lightweight REST/JSON APIs with event-driven webhooks and cryptographic signing, and reserve on-chain proofs for certification anchors. Provide two-day hands-on workshops for skippers and plant staff, supply mobile capture for landings, and fit medium processors with IoT temperature sensors. Typical integration costs range $10k–$50k per facility with monthly SaaS fees from $200–$1,500; these elements make interoperability likely to scale, supports supplier adoption, reduces manual reporting and helps buyers understand value from faster recalls, lower fraud risk and verified carbon reporting. Measure progress monthly and expand scope once KPIs meet targets.
Identifiers & Data Standards for Seafood Items
Use GS1 identifiers (GTIN for products, GLN for parties/locations, SSCC for logistic units) plus a persistent UUID per lot and ISO 8601 timestamps; this combination ensures reconcileable records across systems and erps and supports traceability down to individual shipments.
Specify mandatory fields for every event record and enforce schema validation: product_id (GTIN 8/12/13/14), lot_number (alphanumeric, max 20 chars), logistic_unit (SSCC 18 digits), location_id (GLN 13 digits or UN/LOCODE), vessel_id (IMO 7 digits or MMSI 9 digits), catch_date (YYYY-MM-DD), geo (WGS84 lat/lon with 6 decimal places), weight_kg (numeric with three decimals), temperature_celsius (one decimal), cert_ids (MSC, ASC, chain-of-custody numbers). Set a KPI target: require these fields in at least 95% of captured events to maintain operational visibility.
Adopt GS1 EPCIS for event messaging and JSON-LD for broad API exchange; use Application Identifiers (AIs) for barcoded items and resolvable HTTP URIs for persistent references so third parties can dereference IDs without additional mapping. This design keeps integration effort low because most logistics and erps already support GS1 formats.
| Identifier | Purpose | Format / Length | Recommendation |
|---|---|---|---|
| GTIN | Sellable item/product | 8 / 12 / 13 / 14 digits | Use GTIN-14 for logistic units; map lower-digit GTINs to GTIN-14 via packaging hierarchy |
| GLN | Party / location | 13 digits | Assign GLNs to vessel agents, processing plants and cold stores to standardize addresses |
| SSCC | Logistic unit / pallet | 18 digits | Generate SSCC per shipment event and persist in EPCIS manifests |
| IMO / MMSI | Vessel identity | IMO: 7 digits; MMSI: 9 digits | Record both when available; prefer IMO for large fleets and MMSI for small/nearshore boats |
| UUID | Internal asset or lot | RFC 4122 (36 chars) | Use for internal linking between systems and to avoid collisions when GTINs are absent |
Require controlled vocabularies for species and gear: use FAO species codes or ITIS/WoRMS identifiers and a gear taxonomy (UN/CEFACT codelist or a community-maintained list). Capture weight breakdowns with numeric precision and record whether weights are whole or net; set validation rules so weight_sum +/-5% tolerance flags a review.
Design data governance rules that take data quality seriously: enforce mandatory fields at capture points, run automated checksum and format checks, log validation failures with timestamps, and assign ownership for corrections. Use public registries for GLNs/GTINs and maintain a private registry for internal UUID mappings to remain auditable.
Plan for integration with partners by publishing OpenAPI schemas and an EPCIS endpoint; provide mapping templates for the most common erps and marketplaces and publish sample payloads with real-like numbers so integrators can test quickly. Encourage partners to continue contributing to common vocabularies so mappings remain consistent across the wholechain.
Prioritize privacy and safety: encrypt identifiers in transit and apply role-based access in the system so commercial identifiers can be shared without exposing personal or sensitive business data. These controls keep product flows safe while preserving traceability data required by regulators or buyers.
Look to initiatives that demonstrate practical interoperability: projects led by ripeio and other cofounder-led initiatives show that combining product identifiers with event standards yields measurable reductions in data gaps. Cross-sector techniques such as mycotechnology pilot tracking illustrate that new inputs can be traced using the same identifier discipline, increasing buyer interest and helping teams build reusable patterns.
Operational checklist for teams implementing identifiers: (1) register GTIN/GLN/SSCC and publish them, (2) implement EPCIS event capture with ISO 8601 timestamps and WGS84 coordinates, (3) map vessel IDs and certificates into records, (4) validate payloads before ingestion, (5) expose an API/endpoint for partners, and (6) audit coverage quarterly with a sample size large enough to reach 95% confidence in completeness. Following this sequence will provide the structural data needed to take traceability from pilot to wholechain production.
For a deeper technical plan, consult this article’s reference schemas and sample payloads, adopt numbering and registry practices to avoid duplicate numbers, and remain open to community-driven standards so your implementation can continue to integrate with broader supply-chain initiatives.
Selecting identifier schemes: GTIN, GLN, lot IDs and local codes

Select GTIN for retail and consumer-pack SKUs, GLN for legal entities and physical locations, and implement structured lot IDs plus local codes mapped to those GS1 keys before first shipment.
Use GTIN-13 (EAN) for markets outside North America, GTIN-12 (UPC) in North America, and GTIN-14 for logistic/inner-outer packaging and pallets; reserve GTIN assignment for finished SKUs only and avoid reusing GTINs after a recipe or allergen change. GLN runs as a 13-digit identifier for company locations, sites and trading partners; register both GTIN and GLN with your national GS1 office where they become globally resolvable and protected by check-digit validation.
Define lot ID syntax as a machine-readable composite: [plantGLN]-[YYYYMMDD]-[productionShiftCode]-[batchSerial]-[harvestArea]. Example: 0123456789012-20250517-A-00042-US-NW. Require ISO 8601 timestamps for time-of-production and ISO 3166 area codes for origin. Limit the visible lot string for QR/label use to 32 characters while storing full components in the traceability system to support recalls and regulatory queries.
Keep internal codes for shop-floor processes but never expose them directly to external partners; maintain a persistent internal→GTIN/GLN crosswalk table in ERP and a versioned API for partner lookup. Set retention and access policies that satisfy seafood regulations currently in force: many jurisdictions require 2–5 years of traceability data for production and distribution records, and some health agencies request longer retention during investigations.
Capture five mandatory track-and-trace events for each trade item movement: creation (what: GTIN + lot), aggregation (what: GTIN-14 parent/child links), transformation (recipe changes), shipping (who: GLN; when: ISO 8601; where: GLN), and reception (status code). Store minimal event payloads (GTIN, lot, GLN, timestamp, quantity, eventType) to keep integrations compact and to speed queries during recalls–benchmarks show sub-second lookups with indexed GTIN+lot tables on cloud DBs.
Publish a partner acceptance checklist that requires: registered GTIN/GLN numbers, documented lot-ID schema, API access for crosswalks, and sample EDI/JSON payloads. studies received by agencies and trading partners demonstrate higher onboarding speed when those items exist. Specify where to register identifiers (national GS1) and where to send accreditation files for buyers and regulators to review.
Assign an internal identifier governance role (one owner per product family) to control GTIN lifecycle, lot ID format changes, and acceptance testing with customers. Marcel, cofounder of wholechain, said early governance increased partner acceptance; startups such as bluenalu became easier to integrate after formalizing SKU and lot policies. This approach aligns seafood producers with beverage and other perishables, ensuring consumer-facing traceability data supports both regulatory audits and consumer trust.
Applying the EPCIS event model for custody, transformation and movement
Adopting EPCIS ObjectEvent, AggregationEvent and TransformationEvent at each physical scan point will immediately make custody changes, product transformations and shipments machine-readable and traceable end-to-end; configure capture to include eventTime, recordTime, bizStep, disposition, readPoint (GLN) and epcList, and set timestamp precision to seconds for reconciliation.
For custody and movement, use AggregationEvent to record parent-child relationships and source/destination ownership: include ownerParty, carrierID, transportMode, temperatureReadings and estimatedArrival. Target a capture rate of 99% for pallet and case scans, aim for event latency under 2 minutes from scan to repository, and retain recordTime for a minimum of 7 years. These measures help solve audit queries, ensure traceable chains and reduce manual handoffs during internal processing and cross-dock operations.
Model transformations with TransformationEvent that maps inputEPCs to outputEPCs, supplies a recipeID, batchID, yield percentages and processingStep metadata; include weight, lotLink and qualityCheck references so mass-balance checks pass automatically. For example, devenyns moved a filleting line to EPCIS capture and saw a 28% reduction in reconciliation time; lillianna already connected in-house MES to epcis and insite dashboards, which helped operations highlight rework hotspots within 24 hours of a failed QC scan.
Standardize vocabularies and role permissions: publish a minimal core vocabulary (productCode, bizLocation, bizTransactionType) and map internal role attributes to EPCIS bizTransaction roles for authorized exchange. Integrate epcis with infor or ERP via REST/JSON or GS1 XML, secure feeds with HTTPS or AS2, and automate acknowledgements. Define KPIs (capture rate, latency, completeness) and assign a data steward per site to elevate flow quality; coordinated efforts across IT, operations and quality will show measurable gains and make most supply chains more traceable.
Defining the minimum catch record: species code, catch area, gear, date, vessel ID
Require these five fields as the minimum catch record to make catches traceable from capture to sale: species_code, catch_area, gear, capture_timestamp (start/end), and vessel_id.
-
species_code
- Format: FAO three-letter code (ASFIS/FAO) plus authoritative identifier: AphiaID or ITIS TSN. Example: “COD|GADUS_MORHUA|AphiaID:127055”.
- Validation: map code to a taxonomic registry (WoRMS/Aphia) at ingest; reject ambiguous common names. Maintain scientific name and a vernacular name for human-readable flow.
- Rationale: using a standard code reduces mislabeling that can cause foodborne risk and regulatory violations.
-
catch_area
- Format: FAO Major Fishing Area code (two digits) plus geometry in WGS84 (GeoJSON polygon or centroid with decimal degrees). Example: “27|{ “type”:”Point”,”coordinates”:[-17.5, 58.2] }”.
- Validation: require either FAO area OR GeoJSON; if both provided, confirm centroid falls inside FAO polygon. Tag with EEZ and flag state where applicable.
- Rationale: spatial precision supports compliance with regulations and protects against IUU fishing across distributed fisheries jurisdictions.
-
gear
- Format: FAO gear code (numeric or short code) plus standardized free-text fallback. Example: “GN|Bottom gillnet|FAO:GN”.
- Validation: map to a controlled vocabulary; deny vague entries like “net” without subtype; allow gear subtype codes for bycatch analysis.
- Rationale: gear type affects species selectivity and regulatory permitting; recording gear supports audit and bycatch mitigation programs.
-
capture_timestamp
- Format: ISO 8601 timestamps in UTC; provide capture_start and capture_end. Example: “capture_start”:”2025-07-14T03:20:00Z”,”capture_end”:”2025-07-14T05:10:00Z”.
- Validation: require device-signed timestamp or GPS log entry to prevent backdating; store timezone and device_id for provenance.
- Rationale: precise timestamps aid traceback for foodborne events and link catch events to VMS/AIS positions.
-
vessel_id
- Format: prefer IMO number (if available) or MMSI, otherwise national registration + flag. Example: “IMO:9123456” or “MMSI:219000123” or “REG:US-CA-FF1234|Flag:US”.
- Validation: cross-check with registry APIs; require at least one persistent identifier; if a vessel lacks international IDs, issue a UID scoped to flag state.
- Rationale: unique vessel identifiers link catch records to inspections, certificates, and sale transactions across systems.
Apply strict field-level rules:
- Enforce controlled vocabularies for species and gear; reject free-text when a code exists.
- Validate spatial fields against EEZ and FAO polygons; flag mismatches for manual review.
- Require signed timestamps with device_id and GPS coordinate to prevent tampering during capturing.
- Accept multiple vessel_id types but normalize to a canonical UID for distributed systems and downstream sale records.
- Record data provenance: source_system, operator_id, and stage (catch, transshipment, landing, sale).
Add minimal optional fields that deliver high value:
- catch_weight_kg (numeric; measurement_method: scales_type);
- product_state_at_capture (whole/bleed/iced);
- trip_id and tow_id for aggregated catches;
- certifications or permit_id linked to regulations and inspection records.
Validation and exchange guidance for implementers:
- Export and ingest as JSON-LD with clear schema URIs; include timestamps and digital signatures to ensure integrity across distributed ledgers or central registries.
- Design software focused on minimal required fields first, then add optional attributes without breaking the flow of data to processors and buyers.
- Map local identifiers to global standards at the edge (onboard or port) to achieve interoperability between most systems and marketplaces.
- Provide human-readable display strings and machine-readable codes; supply reconciliation reports when species or areas fail automated matching.
Operational notes and governance:
- Follow national and regional regulations for retention periods and record access; attach regulation_reference and timestamped attestations where required.
- Use role-based access so processors, auditors, and buyers see only permitted fields; keep provenance immutable to support foodborne outbreak investigations.
- An earlier internal memo writes that the president of a giant cooperative recommended a single minimal schema; that guidance seems aligned with industry pilots.
- Consider vendor pilots–solutionsnorpac and poinski appear as candidate platforms for prototype integrations–but verify they implement the validation rules above.
Practical outcome: consistent minimum records make catches traceable, reduce reconciliation work across distributed systems, and provide regulators and buyers the data needed to manage fisheries sustainably and to connect capture events to sale transactions.
Mapping legacy spreadsheets to GS1 XML/JSON and other schemas
Create a canonical mapping spreadsheet that maps each source column to a GS1 XML/JSON element and EPCIS field, and require one signed mapping per supplier before onboarding; include transformation rules, example values, an XSD/JSON Schema validation rule, and three test cases for each mapping so pilots can start immediately and meet regulatory traceability obligations.
Inventory columns and classify them as identifiers (GTIN, SSCC, GLN), event metadata (eventTime, bizStep, readPoint), logistic attributes (quantity, uom), and product attributes (lotNumber, bestBeforeDate). Example mappings: ItemCode -> GTIN: strip non-numeric characters, pad to 14 digits, validate GS1 check digit; BatchID -> lotNumber: preserve case, trim whitespace; PackDate -> bestBeforeDate: convert to ISO‑8601 (YYYY‑MM‑DDTHH:MM:SSZ) and normalize timezones; LocationName -> GLN: perform lookup against master location table. Apply validation throughout the ETL and use block-level file checksums to detect corruption.
Define transformation rules based on simple, executable steps: regex for formatting, unit conversion using UN/CEFACT codes (KGM, LTR), country code mapping to ISO‑3166, and lookup tables for trade/commodity codes. Implement those rules with XSLT for XML, jq or JSON Schema transformations for JSON, or with a mapping engine (Talend, Apache NiFi, or cloud ETL such as AWS Glue/GCP Dataflow). Use OpenRefine for mass-cleaning before automated ingest.
Many suppliers use ERP systems such as infor; internal tools like emma or lightweight APIs can accept validated GS1 JSON. Require suppliers to submit one sanitized sample feed and one full-file feed during pilots. Onboarding must include a short checklist: sample mapping approval, automated validation pass rate ≥ 98%, test EPCIS event flow, and signed administrative SLA that identifies who will manage schema changes.
Design governance that enforces schema versioning and a single source of truth for business rules; run small pilots focused on high-risk product groups (seafood and beverage) and expand based on measured error rates. Ask both suppliers and brand quality teams to approve mapping exceptions and retain a rollback path so feeds can be paused without blocking downstream systems. Capture tracking events and fraud-prevention signals in a separate intelligence stream for analytics and regulatory administration.
Set operational KPIs: time-to-onboard ≤ 5 business days, mapping coverage ≥ 95% of required GS1 elements, and daily validation failures ≤ 2% of records. Automate reporting to cloud dashboards, schedule weekly change windows for schema updates, and keep a human-in-the-loop review for any rule that changes business logic to prevent silent data drift during implementing and scale-up phases.
Harmonizing species taxonomy: FAO codes, scientific names and common names
Adopt FAO species codes as the canonical identifier, map each code to a single verified scientific name and to language-tagged common names, and publish the mapping as an open, versioned dataset.
- Core data model (required fields):
- fao_code (string): FAO numeric or alphanumeric code used as primary key.
- scientific_name (string): full Linnaean name including author and year where available.
- taxon_rank (string): species, subspecies, genus, etc.
- common_names (array): objects { language: “en”, name: “Atlantic cod” }.
- accepted_source (string): authoritative source id (FAO, WoRMS, ITIS).
- status (string): accepted, synonym, ambiguous.
- provenance (object): { provider, timestamp, confidence_score }.
- last_modified (ISO8601 timestamp).
- Validation rules and targets:
- Require exact fao_code → scientific_name mapping for 100% of incoming records.
- Maintain a reconciliation log where confidence_score < 0.90; target automated reconciliation ≥ 95%.
- Reject records missing fao_code unless a documented temporary mapping procedure executes (max 7 days).
- Crosswalk and authoritative sources:
- Primary: FAO species catalog. Secondary: WoRMS + ITIS for marine/range checks.
- Store crosswalks as delta files: weekly diffs and quarterly snapshots for auditing.
- Operational recommendations:
- Require all supply-chain partners to supply fao_code on invoices, catch reports and landing declarations; set a 60-day compliance window for companys currently missing codes.
- Implement server-side reconciliation using a platform API that returns {fao_code, scientific_name, match_confidence} for each submitted name.
- Log manual overrides with user_id and reason; audit overrides monthly.
- Use language-tagged common_names to drive consumer-facing labels and translation lines inside packing and retail systems.
- Governance and collaboration:
- Form a taxonomy working group with representatives from FAO, national regulatory bodies, industry (including ripeio and giant companys), and independent scientists.
- Include named contributors for transparency: borden, sherry, barbeire, cosgrove, poinski and tagones have expressed interest in piloting harmonization pilots.
- Mandate quarterly metadata reviews; publish minutes and change logs on the platform.
- Technology and integration:
- Expose a REST API and a bulk CSV/Parquet download. Example CSV header: fao_code,scientific_name,taxon_rank,common_name_en,common_name_es,accepted_source,last_modified
- Provide client libraries in common languages; technologists familiar with haskell, Python and JavaScript should contribute reference implementations.
- Use checksums and semantic versioning for datasets; therefore consumers can detect and apply updates safely.
- Traceability and mislabeling prevention:
- Embed fao_code on RFID tags or QR labels (tagones-style token) so every move along the supply chain carries a stable species identifier.
- Require chain-of-custody records to reference fao_code at each transfer point; set automated flags if species reported at transfer does not match recorded fao_code.
- Measure mislabeling rate by sampling at import, wholesale and retail; target reduction of labeling errors by 50% within 12 months of implementation.
- Standards and certification:
- Align dataset fields with existing standards used by certification bodies and regulators to avoid duplicate mappings.
- Proposed minimal specification: FAO code + scientific_name + language-tagged common_names + accepted_source = baseline standard for audits and inspections.
- Pilot and scale plan:
- Run a 6-month pilot with three supply chains: one small exporter, one large processor and one retailer. Select partners including ripeio and at least one giant companys.
- Collect KPIs: proportion of records with fao_code, reconciliation confidence, override count, and time-to-correct errors.
- After pilot, move to phased roll-out using the same APIs and governance model.
- Practical checklist for implementers:
- Map current species fields to fao_code; produce a delta report within 14 days.
- Deploy API client and schedule nightly batch reconciliation.
- Train data stewards and assign ownership; honor audit requests and keep a public changelog so auditors and partners are honored with transparency.
- Engage technologists and supply-chain teams in collaboration workshops; prioritize prevention of mislabeling through automated checks.
Follow this plan and systems will standardize species identification across suppliers, reduce manual mapping, improve traceability and enable reliable audits; companies that move early (examples: ripeio, partners working with haskell toolchains) will reduce risk and demonstrate compliance to regulatory bodies.
Capturing provenance and versioning when products are processed or repackaged
Assign a persistent parent–child identifier at the moment of processing or repackaging and write that identifier to the product provenance record together with their original lot numbers, species code, packed weight and operator identification.
Follow a clear step sequence: step 1 – capture input lot IDs, weights, temperature history and test results; step 2 – create a new product ID that references all parent IDs; step 3 – record the process type (cut, cook, blend, rebag), timestamp and facility administration record; step 4 – increment the version and publish an event to downstream tracking endpoints. Log retention: keep full data for 5 years and summarized indices for 10 years, unless local regulation requires longer.
Define a compact provenance schema that every node must exchange as data: original_lot_id, parent_ids[], new_product_id, version_string (semantic: 1.0 → 1.1 for packaging change, 2.0 for recipe change), process_code, operator_id, timestamp_utc, temperature_profile, sample_ids, contamination_flag (threshold numbers and test method), lab_report_link, and checksum. Use machine-readable identification (QR, RFID tag ID) and human-readable labels for on-site verification.
Deploy software solutions that expose REST APIs and event webhooks so existing platforms and ERP modules can subscribe to processing events. Evaluate vendors such as shaw and tagone for tag and sensor integration; require that any vendor map their fields to the proposed schema and align keys with national identifiers and GS1 where applicable.
Versioning and audit rules: increment versions atomically during administration operations, record the user and terminal that executed the change, and persist an immutable audit entry with a cryptographic hash. Enable automated contamination alerts with pre-configured thresholds that trigger isolation and recall procedures, provide fair access controls for supply partners and regulators, and generate safe-handling reports courtesy of the traceability platform to speed resolution.
Data Capture and Integration at Sea and Landing
Mandate vessel-level digital logs that capture GPS coordinates, ISO species identification codes, weight per set, and temperature every 15 minutes; require barcode or RFID scans at packing so crews can attach their vessel ID and batch identification at source.
Integrate those logs with port intake systems via lightweight REST APIs and MQTT for low-bandwidth conditions, emitting one event per transfer that includes timestamp, handler ID, and electronic signature; configure automated validation rules so records with missing fields are rejected before arrival and releases to buyers or regulators occur only after successful validation.
Anchor hashed pointers to off-chain payloads on a permissioned blockchain to provide immutable proof without storing bulky sensor streams on-chain; this approach supports auditable tracking where verification needs an immutable anchor but full payloads have been added to secure cloud storage, which remain accessible through the on-chain pointer. In a recent pilot case, kirsten said the trial across 120 vessels and three companys reduced reconciliation errors by 18% and cut recall preparation time from 72 hours to 10 hours.
Attach timestamped sample IDs and chain-of-custody metadata to lab results so a positive foodborne test links instantly to the exact box and handling event within the chain; quick linkage helped isolate affected lots in one case within six hours, supporting consumers and demonstrating fair compensation proofs for fishers whose verified catches remained outside the recall.
Adopting open standards reduces integration friction: operators should take three steps now – (1) require GTIN/ISO identifiers at unit and batch level, (2) deploy encrypted vessel credentials plus offline buffering for intermittent connectivity, and (3) sign data-sharing agreements that define access rights, retention windows, and automated release triggers so audits, recalls, and buyer queries resolve without manual reconciliation.