An audit trail that logs "record changed" without capturing who, when, what the value was before, and why the change was made cannot actually support a data integrity conclusion. Complete audit trail metadata is what turns a log entry into evidence, and gaps in it are one of the most commonly cited findings in data integrity inspections.
Shortcut: If your audit trail cannot answer 'what was the value before this change', it is not complete, no matter how many events it logs.
At a glance
| Area | Question | Evidence |
|---|---|---|
| Who | The specific user identity, not a shared account | Unique user ID tied to the action |
| When | Timestamp with time zone, synced to a reliable source | System clock validated and synchronized |
| What changed | Old value and new value, not just 'modified' | Before/after value capture |
| Why | Reason for change, especially for GxP-critical data | Mandatory reason code or comment field |
Capture identity, not just access
A username tied to a shared login account cannot prove who actually made a change. Every audit trail entry needs to trace back to an individual, accountable user identity, which means shared or generic accounts have no place in systems generating GxP-relevant records.
Capture the value, not just the fact of a change
Logging "field X was modified" without recording what it changed from and to is functionally useless for investigating a data integrity concern. Old value and new value both need to be captured, in the same entry, at the time of the change, not reconstructed later from other sources.
Require a reason for GxP-critical changes
Not every field needs a mandatory reason code, but fields that feed a quality decision or regulatory submission do. Configure mandatory reason-for-change capture on GxP-critical fields, and make the reason field free-text or a controlled list depending on what the process requires, but never optional.
- Identify which fields are GxP-critical during system configuration, not after a finding.
- Set mandatory reason capture on those fields at the system level, not by procedure alone.
- Periodically confirm the mandatory setting has not been silently disabled during an update.
Synchronize and protect the timestamp source
A timestamp is only as trustworthy as the clock generating it. Validate that system clocks are synchronized to a reliable time source and that timestamp generation cannot be manually overridden by a user, which would undermine the entire chronology the audit trail is meant to establish.
Review metadata completeness periodically, not just at validation
A field that captures complete metadata at go-live can silently stop doing so after a configuration change, integration update, or vendor patch. Periodically sample audit trail entries and confirm all required metadata fields are still populated correctly, not just that the audit trail function is technically running.
Why this matters at review time
Audit trail metadata gaps are among the most frequently cited data integrity findings precisely because they are invisible during normal operation; a system can run for years with an incomplete audit trail and nobody notices until an investigation actually needs the missing field. Building metadata completeness checks into routine monitoring, rather than relying solely on the original validation, is what catches this class of gap before it becomes a finding.
Who owns what
| Role | Responsibility |
|---|---|
| System configurator | Sets up audit trail fields and mandatory reason-for-change rules |
| Validation lead | Tests metadata capture completeness during initial validation |
| QA | Periodically samples audit trail entries for ongoing completeness |
| System owner | Owns remediation if a metadata gap is discovered |
Common mistakes to avoid
- Allowing shared or generic login accounts. Any audit trail entry attributable to a shared account cannot prove individual accountability, regardless of how complete the rest of the metadata is.
- Capturing the new value but not the old one. Logging only the current state after a change loses the ability to reconstruct what actually happened, which is the core purpose of the audit trail.
- Making reason-for-change optional on critical fields. An optional reason field on a GxP-critical field will be left blank often enough to undermine the trail's usefulness for investigations.
- Never sampling for metadata completeness. A system that logged complete metadata at validation can silently stop doing so after an update; periodic sampling is the only way to catch that.
Putting this into practice
Eliminate shared or generic accounts from any system generating GxP-relevant audit trail entries. Confirm old-value and new-value capture during initial validation, field by field, not just at the system level. Configure mandatory reason-for-change specifically on fields identified as GxP-critical. Add a periodic metadata completeness sample to routine system monitoring.
Quick checklist
- No shared or generic login accounts used on any system generating GxP records
- Old value and new value both captured at the time of the change
- Reason-for-change mandatory specifically on fields identified as GxP-critical
- System clock validated as synchronized and protected from manual override
- Periodic sample confirms all required metadata fields remain populated after updates
- Metadata requirements documented per field, not assumed at the system level
Where this shows up in practice
The consequence of incomplete metadata rarely shows up during normal operation; it shows up during an investigation, when someone needs to reconstruct exactly what a record looked like before a specific change and finds that the audit trail logged that a change happened but not what the value actually was beforehand. At that point, the gap cannot be retroactively fixed for the record already affected. The only real prevention is confirming metadata completeness during validation and rechecking it periodically, long before any specific record becomes the subject of an investigation.
A worked example
Consider a scenario where an investigation into a data discrepancy needs to determine what a specific field's value was three months earlier, and the audit trail shows the field was modified on the relevant date but logs only that a change occurred, with no captured old value. Without the old value, the investigation cannot reconstruct the actual history of the record, which limits the conclusions that can be drawn and may require falling back on secondary sources like backup files or related records, if they exist at all. The immediate fix confirms whether the missing old-value capture is a system-wide gap or specific to that field's configuration, and closes it going forward. But the investigation into the original discrepancy is now permanently limited by the metadata gap that already existed at the time the event occurred, a limitation that cannot be retroactively corrected no matter how thoroughly the underlying process is fixed afterward.
A validation lifecycle management platform's own audit trail is a useful model for what complete metadata capture looks like in practice: individual user identity, synchronized timestamps, old and new values, and mandatory reason codes on critical fields, all captured automatically rather than depending on manual discipline to remember every requirement.
For related control detail, see risk-based audit trail review frequency and the audit trail exception workflow elsewhere in this archive.
Frequently asked questions
What metadata fields must a GxP audit trail capture?
At minimum: individual user identity, a synchronized timestamp, the old and new values for the change, and, for GxP-critical fields, a documented reason for the change.
Is a system-generated timestamp always trustworthy?
Only if the underlying clock is validated as synchronized and protected from manual override. An unvalidated or user-adjustable clock undermines the timestamp's evidentiary value.
Do all fields need a mandatory reason-for-change code?
No. Reason codes should be mandatory specifically for fields identified as GxP-critical, determined during system configuration and risk assessment.
How often should audit trail metadata completeness be checked?
Periodically, through sampling, in addition to the initial validation, since configuration or vendor changes can silently degrade metadata capture over time.
Sources
Talk to VLMS about your validation programme
See how VLMS supports audit trails and electronic records with a validated, audit-ready platform.
Contact VLMS