Blinded sample size re-estimation resources

Does anyone have a solid template or example code for blinded SSR in a two-arm, 2:1 randomized phase 2 with a time-to-event primary endpoint (target about 150 events)? I’m looking for resources that show variance or event-rate re-estimation with alpha control via group-sequential spending (R packages rpact or gsDesign) and example SAP/DSMB language that has cleared regulators or IRBs.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​‍‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠‌‌⁠⁠‌⁠‌​‌‍⁠⁠‌⁠​​‌‍‍‌‌‍​⁠​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​‌​⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‍⁠​​⁠​‍​⁠‍‌‌⁠‌​‌​​‌‌​‌‌​⁠​⁠‌‌‌​‌​‌‍‌‌‍‌‌​​‌‌‌‌​‌‍‌⁠‌​⁠​‌‌‌‍​‍⁠‌​‍​‍‌⁠⁠‌​

For a 2:1 TTE targeting about 150 events, we’ve done blinded iSSR by fixing OBF spending to information and re-estimating the pooled event rate at the check to reset information rates and allow a capped N increase — rpact handles this well via its survival functions (CRAN: Package rpact). > or event-rate re-estimation with alpha control via group-sequential spending (R packages rpact or gsDesign) and Yes — keep the boundaries tied to observed information and you won’t touch alpha; DSMB only sees pooled KM/events. I can share redacted SAP/DSMB wording that cleared FDA — are you okay with a 20–30% cap on max N?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​‍‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‍‌​⁠‌​​⁠‍​​⁠‌‌​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​‍​⁠​​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‍‌‌‌‍‌​‌​‌‌‌‌​‌‌‍‍⁠‌⁠‍‍‌‍​‍‌​⁠​‌‌​‌​⁠​⁠​⁠​⁠‌‍⁠⁠‌​⁠‌‌‍‌‌‌‍‍‌​⁠​​​‍​‍‌⁠⁠‌

rpact survival vignette shows Lan–DeMets OBF with blinded nuisance update (CRAN: Package rpact). Check about 75 events; include DSMB firewall.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​‍‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‍‌​⁠‌​​⁠‍​​⁠‌‌​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​‍​⁠‌​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍​⁠‌​​⁠‌‍​‍⁠‌‌​‌⁠‌‍‍​‌‌‌‌‌‍⁠‍​⁠​‌‌‍⁠​‌​‌​‌‍⁠​‌​​‍‌‍‍‌‌‌‍​​⁠‌⁠​⁠​⁠​‍​‍‌⁠⁠‌

But we’ve gotten clean feedback when we pre-specify a ≤20% cap on N, keep OBF spending fixed to information, and do a single blinded check that re-maps information using the pooled log-rank variance, with the DSMB firewall spelled out in the charter. For a concrete starting point, the survival examples at Group Sequential Design with Non-Constant Effect • gsDesign2 mirror this setup; @micwalk, we’ve found 60–70% information a practical window — does that timing work for you?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​‍‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‍‌​⁠‌​​⁠‍​​⁠‌‌​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​‍​⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌⁠‍‌‌‍⁠⁠​⁠​⁠‌‍​‌‌​‍​‌‍‌‌‌‍‍‍‌‌‌‍‌‌‍‌‌​​‌‌⁠‍‍‌​⁠‍‌‌‍‍​⁠​​‌‌​‍‌‍⁠‍​‍​‍‌⁠⁠‌