Logo
Clinical Standards Hub
Non-profit Community HubNot affiliated with CDISC/SASContributions WelcomeNon-profit Community HubNot affiliated with CDISC/SASContributions Welcome
Back to Insights
Technical March 25, 2026

Exposure-Adjusted Event Rate vs Exposure-Adjusted Incidence Rate

Varun Debbeti
Clinical Programmer

EAER vs EAIR - A Deep Dive for Statistical Programmers

1. Why Exposure Adjustment Matters

In a clinical trial, patients rarely spend the same amount of time under observation. Some drop out early, some experience an event on day 3, some complete the full three-year study. If you simply report the proportion of patients with an adverse event, you are conflating two very different things: the probability of an event and the time during which a patient was actually at risk of having one. A patient who discontinues after two weeks and does not have an AE is not the same as a patient who completes 104 weeks without an AE, yet both contribute a zero to a crude proportion.

Exposure-adjusted rates solve this by dividing the event count by the total patient-time observed, producing rates on a per-year (or per-100-patient-years) scale. Two metrics dominate this space in regulatory submissions: the Exposure-Adjusted Incidence Rate (EAIR) and the Exposure-Adjusted Event Rate (EAER). They are not interchangeable. Each answers a different clinical question, and choosing the wrong one can distort the safety picture.

Who this article is forStatistical programmers who build ADAE-based analysis datasets, write SAPs, or program Tables, Listings, and Figures (TLFs) for NDA/BLA/MAA submissions. Examples use SAS macro logic and CDISC ADaM conventions.

2. Definitions and Formulas

2.1 Exposure-Adjusted Incidence Rate (EAIR)

EAIR counts the number of subjects who experienced at least one occurrence of an event, divided by the total subject-years of exposure across the treatment arm. Each subject appears in the numerator at most once, regardless of how many times the event occurred.

ComponentDescription
NumeratorNumber of subjects with ≥1 event
DenominatorTotal subject-years of exposure (all subjects in arm)
FormulaEAIR = n_subjects_with_event / total_subject_years
UnitsEvents per subject-year (reported per 100 subject-years)
Key propertyA subject who has the event multiple times still counts as 1 in the numerator

Table 1. EAIR components

2.2 Exposure-Adjusted Event Rate (EAER)

EAER counts every event occurrence (all recurrences included) divided by total subject-years of exposure. A subject who has the same adverse event four times contributes 4 to the numerator.

ComponentDescription
NumeratorTotal number of event occurrences (all recurrences)
DenominatorTotal subject-years of exposure (all subjects in arm)
FormulaEAER = total_events / total_subject_years
UnitsEvents per subject-year (reported per 100 subject-years)
Key propertyA subject who has 4 occurrences contributes 4 to the numerator

Table 2. EAER components

2.3 Side-by-Side Comparison

EAIREAER
Full nameExposure-Adjusted Incidence RateExposure-Adjusted Event Rate
Numerator countsSubjects with ≥1 eventAll event occurrences
Max subject contribution to numerator1 (first event only)Unlimited (all recurrences)
DenominatorTotal subject-yearsTotal subject-years
Clinical question answeredWhat proportion of the at-risk population develops this event?How often does this event occur in this population?
Sensitive to recurrence?NoYes
Typical use casesMost standard AE tables in NDA/BLA/MAA submissionsRecurrent events: hospitalizations, seizures, headaches, bleeding episodes
EAIR > EAER possible?No (mathematically, EAIR ≤ EAER)N/A

Table 3. EAIR vs EAER — key differences

3. Worked Example: Phase III Migraine Trial

Consider a 52-week randomised, double-blind trial comparing a CGRP antagonist (Drug A) versus placebo for migraine prevention. Migraine headaches are the primary endpoint, but they are also reported as adverse events because of their recurrent nature. The ADAE dataset contains one record per AE occurrence.

3.1 Subject-Level Raw Data

Eight subjects from the Drug A arm are shown below. EXDUR is exposure duration in years derived from the ADEX dataset (minimum of last dose date minus first dose date + 1, and date of first post-baseline AE).

