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

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? |


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.
Links
- Tool and download: Teamcenter Metadata Audit resource page
- The method: Teamcenter Metadata Management Best Practices
- Want the audit run across your Teamcenter estate with a cleanup plan? Get in touch.
Measurable Impact
Key Outcomes & Performance
Quantified business outcomes and engineering improvements delivered.
Checks
Completeness, validity, part-number pattern, uniqueness
Changes to your data
Reads one CSV, writes one issues file
Dependencies
Standard-library Python
Visual Documentation
Project Gallery & Technical Visuals
High-precision 3D CAD renders, exploded assemblies, and fabrication documentation.
Process & Milestones
Engineering & Development Journey
From initial requirements gathering to precision modeling and manufacturing validation.
Name the failure modes
AnalysisEmpty fields, free-text values, broken part numbers and duplicates.
Turn each into a check
DesignOne check per failure mode, with near-miss hints.
Report, do not fix
BuildScorecard plus a row-level fix list; the data is never changed.
Make it a gate
ReleaseJSON output and a minimum pass rate for pipelines.
Technical Stack
