This prompt is designed for regulatory affairs and compliance engineering teams who need to extract structured data from FDA drug approval documents, including NDAs, BLAs, ANDAs, and supplemental submissions. It targets indication statements, clinical trial endpoints, adverse event tables, and labeling sections. Use this prompt when you need machine-readable outputs with precise section-level citations and per-field confidence scores that can feed downstream regulatory intelligence systems, submission tracking dashboards, or compliance review workflows.
Prompt
FDA Drug Approval Document Extraction Prompt Template

When to Use This Prompt
Defines the ideal job-to-be-done, target user, required preconditions, and explicit non-use cases for the FDA drug approval document extraction prompt.
This prompt assumes you have already extracted clean text from the source PDF. If you are working with scanned documents, apply OCR and text cleanup before using this prompt. The prompt expects a complete text block as input and will not compensate for missing pages, garbled characters, or misordered text from layout extraction failures. For best results, ensure your document preprocessing pipeline preserves section hierarchy, table structure, and footnote associations before passing text to this prompt.
Do not use this prompt for real-time clinical decision support or diagnostic workflows. It is not designed for medical device submissions, veterinary drug approvals, or international regulatory filings that follow non-FDA structures such as EMA or PMDA formats. The prompt also should not be used as a substitute for regulatory judgment—outputs must be reviewed by qualified regulatory professionals before inclusion in submission packages or compliance determinations.
Use Case Fit
Where this prompt works and where it does not. Understanding the operational boundaries prevents silent failures in production.
Good Fit: Structured Submission Documents
Use when: extracting data from FDA 356h forms, structured review documents, or clinical study reports with predictable section numbering. Why: the prompt relies on section-level cues and standardized regulatory language to anchor extractions and produce reliable citations.
Bad Fit: Unstructured Correspondence
Avoid when: processing informal FDA correspondence, advisory committee transcripts, or citizen petitions without predictable section headers. Risk: the prompt's section-anchoring strategy fails on narrative text, producing hallucinated citations or missing entire data categories. Guardrail: route unstructured documents to a general entity extraction prompt first.
Required Inputs
Must have: searchable PDF text (not image-only scans), document metadata including submission type and application number, and a predefined extraction schema with required vs. optional fields. Guardrail: validate text extractability and flag image-only pages before invoking the extraction prompt to prevent silent empty outputs.
Operational Risk: Confidence Drift on Older Documents
What to watch: FDA documents from different eras use varying terminology and section structures. The prompt's confidence scores may degrade on pre-2000 submissions without warning. Guardrail: monitor per-field confidence distributions by document year and set lower thresholds for legacy documents, routing low-confidence fields to human review.
Operational Risk: Multi-Document Submission Packages
What to watch: a single drug application often spans multiple PDFs (cover letter, form, clinical summaries, labeling). The prompt processes one document at a time and cannot reconcile cross-document references. Guardrail: implement a pre-processing step that identifies document boundaries and a post-processing reconciliation step that flags cross-document inconsistencies for human review.
Operational Risk: Redacted and Withheld Sections
What to watch: commercial confidential information or trade secret redactions create intentional gaps that the prompt may misinterpret as missing required data. Guardrail: pre-detect redaction markers and black-box regions, then inject explicit [REDACTED] tokens into the input context so the prompt treats them as known unknowns rather than extraction failures.
Copy-Ready Prompt Template
A reusable prompt template for extracting structured data from FDA drug approval documents with section-level citations and confidence scoring.
This prompt template is designed to extract structured data from FDA drug approval documents, including New Drug Applications (NDA), Biologics License Applications (BLA), and supplemental approval packages. It targets regulatory affairs teams who need to pull indication statements, clinical trial results, adverse event data, and labeling information into schema-conforming JSON with precise citations back to the source document sections. The template uses square-bracket placeholders that you replace with your specific document content, output schema, and operational constraints before wiring it into your extraction pipeline.
textYou are an FDA regulatory document extraction assistant. Your task is to extract structured data from the provided FDA drug approval document according to the output schema below. ## DOCUMENT CONTENT [DOCUMENT_TEXT] ## OUTPUT SCHEMA Extract the following fields as valid JSON matching this schema exactly: [OUTPUT_SCHEMA] ## EXTRACTION RULES 1. For every extracted value, include a "citation" field with the section heading, page number, or paragraph reference where the information was found. 2. For every extracted field, include a "confidence" score between 0.0 and 1.0 indicating how certain you are about the extraction. 3. If a required field is not present in the document, set its value to null and include a "missing_reason" field explaining why it could not be found (e.g., "not mentioned in document", "redacted", "illegible"). 4. For numeric values, preserve the original units and include a "normalized_value" field with standard units where applicable. 5. For adverse event data, include MedDRA preferred terms where identifiable and flag any events that appear in tables but not in narrative sections. 6. For clinical trial results, distinguish between primary endpoints, secondary endpoints, and exploratory endpoints. 7. Do not fabricate or infer data. If information is ambiguous, set confidence below 0.5 and include an "ambiguity_note". ## CONSTRAINTS [CONSTRAINTS] ## EXAMPLES [EXAMPLES] ## OUTPUT FORMAT Return ONLY valid JSON. No markdown fences, no commentary, no additional text.
To adapt this template, replace [DOCUMENT_TEXT] with the full text of the FDA submission document you are processing. Define [OUTPUT_SCHEMA] as a complete JSON Schema object specifying the fields you need—typical fields include drug_name, active_ingredient, indication, approval_date, clinical_trial_results (array of trial objects with endpoints, sample sizes, p-values), adverse_events (array with event terms, frequencies, severity grades), and labeling_sections (array of section texts with headings). Use [CONSTRAINTS] to add domain-specific rules such as required field lists, enum values for regulatory categories, or numeric range validations. Use [EXAMPLES] to provide few-shot demonstrations of correct extractions, especially for complex nested structures like clinical trial result arrays. After adapting, run the prompt through your validation harness to verify schema compliance, citation accuracy, and confidence score calibration before deploying to production.
Prompt Variables
Required and optional inputs for the FDA drug approval document extraction prompt. Each placeholder must be populated before the prompt is assembled and sent to the model. Validation notes describe how to check that the input is fit for purpose before extraction begins.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[DOCUMENT_TEXT] | Full text of the FDA submission document to extract from, including all sections, tables, and appendices | NDA 123456 Clinical Study Report Section 6.2 Adverse Events | Must be non-empty string. Check for OCR corruption if sourced from scanned PDF. Minimum 100 characters required. Reject if only metadata or cover page detected. |
[EXTRACTION_SCHEMA] | JSON Schema or field list defining the exact fields, types, and constraints for the output structure | {"indication": "string", "primary_endpoint": {"name": "string", "p_value": "number"}} | Must be valid JSON Schema or parseable field definition. Required fields must be marked. Enum values must be specified if applicable. Schema version must be tracked. |
[DOCUMENT_TYPE] | FDA submission type identifier that determines which sections and fields are expected | NDA, BLA, ANDA, sNDA, 505(b)(2) | Must match one of the supported submission types. Controls which extraction rules and required sections apply. Reject unknown types rather than guessing. |
[REQUIRED_SECTIONS] | List of document sections that must be present and extracted for a valid output | ["Indications and Usage", "Clinical Studies", "Adverse Reactions"] | Must be a non-empty array of section names matching the document type. Each section name must be an exact match or fuzzy-matchable string. Missing required sections should trigger a partial-extraction warning. |
[CONFIDENCE_THRESHOLD] | Minimum confidence score for extracted fields to be included without human-review flagging | 0.85 | Must be a float between 0.0 and 1.0. Values below 0.7 are not recommended for regulatory use. Fields below threshold must route to human review queue. |
[CITATION_GRANULARITY] | Level of source citation required for each extracted field | paragraph, page, section, line | Must be one of the supported granularity levels. Determines whether citations reference page numbers, paragraph numbers, or section headers. Paragraph-level is minimum for audit readiness. |
[OUTPUT_FORMAT] | Target output structure format for the extraction result | json, jsonl, xml | Must be one of the supported formats. JSON is default. Format must match downstream ingestion pipeline expectations. Validate format compliance before extraction. |
[NULL_HANDLING] | Instruction for how to represent missing, redacted, or illegible fields in output | explicit_null, omit_field, placeholder_string | Must be one of the supported strategies. explicit_null is recommended for regulatory use to distinguish missing data from extraction failure. Never silently omit required fields. |
Implementation Harness Notes
A practical guide to wiring the FDA Drug Approval Document Extraction prompt into a production application with validation, retries, and human review.
This prompt is designed to be a single step in a larger document processing pipeline. It expects pre-processed text from an FDA submission document (PDF parsed, OCR cleaned, and chunked by section) as its primary input. The application layer is responsible for document ingestion, chunking strategy, and post-extraction validation. Do not send raw binary PDFs to this prompt; the model's performance degrades significantly with unparsed or poorly segmented text. The ideal harness feeds the prompt one major section at a time (e.g., 'Clinical Studies', 'Adverse Reactions') to stay within context windows and improve citation accuracy.
Validation and Retries: The output schema includes a confidence_score for each extracted field. Implement a post-processing validator that checks: (1) JSON schema conformity, (2) required fields are not null unless explicitly flagged as missing: true, (3) source_citation fields contain valid section references present in the input, and (4) numeric fields like p_value or sample_size parse correctly. If validation fails, use a retry recovery prompt that feeds the original prompt, the failed output, and the specific validator error messages back to the model. Limit retries to 2 attempts before routing to a human review queue. For high-risk fields like adverse_events and boxed_warnings, set a confidence threshold (e.g., < 0.9) that automatically triggers human review regardless of schema validity.
Model Choice and Tool Use: This extraction task benefits from models with strong instruction-following and large context windows. GPT-4o, Claude 3.5 Sonnet, and Gemini 1.5 Pro are suitable starting points. The prompt is designed for a single LLM call without external tools, but you can extend the harness with a RAG retrieval step if the input document exceeds the model's context window. In that case, use the [CONTEXT] placeholder to inject retrieved chunks and instruct the model to cite the specific chunk IDs. For production, log every extraction attempt—including the prompt version, model, input hash, raw output, validation results, and final accepted/rejected status—to enable prompt observability and regression testing.
Next Steps: Start by running this prompt against a golden dataset of 20 FDA documents with known, human-verified extractions. Measure field-level accuracy, citation precision, and the false-positive rate for missing field detection. Use these metrics to calibrate confidence thresholds and decide whether the prompt alone is sufficient or if fine-tuning on FDA-specific language is warranted. Avoid deploying this prompt directly to a user-facing application without the validation harness and human review escape hatch described above.
Expected Output Contract
Defines the strict schema, types, and validation rules for the structured JSON output produced by the FDA Drug Approval Document Extraction Prompt. Use this contract to build downstream parsers and validation checks.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
[DRUG_NAME] | string | Must be a non-empty string matching a recognized proper noun. Validate against a known drug name dictionary or the source document's title section. | |
[APPLICATION_NUMBER] | string | Must match the regex pattern for an FDA application number (e.g., NDA[0-9]{6}, BLA[0-9]{6}). Reject if format is invalid. | |
[INDICATIONS] | array of objects | Array must contain at least one object. Each object must have a non-null 'indication_text' string and a 'source_section' string. Validate array length > 0. | |
[CLINICAL_TRIALS] | array of objects | If present, each object must include a 'trial_id' string. Validate that 'primary_endpoint' objects contain a non-null 'p_value' number. Set to null if no trial data is found. | |
[ADVERSE_EVENTS] | array of objects | Each object must have a non-empty 'event_term' string. Validate that 'incidence_percentage' is a number between 0 and 100. Reject any object with a missing 'event_term'. | |
[LABELING_WARNINGS] | array of strings | If present, each string must be non-empty. Validate that each string is a direct quote or a close paraphrase with a citation to a 'Warnings and Precautions' section. Set to null if no warnings are found. | |
[EXTRACTION_CONFIDENCE] | object | Must contain a 'global_score' number between 0.0 and 1.0. Validate that any field-level confidence scores within the object are also numbers in the same range. Reject if 'global_score' is missing. | |
[MISSING_FIELDS] | array of strings | Must be an array of field names that were expected but not found. Validate that each string in the array matches a top-level key in the output schema. An empty array is valid. |
Common Failure Modes
FDA drug approval documents contain dense regulatory language, complex tables, and strict submission structures. These failure modes are the most common in production extraction pipelines and require explicit guardrails before deployment.
Silent Null Extraction for Required Fields
What to watch: The model returns an empty string or omits a required field like indication or adverse_event_rate without flagging it as missing. This creates downstream data integrity issues where nulls are indistinguishable from extraction failures. Guardrail: Add a post-extraction validator that checks every required field against the expected schema and raises an explicit MISSING_REQUIRED_FIELD error with the field path and document location before the record enters any database.
Clinical Endpoint Value Drift
What to watch: The model extracts a clinical trial endpoint value but normalizes or rounds it incorrectly—converting percentages to decimals, swapping numerator and denominator, or dropping confidence intervals. These errors propagate into regulatory submissions and safety analyses. Guardrail: Implement a numeric consistency check that compares extracted values against the source text using a secondary verification prompt. Flag any value where the extracted number cannot be traced back to a specific sentence or table cell in the original document.
Adverse Event Table Misalignment
What to watch: Multi-page adverse event tables with merged cells, hierarchical row groupings, and footnoted values cause the model to misalign event names with their frequency counts or severity grades. A Grade 3 event gets attributed to the wrong drug arm or the wrong system organ class. Guardrail: Pre-process tables with a layout-aware extraction step that preserves row-span and column-span metadata before passing structured table representations to the extraction prompt. Add a cross-table reconciliation check that verifies row counts and column totals match across pages.
Indication Scope Over-Extraction
What to watch: The model extracts broader or narrower indications than what the FDA actually approved—pulling in studied populations that were not granted labeling language or omitting important limitations of use. This creates compliance risk when downstream systems treat extracted indications as authoritative. Guardrail: Constrain extraction to the official INDICATIONS AND USAGE section only, with explicit instruction to preserve limitation-of-use qualifiers verbatim. Add a human-review gate for any indication text that differs from the source section by more than edit distance threshold.
Confidence Score Inflation
What to watch: The model assigns high confidence scores to extractions from ambiguous or partially legible document regions, giving downstream systems false assurance about data quality. This is especially dangerous for adverse event counts and efficacy endpoints. Guardrail: Calibrate confidence scoring with a held-out set of annotated FDA documents where ground truth is known. Set a confidence threshold below which extractions are routed for human review. Log all high-confidence extractions that later require correction to detect calibration drift over time.
Cross-Reference Resolution Failure
What to watch: FDA documents frequently reference other sections, tables, or appendices (e.g., "see Table 14.3.2" or "as described in Section 6.1"). The model extracts the reference text but fails to resolve or verify the referenced content, leaving extracted records incomplete or contextually wrong. Guardrail: Implement a two-pass extraction: first pass identifies all cross-references, second pass retrieves the referenced content and appends it to the extraction context. Flag any unresolved cross-references as UNRESOLVED_REFERENCE with the target location for manual verification.
Evaluation Rubric
Criteria for testing the quality of extracted FDA drug approval document outputs before shipping. Use these standards to build automated eval checks, human review gates, and regression tests.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Schema Compliance | Output is valid JSON matching the [OUTPUT_SCHEMA] exactly; all required fields present | JSON parse error, missing required field, or extra unexpected field | Schema validator with strict mode; run against golden test set of 20 filings |
Citation Accuracy | Every extracted field has a [SECTION_CITATION] that maps to the correct document section heading and page number | Citation points to wrong section, hallucinated page number, or citation missing for non-null field | Manual spot-check 10% of citations against source PDF; automated regex check for citation format compliance |
Indication Extraction | [INDICATION] field matches the approved indication language from Section 1 of the label; no paraphrasing that changes clinical meaning | Paraphrased indication that omits patient population, truncates limitation language, or adds unapproved claims | Exact string match against golden extraction set; semantic similarity threshold >0.95 with human review for borderline cases |
Adverse Event Completeness | All adverse events with incidence rate above [THRESHOLD] are extracted with [EVENT_NAME], [INCIDENCE_RATE], and [TABLE_REFERENCE] | Missing adverse event that appears in source table, incidence rate incorrectly transcribed, or table reference omitted | Count comparison against manual extraction; numeric field precision check within ±0.1% of source value |
Missing Data Detection | [MISSING_FIELDS] array contains every required field not found in the source document with [CONFIDENCE] score and [LOCATION_SEARCHED] | Required field absent from source but not listed in MISSING_FIELDS, or field present in source but incorrectly flagged as missing | False-negative rate test: inject documents with known missing fields and verify detection; false-positive rate test with complete documents |
Confidence Score Calibration | Fields with [CONFIDENCE] < 0.7 correspond to genuinely ambiguous or illegible source content; fields with [CONFIDENCE] >= 0.9 are factually correct | High-confidence field contains extraction error, or low-confidence field is actually clearly stated in source | Calibration plot: bin confidence scores and measure accuracy per bin; target ECE < 0.1 on held-out test set |
Clinical Trial Endpoint Extraction | [PRIMARY_ENDPOINT] and [SECONDARY_ENDPOINTS] include endpoint name, p-value, confidence interval, and [TRIAL_NAME] reference | Missing p-value or CI when present in source, endpoint attributed to wrong trial, or statistical significance misstated | Numeric field extraction accuracy: p-value match within 0.001, CI bounds match within 0.1; trial-to-endpoint mapping integrity check |
Human Review Escalation | Outputs with any [CONFIDENCE] < [REVIEW_THRESHOLD] or [MISSING_FIELDS] containing critical fields are routed to human review queue | Low-confidence output shipped without review, or critical missing field not escalated | Integration test: submit 10 documents with known low-confidence fields and verify routing; audit log confirms review completion before downstream consumption |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Start with the base extraction prompt and a single FDA document type (e.g., NDA Summary Basis of Approval). Use a frontier model with a simple JSON schema. Skip confidence scoring and citation granularity beyond section-level references. Focus on extracting the top 5-10 fields (drug name, indication, approval date, primary endpoint, adverse events summary).
codeExtract the following fields from [DOCUMENT_TEXT]: - drug_name - indication - approval_date - primary_endpoint - adverse_events_summary Return JSON. If a field is not found, use null.
Watch for
- Hallucinated approval dates when the document only references submission dates
- Conflating primary and secondary endpoints
- Missing adverse event data that appears in tables rather than prose
- Overly broad indication extraction that pulls in contraindications

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us