USUBJIDTRTAEXDUR (yrs)N Migraine OccurrencesN Nausea OccurrencesN Dizziness Occurrences
PT-001Drug A1.00620
PT-002Drug A0.75301
PT-003Drug A1.00010
PT-004Drug A0.50442
PT-005Drug A1.00200
PT-006Drug A0.85100
PT-007Drug A0.30000
PT-008Drug A1.00031
TOTAL6.4016104

Table 4. Subject-level AE data (Drug A arm, n=8, illustrative only)

3.2 Calculating EAIR and EAER for Migraine

Step 1 — Total subject-years of exposure:

Sum of EXDUR across all 8 subjects = 1.00 + 0.75 + 1.00 + 0.50 + 1.00 + 0.85 + 0.30 + 1.00 = 6.40 subject-years

Step 2 — EAIR numerator (subjects with ≥1 migraine):

PT-001: 6 events → YES PT-002: 3 events → YES PT-003: 0 events → NO

PT-004: 4 events → YES PT-005: 2 events → YES PT-006: 1 event → YES

PT-007: 0 events → NO PT-008: 0 events → NO

Subjects with ≥1 migraine = 5

Step 3 — EAER numerator (all migraine occurrences):

6 + 3 + 0 + 4 + 2 + 1 + 0 + 0 = 16 total migraines

Step 4 — Compute the rates:

AE TermEAIR (per 100 subject-yrs)EAER (per 100 subject-yrs)Ratio EAER/EAIR
Migraine5 / 6.40 × 100 = 78.116 / 6.40 × 100 = 250.03.2
Nausea4 / 6.40 × 100 = 62.510 / 6.40 × 100 = 156.32.5
Dizziness3 / 6.40 × 100 = 46.94 / 6.40 × 100 = 62.51.3

Table 5. EAIR and EAER calculated for three AE terms (Drug A arm, n=8)

The EAER/EAIR ratio tells you about recurrence load. For migraine, a ratio of 3.2 means that each subject who developed at least one migraine had, on average, 3.2 migraine occurrences during the study. For dizziness, the ratio is only 1.3, suggesting most subjects experienced it at most once. This ratio has no clinical meaning on its own, but it directly informs which metric you should prioritise in your TLF shells.

3.3 What Changes When You Apply EAIR vs EAER

The key insightEAIR and EAER share the same denominator (total subject-years). They differ only in their numerators. EAIR ≤ EAER always. When every subject has at most one event, EAIR = EAER. The bigger the gap, the more recurrence is present in the data.

4. Implementation in ADaM and SAS

4.1 Relevant ADaM Variables

Both metrics are typically derived from ADAE and ADEX. The key variables are:

DatasetVariableRole
ADAEUSUBJIDSubject identifier — used to count distinct subjects for EAIR numerator
ADAEAEBODSYS / AEDECODSOC and PT for grouping events
ADAETRTEMFLTreatment-emergent flag — subset to TRTEMFL='Y' before computing either metric
ADAEANL01FLAnalysis flag — additional subsetting for specific analyses
ADEXEXDURExposure duration in days or years — forms the denominator for both metrics
ADEXTRTDURAlternative: treatment duration variable sometimes used instead of EXDUR

Table 6. Key ADaM variables for EAIR and EAER

4.2 SAS Logic — EAIR

The approach below uses ADAE to flag subjects with ≥1 event, then merges with ADEX to attach exposure, then summarises by treatment arm and PT.

/* Step 1: One record per subject-PT, flag = 1 if ≥1 event */

proc sort data=adae(where=(TRTEMFL='Y')) out=ae_sorted;

 by USUBJID AEDECOD;

run;

data ae_first;

 set ae_sorted;

 by USUBJID AEDECOD;

 if first.AEDECOD then AEFL = 1; /* subject had ≥1 occurrence of this PT */

 if first.AEDECOD then output;

run;

/* Step 2: Sum distinct subject counts by treatment arm and PT */

proc means data=ae_first noprint nway;

 class TRTA AEDECOD;

 var AEFL;

 output out=ae_n_subj(drop=_type_ _freq_) sum=n_subj;

run;

/* Step 3: Total subject-years per arm from ADEX */

proc means data=adex noprint nway;

 class TRTA;

 var EXDUR; /* in years */

 output out=arm_exdur(drop=_type_ _freq_) sum=total_subj_yrs;

