November 13, 2025



Sample size and power can be calculated for testing:
Sample size calculation for a continuous endpoint
Sequential analysis with a maximum of 3 looks (group sequential design), one-sided overall significance level 2.5%, power 80%. The results were calculated for a two-sample t-test, H0: mu(1) - mu(2) = 0, H1: effect = 2, standard deviation = 5.
| Stage | 1 | 2 | 3 |
|---|---|---|---|
| Planned information rate | 33.3% | 66.7% | 100% |
| Cumulative alpha spent | 0.0001 | 0.0060 | 0.0250 |
| Stage levels (one-sided) | 0.0001 | 0.0060 | 0.0231 |
| Efficacy boundary (z-value scale) | 3.710 | 2.511 | 1.993 |
| Futility boundary (z-value scale) | 0 | 0 | |
| Efficacy boundary (t) | 4.690 | 2.152 | 1.384 |
| Futility boundary (t) | 0 | 0 | |
| Cumulative power | 0.0204 | 0.4371 | 0.8000 |
| Number of subjects | 69.9 | 139.9 | 209.8 |
| Expected number of subjects under H1 | 170.9 | ||
| Overall exit probability (under H0) | 0.5001 | 0.1309 | |
| Overall exit probability (under H1) | 0.0684 | 0.4202 | |
| Exit probability for efficacy (under H0) | 0.0001 | 0.0059 | |
| Exit probability for efficacy (under H1) | 0.0204 | 0.4167 | |
| Exit probability for futility (under H0) | 0.5000 | 0.1250 | |
| Exit probability for futility (under H1) | 0.0480 | 0.0035 |
Legend:
Perform interim and final analyses during the trial using group sequential method or p-value combination test (inverse normal or Fisher)
Calculate adjusted point estimates and confidence intervals (cf., Robertson et al. (2023), Robertson et al. (2025))
Perform sample size reassessment based on the observed data, based on calculation of conditional power
Some highlights:
Obtain operating characteristics of different designs:
Easy to understand R commands:
Example:
\(\rightarrow\) rpact useful for conducting flexible simulations in clinical trial planning
In general, everything runs with the R standard functions which are always present in R: R generics.
print()summary()plot()as.data.frame()length()names()Example: getDesignInverseNormal() produces the output:

Example: getDesignInverseNormal(kMax = 2) produces the output:

Just in the near future you will see in rpact:
getFutilityBounds()

Various learning concepts available: