Independent and not affiliated with the FDA, MHRA, ISPE, PDA, or any agency. Get the appgoutham@madhadi.com
madhadi.comData Integrity & GxP Quality
Browse all topics -> Articles Templates & Procedures Learning paths GlossaryScenariosToolsRegulatory ReferencesLearning PathsTopics About Start here
Record Plug-and-play starting point Clinical & GCP

Record: Statistical Analysis and TLF Package QC Sign-off

A plug-and-play package-level QC sign-off record that gates a locked table-listing-figure package and its statistical analysis writeup before CSR embedding or submission: completeness against the shell inventory, cross-output subject-count reconciliation, estimand and ICE-handling verification in the headline tables, open items, and traceability to the locked database, with a filled specimen.

Document type: Record

Read and copy the template below into your own quality system. It is a generic starting point for your own internal use, provided as is, with no warranty; see the Terms and License. Adopting it does not by itself create compliance.

This is a ready-to-use package-level QC sign-off record for a locked tables-listings-figures (TLF) package and its accompanying statistical analysis writeup. It is the final gate before the package moves to clinical study report (CSR) embedding or a regulatory submission. Replace every <<FILL: ...>> placeholder with your own specifics, present actual counts and findings rather than the word “pass,” and route it through document control. A worked filled specimen follows. Verify each cited regulation against the current source before you rely on it. This is educational reference content, not regulatory advice.

Why this record earns its place

The SOP for independent statistical programming and TLF validation validates one output at a time: a table, a listing, a figure, produced and independently reprogrammed, compared, and signed. That per-output discipline is necessary and it is not the same question as this record answers. This record asks whether the whole package, everything the biostatistician is about to hand to medical writing or regulatory affairs, is complete, internally consistent, still tied to the locked database it was supposed to be run against, and faithful to the estimand and intercurrent-event handling the SAP defined. A package can pass every individual output’s double programming and still fail this gate, most commonly because one output was quietly regenerated against a later database state after a late data correction, one that was never itself locked, or because the primary table’s footnote no longer matches the estimand after a SAP amendment. See ICH E8(R1) and E9 trial design and statistics for how the estimand and the CtQ register make certain outputs, and certain reconciliations, non-negotiable rather than nice to have.

FieldEntry
Record number<<FILL: RPT-ID, e.g. SAR-QC-ABC201-01>>
Study / protocol<<FILL>>
Locked database snapshot / version<<FILL: from the database lock memo>>
Governing SAP version / date<<FILL>>
Analysis typePrimary / interim / final CSR / resubmission (<<FILL>>)
Preconditions: per-output validation SOP reference<<FILL: SOP-ID>>

Section A: preconditions

#PreconditionStatusEvidence
A1Database lock memo referenced above is the source for every output in this package<<FILL: Yes/No>><<FILL: lock memo reference>>
A2SAP is the final, unblinding-dated version; any post-unblinding amendment is flagged and justified<<FILL>><<FILL: SAP version history>>
A3Every Tier 1 and Tier 2 output in this package has a closed, signed validation record<<FILL>><<FILL: count validated / count in package>>
A4Unblinding date and time (if this package reports unblinded results)<<FILL>><<FILL>>

Section B: package completeness against the shell inventory

CategoryShells planned (SAP/TFL spec)DeliveredOutstandingJustification for any outstanding item
Disposition<<FILL>><<FILL>><<FILL>><<FILL>>
Demographics / baseline<<FILL>><<FILL>><<FILL>><<FILL>>
Efficacy, primary and key secondary<<FILL>><<FILL>><<FILL>><<FILL>>
Efficacy, other secondary / exploratory<<FILL>><<FILL>><<FILL>><<FILL>>
Safety (AE, SAE, deaths, labs, vitals)<<FILL>><<FILL>><<FILL>><<FILL>>
Listings<<FILL>><<FILL>><<FILL>><<FILL>>

An outstanding shell with no documented justification blocks release; it does not carry forward as a silent gap.

Section C: cross-output subject-count reconciliation

CheckExpected relationshipResultVerdict
Randomized N reconciles across disposition, demographics, and population-flag tablesEqual<<FILL>><<FILL: Pass/Fail>>
Full Analysis Set N matches the population-flag derivation and the ADaM specificationEqual<<FILL>><<FILL>>
Per-Protocol Set N matches the analysis-population exclusion log for the same database versionEqual<<FILL>><<FILL>>
Safety Set N matches subjects with a recorded first doseEqual<<FILL>><<FILL>>
Figures reconcile to their companion tables (numbers at risk, censoring, medians)Equal<<FILL>><<FILL>>

Section D: estimand and intercurrent-event handling verification

Confirm the primary and each key secondary output’s footnote states the estimand’s intercurrent-event handling exactly as specified, not as a generic disclaimer.

