In-browser R Shiny app
Study Lifecycle Monitor
Synthetic dataR runs in your browser: Shinylive and webR
An operational health console for a synthetic portfolio of eight early-phase studies, from protocol to clinical study report. Each study is scored from 0 to 100 on timeline, data, TLF production and resourcing, and the console shows the portfolio heatmap, ranked early-warning signals, and the selected study's score breakdown, milestone track, TLF funnel, deliverables register and open-query trend. The scoring is transparent, so a what-if on one study's open queries or double programming moves its risk where you can see it. Study-level operations data only, with no participant data.
Try this
- Click a study in the heatmap, the signals or the table, for example CP-107, to open its score breakdown, milestones, TLF funnel and deliverables: its TLFs and CSR are overdue with 44% of TLFs final.
- Pick CP-103 and drag Open queries to 120: its Data score rises, it turns amber and On watch goes from 3 to 4, its query-backlog signal turns red, and the trend marks the what-if with an open circle.
- For CP-108, raise Double-programmed % to 80: its Resource score falls, its double-programming lag signal goes and At risk drops to 0. Reset to data undoes every what-if.
Before you start
- Synthetic data. Every study, participant, site and number in the example is invented for this toolkit.
- R runs in your browser. Shinylive and webR run the same R code as local R; nothing you enter leaves your computer.
- First visit: about 65 MB to download, usually 10 to 20 seconds on a fast connection and longer on a slow one. Later visits take 8 to 12 seconds, because R starts fresh each time.
- Getting started: No installation is needed for this browser app. The source is also available in the toolkit.

Starting the app
- This page and its instructions
- Service worker, which lets R serve the app inside this page
- R (webR) and the app's packages: download and start
- The app's page, served by R
- The first results, computed by R
Built with Shiny, Shinylive and webR. The app is the same R code that runs locally; this page reports each step of starting it, so a slow or failed start says what happened instead of staying blank. It follows the theme toggle in the top bar.