run;

/* Step 4: Merge and compute EAIR per 100 subject-years */

proc sql;

 create table eair_out as

 select a.TRTA, a.AEDECOD, a.n_subj,

 b.total_subj_yrs,

 (a.n_subj / b.total_subj_yrs) * 100 as EAIR

 from ae_n_subj a

 left join arm_exdur b on a.TRTA = b.TRTA;

quit;

4.3 SAS Logic — EAER

For EAER, the numerator is simply the count of all AE records (after applying TRTEMFL='Y' and any analysis flag). The denominator is identical to EAIR.

/* Step 1: Count all occurrences per treatment arm and PT */

proc means data=adae(where=(TRTEMFL='Y')) noprint nway;

 class TRTA AEDECOD;

 var AESEQ; /* any numeric var works; we just need count of records */

 output out=ae_n_events(drop=_type_ _freq_) n=n_events;

run;

/* Step 2: Reuse arm_exdur from EAIR section above */

/* Step 3: Compute EAER per 100 subject-years */

proc sql;

 create table eaer_out as

 select a.TRTA, a.AEDECOD, a.n_events,

 b.total_subj_yrs,

 (a.n_events / b.total_subj_yrs) * 100 as EAER

 from ae_n_events a

 left join arm_exdur b on a.TRTA = b.TRTA;

quit;

4.4 Combining Both Metrics in One Output

Regulatory tables frequently report both metrics side-by-side. After computing eair_out and eaer_out separately, a simple merge on TRTA and AEDECOD produces a combined output ready for RTF formatting via PROC REPORT or a macro.

proc sql;

 create table ae_combined as

 select a.TRTA, a.AEDECOD,

 a.n_subj, a.EAIR,

 b.n_events, b.EAER

 from eair_out a

 left join eaer_out b on a.TRTA = b.TRTA and a.AEDECOD = b.AEDECOD;

quit;

4.5 A Common Pitfall: Denominator Source

Both rates share the same denominator structure, but the source and definition matter. Three denominator definitions appear in practice:

Denominator definitionWhat it includesWatch out for
On-treatment timeDays from first dose to last dose + 1Does not account for early discontinuation due to AE
Time at riskDays from first dose to time of first event (for EAIR only)Rarely used in practice; often just total exposure time is used for both
Follow-up timeExtends past treatment end if off-treatment AEs are includedMust be consistent with AE collection window

Table 7. Common denominator definitions and their implications

The SAP should specify the denominator definition. In most NDA/BLA submissions, on-treatment exposure time from ADEX (EXDUR = TRTEDT - TRTSDT + 1, expressed in years) is the standard choice for both EAIR and EAER.

5. Choosing Between EAIR and EAER

The question of which metric to use comes down to the clinical nature of the adverse event and what question the safety team needs to answer.

ScenarioUse EAIR?Use EAER?
Standard AE table in a regulatory submission✔ Yes — default for most TEAEsOptional, include if recurrence is clinically relevant
Recurrent events (seizures, headaches, bleeding, hospitalizations)✔ Yes — captures affected subjects✔ Yes — captures event burden
Serious AEs (typically single-occurrence)✔ Yes — appropriateLess useful; numerator rarely exceeds EAIR numerator
Events by severity grade (e.g., CTCAE)✔ Yes — grade-specific ratesPossible but complicated by grade changes on repeat
Drug that causes a recurrent lab abnormality (e.g., repeated ALT elevations)✔ Yes — proportion of subjects affected✔ Yes — rate of elevations
Comparing to external historical data reported as incidence rates✔ Yes — standard epidemiological metricOnly if historical data also uses all-event counts

Table 8. Decision guide for EAIR vs EAER

Regulatory contextICH E9, FDA Guidance on Safety Reporting, and EMA's Statistical Guidance on Reporting Results from Studies Evaluating Investigational Medicinal Products do not mandate one metric over the other for general AE tables. However, EAIR is the conventional default. EAER is increasingly requested for chronic therapies where event burden (not just occurrence) is the clinical concern — for example, in rheumatology, neurology, and oncology indications.

6. Edge Cases and Boundary Conditions

