PLM & Teamcenter

Teamcenter Metadata Audit: Measuring PLM Data Quality

A free read-only Python script that scores a Teamcenter item export for empty fields, invalid values, part-number breaks and duplicates, with a pass-rate gate for releases.

Client
Personal open-source project
Role
Designer and developer
Timeline
Oct 2026 — Oct 2026
Stack
Python, CSV, JSON output +1
Teamcenter Metadata Audit: Measuring PLM Data Quality

Case study

Challenge & Solution

The problem

Most Teamcenter problems that look like software problems are label problems: a search that misses a part, a BOM report with four spellings of one material, a part created twice because nobody could find the first. Teams know their metadata is messy, but rarely know how messy or where, so cleanup never gets prioritised.

What I built

A free, MIT-licensed, read-only Python script that scores a Teamcenter item export, published as the resource Teamcenter Metadata Audit. It is the audit from Teamcenter Metadata Management Best Practices, extended so it can run as a release gate.

Check Question it answers
Completeness Are the required attributes filled in?
Validity Is every value on the approved list? Near-misses get a “did you mean” hint.
Part-number pattern Does every item ID match the numbering rule?
Uniqueness Are there likely duplicates, ignoring case, spacing and punctuation?
From a governance guide to a measurable audit: name the failure modes, turn each into a check, report without fixing, make it repeatableFrom a governance guide to a measurable audit: name the failure modes, turn each into a check, report without fixing, make it repeatable
The article says what good metadata is; the script measures how far a real export is from it.

Design decisions

Decision Why
Read a CSV, never connect to Teamcenter It needs no credentials, no access request and no install on the server. Anyone with an export can run it, and nothing leaves the machine.
Report, never fix An audit that edits data cannot be trusted as an audit. It writes one issues file and changes nothing else.
Exact-match lists “Stainless Steel 304” and “stainless steel 304” are different values on purpose: that difference is the problem the audit exists to find.
Duplicates are candidates Likely duplicates are flagged for review, not merged.
Standard library only One file to copy, nothing to install, easy to review.
Gate-friendly output --json for dashboards and --min-pass 0.95 to exit with code 1 when any check falls below a threshold.

Result

On the included 7-row sample the script reports 7 issues and this scorecard:

Check Passed Total Rate
Completeness 26 28 92.9%
Part-number pattern 6 7 85.7%
Uniqueness 5 7 71.4%
Validity 4 6 66.7%

issues.csv lists every failing row with the item ID and a fix hint. Sample data ships with the resource so the run can be tried before using real exports.

Limits

It checks what is in the export, so it is only as good as the rules you describe: required columns, list files, a part-number pattern and duplicate keys. It does not read Teamcenter rules, workflows or relations.

Measurable Impact

Key Outcomes & Performance

Quantified business outcomes and engineering improvements delivered.

4

Checks

Completeness, validity, part-number pattern, uniqueness

None

Changes to your data

Reads one CSV, writes one issues file

0

Dependencies

Standard-library Python

Process & Milestones

Engineering & Development Journey

From initial requirements gathering to precision modeling and manufacturing validation.

Name the failure modes

Analysis

Empty fields, free-text values, broken part numbers and duplicates.

Turn each into a check

Design

One check per failure mode, with near-miss hints.

Report, do not fix

Build

Scorecard plus a row-level fix list; the data is never changed.

Make it a gate

Release

JSON output and a minimum pass rate for pipelines.

Technical Stack

Technologies, Tools & Frameworks

Python
CSV
JSON output
Teamcenter export