SMART Designs and Adaptive Treatment Strategies
Sequential multiple-assignment randomized trials that randomize treatment at more than one decision point to compare or build adaptive strategies responding to patient history.
On this page
Sequential multiple-assignment randomized trials that randomize treatment at more than one decision point to compare or build adaptive strategies responding to patient history. Use when the decision problem concerns sequences of treatment adaptations rather than a single initial treatment choice.
Definition and scope
Sequential multiple-assignment randomized trials that randomize treatment at more than one decision point to compare or build adaptive strategies responding to patient history. The target population, use, and analysis remain protocol decisions; this card explains the choices and their consequences rather than approving a study.
Operational specification
Define decision times, tailoring variables available before each decision, response criteria, available treatment options, randomization probabilities, embedded strategies, follow-up, and the strategy-level estimand. A strategy maps observed history to an action; a SMART is a design for learning about strategies, not an algorithm that autonomously chooses clinical care.
Analysis and diagnostics
Estimate effects of embedded strategies with methods respecting repeated randomization and shared participants. Track the probability of each observed randomized path, use appropriate replication/weighting or outcome models, and estimate uncertainty at the participant level. In observational emulations, sequential exchangeability and positivity replace the protection of actual repeated randomization.
When NOT to use and common errors
Do not compare only the observed responders in two arms as though they were randomized strategies, use future response to define baseline eligibility, or assume a strategy has support when a relevant treatment option was never offered at a decision point.
Worked example and implementation boundary
A synthetic participant has probability 0.5 of initial assignment and 0.5 of the second randomized option conditional on reaching that decision. Calculate the randomized path probability. The path probability is 0.25. Its reciprocal alone is not a complete strategy estimator for every SMART design. The code performs that explicitly stated calculation with synthetic inputs. It is not a complete fitted analysis and does not demonstrate the identification assumptions, estimate sampling uncertainty, or certify application in another population.
Data-source and reporting requirements
Preserve the provenance, dates, units, and observation rule for each input. Claims capture services and transactions under observable benefits; absence of a record is not proof that an event or resource use did not occur. EHR and registry measurements depend on the collection process and may miss care outside the system. Linked sources add reconciliation and selection questions. Primary collection can improve a missing domain but still requires valid measurement and follow-up. Report which of these limitations affects the stated use, which evidence supports the chosen inputs, and what remains uncertain.
Worked example
Scenario
A synthetic participant has probability 0.5 of initial assignment and 0.5 of the second randomized option conditional on reaching that decision. Calculate the randomized path probability.
Dataset
Synthetic inputs with units defined in the scenario; no patient data.
| input | value |
|---|---|
| first_probability | 0.5 |
| second_probability | 0.5 |
Steps
Result
The path probability is 0.25. Its reciprocal alone is not a complete strategy estimator for every SMART design.
Trade-offs
Code example
Executed example · Python 3.11.15 · 2026-11-01T02:04:28+00:00
Self-contained synthetic calculation for the worked example only. Inputs and units are listed in the dataset; output is the displayed scalar. This does not fit the full study/model, estimate uncertainty, or select an analysis for a real study.
first_probability = 0.5
second_probability = 0.5
result = first_probability*second_probability
assert abs(result - 0.25) < 1e-9
print(result)
Executed example · Rscript (R) version 4.6.1 (2026-06-24) · 2026-11-01T02:04:28+00:00
Self-contained synthetic calculation for the worked example only. Inputs and units are listed in the dataset; output is the displayed scalar. This does not fit the full study/model, estimate uncertainty, or select an analysis for a real study.
first_probability <- 0.5
second_probability <- 0.5
result <- first_probability*second_probability
stopifnot(abs(result - 0.25) < 1e-9)
print(result)
Illustrative example · execution not verified
Self-contained synthetic calculation for the worked example only. Inputs and units are listed in the dataset; output is the displayed scalar. This does not fit the full study/model, estimate uncertainty, or select an analysis for a real study. SAS source is illustrative until executed in a compatible SAS runtime.
data worked_example;
first_probability = 0.5;
second_probability = 0.5;
result = first_probability*second_probability;
put result=;
run;