Skip to main content
PVgenix logo
Guide

Aggregate Reporting End to End: How Periodic Safety Reports Are Built

Individual cases are firefighting. Aggregate reports are the disciplined, regulator-ready story of a product's evolving benefit–risk. This guide covers which report is needed when, how line listings and tabulations are built, and how to build the software that generates them.

PVgenix20 min read
🎓

Foundations

From zero: what each report is, when it's due, and what goes inside — with a plain rule for which report a situation demands.

</>

Build track

The data model, DLP snapshots, line-listing queries, tabulation aggregation, the template engine, and output/submission formats.

🔬

QC & review

The QC & reconciliation checks that survive an inspection — counts, DLP, cumulative arithmetic, MedDRA versions, ALCOA+.

Module 01

What aggregate reporting is

A periodic, structured evaluation that consolidates all safety data over a defined interval and forces a disciplined conclusion about benefit–risk.

Expedited vs aggregate

Expedited (ICSR): one serious, unexpected case, reported fast (often 15 days). It answers “did something bad just happen?”

Aggregate: all cases over months, summarised and analysed together. It answers “across everything, is the benefit–risk still positive?”

Why regulators demand it

A single case can mislead. Only the aggregate — cumulative counts, exposure, trends, signals, literature — shows the true evolving picture. It's the product's periodic “health check”, submitted on a fixed schedule to the FDA, EMA, CDSCO, PMDA and others.

🎓For the newcomer · the mental model

Think of a bank statement. Each transaction (ICSR) is one line, but the bank doesn't judge your finances one transaction at a time — every quarter it sends a statement: opening balance (cumulative), this period's activity (interval), and a summary. An aggregate report is a drug's safety statement: cumulative history + this interval + a benefit–risk conclusion.

Module 02 · Start here

Which report is needed — and when

Before building anything, you must know which report the situation demands. Pick the product stage and market — the selector tells you the report, its framework, and its timeline.

Recommended report

PSUR / PBRER

Framework: ICH E2C(R2) · GVP VIITiming: 6-monthly ×2yr, then per EURD list

EU / ICH regions use PSUR/PBRER. One PBRER covers all forms and indications of a substance. Due dates come from the EURD list.

ReportStageFrameworkTiming
DSURPre-approval (trials)ICH E2FAnnually, from DIBD
PSUR / PBRERPost-approvalICH E2C(R2) · GVP VII6-monthly ×2yr, then per EURD list
PADERPost-approval (US)21 CFR 314.80Quarterly ×3yr, then annually
ASR / IND AnnualPre-approval (legacy)Region-specificAnnually — largely replaced by DSUR

The US FDA requires PADER; the EU, Canada, Japan and other ICH regions use PSUR/PBRER. Newer marketed products use the PBRER structure; some legacy/regional filings still use the older PSUR format.

Module 03 · Foundations

Key concepts & timelines

Five terms unlock every aggregate report. Get these and the schedule, scope and numbers all fall into place.

TermMeaningWhy it matters
DLP (Data Lock Point)The cut-off date; only cases up to this date are included.Defines exactly what data the report covers.
IBD (International Birth Date)Date of first marketing authorisation anywhere.Anchors PSUR/PBRER periodicity.
DIBDDevelopmental IBD — the trial-phase equivalent.Anchors DSUR periodicity.
Interval dataCases only within this reporting period.Shows what's new this cycle.
Cumulative dataAll cases since the product's start (IBD/DIBD).Shows the full lifetime picture.
EURD listEU list fixing DLPs & submission dates per substance.Tells you exactly when the PSUR is due.
Interval + cumulative — the golden pair

Almost every table in an aggregate report has two columns: this interval and cumulative since IBD. If you understand that split, you understand the structure of the whole report.

</>For the developer · DLP is a snapshot, not a filter

Don't compute a report live against the mutable case database — cases keep changing. At the DLP, freeze an immutable snapshot (as-of that timestamp) and generate every listing and tabulation from that frozen copy. Two people regenerating the same report from the same DLP must get byte-identical numbers.