OutputEstimand strategy per SAPFootnote / methods text as deliveredConsistent?
<<FILL: primary efficacy table>><<FILL: e.g. treatment policy>><<FILL>><<FILL: Yes/No>>
<<FILL: key secondary table>><<FILL>><<FILL>><<FILL>>

A “Yes” here means a reviewer reading only the footnote could restate the ICE handling correctly. A generic footnote that does not name the strategy is a finding, even if the numbers themselves are correct.

Section E: open items and waivers

ItemDescriptionRisk assessmentApproved by (Biostatistics + QA)Condition on release
<<FILL: none, or list>><<FILL>><<FILL>><<FILL>><<FILL>>

Releasing a package with an open item is the exception, not the routine path, and requires both Biostatistics and QA sign-off on the specific item, not a blanket waiver.

Section F: traceability confirmation

FieldEntry
Every output’s generation timestamp is after the database lock timestamp and before this record’s date<<FILL: Yes/No, with any exception explained>>
No output in the package was regenerated against a database state taken after the lock and never itself locked<<FILL: Yes/No>>
Program version control tags match the versions recorded in the per-output validation records<<FILL: Yes/No>>

Section G: conclusion and disposition

<<FILL: The TLF package and statistical analysis writeup for [STUDY] ARE / ARE NOT released for CSR embedding / submission, as of [database lock version], subject to [conditions, or "no conditions"].>>

Sign-off

RoleNameSignatureDate
Author (Biostatistics)<<FILL>>
Reviewer (Statistical Programming Lead)<<FILL>>
Reviewer (Clinical QA)<<FILL>>
Approver (Study or Program Biostatistician)<<FILL>>

Acceptance criteria

  • Every planned shell is accounted for, delivered or justified as outstanding.
  • Subject counts reconcile across every population and disposition output without exception.
  • The primary and each key secondary output’s footnote names the estimand’s intercurrent-event handling correctly.
  • No output was generated against data outside the locked database snapshot.
  • Any open item carries a documented risk assessment and joint biostatistics/QA approval, not a blanket waiver.

References

ICH E9, Statistical Principles for Clinical Trials; ICH E9(R1), Estimands and Sensitivity Analysis. ICH E3, Structure and Content of Clinical Study Reports. FDA Study Data Technical Conformance Guide.

Confirm the current version of each reference before issue.


Filled specimen (excerpt)

Illustrative example for the phase 3 glycemic-control trial used elsewhere on this site (drug X 50 mg once daily versus placebo, primary estimand on week-24 HbA1c under a treatment-policy strategy for discontinuation and rescue, composite for death).

FieldEntry
Locked database snapshotDBL-ABC201-FINAL, locked 15-Mar-2026
Governing SAPv3.0, approved 12-Feb-2026, before unblinding
Analysis typeFinal CSR

Package completeness: 41 of 41 planned shells delivered; 0 outstanding.

Cross-output reconciliation: randomized N = 412 reconciles across disposition, demographics, and population-flag tables. FAS N = 412 (minimal exclusions, none). PPS N = 379 reconciles to the analysis-population exclusion log (33 subjects excluded, each with a logged SAP-rule citation). Safety Set N = 406 (6 randomized subjects never dosed, excluded per the Safety Set rule, not a protocol deviation). All checks: Pass.

Estimand verification: primary table (Table 14.2.1) footnote reads “Week-24 HbA1c collected regardless of discontinuation or rescue therapy (treatment policy); deaths classified as non-response (composite).” Consistent with SAP section 4. Verdict: Yes.

Open items: none.

Conclusion: the TLF package and statistical analysis writeup for ABC-201 are released for CSR embedding as of database lock DBL-ABC201-FINAL, with no conditions.

Common findings this record prevents

  • An output silently regenerated against data corrected after database lock, with no record that it fell outside the locked snapshot.
  • Subject counts that differ across the disposition table, the population-flag derivation, and the exclusion log, discovered only when a reviewer cross-checks by hand.
  • A primary-endpoint footnote that no longer names the intercurrent-event strategy after a late SAP amendment.
  • A package released with an open item that was never formally risk-assessed or jointly approved by biostatistics and QA.
  • No single record showing the package, as a whole, was ever declared complete and consistent; only a folder of individually validated outputs.

How to adapt this record

  1. Point Section A at your real database-lock and SAP version-control records.
  2. Build the shell inventory in Section B from your actual TLF specification so “planned” is a real, dated count, not a guess.
  3. Reconcile Section C against the analysis-population exclusion log rather than re-deriving population counts independently.
  4. Keep Section D to the outputs that carry the primary and key secondary claims; do not attempt to verify every exploratory table’s footnote wording at this level of rigor.
  5. Confirm every reference above against the current published version before issue.
Use madhadi.com as an app Full screen, works offline, one tap from your home screen.