An R Shiny dashboard for real-time monitoring and Bayesian forecasting of patient recruitment in multi-centre clinical trials. Upload a recruitment log (one row per patient: date and centre) and get live enrolment statistics, per-centre performance, and calibrated answers to the three questions that matter operationally: how many patients will be recruited by a given date, when the target sample size will be reached, and the probability of reaching it in time.
Each centre is modelled as a Poisson process with a conjugate Gamma posterior on its recruitment rate, propagated by Monte Carlo into every forecast — so prediction intervals genuinely widen when data are scarce or the forecast horizon grows, unlike naive extrapolation or plug-in estimates. A user-controlled estimation window handles shifting recruitment dynamics (amendments, campaigns, ramp-up), and an exact first-event correction removes the optimism bias that arises when centre initiation dates are unavailable.
The statistical core is a pure, unit-testable R layer separated from the interface, and a 1000-replicate simulation study — shipped with the code — confirms near-nominal 95% interval coverage. Manuscript in preparation.