Secondary Medication Non-Adherence
Post-initiation failure to obtain or use medication according to the intended regimen, operationalized from longitudinal dispensing or administration histories using coverage measures such as PDC and MPR, persistence and discontinuation rules, refill gaps, or adherence trajectories.
On this page
Explore this method family
Secondary non-adherence is what happens after a patient starts treatment but does not keep medication available or stops early. PDC and MPR summarize coverage, persistence measures how long treatment continues, and refill-gap or trajectory methods show the shape of the patient's medication history.
Secondary medication non-adherence
begins only after treatment has been initiated. It describes incomplete implementation of the prescribed regimen, early discontinuation, or both during a defined follow-up period. In electronic RWE, the observed behavior is usually medication acquisition or administration rather than ingestion: pharmacy claims show when supply was dispensed, medication administration records show doses given in a care setting, and EHR medication lists show what clinicians believe is active. The card therefore treats every metric as an operational proxy tied to a data source and denominator.
Core conceptual distinction
PDC and MPR are fixed-window coverage-intensity measures; persistence is a duration-to-discontinuation construct; refill-gap measures preserve the timing and size of uncovered intervals; trajectory models classify longitudinal patterns such as consistently high, declining, intermittent, or rapid discontinuation. PDC counts the union of covered days and is bounded at 1.0. MPR sums acquired days_supply and can exceed 1.0 when fills overlap unless capped. Persistence asks how long therapy continues before a prespecified permissible gap is exceeded and can be high even when several smaller gaps reduce PDC. No one metric is the definition of secondary non-adherence. The estimand should determine which child measure is primary.
Pros, cons, and trade-offs
A secondary-adherence hub makes the measurement choice explicit and prevents PDC, MPR, and persistence from being used as synonyms. PDC is usually preferable for bounded quality measurement; MPR can preserve information about oversupply or acquisition volume; persistence is more intuitive for time-to-discontinuation; gap sequences and trajectories expose patterns hidden by one summary number. The cost is analytic multiplicity. Reporting several metrics without prespecifying one primary rule creates threshold shopping. Choose the primary measure, observation window, stockpiling rule, inpatient rule, permissible gap, switch rule, and censoring strategy before outcomes are examined.
When NOT to use - and when it is actively misleading
Do not apply secondary-adherence metrics to patients who never initiated; that is primary non-adherence. Do not calculate PDC or MPR when days_supply is absent or meaningless, as for many infused or procedure-administered therapies. Do not interpret a paid claim as confirmed ingestion, or an EHR order as a dispensing. Do not count missing benefit data, plan disenrollment, cash fills, or out-of-network dispensings as uncovered days. Do not define a 12-month adherence group with future data and then start outcome follow-up at initiation; this creates immortal-time and reverse-causation bias. Use a landmark before outcome follow-up, a time-varying adherence history, or a properly specified per-protocol analysis.
Data-source operational depth
Pharmacy claims support PDC, MPR, refill gaps, and persistence when `fill_date`, `days_supply`, reversals, drug identity, and continuous pharmacy enrollment are reliable. Early refills require an explicit stockpiling/carryover rule, hospitalizations require denominator removal or bridging, and switches within a class require an interchangeable-product policy. EHR data may add prescribed dose, stop orders, reasons for discontinuation, and clinical response, but orders and medication lists are not proof of supply. Medication administration records support dose-completion and appointment-gap measures for clinician-administered therapies. Registries and patient reports add reasons and actual-use context but may be incomplete longitudinally. Linked sources are strongest when their date semantics are reconciled.
Worked example
One patient initiates a chronic oral medication on January 1 and receives three consecutive 30-day fills on January 1, January 31, and March 1. The 180-day observation window runs from January 1 through June 28. Under a carryover rule, the fills provide 90 unique covered days, so PDC is 90/180 = 0.50. MPR is also 90/180 = 0.50 because no oversupply remains beyond the window. With a 60-day permissible gap, discontinuation is assigned to March 31, the first uncovered day after the last supply; persistence is 90 days. A patient with early overlapping fills could have MPR above PDC, and a patient who restarts after a long gap could have moderate PDC but short persistence to first discontinuation. Those differences are the reason the measures remain separate children.
Decision diagram
flowchart TD A[Initiated treatment] --> B[Secondary adherence] B --> C[PDC: unique covered days] B --> D[MPR: acquired supply ratio] B --> E[Persistence: time to discontinuation] B --> F[Gap sequence / CMG] B --> G[Adherence trajectory classes]
Index definitions
Source-backed definitions and variants for the index or checklist family.
| name | definition | source | notes |
|---|---|---|---|
| Proportion of Days Covered (PDC) | Unique covered days during a fixed observation window divided by days in the window, bounded from 0 to 1. | Raebel et al. 2013; doi:10.1097/MLR.0b013e31829b1d2a | Preferred bounded coverage measure for many quality and comparative analyses. |
| Medication Possession Ratio (MPR) | Total days_supply acquired during the measurement interval divided by days in the interval. | Steiner and Prochazka 1997; doi:10.1016/S0895-4356(96)00268-5 | Can exceed 1.0 under overlapping fills unless capped; preserves acquisition volume. |
| Persistence / time to discontinuation | Duration from treatment initiation until discontinuation, usually identified after a permissible gap is exceeded. | Cramer et al. 2008; doi:10.1111/j.1524-4733.2007.00213.x | A duration construct, not a fixed-window coverage percentage. |
| Continuous measure of medication gaps (CMG) | Proportion of the observation interval without medication available; under compatible rules it is the complement of PDC. | Raebel et al. 2013; doi:10.1097/MLR.0b013e31829b1d2a | Expresses non-adherence as uncovered time rather than covered time. |
| Refill-gap sequence | Ordered sizes and timing of uncovered intervals between dispensings rather than one aggregate ratio. | Steiner and Prochazka 1997; doi:10.1016/S0895-4356(96)00268-5 | Retains intermittent-use patterns that PDC and MPR compress. |
| Group-based adherence trajectory | Model-based longitudinal class assignment using repeated coverage or refill measures over time. | Child card group-based-trajectory-models-lca | Useful when pattern heterogeneity is itself the target, but class selection and future-window bias must be addressed. |
Worked example
Scenario
A patient has three consecutive 30-day fills and then no further dispensing during a 180-day window. The analysis compares fixed-window coverage measures with time to discontinuation.
Dataset
Three pharmacy dispensings for one initiated patient.
| person_id | fill_date | days_supply |
|---|---|---|
| 2001 | 2024-01-01 | 30 |
| 2001 | 2024-01-31 | 30 |
| 2001 | 2024-03-01 | 30 |
Steps
Result
PDC = 0.50, MPR = 0.50, and persistence = 90 days under a 60-day permissible-gap rule.
Trade-offs
Runnable example
Calculate PDC, uncapped MPR, and first-discontinuation persistence. Input fills has person_id, fill_date, and days_supply; index has person_id, index_date, window_end. This compact example assumes same-drug fills, cleaned reversals, continuous observability, and carryover of overlapping supply.
import pandas as pd
GAP_DAYS = 60
rows = []
for person_id, person_fills in fills.sort_values("fill_date").groupby("person_id"):
start = index.loc[index.person_id.eq(person_id), "index_date"].iloc[0]
end = index.loc[index.person_id.eq(person_id), "window_end"].iloc[0]
window_days = (end - start).days + 1
covered = set()
supply_end = start
discontinuation = pd.NaT
total_supply = 0
for fill in person_fills.itertuples():
total_supply += int(fill.days_supply)
fill_start = max(fill.fill_date, supply_end)
if (fill.fill_date - supply_end).days > GAP_DAYS and pd.isna(discontinuation):
discontinuation = supply_end
fill_end = fill_start + pd.Timedelta(days=int(fill.days_supply))
covered.update(pd.date_range(fill_start, fill_end - pd.Timedelta(days=1), freq="D"))
supply_end = max(supply_end, fill_end)
covered_days = sum(start <= day <= end for day in covered)
rows.append({"person_id": person_id, "pdc": covered_days / window_days,
"mpr": total_supply / window_days,
"persistence_days": ((discontinuation if pd.notna(discontinuation) else supply_end) - start).days})
adherence = pd.DataFrame(rows)R/data.table fixed-window PDC and MPR plus a permissible-gap persistence endpoint. Inputs contain cleaned dispensings and one index/window row per initiated patient. Overlapping days are capped for PDC; this compact version does not carry stockpiled supply forward.
library(data.table)
setDT(fills); setDT(index)
gap_days <- 60L
daily <- fills[, .(covered_date = seq(fill_date, by = "day", length.out = days_supply)),
by = .(person_id, fill_date)]
daily <- unique(daily)
daily <- merge(daily, index, by = "person_id")
daily <- daily[covered_date >= index_date & covered_date <= window_end]
pdc <- daily[, .(covered_days = uniqueN(covered_date)), by = person_id]
supply <- fills[, .(total_supply = sum(days_supply)), by = person_id]
out <- Reduce(function(x, y) merge(x, y, by = "person_id", all = TRUE), list(index, pdc, supply))
out[, window_days := as.integer(window_end - index_date) + 1L]
out[, `:=`(pdc = pmin(covered_days / window_days, 1), mpr = total_supply / window_days)]
setorder(fills, person_id, fill_date)
fills[, previous_end := shift(fill_date + days_supply), by = person_id]
first_gap <- fills[as.integer(fill_date - previous_end) > gap_days,
.(discontinuation = min(previous_end)), by = person_id]
out <- merge(out, first_gap, by = "person_id", all.x = TRUE)
out[, persistence_days := as.integer(fifelse(is.na(discontinuation), window_end + 1L, discontinuation) - index_date)]SAS implementation for a fixed observation window. The example creates distinct daily covered dates for PDC and separately sums days_supply for uncapped MPR, avoiding a many-to-many join between fills and daily rows.
%let gap_days = 60;
proc sql;
create table fill_windows as
select f.person_id, f.fill_date, f.days_supply,
i.index_date, i.window_end,
max(f.fill_date, i.index_date) as cover_start format=date9.,
min(f.fill_date + f.days_supply - 1, i.window_end) as cover_end format=date9.
from fills f inner join index i on f.person_id=i.person_id;
quit;
data covered_days;
set fill_windows;
do covered_date=cover_start to cover_end;
if cover_start <= cover_end then output;
end;
keep person_id covered_date;
run;
proc sort data=covered_days nodupkey; by person_id covered_date; run;
proc sql;
create table pdc_summary as
select i.person_id,
count(distinct c.covered_date)/(i.window_end-i.index_date+1) as pdc
from index i left join covered_days c on i.person_id=c.person_id
group by i.person_id, i.index_date, i.window_end;
create table mpr_summary as
select i.person_id,
sum(f.days_supply)/(i.window_end-i.index_date+1) as mpr
from index i left join fills f on i.person_id=f.person_id
group by i.person_id, i.index_date, i.window_end;
create table adherence as
select p.person_id, p.pdc, m.mpr
from pdc_summary p left join mpr_summary m on p.person_id=m.person_id;
quit;Citations
- [1]Raebel MA, Schmittdiel J, Karter AJ, et al. Standardizing terminology and definitions of medication adherence and persistence in research employing electronic databases. Med Care. 2013;51(8 Suppl 3):S11-S21.
- [2]Vrijens B, De Geest S, Hughes DA, et al. A new taxonomy for describing and defining adherence to medications. Br J Clin Pharmacol. 2012;73(5):691-705.
- [3]Andrade SE, Kahler KH, Frech F, Chan KA. Methods for evaluation of medication adherence and persistence using automated databases. Pharmacoepidemiol Drug Saf. 2006;15(8):565-574.