This prompt is designed for financial analysts, compliance officers, and data pipeline engineers who need to convert dense SEC filings, annual reports, and earnings releases into structured, machine-readable records. The primary job-to-be-done is high-recall extraction of key financial entities—company names, monetary amounts, filing types, dates, and regulatory references—while preserving the complex relationships between them, such as parent-subsidiary hierarchies and restated versus originally reported figures. The ideal user is someone integrating this extraction into a downstream database, audit system, or analytics dashboard where schema consistency and source traceability are non-negotiable.
Prompt
Entity Extraction Prompt for Financial Filings

When to Use This Prompt
Define the job, reader, and constraints for extracting structured entities from financial filings.
Use this prompt when you are processing 10-Ks, 10-Qs, 8-Ks, proxy statements, or annual reports where the document structure is semi-predictable but the entity density is high. It is particularly effective when you need to distinguish between a parent company and its subsidiaries, flag monetary amounts that have been restated from prior periods, and normalize filing dates to a standard format. The prompt expects a raw text input, typically extracted from a PDF or HTML filing, and requires you to specify an output schema, a set of normalization rules (e.g., ISO 8601 for dates, numeric-only for monetary values), and a confidence threshold below which entities should be routed for human review.
Do not use this prompt for real-time news feeds, informal earnings call transcripts, or marketing materials where the entity types and relationships are less formalized. It is not designed for extracting sentiment, forward-looking statements, or qualitative risk assessments—those require separate classification or summarization prompts. Additionally, this prompt is insufficient on its own for full audit-grade extraction; you must pair it with a validation layer that checks for schema compliance, a retry mechanism for malformed outputs, and a human review queue for entities flagged with low confidence or conflicting source evidence. If your use case involves cross-document entity resolution (linking the same company across multiple filings), you will need a separate resolution prompt that consumes the output of this extraction step.
Use Case Fit
Where the Entity Extraction Prompt for Financial Filings delivers reliable automation and where it introduces unacceptable operational risk.
Good Fit: Structured Annual Reports (10-K, 20-F)
Use when: extracting entities from standardized annual filings with predictable section headers (Item 1. Business, Item 7. MD&A). Guardrail: Validate extracted entities against the filing's own XBRL-tagged facts when available to catch normalization errors before ingestion.
Good Fit: Subsidiary and Related-Party Mapping
Use when: building a corporate structure graph from Exhibit 21.1 subsidiary lists or related-party transaction notes. Guardrail: Require the prompt to output explicit parent-child relationship types and percentage ownership, not just entity names, and flag circular ownership patterns for human review.
Bad Fit: Unstructured Earnings Call Transcripts
Avoid when: processing spoken earnings calls with informal references, corrections, and forward-looking statements that lack the rigid structure of filed documents. Guardrail: Use a separate extraction prompt tuned for transcript disfluency, speaker attribution, and temporal context before attempting financial entity normalization.
Bad Fit: Real-Time Trading Decisions
Avoid when: entity extraction output feeds directly into automated trading systems without human review. Guardrail: Never wire extraction output to order execution. Insert a mandatory human-in-the-loop approval step for any extracted figure that triggers a materiality threshold.
Required Inputs: Filing Text with Preserved Structure
What to watch: The prompt requires cleanly extracted section text with preserved headings, table structures, and footnote anchors. Raw OCR output or unstructured PDF text will cause entity boundary errors. Guardrail: Preprocess filings to preserve section hierarchy and table markup before passing to the extraction prompt.
Operational Risk: Restated and Amended Figures
What to watch: Filings often contain restated prior-period figures or amendments (10-K/A) that conflict with original filings. The prompt may extract the restated figure without flagging the amendment context. Guardrail: Require the prompt to annotate any figure sourced from an amendment or restatement section and cross-reference against the original filing date.
Copy-Ready Prompt Template
A reusable, copy-ready prompt for extracting structured financial entities from SEC filings and annual reports, ready for adaptation into your extraction pipeline.
This prompt template is designed to be the core instruction set for extracting financial entities from dense regulatory documents. It uses square-bracket placeholders for all dynamic components, allowing you to swap in the specific filing text, your desired output schema, and any operational constraints. The template is structured to enforce strict JSON output, handle complex relationships like subsidiaries, and flag restated or estimated figures, which are critical for compliance workflows. Before integrating, review the [OUTPUT_SCHEMA] and [CONSTRAINTS] placeholders to ensure they match your downstream database or analytics contract.
textYou are an expert financial data extraction system. Your task is to analyze the provided financial filing text and extract structured entities according to the exact schema and constraints defined below. --- ## INPUT ### Filing Text [INPUT] ### Context Filing Type: [CONTEXT] --- ## EXTRACTION TASK Extract the following entity types from the filing text. For each entity, you must provide the canonical form, the verbatim mention text, and a confidence score between 0.0 and 1.0. 1. **Companies:** Extract all mentioned organizations. For each, identify its role (e.g., Registrant, Subsidiary, Counterparty) and its relationship to the primary filer. 2. **Filing Metadata:** Extract the filing type (e.g., 10-K, 8-K), the reporting period end date, and the filing date. 3. **Monetary Amounts:** Extract all monetary values. Normalize them to a consistent unit (e.g., 'millions of USD') and flag any that are marked as 'restated' or 'unaudited'. 4. **Regulatory References:** Extract mentions of specific regulations, acts, or accounting standards (e.g., 'Regulation S-K', 'ASC 606'). --- ## OUTPUT SCHEMA You must output a single, valid JSON object with no additional text or markdown. The object must conform to this exact structure: [OUTPUT_SCHEMA] --- ## CONSTRAINTS - **Null Handling:** If an entity type is not found, return an empty array `[]` for that key. Do not omit the key. - **Confidence:** A score of 1.0 means the entity is explicitly stated and unambiguous. A score below 0.7 means the entity is implied or ambiguous and should be flagged for human review. - **Restated Figures:** For any monetary amount that is a restated figure, set the `"is_restated"` field to `true` and include the original value in the `"original_value"` field if available. - **Subsidiaries:** For subsidiary companies, include the parent company's canonical name in the `"parent_company"` field. - **Evidence:** For every extracted entity, you must include a `"source_quote"` field containing the exact, short text span from the filing that justifies the extraction. --- ## RISK LEVEL [RISK_LEVEL]
To adapt this template, start by defining your [OUTPUT_SCHEMA] as a strict JSON Schema object. This is the most critical step for downstream reliability. For example, a monetary_amounts item might require value, unit, is_restated, and original_value fields. The [CONTEXT] placeholder should be filled with known metadata, such as the filing type, to help the model disambiguate roles. The [RISK_LEVEL] field can be set to a value like "high" to instruct the model to be more conservative in its confidence scoring, automatically routing more items for human review. After copying, test the prompt with a golden dataset of filings where you know the exact expected output to calibrate the confidence thresholds and catch schema compliance errors early.
Prompt Variables
Required and optional inputs for the Entity Extraction Prompt for Financial Filings. Each placeholder must be populated before the prompt is sent to the model. Validation notes describe how to check the input before execution.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[FILING_TEXT] | The full text of the SEC filing or annual report section to extract entities from | Item 1. Business. Apple Inc. designs, manufactures, and markets smartphones... | Required. Must be a non-empty string. Check for PDF extraction artifacts, encoding errors, and truncated sections before passing to the prompt. |
[ENTITY_TYPES] | Comma-separated list of entity types to extract from the filing text | company_name, filing_type, monetary_amount, date, regulatory_reference, subsidiary_relationship | Required. Must match one or more of the supported entity types. Validate against the allowed enum: company_name, person_name, filing_type, monetary_amount, date, regulatory_reference, subsidiary_relationship, restated_figure, accounting_standard. |
[OUTPUT_SCHEMA] | The exact JSON schema each extracted entity record must conform to | { "entity_type": "string", "mention_text": "string", "canonical_form": "string", "source_section": "string", "confidence": "number", "attributes": {} } | Required. Must be a valid JSON Schema object. Validate that downstream ingestion can parse this schema. Include required fields: entity_type, mention_text, canonical_form, source_section. |
[FILING_DATE] | The filing date of the document, used to anchor relative date expressions | 2024-10-31 | Required when extracting date entities. Must be ISO 8601 format (YYYY-MM-DD). If null or missing, relative date normalization will fail or produce incorrect absolute dates. |
[COMPANY_CIK] | The Central Index Key of the filing company, used to disambiguate the filer from other mentioned organizations | 0000320193 | Optional but strongly recommended. Must be a 10-digit string with leading zeros. Used to mark the primary filer entity and distinguish subsidiaries. If null, the model may misidentify the filing company. |
[KNOWN_SUBSIDIARIES] | A pre-populated list of known subsidiary names and their parent relationships, used to improve resolution accuracy | [{"subsidiary_name": "Apple Sales International", "parent_name": "Apple Inc.", "ownership_pct": 100}] | Optional. Must be a JSON array of objects with subsidiary_name and parent_name fields. Validate that names match the canonical forms used in your master data system. If null, the model will infer relationships from text context only. |
[CONFIDENCE_THRESHOLD] | The minimum confidence score for automated acceptance; entities below this threshold are flagged for human review | 0.85 | Required. Must be a float between 0.0 and 1.0. Validate that downstream routing logic uses this threshold consistently. Typical production values: 0.80-0.90 for financial filings. |
[RESTATEMENT_FLAG] | Boolean indicating whether the filing contains restated figures, which changes extraction behavior for monetary amounts | Optional. Must be true, false, or null. When true, the prompt instructs the model to extract both originally reported and restated monetary amounts with appropriate labels. When null or false, only current-period figures are extracted. |
Implementation Harness Notes
How to wire the entity extraction prompt into a reliable application pipeline for financial filings.
This prompt is designed to be called as a single step within a larger document processing pipeline, not as a standalone chat interface. The application layer is responsible for document chunking, context assembly, and output validation before the extracted entities ever reach a downstream system. For SEC filings and annual reports, you should split documents into manageable sections (e.g., by Item number or major heading) and assemble each request with the section text, the filing metadata, and a copy of the output schema. The prompt expects [INPUT] to contain the raw section text, [CONTEXT] to carry filing-level metadata (company name, filing type, period end date), and [OUTPUT_SCHEMA] to define the exact JSON structure for entities, amounts, dates, and regulatory references.
Validation must happen in the application layer immediately after the model responds. Parse the JSON output and check that every monetary amount includes a currency and scale (millions, thousands), every date resolves to ISO 8601, and every regulatory reference (e.g., 'Reg S-K Item 303') matches a known pattern. Reject records where subsidiary relationships are asserted without a parent entity reference. For high-stakes filings like 10-Ks and 20-Fs, implement a confidence threshold: if the model's self-reported confidence for any extracted entity falls below 0.85, route that entity to a human review queue. Log every extraction attempt with the prompt version, model ID, input hash, and validation result so you can trace errors back to specific document sections or prompt changes. Use a model with strong JSON mode support (GPT-4o, Claude 3.5 Sonnet) and set temperature=0 to minimize variance across repeated extractions.
Do not use this prompt as the sole extraction step for filings that will be ingested into a general ledger, regulatory submission, or investor-facing data product. The prompt handles entity recognition and basic normalization, but it does not perform cross-document reconciliation, restated-figure tracking, or XBRL tag alignment. Those responsibilities belong to separate pipeline stages. Wire the validated output into a staging table where a second process resolves extracted entity names against a master company database (using the Entity Resolution Prompt for Financial Filings if needed) and flags discrepancies between extracted figures and previously reported values. For any filing where the model returns a null or empty array for a required entity category, trigger an alert rather than silently ingesting incomplete data.
Common Failure Modes
Entity extraction from financial filings is brittle. Ambiguous language, dense tables, and domain-specific conventions break naive prompts. These are the most common production failure modes and how to guard against them.
Subsidiary vs. Parent Entity Confusion
What to watch: The model extracts a subsidiary name but assigns it the parent company's ticker or vice versa. This is common when filings discuss consolidated results and mention both entities in the same sentence. Guardrail: Require explicit parent-subsidiary relationship mapping in the output schema. Add a validation rule that flags records where the extracted entity name and ticker do not match a provided mapping table.
Restated Figure Overwrite
What to watch: The model extracts a monetary amount from a restated or revised section but ignores the restatement flag, treating the revised figure as the original. This corrupts time-series comparisons. Guardrail: Instruct the prompt to extract both the original and restated values as separate fields with a restatement_flag boolean. Add a post-extraction check that rejects records where a restated period lacks the flag.
Filing Type Misclassification
What to watch: The model confuses 10-K with 10-Q, 8-K with proxy statements, or fails to identify amended filings (10-K/A). This breaks downstream routing and compliance checks. Guardrail: Provide a strict enum of filing types in the prompt. Add a validation step that cross-references the extracted filing type against the document header metadata. If they conflict, escalate for human review.
Monetary Amount Unit Mismatch
What to watch: The model extracts a figure but drops or misinterprets the unit (millions vs. thousands vs. exact dollars). A $1.2B revenue becomes $1.2 or $1,200,000,000 without the unit label, making the value ambiguous. Guardrail: Require a separate unit field in the output schema with a controlled vocabulary (e.g., exact, thousands, millions, billions). Add a post-extraction validator that rejects monetary values missing a unit or with values inconsistent with the stated unit.
Regulatory Reference Hallucination
What to watch: The model generates plausible-sounding regulatory citations (e.g., "Regulation S-K Item 303") that do not appear in the source text, especially when the filing discusses compliance in general terms. Guardrail: Require source span attribution for every regulatory reference extracted. Add an eval check that verifies the cited text exists verbatim in the source document. If no exact match is found, flag the extraction as ungrounded and suppress it.
Date Normalization Across Fiscal Calendars
What to watch: The model extracts a date like "Q2 2024" but normalizes it to a calendar quarter instead of the company's fiscal quarter, which may be offset. This misaligns event timelines. Guardrail: Instruct the prompt to extract dates in their raw form and separately normalize to ISO 8601 using the company's stated fiscal calendar. If the fiscal calendar is not provided in the context, flag the date as fiscal_calendar_unknown and do not normalize.
Evaluation Rubric
Criteria for testing the quality and reliability of extracted entities before integrating the prompt into a production pipeline. Use these checks to catch schema violations, hallucinated entities, and boundary errors.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Schema Compliance | Output is valid JSON matching the [OUTPUT_SCHEMA] exactly; no missing required fields. | JSON parse error, missing 'entity_type' or 'mention_text', or extra unexpected keys. | Automated schema validation against the JSON Schema definition. |
Entity Type Precision | All extracted entities are assigned the correct type from the allowed enum (e.g., 'organization', 'person', 'monetary_amount'). | A 'person' is labeled as an 'organization', or a 'date' is labeled as a 'monetary_amount'. | Spot-check 50 random samples; assert >95% type accuracy against human-labeled ground truth. |
Hallucination Rate | No entity is extracted that does not appear verbatim or as a direct, resolvable reference in the source text. | An entity like 'Google' is extracted from a filing that only mentions 'Alphabet Inc.' without context. | Run prompt on a set of documents with known entity lists; assert 0% hallucinated entities. |
Null vs. Missing Handling | If no entities of a specific type exist, the output array for that type is empty | An empty array | Test with documents known to lack specific entity types; assert empty arrays, not null, for absent types. |
Boundary Precision | The 'mention_text' field captures the exact, full entity span without leading/trailing words. | Extracting 'Board of Directors' as 'the Board of Directors' or just 'Board'. | Automated string match of 'mention_text' against source text offsets; assert exact match. |
Subsidiary Disambiguation | Subsidiary relationships are correctly identified and linked to the parent entity in the 'parent_entity' field. | A subsidiary is listed as a standalone entity with no parent reference, or linked to the wrong parent. | Test with filings containing known parent-subsidiary structures; assert correct 'parent_entity' linkage. |
Restated Figure Flagging | Monetary amounts that are restated from prior periods are correctly flagged with 'is_restated: true'. | A restated figure is marked as 'is_restated: false' or the flag is missing entirely. | Use filings with explicit restatement notes; assert 'is_restated' field is true for all restated values. |
Confidence Score Calibration | High-confidence scores (>0.9) correlate with correct extractions; low-confidence scores (<0.7) correlate with ambiguous or difficult spans. | A hallucinated entity receives a confidence score of 0.95. | Run on a golden dataset; plot confidence score distribution against accuracy; assert monotonic relationship. |
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 prompt and a small set of 10-K or 10-Q filings. Use a frontier model (GPT-4o, Claude 3.5 Sonnet) with default temperature. Focus on getting the entity types right before adding strict schema validation.
codeExtract the following entities from [FILING_TEXT]: - Company names (issuer and mentioned entities) - Filing type - Reporting period dates - Monetary amounts with currency - Regulatory references (SEC rules, GAAP standards) Return as JSON with entity_type, mention_text, and source_sentence.
Watch for
- Subsidiary names extracted as separate companies without parent linkage
- Restated figures picked up alongside original figures with no flag
- Dates parsed in wrong fiscal year context
- Monetary amounts missing sign (gain vs. loss)

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