Skip to content
Benchmarks · CMC Module 3

We drafted two of the hardest Module 3 CMC sections and scored them against the filed dossier.

A pharmaceutical manufacturer gave us the source library behind a filed Module 3. Asthra drafted from the sources; we scored every subsection side by side against what was filed.

0
Fabricated facts across both drafted sections
26 / 26
Specification values that match the filed 3.2.P.5.1 exactly
94%
3.2.P.5.1 Specifications: 36.5 of 39 golden facts covered
63%
3.2.P.3.5 Process validation: 61 of 97 golden facts covered

Run vc-CMC-BIO-b1dec9 · 4 Oct 2026 · 2 sections drafted in about 13 and 9 minutes · scored against the filed Module 3

The source

A real filing, with its source library.

CMC dossiers aren't published the way clinical study reports are, so there is no public golden to test against. Instead, a pharmaceutical manufacturer shared the validation reports, specifications and test procedures its CMC team wrote from, together with the Module 3 sections it filed.

That makes the same fair test possible. Asthra gets the inputs the team started from, and we compare what it writes with what was actually submitted. Nothing is synthetic, and nothing was written with this benchmark in mind. The manufacturer and product are not named here.

THE SECTIONS

Two of the hardest sections in Module 3 CMC

Both sit in the drug product part of Module 3, and both are where CMC reviewers dig hardest. One has to reconcile a mountain of validation evidence; the other has to be exact to the last digit.

3.2.P.3.5 Process validation and evaluation

Has to show the commercial process works every time. The evidence sits in dozens of qualification and validation reports, they don’t always agree, and the section has to reconcile them into one argument.

3.2.P.5.1 Specifications

Every test, acceptance criterion and release versus shelf-life limit, in one table reviewers check line by line. A rounded or shifted value is an error.

How we benchmark

Draft blind, score side by side.

The filed sections are the answer key. Asthra never sees them. Every subsection is scored by reading the two versions against each other.

01

Start from a real filing

A pharmaceutical manufacturer gave us the source library behind a filed Module 3, and the filed sections themselves. Those sections become the golden: what a professional CMC team actually submitted.

02

Hide the answer, keep the sources

Asthra gets the validation reports, specifications and test procedures a CMC writer starts from. The filed sections are held back. Asthra plans retrieval, drafts to the company’s module template, cites to file and page, and runs its own QC.

03

Extract a fact key from the golden

For each section we pull every fact the golden states: batch details, process parameters, acceptance criteria, study results, cross-references. That gives 136 scorable facts across the two sections.

04

Score side by side

Each subsection of the draft is read against the matching part of the golden. Every fact is marked covered, partial or missed. Every specification value is checked for an exact match. Every claim is checked for contradiction or fabrication.

05

Audit the gap flags

Asthra flags missing data instead of inventing it. We check each flag: was the data truly absent from the library, or did Asthra miss something it had? False gaps count against us.

06

Trace every miss to a cause

Each missed fact is traced through the run logs to retrieval, drafting or the harness, and becomes a regression test before the next run.

What each score means
Coverage
Share of the golden’s facts for that subsection that the draft states, scored 0–10. Partial credit for half-stated facts.
Numeric
Of the specification values the draft states, how many match the filed specification exactly. A rounded or shifted value is a miss.
Divergences
Where the source library is newer than the filing, a different value is checked against the newer source, not marked wrong.
Gap flags
Inline MISSING INFO markers Asthra inserted where it could not find data, each reviewed for whether the data really was absent.
Results

Subsection-by-subsection scorecard.

The specification is near complete. In process validation the PPQ core holds up; the points are lost in validation studies that weren't read before the time limit, and we explain why below.

3.2.P.5.1 SpecificationsFacts coveredCoverage
Test rows (product and device)29 / 29
10.0
Shared specification across presentations1 / 1
10.0
Analytical method column3.5 / 5
7.0
Footnotes2 / 3
6.7
Cross-references to 3.2.P.5.2 / 5.3 / 5.61 / 1
10.0
Total36.5 / 3994%
3.2.P.3.5 Process validationFacts coveredCoverage
Process design and parameters9.5 / 14
6.8
PPQ batches7 / 8
8.8
Process actuals5 / 6
8.3
In-process controls1.5 / 4
3.8
Freeze-thaw1 / 2
5.0
Pooling homogeneity3 / 3
10.0
Filtration, filling, stoppering8 / 9
8.9
Visual inspection1 / 2
5.0
Device assembly6.5 / 8
8.1
Hold times3.5 / 6
5.8
Continued process verification2 / 2
10.0
Media fill3.5 / 10
3.5
Filter validation2 / 8
2.5
Autoclave qualification3.5 / 11
3.2
Cleaning validation1 / 1
10.0
Shipping validation3 / 3
10.0
Total61 / 9763%

Up from 83% on 3.2.P.5.1 and 62% on 3.2.P.3.5 in the previous run. Values that follow a newer source than the filing are listed as divergences and not penalised.

Reading the results

What held up, and what didn't.

What held up

No invented facts

Across both sections, the reviewers found zero fabrications. Where Asthra couldn’t find something, it flagged the gap instead of writing a plausible-sounding guess.

The specification is complete and exact

All 29 test rows in 3.2.P.5.1 are present, with the right acceptance criteria and the right release versus shelf-life split. All 26 numeric limits match the filed specification.

It used the newer source

In three places the library was newer than the filing: a thaw temperature corrected by a protocol amendment, the commercial filling-speed range, and interim stopper limits. Asthra used the corrected values and listed each divergence for the reviewer.

Source conflicts surfaced, not buried

When two tables in the same PPQ report disagreed on a per-batch out-of-specification count, Asthra flagged it for reviewer attention instead of quietly picking one.

Where it fell short

Research started too late (3.2.P.3.5)

The lead agent spent its first five minutes reading the PPQ report itself before handing work to researchers. The retrieval time limit then hit before filter validation, autoclave qualification and one media-fill report were read, costing about 12 facts.

Values read but not written

Thaw parameters, endotoxin limits and media-fill unit counts were retrieved and sat in context, but the module template didn’t ask for them in its tables, so the draft left them out. About 6 facts.

Too many gap flags

Of 13 gap flags in 3.2.P.3.5, none was a real gap. 8 were false gaps where the data was in the library, usually a report found but read only to its first page. 5 asked for detail the filing doesn’t include.

One date without a source

One media-fill run is given its incubation date instead of its run date. Minor, but it is the one claim in the run the sources don’t support.

What happens next

Each miss above is now a regression test. The lead agent hands every validation area to researchers in its first turn instead of reading the PPQ report alone; the module template now asks for thaw, bioburden and endotoxin rows in its process and in-process control tables; and the false-gap check must open a report it has already found before keeping a gap flag. Together these target about 20 of the 36 facts missed in 3.2.P.3.5.

Run it on your own product.

Point Asthra at your validation reports and specifications and compare its draft with your filed Module 3.