Module 04 · Building block 1

Line listings

The case-level backbone: one row per case, showing the facts a reviewer needs to judge it. Everything else in the report aggregates upward from here.

Case IDCountrySourceAge/SexDose & datesReaction (PT)OutcomeSeriousCausality / comments
2026-IN-0412IndiaSpontaneous54 / M50 mg ODHepatotoxicityRecoveredYesPositive dechallenge
2026-US-1189USALiterature39 / F100 mg BDAnaphylaxisRecoveringYesConfounder: known allergy
2026-DE-0777GermanyTrial61 / M50 mg ODRashRecoveredNoPossible

Standard line-listing columns

  • Case reference number (unique)
  • Country of occurrence & source (spontaneous / trial / literature)
  • Patient age & sex
  • Dose, dates of therapy, indication
  • Reaction term(s) — MedDRA PT
  • Outcome & seriousness
  • Comments — dechallenge/rechallenge, causality, history

Special line listings

SAE line listing — all serious adverse events in the interval (common in DSUR).

SUSAR line listing — Suspected Unexpected Serious Adverse Reactions, often a biannual cumulative listing in clinical development.

These feed directly into the report's tabulations and are a favourite inspection target.

Module 05 · Building block 2

Summary tabulations

Roll the line listing up into counts — by MedDRA SOC and PT, split serious/non-serious and interval/cumulative. This is the report's quantitative core.

Example — summary tabulation of ADRs

SOC / Preferred TermInterval — SeriousInterval — Non-seriousCumulative — Serious
Hepatobiliary disorders12358
Hepatotoxicity9244
Jaundice3114
Skin disorders21821

The splits that always appear

  • Serious vs non-serious
  • Interval vs cumulative
  • Spontaneous vs clinical trial vs literature
  • By SOC, then by PT within it

Exposure / denominator

Counts alone mislead — 44 cases from 1,000 patients is not the same as 44 from 10 million. Reports include an estimated exposure section (patient-years, doses sold, trial subjects) so rates can be read in context.

🔬For the expert · the reconciliation rule

The line listing and the tabulation must agree. If the interval line listing has 9 serious hepatotoxicity rows, the tabulation's interval-serious hepatotoxicity cell must read 9 — not 8, not 10. And prior cumulative + interval = new cumulative, unless a documented reclassification explains the gap. Any mismatch is an inspection finding.

Module 06 · Post-approval flagship

PBRER — the 20 sections

The Periodic Benefit-Risk Evaluation Report (ICH E2C(R2), GVP Module VII) is the modern PSUR. It's not just tables — it builds to an integrated benefit–risk conclusion.

Introduction
Worldwide marketing authorisation status
Actions taken for safety reasons
Changes to reference safety information (RSI)
Estimated exposure & use patterns
Data in summary tabulations
Findings from clinical trials
Findings from non-interventional studies
Other clinical trials / sources
Non-clinical data
Literature
Other periodic reports
Lack of efficacy (controlled trials)
Late-breaking information
Overview of signals: new / ongoing / closed
Signal & risk evaluation
Benefit evaluation
Integrated benefit–risk analysis
Conclusions & actions
Appendices
The link to signal detection

Sections 15–18 are where signal detection meets aggregate reporting. New, ongoing and closed signals from the signal engine are summarised here and folded into the benefit–risk conclusion. The two are two halves of the same lifecycle.

Key scoping rule

One PBRER covers all dosage forms, strengths and indications of a substance — not one per formulation. (PADER is the opposite: a separate report per formulation.)

Module 07

DSUR & PADER at a glance

PRE-APPROVAL

DSUR — ICH E2F

The annual safety report for a drug in clinical development. Focus: interventional-trial safety, cumulative development experience, and whether the benefit–risk for trial subjects still holds.

  • Anchored to the DIBD; annual.
  • Includes SAE & cumulative SUSAR line listings.
  • Summary of important risks, changes to the investigator's brochure.
