CMC regulatory writing software that runs entirely in your browser Training guidesValidation packOpen the app

Module 3 sections · Training guide

Specification Builder

Set tests and acceptance criteria, check them against ICH Q6A and the impurity thresholds for your maximum daily dose, and write the specification, analytical procedures, justification and excipient sections.

Writes
3.2.S.4.1 3.2.S.4.2 3.2.S.4.5 3.2.P.4 3.2.P.5.1 3.2.P.5.2 3.2.P.5.6
Product type
Small molecule
Guidance it follows
ICH Q6A, Q3A(R2), Q3B(R2), Q3C(R9), Q3D(R2); FDA nitrosamine guidance (Rev. 2, 2024)
Time to learn
About 20 minutes with the example

1. What this module does

The module writes 3.2.S.4.1, 4.2 and 4.5 for a drug substance, or 3.2.P.5.1, 5.2, 5.6 and 3.2.P.4 for a drug product. It works out the ICH Q3A or Q3B reporting, identification and qualification thresholds from your maximum daily dose and checks every impurity limit against them.

It also checks that the tests ICH Q6A expects for the dosage form are present, that residual solvent limits meet ICH Q3C, and that every non-compendial method has a procedure summary.

What you get

2. Before you start

Have these ready. You can still start with the example data and replace it piece by piece.

  • Maximum daily dose of the drug substance (mg/day) and the dosage form.
  • Each test with method reference, acceptance criterion and, ideally, the range of batch results.
  • Each impurity with its type (specified identified, specified unidentified, unspecified, total), limit, maximum found and any qualified level from toxicology.
  • Residual solvents and limits; method summaries with system suitability; excipients with their quality standard and origin.
  • Status of the ICH Q3D and nitrosamine risk assessments.
Your data stays on your computer. The bar under the title counts every network request the page makes; it stays at 0 because your data never leaves your computer. Download offline copy saves a single file that opens from your own computer with all network access blocked, for air-gapped PCs.

3. Step by step with the example

Open the tool at app.cmcfy.com/app/specification-builder.html. The example is loaded when the page opens, so every panel already has realistic data. Follow the steps to see how it works, then replace the example with your own data.

  1. Enter product and dose

    Choose drug product or drug substance, the dosage form and the Maximum daily dose. Say whether the ICH Q3D and nitrosamine risk assessments are done. The headline shows the thresholds for your dose: for 100 mg/day, reporting 0.1%, identification 0.2%, qualification 0.2%.

    Specification Builder
  2. Enter the specification

    One test per line with method and acceptance criterion. Batch results (lowest to highest) are optional but make the justification much stronger.

  3. Enter impurity limits and solvents

    Enter each impurity with its type and limit. The tool compares each limit with the thresholds and with the batch data.

    Required tests by ICH Q6A for the dosage form.
    Required tests by ICH Q6A for the dosage form.
  4. Resolve alerts

    The example has deliberate problems: an impurity limit above the qualification threshold with no qualified level, an unspecified impurity limit above the identification threshold, dichloromethane at 800 ppm against the Q3C limit of 600 ppm, a chromatographic method with no system suitability, and two excipients that need extra information.

    Specification Builder
  5. Read the narratives

    The justification of specification and of impurity limits are written from your data, citing the thresholds and batch results. Edit them, or use AI to polish the wording.

    Specification Builder
  6. Preview and download

    Preview 3.2.P.5.1, 5.2, 5.6 and 3.2.P.4, check the review, and download. Save the summary for the batch analysis and QOS.

    Specification Builder

4. Field reference

Every input in the tool, panel by panel. Tables accept rows pasted straight from Excel, comma-separated text, or a loaded file; check the columns after loading a file. Fields marked “when it applies” appear only for the choices that need them.

1 · Product and dose

FieldWhat to enter
Specification forChoose one: Drug product (3.2.P.5); Drug substance (3.2.S.4).
Submission regionChoose one: US: FDA (NDA, ANDA, BLA, IND); EU: EMA and national agencies (MAA); Both US and EU.
Product or substance nameType it in.
Dosage form when it appliesChoose one: Solid oral (tablet, capsule); Oral liquid; Parenteral (injection); Other.
Maximum daily dose of drug substance (mg/day)Sets the ICH Q3A/Q3B thresholds and the elemental and residual solvent context. Type a number.
Elemental impurities (ICH Q3D)Choose one: Risk assessment done; no routine test needed; Risk assessment done; controlled by a test; Risk assessment not done yet.
NitrosaminesChoose one: Risk assessment done; no risk identified; Risk identified; nitrosamine controlled in this specification; Risk assessment not done yet.

2 · Specification

One test per line. Batch results (lowest to highest) are optional but make the justification much stronger.

FieldWhat to enter
TestsA table. Columns: Test | Method | Acceptance criterion | Batch results (min–max). Paste rows from Excel, type comma-separated rows, or press Load file (Excel, CSV, Word, PDF or a scan).

3 · Impurity limits

Use % relative to the drug substance. Qualified level is the highest level shown safe in toxicology or clinical studies, if known.

FieldWhat to enter
ImpuritiesLimits and results in % relative to the drug substance. A table. Columns: Impurity | Type (specified identified / specified unidentified / unspecified / total) | Limit (%) | Max found in batches (%) | Qualified level (%). Paste rows from Excel, type comma-separated rows, or press Load file (Excel, CSV, Word, PDF or a scan).

