- Before
- Ticks 214 numbers in one efficacy section to find the nine that matter, and checks and signs every results document by hand against the TLFs.
- Now
- Opens each draft already traced number by number and decides only the findings, each with the sentence and the table cell side by side.
One late re-run, from the ripple to a signed QC record
VLT-302 — Veltrimab 150 mg every two weeks against placebo in plaque psoriasis, 642 patients randomised. The final run is loaded on Oct 2, and one sPGA table has changed since dry run 2. Here is what happens next, screen by screen, in the working solution.
- 01Morning
Every draft on one desk, every number a dot
Lena Ortiz · QC lead, medical writingLena's home is the QC desk: 8 drafts on the desk, 1,150 numbers traced to their table cells, 18 to decide. Each draft is a page — CSR §11 Efficacy with 214 numbers and 9 open, the congress abstract due Oct 9 with 3 — and each number is a dot coloured by verdict: agrees with its cell, derived and recalculated, rounding or format, mismatch, no source, decided.
“Each dot is one number · hover a large dot to see it”
- 02The re-run
One table changed in two cells — the ripple shows where it is quoted
Table matcherAbove the pages runs the results package: VLT-302 final run, Oct 2, 412 outputs. Table 14.2.2.1 is marked in red: data query DQ-1187 at site 114 re-scored one Week 16 sPGA reading before lock, so Veltrimab responders went from 285 (66.6) to 284 (66.4) and the difference from 61.4 to 61.2. “Show the ripple” draws a line from the table to each quote of the changed cells: 9 quotes in 6 documents.
“These drafts still quote dry run 2.”
- 03One click
“Re-check the 9 quotes” — 6 still disagree, 3 settled
Table matcherThe table matcher compares the two runs — 2 of 9 cells changed — finds every quote of the changed cells and re-checks each against the final run. The CSR Synopsis and IB §5.3 quotes are already settled, their corrections sent; CSR §11, the congress abstract, the manuscript and the plain-language summary still quote dry run 2. The writers — Dr. Maya Chen, Priya Raman and Dana Okafor — are notified.
Each step is shown as it runs, with what it found.
- 04Page 47
The sentence, the reasoning and the table cell, side by side
Lena Ortiz · QC lead, medical writingLena opens 66.6% → 66.4% in CSR §11. The draft sits on the left, the TLF on the right, and a thread runs from the sentence to the cell — Table 14.2.2.1, Veltrimab column, 284 (66.4). Between them the rule checker explains the finding, the suggested fix and how sure the three agents are: 0.98.
Rule checker: “The draft quotes dry run 2 (Sep 12). In the final run (Oct 2) one Week 16 sPGA reading at site 114 was corrected after data query DQ-1187, so Veltrimab responders fell from 285 to 284.”
- 05Where it came from
The old number, found in the superseded run
Table matcherOne toggle switches the table to dry run 2 of Sep 12, stamped superseded, with 285 (66.6) in the cell the draft quotes and the footnote “DRY RUN — NOT FOR REPORTING. Data before database lock.” The verdict is always taken against the final run; the superseded run only shows where a stale number came from.
The table matcher never matches against a superseded run without flagging it.
- 06Accept fix
She accepts 66.4%; the fix goes to the writer
Lena Ortiz · QC lead, medical writingLena accepts the fix. The finding records who decided and when, the dot turns to decided, and the correction goes on Dr. Maya Chen's corrections list. The agents never edit the draft — the writer makes the change in her own document.
“Fix accepted — 66.6% → 66.4% · on the corrections list for Dr. Maya Chen”
- 07Page 48
The right number, from the wrong analysis set
Rule checkerNot every finding is a re-run. The sentence says per-protocol set, but 27.6% is the ITT result for PASI 100 in Table 14.2.3.1; the per-protocol value is 28.7% (116/404) in Table 14.2.3.2. On page 47 the confidence interval 55.4, 67.0 comes from the unstratified sensitivity analysis — the primary analysis gives 55.9, 66.5.
“Change the value — or the population and the table reference.”
- 08Across documents
Every finding, with the decision on record
Lena Ortiz · QC lead, medical writingThe findings list shows every number that disagrees with its table, across all documents: the draft value against the table value, the type — stale table version, wrong denominator, rounding, format, wrong population, different analysis, no source, wrong column, count differs — the source output and the status. From here Lena exports the comment log and sends the corrections to the writers.
- 09A new draft
The topline memo, checked in seconds — and a number with no source
Table matcherOmar's topline results memo v2 arrives and Lena checks it against the VLT-302 final run under the house rules for CSRs, memos and regulatory documents. Of 31 numbers, two are findings. “87 sites” has no output: the table matcher searched all 412 outputs, and site counts live in listing 16.1.4, which has not been loaded. Any TEAE at 52.1% divides by the randomised N instead of the safety set — 52.2%.
“Load listing 16.1.4 to check the site count, or remove the sentence.”
- 10Signed
Every finding decided, the QC record signed
Lena Ortiz · QC lead, medical writingLena marks the site sentence for removal and accepts the safety-set fix. With every finding decided, she signs the QC record: 31 numbers checked, 2 findings decided, against the final run of Oct 2. The meaning of her signature is “QC review complete — every number verified against the final tables”, and she re-authenticates with her password.
“The QC record — every number, both locations and each decision — is kept with the document.”