POST-APPROVAL · US

PADER — 21 CFR 314.80

The US FDA periodic report. Narrative summaries of serious, unexpected US adverse experiences, plus line listings on FDA MedWatch (3500A) basis.

  • Quarterly for the first 3 years, then annually.
  • Separate report per formulation/product.
  • Simpler than PBRER — less benefit–risk narrative.
Practical reality

Global companies often prepare a PBRER as the core scientific document and derive a PADER for the US from the same locked dataset — aligning timelines to avoid duplicate work. A good platform generates both from one DLP snapshot.

Module 08 · Signature

The generation flow

How a report is actually built. Watch data flow from the safety database, through the DLP gate, into line listings and tabulations, into the report sections, then review, QC and submission.

Safety DBcoded casesDLP · CUT-OFF GATEDLP snapshotfrozen as-ofLine listingsSAE · SUSARSummary tabulationsinterval · cumulativeReport sectionsPBRER · DSUR · PADER+ benefit–riskMedical reviewauthor · assessQC / reconcilecounts match?SubmiteCTD · IRIS · FDA
Data → listings & tabulationsDLP gate & QC reconcileReviewed → submitted
Module 09 · Developer deep track

How to build the reporting engine

The same flow as a technical pipeline. Written for the engineer who must design and ship it.

1

Report configuration

A config object defines a report: type (PBRER/DSUR/PADER), product/substance, interval (IBD/DIBD anchor, DLP), MedDRA version, and template. Config-driven, not hard-coded per report.

report_definition table · versioned templates
2

DLP snapshot service

At the DLP, freeze an immutable, as-of copy of all in-scope cases. Every downstream artefact is generated from this snapshot, never the live DB.

as-of snapshot · immutable · content-hashed
3

Line-listing query

One parameterised query per listing type (SAE, SUSAR) reads the snapshot and emits case-level rows in the required column order.

SQL views · export to Word/Excel/XML
4

Tabulation aggregator

Group by SOC → PT, split serious/non-serious and interval/cumulative. Cumulative joins the current snapshot with prior locked snapshots.

GROUP BY rollup · window over prior DLPs
5

Template & output engine

Merge listings, tabulations and authored narrative into the section template (E2C/E2F/CFR), producing Word for review and structured XML/eCTD for submission (EMA IRIS, FDA).

docx templating · eCTD/XML export · e-signature

Cumulative tabulation, in pseudocode intermediate

def build_tabulation(product, dlp):
    snap  = freeze_snapshot(product, as_of=dlp)      # immutable
    prior = load_prior_cumulative(product, before=dlp)
    interval = group_by_soc_pt(snap, period=(prior.dlp, dlp))
    for (soc, pt) in all_terms(interval, prior):
        i_ser = interval.serious(soc, pt)
        i_non = interval.nonserious(soc, pt)
        c_ser = prior.cum_serious(soc, pt) + i_ser    # cumulative = prior + interval
        c_non = prior.cum_nonserious(soc, pt) + i_non
        emit_row(soc, pt, i_ser, i_non, c_ser, c_non)
    assert_reconciles(line_listing(snap), interval)   # counts MUST match
</>Best practices & pitfalls
  • One DLP snapshot, many outputs. Generate PBRER and PADER from the same frozen data so their numbers can never disagree.
  • Pin the MedDRA version per report. Coding rolls up differently across versions; store the version used so history stays valid.
  • Reconcile in code, not by eye. Assert line-listing counts equal tabulation totals before the report can be marked ready.
  • Never regenerate against the live DB. A late case arriving after the DLP must not silently change a locked number.
  • Keep the exposure module separate & documented. Denominators come from sales/trial data with their own assumptions — log them.
Module 10 · PV expert deep track

QC & reconciliation — survive the inspection

