Tag Catalog Template & Ownership Matrix
A practical, ready-to-use tag catalog template with complete metadata fields, naming standards, an ownership matrix, governance rules, examples, and a CSV header you can import to start building a single source of truth for shopfloor telemetry, dashboards and MES integration.
Why a Tag Catalog matters
Consistent, discoverable tags make analytics, dashboards, alerts, and MES integrations trustworthy and maintainable. This template helps you capture the metadata every tag needs, who owns it, and how it should be used — so teams stop guessing about units, ranges, lineage, and retirements.
How to use this template
- Copy the CSV header below or this template into your preferred catalog tool (spreadsheet, CMDB, or database).
- Fill required fields for each telemetry point or tag.
- Assign an owner and consumers, publish the catalog as the canonical source of truth, and link it to dashboards and MES mappings.
- Run periodic audits for duplicates, missing metadata, and out-of-range values.
Recommended catalog fields (columns)
Include these fields for each tag. Mark required items in your implementation.
| Field | Purpose | Required | Example | Notes |
|---|---|---|---|---|
| tag_id | Stable unique identifier for the tag (internal key) | Yes | TAG-0001234 or a UUID | Use machine-friendly IDs (no semantic changes). |
| canonical_name | Formal name used in systems and integrations | Yes | PLT1.LINE02.PUMP03.TEMP | Follow your naming standard below. |
| friendly_name | Human-readable label for UI and documentation | Yes | Pump 3 Discharge Temperature | Clear, not truncated. |
| description | Short description of what is measured and why | Yes | Temperature at pump 3 discharge outlet sensor | Include measurement intent where useful. |
| unit_of_measure | Stored measurement unit | Yes | °C | Prefer SI; record unit metadata rather than encoding in name. |
| data_type | Numeric, Boolean, String, Enum, Timestamp | Yes | Float | Affects storage, precision, and validation. |
| sampling_rate | How often values are recorded | Yes | 1s / 1m / event | Use ISO duration-like notation if possible. |
| expected_range_min | Lower bound for basic validation | No (recommended) | -20 | Used for alerts and data-quality checks. |
| expected_range_max | Upper bound for basic validation | No (recommended) | 120 | |
| precision | Decimal precision or significant figures | No | 0.1 | Useful for display and storage sizing. |
| source_system | Origin system (PLC, historian, sensor, OPC tag) | Yes | Historian-X / PLC-Rack2 | Helps trace lineage. |
| source_point_id | Original point identifier in the source system | Yes | HIST:TAG:PLT1:TMP_P03 | Used for automated mappings. |
| asset_link | Asset hierarchy or parent asset reference | Yes | Plant1 > Line02 > Pump03 | Support hierarchical queries and rollups. |
| location | Physical or logical location | No | Building A — Bay 5 | Optional but useful for maintenance. |
| retention_policy | How long raw and aggregated data are retained | Yes | Raw: 1 year; Aggregates: 7 years | Align with regulatory and business needs. |
| lifecycle_status | Active, Deprecated, Retired, Proposed | Yes | Active | Govern retirements via change control. |
| owner_role | Primary business or data steward role | Yes | Process Owner / Instrumentation Engineer | See ownership matrix below for responsibilities. |
| owner_contact | Owner name, email, or group alias | Yes | ops-lead@acme.com | Essential for quick clarifications. |
| consumer_list | Teams, dashboards, or systems that consume the tag | No | OEE Dashboard; MES Batch Tracking | Used for impact analysis when changing tags. |
| access_classification | Security or sensitivity label | No | Internal / Restricted | Controls who can view or edit. |
| downstream_uses | Main reports, KPIs or models that rely on this tag | No | Yield Calculation, Alarming | Improves change impact assessment. |
| transformations | Any transformations applied (scaling, offsets) | No | raw*0.1 - 273.15 | Specify precisely so consumers reproduce results. |
| quality_checks | Checks, QA rules or validation logic | No | Null rate < 1%; spike filter | Reference the automated rule if implemented. |
| last_updated | Date of last metadata change | Yes | 2026-06-01 | Supports audits. |
| notes | Freeform additional context | No | Sensor replaced 2025-11 | Useful history for troubleshooters. |
Naming standard (recommended)
Keep canonical names machine-friendly, consistent, and hierarchical. Resist encoding units or transient context into the name — use metadata for that.
Suggested pattern: <Site>.<>Area>.<>Line>.<>Asset>.<>MeasurementType>
Example: PLT1.LINE02.PUMP03.TEMP
- Use consistent separators (dot ".") and uppercase for canonical names.
- Maintain an abbreviations list (e.g., TEMP = temperature, PRES = pressure).
- Reserve friendly_name for user-facing labels and translations.
Ownership matrix (roles & responsibilities)
Assign both a data steward (metadata owner) and a system owner (technical). Use this matrix when roles overlap.
| Role | Primary Responsibilities | Escalation |
|---|---|---|
| Process Owner | Defines measurement intent, expected range, downstream uses; approves changes | Plant Manager |
| Instrumentation/OT Owner | Ensures source mapping, physical sensor health, and tagging in PLC/Historian | OT Manager |
| Data Steward | Maintains catalog metadata, naming, quality checks, and retention policies | Data Governance Lead |
| Analytics / MES Owner | Registers consumer needs and approves schema changes impacting dashboards or MES | Analytics Lead |
| IT/Security | Access control, classification, backup and retention enforcement | IT Manager |
Governance checklist
- Publish the catalog as the canonical source for analytics and MES mappings; link dashboards to canonical tag IDs not local aliases.
- Require an owner and contact for every tag before it is marked Active.
- Enforce a change control process for canonical_name changes — prefer creating a new tag_id and deprecating the old one.
- Run automated duplicate detection and flag similar friendly names or identical source_point_id entries.
- Schedule periodic reviews (e.g., quarterly) to validate active tags, owners, and retention settings.
- Define a retirement workflow: mark Deprecated <–> schedule archival <–> Retired and remove from downstream datasets after retention period.
CSV header you can copy
Use this header to import/export or seed your catalog tool:
tag_id,canonical_name,friendly_name,description,unit_of_measure,data_type,sampling_rate,expected_range_min,expected_range_max,precision,source_system,source_point_id,asset_link,location,retention_policy,lifecycle_status,owner_role,owner_contact,consumer_list,access_classification,downstream_uses,transformations,quality_checks,last_updated,notes
Integration & MES mapping notes
Map source_point_id and source_system fields directly to MES or historian adapters. Keep the canonical_name stable in integrations — if you must change it, perform a coordinated migration: create a new tag_id, update consumers, then retire the old tag after verifying no downstream breakages.
Common mistakes to avoid
- Relying on friendly names only — machine integrations must use canonical names or tag_ids.
- Encoding units or transient context in canonical names instead of metadata.
- Missing owners or unclear responsibilities for retirement and schema changes.
- No retention policy — leads to uncontrolled storage costs and compliance gaps.
Next steps (practical)
- Seed the catalog with high-value tags for one line or asset group (start small).
- Integrate catalog lookups into dashboard source mappings so creators pick canonical tags from the catalog instead of free text.
- Set up a short monthly review for owners of seeded tags to fix missing metadata and confirm ranges.
Result: A clear, governed catalog reduces duplicate signals, prevents wrong joins, improves alert reliability, and speeds troubleshooting and MES integration.
Discussion
Comments and conversation will live here.