The draft was effectively done. Database lock was weeks back. The CSR had been through one internal review, and the safety sections were clean — every exposure table, every incidence rate, every narrative paragraph built on the Full Analysis Set, exactly as the statistical analysis plan specified.
Then the decision came down: the safety analyses would move to the intention-to-treat population. Every randomized subject, analysed as randomized.
That is not a relabeling. It is a different denominator under every safety number in the document — and the efficacy sections, still on the Full Analysis Set, have to be left exactly as they are.
What actually changes
The intention-to-treat set is broader than the Full Analysis Set. It re-includes the handful of randomized subjects the FAS had excluded — the ones with justified, pre-specified exclusions — and it analyses everyone as randomized rather than as treated. So three things move at once:
- Every safety denominator recomputes. Extent of exposure (§12.1), adverse events (§12.2), deaths and SAEs (§12.3), labs (§12.4), vitals (§12.5) — all of them are now divided by a different N per arm.
- A few subjects enter the safety set who weren't in it before, and any subject whose received treatment differed from their randomized arm gets regrouped. Those are not edits a writer makes from memory.
- The change has to be disclosed. ICH E3 requires it in §9.8, Changes in the Conduct of the Study or Planned Analyses. The population definitions in §11.1 change. The synopsis safety summary in §2 changes. The benefit-risk discussion in §13 is now sitting on numbers that shifted underneath it.
And through all of it, the efficacy evaluation in §11 stays on the FAS. A global find-and-replace of "FAS" with "ITT" would quietly corrupt every efficacy result in the report. The change is scoped to the safety analyses only — which is precisely what makes it hard.
By hand
First, statistical programming re-runs the safety tables, listings, and figures on the ITT population. That is a dependency, not the writer's time, but nothing downstream can be trusted until those outputs land.
Then the writer goes through the document. Update the population definitions in §11.1 and draft the §9.8 disclosure. Re-state the disposition counts in §10.1. Rebuild extent of exposure in §12.1 against the new denominators. Then the adverse-event narrative in §12.2 — the long one — where most-common-AE lists, by-arm incidence, and every percentage have to be re-read against the regenerated tables, one figure at a time. Labs. Vitals. Deaths and SAEs. Back up to the synopsis. Forward to the benefit-risk discussion, which usually needs medical input now that the rates have moved. Then the abbreviations list, the cross-references, and a full consistency pass over all of it.
Done carefully, that is three to five days of a senior medical writer's time — the better part of a week — and that is if the regenerated tables arrive clean on the first pass. The work is not intellectually hard. It is a 200-page audit performed under the knowledge that the one §12.4 lab table you forget to update is the one a reviewer finds first. The fear is the labor.
With Asthra
In Asthra, the regenerated safety tables arrive as updated source documents. The agent notices: "New safety TLFs received — they affect §2, §10.1, and §12.1 through 12.5. Re-draft?"
The writer answers in plain language. No commands, no configuration:
"We've moved the safety analyses to the ITT population — all randomized subjects, as randomized. Re-draft the safety sections against the new tables, document the change from the planned analysis in §9.8, and refresh the abbreviations. Leave the efficacy sections on the Full Analysis Set. Don't touch them."
The agent works the request the way a careful writer would, but in minutes instead of days:
- It stays inside the safety sections and leaves the FAS-based efficacy evaluation untouched, because the instruction scoped it there.
- It re-grounds every safety number in the regenerated tables — each denominator, each incidence rate pulled from the re-run source — and flags any safety statement it cannot tie back to a refreshed table, so nothing rides on a stale figure.
- It surfaces the subjects whose grouping changes under as-randomized analysis and asks the writer to confirm, rather than silently reassigning them.
- It drafts the §9.8 language describing the move from the planned FAS-based safety analysis to ITT — the disclosure that is mandatory and easy to forget at 6 p.m. on a Friday.
- It rewrites the narrative around the data tables without disturbing them. The tables are the re-run outputs; the prose is what moves.
- It re-derives the abbreviations list at publish and logs every change to the audit ledger, so "did we update every safety number to ITT?" is a query against the record, not a leap of faith.
The writer is still in charge. The agent proposes; the writer reviews the flagged decisions, confirms the regroupings, reads the §9.8 paragraph, and disposes. But the shape of the afternoon is different. What was the better part of a week becomes a review you can actually finish in a sitting — because the writer is checking judgment calls, not hunting for a missed denominator on page 174.
The part that matters: the numbers are sourced, not generated
A general-purpose chatbot will happily rewrite a safety section for you. It will also invent a plausible incidence rate when it doesn't have one, and you will not be able to tell which numbers it read and which it produced. In a CSR, that is not a convenience. It is a finding waiting to happen.
Asthra does not generate safety numbers. It retrieves them — from the tables your statisticians re-ran — and every claim in the rendered document traces back to the source it came from. When the population changes, the agent's job is not to be creative. It is to be exhaustive and to show its work. That is the difference between an AI that drafts and an AI you can put in front of a regulated document.
A population change will always be real work. But it should be the work of deciding and reviewing — not the work of re-reading two hundred pages and praying you didn't miss one.
If your team is reconciling CSRs by hand every time an analysis moves, we'd be glad to show you the alternative.