Why Audit Before Endpoint Calculation?
A bioequivalence analysis depends on a chain of data transformations. Concentration records are checked and organized, pharmacokinetic endpoints such as AUC and \(C_{\max}\) are derived, and then the endpoint data are analyzed. If an error enters early in that chain, later calculations can be precise but wrong. A concentration entered in the wrong unit can distort an entire profile; a sample assigned to the wrong period can attach an otherwise valid endpoint to the wrong treatment.
Data-integrity diagnostics are checks on whether records are complete, coherent, and supported by source documentation. They do not establish that a treatment effect is present or absent. Their purpose is to identify discrepancies, investigate them, and create a defensible analysis dataset before calculating endpoints or fitting a model. The checks described here complement the earlier material on incomplete concentration profiles and missing PK samples: a missing record and a questionable record are different problems, and neither should be resolved by silently changing the data.
Set the Record Structure and Rules First
A duplicate can be identified only relative to the intended unit of observation. For a concentration dataset, a useful candidate key might include participant, period, analyte, sample collection time, and sample type. The appropriate key depends on how the data were collected. If assay injections or repeat measurements are stored as separate records, the key must also distinguish those legitimate replicates. Otherwise, a valid repeat can be incorrectly removed as a duplicate.
Before reviewing values, define expected fields, permissible units, the treatment-code crosswalk, and time rules. Time rules should specify the relevant reference point—for example, actual collection time relative to actual dose time—and how dates, time zones, and permitted deviations are represented. A value outside a rule should normally be flagged for review rather than automatically deleted or overwritten.
Keep a read-only copy of the received records and record their source, version, and date of receipt.
Generate flags for duplicate candidate keys, unexpected units, inconsistent timestamps, invalid codes, and unusual values.
Use authorized records such as laboratory data, collection documentation, dosing records, and the randomization file. Do not resolve a discrepancy merely by choosing the more plausible value.
Document the flag, evidence reviewed, decision, responsible reviewer, date, and any resulting change. Retain the original value and distinguish confirmed corrections from unresolved or excluded records.
After review, create a versioned dataset for endpoint derivation and modeling. Preserve the rules and audit log so the analysis can be reproduced.
Worked Example: Distinguishing Duplicates from Replicates
Worked Example: Distinguishing Duplicates from Replicates
Suppose a mock concentration file contains the following records. The intended sample-level key is participant, period, analyte, and actual collection time. The assay-injection field is retained to identify laboratory replicates.
| Participant | Period | Analyte | Time (h) | Injection | Concentration (ng/mL) |
|---|---|---|---|---|---|
| 014 | 1 | Parent | 2.00 | 1 | 8.1 |
| 014 | 1 | Parent | 2.00 | 1 | 8.1 |
| 014 | 1 | Parent | 2.00 | 2 | 8.0 |
The first two rows match on every displayed field. They are an exact repeated record and should be flagged; they are not two independent samples. The third row has a different injection number, so it may be a legitimate assay replicate. The assay record and data-transfer rules must confirm that interpretation.
The sample-level key identifies one collected sample, not necessarily one laboratory measurement. If the duplicate first row were treated as an additional independent sample, it could affect later processing, especially if a program averages all rows without recognizing the sample and injection structure. The two assay injections should likewise not be treated as two separate collection times. The correct action is to compare the repeated row with the transfer source, determine whether it was duplicated during data handling, and retain a documented disposition. It is not appropriate to delete either record simply because the values happen to be identical.
Units, Timestamps, and Treatment Codes
Unit checks should cover both the recorded unit and the value’s intended meaning. For concentration, a dataset might contain ng/mL and mg/L. These units are convertible, but a numeric value cannot be interpreted safely without knowing which unit applied to that record. Using \(1\ \text{mg/L}=1000\ \text{ng/mL}\), a verified value of \(0.0048\ \text{mg/L}\) converts as follows:
Conversion is justified only if the original unit is confirmed and the conversion is applied consistently. A suspiciously large or small number is a diagnostic clue, not sufficient evidence of a unit error. If the unit is missing or conflicts across records, investigate the originating laboratory file and document the decision before deriving endpoints.
Timestamp checks compare the collection record with dose time, nominal sampling time, and study documentation. For instance, a postdose sample recorded at 08:30 cannot be accepted as a two-hour postdose sample if the verified dose time is 09:00. That conflict could reflect a wrong date, an incorrect dose time, a transcription error, or a sample-label problem. It should be flagged and reconciled using source records, not “fixed” by shifting the timestamp to fit the nominal schedule. A pre-dose sample after the documented dose is another conflict that warrants investigation. Time-zone and date rollover conventions matter when records span midnight.
Treatment codes require the same source-based approach. Compare the code on the concentration record with the authorized code list and the participant’s period-level administration documentation. A value that is not in the code list is an invalid-code flag. A valid code that conflicts with the administration record is a discrepancy requiring review. Do not infer or change the administered treatment from an expected pattern or from the concentration profile; the profile is not an authoritative treatment record.
Worked Example: Resolving a Unit and Timestamp Conflict
In a hypothetical file, a concentration is recorded as \(0.0062\ \text{mg/L}\), while the surrounding records are in ng/mL. The laboratory source confirms that the unit for this record is mg/L. The converted value is:
The unit discrepancy is resolved by documented conversion, with the original \(0.0062\ \text{mg/L}\) retained in the audit trail and the analysis value recorded as \(6.2\ \text{ng/mL}\).
The same participant’s record labels this sample as two hours postdose, but the collection time is 10:15 and the documented dose time is 09:00. The elapsed time is \(10{:}15-09{:}00=1\) hour 15 minutes, or 1.25 hours, not 2 hours. The record is therefore flagged. The confirmed unit conversion does not resolve the time conflict: the collection log must be reviewed separately. If it confirms 10:15, the actual time can be retained while the nominal-time discrepancy is documented. If the collection time cannot be verified, the record remains unresolved under the study’s prespecified data-handling rules; it must not be relabeled as two hours solely because that is the nominal sample.
Transcription Errors and a Short Justification
A transcription error is a value that was copied or entered incorrectly relative to its source. Range checks and profile displays can identify candidates: an isolated concentration of 810 ng/mL amid values near 8–12 ng/mL may be suspicious. But the size of the value alone cannot establish that it should be 8.10 ng/mL. The original laboratory record, instrument output, or verified transfer file is needed to support correction. If that evidence is unavailable, retain the uncertainty and follow the prespecified rule for unresolved data.
The reason duplicate and unit checks must precede endpoint calculation can be seen from the linear trapezoidal interval used in AUC calculation. For adjacent times \(t_1,t_2\) and concentrations \(C_1,C_2\), the interval area is:
If concentration is multiplied by 1000 because its unit is mg/L rather than ng/mL, the interval area is also multiplied by 1000 when time units are unchanged. If time is mistakenly entered in minutes instead of hours, the numerical interval width changes by a factor of 60. Thus a unit or time error can propagate directly into the derived endpoint. A duplicate with a conflicting value can also change the adjacent trapezoids. This is why a suspicious record should be resolved at the record level before endpoint calculation, rather than “corrected” after seeing its effect on AUC.
Worked Example: Investigating a Suspected Transcription Error
A hypothetical profile has concentrations of 7.8, 8.4, 81, and 9.2 ng/mL at 1, 2, 3, and 4 hours. The value 81 ng/mL is a strong range-check flag because it differs sharply from its neighbors. It is not, by itself, proof of a decimal-point error.
Suppose the verified laboratory source shows 8.1 ng/mL at 3 hours. The record can then be corrected from 81 to 8.1 ng/mL, with the source value, original entry, corrected value, reviewer, and reason logged. If the source instead confirms 81 ng/mL, it must not be changed to 8.1 merely to make the profile smoother; the confirmed value is retained and handled under the applicable analysis rules. If no source can be found, the discrepancy remains unresolved rather than being guessed.
For illustration, the trapezoidal area from 2 to 3 hours using the original entered value is:
Using the source-confirmed value, the area is:
The large difference shows why verification matters; it does not provide evidence for choosing one value without the source record.
Diagnostics, Alternatives, and Limitations
Useful diagnostics include counts of repeated candidate keys, records with unexpected units or codes, negative or implausible elapsed times, and flagged concentration values. Reviewers can also examine concentration-versus-time displays to identify abrupt discontinuities or profiles inconsistent with documented timing. These displays generate questions; they do not prove a data error. Automated rules should be reproducible, and their output should retain enough detail to locate the record and explain the flag.
There are two poor alternatives to a documented audit. One is to delete every unusual value or duplicate automatically. This can discard legitimate assay replicates or real observations. The other is to correct values based on what makes the profile look smooth or the analysis look more favorable. This introduces subjective, outcome-dependent decisions. Source-based review with an audit trail is preferable. Where a source cannot resolve a discrepancy, transparent retention, exclusion, or other handling under prespecified rules is more defensible than unsupported correction.
These diagnostics have limits. A dataset can pass every programmed check and still contain an undetected error, especially if the source itself is wrong. A flagged value can be genuine, and a plausible value can be misassigned. Data-integrity review does not establish protocol compliance, determine the appropriate bioequivalence model, or replace review of the study documentation. It provides a verified and traceable input for those later tasks.
Check Your Understanding
Answer each question, then compare your reasoning with the solutions below.
- Two rows have the same participant, period, analyte, and collection time but different assay-injection numbers. Are they necessarily duplicate samples?
- A verified concentration of \(0.0035\ \text{mg/L}\) must be expressed in ng/mL. What is the converted value?
- A sample is labeled as one hour postdose, but its recorded collection time is 40 minutes after the verified dose. What should be done?
- A value is much larger than neighboring concentrations, but no source record is available. Is it justified to replace it with a smaller, more plausible value?
Solutions. (1) No. Different injection numbers may identify legitimate assay replicates; check the assay records and the intended data structure. (2) \(0.0035\times1000=3.5\ \text{ng/mL}\), provided the original mg/L unit is verified. (3) Flag the nominal-versus-actual time discrepancy and review the collection documentation; do not change the time to match the label without evidence. (4) No. The value is a candidate for investigation, but plausibility alone does not establish the correct value. Document the unresolved discrepancy and apply the prespecified handling rule.