4 · Residual solvents

FieldWhat to enter
Solvents controlledA table. Columns: Solvent | Limit (ppm). Paste rows from Excel, type comma-separated rows, or press Load file (Excel, CSV, Word, PDF or a scan).

5 · Analytical procedures

Every non-compendial method in the specification needs a procedure summary for 3.2.S.4.2 or 3.2.P.5.2.

FieldWhat to enter
ProceduresA table. Columns: Method ID | Technique | Column or instrument | Key conditions | System suitability. Paste rows from Excel, type comma-separated rows, or press Load file (Excel, CSV, Word, PDF or a scan).

6 · Excipients (3.2.P.4) shown when it applies

FieldWhat to enter
ExcipientsA table. Columns: Excipient | Quality standard | Origin (synthetic / vegetable / mineral / animal) | Novel (yes/no). Paste rows from Excel, type comma-separated rows, or press Load file (Excel, CSV, Word, PDF or a scan).

5. Checks and alerts

Calculations and pass/fail outcomes always come from fixed rules, never from AI. The tool checks:

  • Every test has an acceptance criterion and a method reference; the tests ICH Q6A expects for the dosage form are present.
  • Assay range no wider than 95.0–105.0% for a drug product without justification; dissolution criterion gives a Q value and a time point.
  • Limits for total and for unspecified impurities; each limit against the reporting, identification and qualification thresholds for the dose; batch results above a proposed limit are critical; limits more than three times the highest batch result are flagged.
  • Residual solvents against ICH Q3C Option 1; Class 1 solvents flagged.
  • ICH Q3D and nitrosamine risk assessments done; when a risk needs a test, the test is in the specification.
  • Every method has a procedure summary; chromatographic methods have system suitability criteria.
  • Excipients of animal origin, in-house standards, novel excipients and missing quality standards are flagged for 3.2.P.4.

How to resolve alerts

  • Critical alerts block the download and must be fixed in the data. A failing result can instead be linked to an investigation: type the investigation reference and outcome and press Record.
  • Major alerts block the download until you fix them or type a justification and press Accept justification.
  • Minor alerts do not block anything. They are listed in the documents so the reviewer sees them.
  • Some alerts have an Apply fix button that makes the change for you. Reopen undoes a justification.

Narratives

This module writes: Justification of specification; Justification of impurity limits. Each narrative is written by fixed rules from your data. You can edit it in the box. Rewrite with AI (where your plan includes AI) rewrites it in regulatory style; every number in the text is checked against your data, and a number that does not match is flagged under the box and blocks the download until you correct it. Reset to rule-based text brings back the original.

6. Preview, gap review and download

  1. Press Preview next to a section, or Preview and download all. The document opens in a preview window, exactly as the Word file will read.
  2. The left side lists the review, run on your device: gaps in the data (missing values, open alerts), gaps in the report (missing content the guidance expects, placeholders such as [site] or TBD left in the text) and, if you load the approved protocol under Compare with the protocol, differences from the protocol (requirements, criteria, batches or time points it plans that the report does not show).
  3. Click a finding to jump to the place in the preview. Fix it in the tool, then preview again.
  4. Optional AI review: a second read for contradictions, claims without data and vague wording. The report text is sent to Claude only when you press it, and only where your plan includes AI. Check every AI finding; AI can be wrong.
  5. Press Download Word (.docx) or Download PDF. With several documents open, All as Word (.zip) and All as PDF (.zip) download the set. The download buttons stay disabled while a blocking alert is open; the preview still works.

Documents this module produces

SectionDocument
3.2.P.5.1 / 3.2.S.4.1Specification(s)
3.2.P.5.2 / 3.2.S.4.2Analytical procedures
3.2.P.5.6 / 3.2.S.4.5Justification of specification(s)
3.2.P.4Control of excipients (drug product)

Use Save project to keep your work as a file on your computer, and Open project to continue later. Start blank clears every field; Load example brings the example back. Nothing is stored on CMCfy servers.

7. US and EU submissions

US mode cites USP general chapters (for example USP <905> uniformity of dosage units, <711> dissolution). EU mode maps them to Ph. Eur. (2.9.40, 2.9.3) and flags any method that cites USP/NF only. Choose Both US and EU to cite both. The ICH thresholds are the same in both regions.

9. Common pitfalls

  • Entering the dose per unit instead of the maximum daily dose. The thresholds depend on the daily dose.
  • Proposing limits far above batch experience with no justification; reviewers ask for limits based on data.
  • Leaving "Risk assessment not done yet" for Q3D or nitrosamines at submission; both are expected.
  • Using different test names here and in the batch analysis. Batch results are matched to tests by name.

10. Practice exercises

Each exercise starts from the example (press Load example to reset). We run these on every update of this guide, so the result you see should match.

  1. See the thresholds move with the dose

    Change Maximum daily dose of drug substance (mg/day) to 2000.

    Expected resultThe headline note now gives the thresholds for 2000 mg/day: reporting 0.05%.

  2. Mark the nitrosamine risk assessment as not done

    Set Nitrosamines to "Risk assessment not done yet".

    Expected resultA major alert says the nitrosamine risk assessment is not done.

  3. Fix the residual solvent limit

    In Solvents controlled, change dichloromethane from 800 to 600 ppm.

    Expected resultThe alert about the Q3C Option 1 limit of 600 ppm is gone.