Before a report is signed, the PV expert cross-checks it from every angle. If all pass, no number in the report can be challenged.

CheckWhat it provesHow
1 · Listing ↔ tabulationCounts agree at every SOC/PT.Sum listing rows; compare to tabulation cells.
2 · Cumulative arithmeticprior cumulative + interval = new cumulative.Use the checker below; explain any gap.
3 · DLP integrityNo case after the DLP is included.Confirm max case date ≤ DLP.
4 · DuplicatesNo case counted twice.Dedup on case ref before counting.
5 · MedDRA versionOne consistent version across the report.Check the pinned version; re-code if needed.
6 · Section completenessEvery required E2C/E2F/CFR section present.Checklist against the guideline TOC.

Reconciliation checker — try it

Enter the prior cumulative count, this interval's count, and the new cumulative your report shows. The check confirms the arithmetic — and flags any unexplained gap.

✓ Reconciles — 35 + 9 = 44
🔬ALCOA+ — the data-integrity backbone

Every number must be Attributable, Legible, Contemporaneous, Original, Accurate (plus Complete, Consistent, Enduring, Available). Concretely: the DLP snapshot is preserved, who generated it and when is logged, the MedDRA version is recorded, and the report can be regenerated to the same numbers years later during an inspection.

Common inspection findings

Listing and tabulation counts don't match · a case dated after the DLP slipped in · cumulative ≠ prior + interval with no explanation · mixed MedDRA versions · missing exposure assumptions · a signal open in the signal system but absent from the PBRER signal section.

Module 11 · Landscape

Platform landscape — learn from the leaders

The enterprise systems all generate aggregate reports from a governed safety database. Studying how they do it shapes how PVgenix builds its own engine.

PlatformCharacterAggregate reporting approach
Oracle Argus SafetyLong-standing market leader; single global safety database.Highly configurable periodic reports (PSUR/PBRER/PADER/DSUR) with rule-driven scheduling and strong analytics.
ArisGlobal LifeSphereCloud-first, 30+ years, heavy automation/AI; used by some regulators.Case processing, periodic reports and signal management in one platform, with AI-assisted authoring.
Veeva Vault SafetyModern cloud UI; unified with clinical/quality/regulatory Vaults.Aggregate + individual submissions, CIOMS I & MedWatch 3500A, semi-annual dictionary auto-updates, real-time dashboards.
OthersEnnov PV Works, Sarjen PvEdge, AB Cube SafetyEasy, Extedo PcVmanager.Extedo is eCTD-centric with automated PSUR/PBRER; others serve mid-size & regional needs.

Product names are trademarks of their owners; feature descriptions are high-level and current as of early 2026 — verify specifics against each vendor's documentation before relying on them.

</>What a modern engine should borrow
  • One governed database, config-driven reports — don't build a bespoke pipeline per report type.
  • Signal + aggregate in one platform — the PBRER signal section should pull straight from the signal engine.
  • Modern UI + automatic dictionary updates + unified data — semi-annual MedDRA updates handled centrally.
  • Native eCTD / structured-XML output — and readiness for EMA's IRIS-style structured submissions.
Module 12

Golden rules — recap

If a new joiner remembers only these, they can already build, generate and QC an aggregate report the correct way.

  • Know the report before you build — DSUR (dev), PSUR/PBRER (EU/ICH), PADER (US). Stage + market decide it.
  • Interval + cumulative is the golden pair — almost every table has both columns.
  • The DLP is a frozen snapshot — generate everything from it, never the live database.
  • Listings and tabulations must reconcile — counts equal at every SOC/PT, or it's a finding.
  • prior cumulative + interval = new cumulative — any gap must be explained.
  • One PBRER per substance; one PADER per formulation — opposite scoping rules.
  • Pin the MedDRA version & log exposure assumptions — reproducibility is non-negotiable.
  • Signals flow in from the signal engine — PBRER sections 15–18 close the loop with signal detection.

Frequently asked questions

Common questions