What the Traceability Matrix Actually Does
The traceability matrix (TM) is a living document that maps every user requirement to the design specification that addresses it, and from there to the test case that verifies it was met. It answers one question in both directions: has every requirement been tested, and does every test case justify its existence?
Without a traceability matrix, you can produce a complete set of IQ, OQ, and PQ protocols and still arrive at a QA review with gaps โ requirements that were never tested, or test cases that don't trace back to any stated requirement. The TM is the mechanism that prevents both.
A complete traceability matrix must pass two tests. Forward trace: every URS requirement links to at least one test case. Backward trace: every test case links back to at least one URS requirement. A test case with no requirement reference is gold-plating. A requirement with no test case is a scope gap.
The Structure of a GAMP 5 Traceability Matrix
In its simplest form, the traceability matrix is a spreadsheet with one row per requirement. Across the columns, each row traces that requirement through the full V-Model chain:
What Each Column Should Contain
The exact columns vary by project and client, but a robust traceability matrix for a Cat 4 PLC/SCADA project typically includes:
- URS Reference โ the unique ID of the requirement (e.g. URS-F-001)
- Requirement text โ the full requirement as written in the URS
- Priority / Risk โ Critical / Major / Minor, drives test depth
- FDS Reference โ which section of the FDS addresses this requirement
- FAT Reference โ which FAT test case(s) test this requirement at the factory
- IQ Reference โ which IQ check(s) verify the hardware/software for this requirement
- OQ Reference โ which OQ test case(s) verify operation
- PQ Reference โ which PQ run(s) verify performance under real conditions
- Status โ Open / In progress / Closed, updated as protocols are executed
Engineers often build the traceability matrix after writing their protocols โ essentially reverse-engineering the trace from existing test cases. This is backwards. The TM should be built alongside the URS, so every requirement gets a unique ID as it's written. Test cases are then written to trace back to those IDs.
What Gaps Look Like โ and What They Cost
There are two types of gap, and both are findings in a QA review:
Untested requirement โ a URS requirement with no corresponding test case in any protocol. The regulator's question is: how do you know this requirement was met? Without a test case, the answer is "we don't." For 21 CFR Part 11 requirements, this is a critical finding โ one that can result in a warning letter.
Untraceable test case โ a test case in your OQ with no corresponding URS requirement. This is less severe but still a finding โ it means your testing scope was defined by what was convenient to test, not by what the client actually required.
In our experience, a project without a maintained traceability matrix will typically have 3โ8 untested requirements when reviewed. Each one becomes a deviation to resolve โ at the worst possible time, immediately before go-live.
Building One That Actually Works in Practice
The practical steps for building a traceability matrix that holds up under scrutiny:
- Number every URS requirement at authoring time โ not as an afterthought (our URS guide covers the correct ID format)
- Classify each requirement as Functional, Safety, Performance, or Regulatory โ this drives which protocol phases it needs
- Assign a risk level (Critical/Major/Minor) โ higher risk requirements need more test depth
- Populate the FDS reference before starting the IQ/OQ protocols
- Write OQ test case IDs into the TM as you write each test case โ not at the end
- Filter for blank cells before submitting for QA review โ any blank in the OQ column is a gap
The Traceability Matrix template is pre-structured with all required columns, dropdown validation for status fields, and conditional formatting that automatically highlights gaps in red. It's linked to the URS numbering convention used in all other templates, so trace references are consistent across your entire document set.