6.1 Subject with Zero Exposure

If EXDUR = 0 for a subject (e.g., they withdrew before receiving any treatment), they contribute nothing to either denominator. If they also had no AEs, they are excluded entirely. If they somehow have AEs despite zero exposure, this is a data quality issue requiring adjudication, not a metric question.

6.2 Very Short Exposure, Many Events

PT-004 in Table 4 had 0.50 years of exposure and 4 migraine occurrences. This subject drives the EAER for migraine disproportionately. EAER = 16/6.40 = 250 per 100 subject-years; if PT-004 had completed the full year, EAER would have been 16/6.90 = 232. The metric is sensitive to early discontinuers who experienced many events. This is not a flaw — it reflects the actual event burden — but it should be discussed in the clinical study report when a small number of subjects account for a large proportion of EAER.

6.3 EAIR > EAER (Impossible, but Check Your Code)

Mathematically, EAIR ≤ EAER always. If your output shows EAIR > EAER for any PT, there is a programming error — the most common causes are:

•Different analysis flag subsets applied to numerators (e.g., TRTEMFL applied to EAIR but not EAER)

•Different denominator datasets used (e.g., ITT for EAIR, PP for EAER)

•Duplicate records in ADAE inflating EAER, or duplicate subjects in the EAIR numerator step

6.4 Events Reported at the Same Visit

If a subject reports three occurrences of the same MedDRA PT at the same study visit (same AESTDTC), all three count individually in the EAER numerator. The EAIR numerator counts the subject once. This is correct. Verify that your ADAE derivation does not collapse same-visit, same-PT records into a single row before computing EAER.

6.5 Unblinded Dataset Access

EAIR and EAER by treatment arm require access to unblinded data. During an ongoing trial, these calculations are typically performed by an independent Data Safety Monitoring Board (DSMB) statistician or within a firewall. Statistical programmers should not produce unblinded rate comparisons unless the trial is unblinded or they are formally designated as unblinded staff.

7. Reporting Conventions in TLFs

7.1 Standard Column Structure for Safety Tables

A TLF shell showing both metrics typically looks like this (per treatment arm):

Preferred Termn (%)N eventsEAIR (per 100 PY)EAER (per 100 PY)
Migraine5 (62.5%)1678.1250.0
Nausea4 (50.0%)1062.5156.3
Dizziness3 (37.5%)446.962.5

Table 9. Sample TLF structure with n(%), N events, EAIR, and EAER (Drug A arm, n=8, total 6.40 subject-years)

PY = patient-years. The n(%) column uses the arm N as denominator and counts distinct subjects. This column and the EAIR numerator should agree (n = EAIR numerator). If they do not agree, flag this during QC.

7.2 Footnote Text

Standard footnote wording (adjust per your house style):

EAIR: Exposure-adjusted incidence rate = (number of subjects with ≥1 event / total subject-years) × 100.

EAER: Exposure-adjusted event rate = (total number of events / total subject-years) × 100.

Subject-years of exposure = (date of last dose - date of first dose + 1) / 365.25.

Only treatment-emergent adverse events (TRTEMFL='Y') are included.

7.3 Decimal Places and Rounding

One decimal place is convention for both EAIR and EAER when reported per 100 subject-years. For very rare events (EAIR < 1.0), two decimal places may be warranted. The SAP should specify this; do not decide ad hoc in the program.

8. Summary

EAIREAER
Counts subjects, not eventsCounts every event occurrence
Answers: what fraction of the arm experienced this event?Answers: how often does this event happen per subject-year?
Default metric for most TEAE tablesUsed alongside EAIR for recurrent-event AEs
EAIR ≤ EAER alwaysEAER = EAIR only when every subject had exactly one event
Same denominator as EAER: total subject-yearsSame denominator as EAIR: total subject-years

Table 10. One-page summary of EAIR vs EAER

Both metrics use the same denominator. The only difference is what goes in the numerator. That single distinction determines the clinical question being answered. Statistical programmers should confirm the intended metric with the SAP before writing any code, and QC should verify that n(%) and EAIR numerators match for all PTs in the final output.

Find this article useful?

Discussion (0)

No comments yet. Be the first!