Inferensys

Prompt

Environmental Impact Statement Fact-Check Prompt Template

A practical prompt playbook for verifying factual claims in environmental impact assessments against monitoring data, regulatory standards, and scientific literature in production AI workflows.
Elegant overhead shot of a polished wooden communal table in a sun-drenched WeWork lounge, laptops and tablets displaying AI workflow dashboards, plants and pendant lights in background.
PROMPT PLAYBOOK

When to Use This Prompt

Defines the specific job-to-be-done, the target user, and the operational boundaries for the Environmental Impact Statement Fact-Check Prompt Template.

This prompt is designed for environmental compliance teams, impact assessment consultants, and verification engineers who need to systematically check factual claims within Environmental Impact Statements (EIS), Environmental Assessments (EA), or similar regulatory submissions. The core job-to-be-done is structured claim verification: taking a set of discrete, pre-extracted claims from an assessment document and verifying each against a provided set of evidence sources, including monitoring data, regulatory thresholds, scientific literature, and agency guidance. It is not a document summarizer, a general-purpose environmental chatbot, or a claim extraction tool. Use this prompt only after you have already completed claim extraction and evidence retrieval steps in your pipeline.

The ideal user is a technical operator integrating this prompt into an automated verification pipeline. The required context includes a list of atomic claims with source pointers back to the original document, and a curated evidence bundle containing the specific monitoring data, regulatory text, or literature excerpts relevant to those claims. The prompt expects you to supply these as structured inputs, not as raw document dumps. It is designed to work downstream of a retrieval-augmented generation (RAG) system or a manual evidence collection process. Do not use this prompt for open-ended environmental Q&A, for generating the EIS document itself, or for making policy recommendations. Its scope is strictly limited to verifying factual assertions against provided evidence.

This prompt belongs in a verification pipeline after claim extraction and evidence retrieval steps, and before human review and regulatory submission. The output is a structured verification report with evidence citations and uncertainty quantification, which serves as an audit trail. Before deploying, you must implement validation checks on the output schema to ensure every claim receives a verification status and that no evidence citations are hallucinated. In high-stakes regulatory contexts, a human reviewer must always sign off on the final verification report before it is submitted to an agency. Avoid using this prompt for claims that require subjective professional judgment, such as aesthetic impact assessments, unless you have explicitly modeled those as evidence-backed assertions.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Environmental Impact Statement Fact-Check Prompt works, where it fails, and the operational conditions required before you put it into a verification pipeline.

01

Good Fit: Structured EIS Review

Use when: verifying claims in formal Environmental Impact Statements, Environmental Assessments, or regulatory submissions against monitoring data, scientific literature, and regulatory standards. Guardrail: The prompt expects structured source documents with clear claim boundaries and citable evidence sections.

02

Bad Fit: Real-Time Sensor Data

Avoid when: streaming sensor feeds, raw telemetry, or unstructured field notes are the primary evidence source. Guardrail: This prompt requires pre-processed, document-ready evidence. Pair with a data normalization prompt in the extraction pillar before fact-checking.

03

Required Inputs

Risk: Garbage verification output from incomplete inputs. Guardrail: The prompt requires three explicit inputs: the EIS document text, a structured evidence pack (monitoring data, regulatory references, literature excerpts), and a claim taxonomy defining what constitutes a verifiable environmental claim.

04

Operational Risk: Uncertainty Masking

Risk: The model may assign binary true/false labels to claims with inherent scientific uncertainty, such as long-term species impact predictions. Guardrail: Require an uncertainty quantification field in the output schema and route claims with confidence below a defined threshold to human review.

05

Operational Risk: Regulatory Version Drift

Risk: The prompt may reference outdated regulatory standards if the evidence pack is stale. Guardrail: Include a regulatory standard version date in the prompt's [CONSTRAINTS] and validate it against a live registry before running batch verification jobs.

06

Operational Risk: Cross-Document Contradiction

Risk: A claim verified against one section of the EIS may be contradicted by another section or an appendix. Guardrail: Add a contradiction detection pass after initial verification. Flag claims where the EIS internally conflicts before evaluating against external evidence.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A reusable system prompt for verifying environmental impact claims against evidence with structured output and uncertainty quantification.

This template is designed to be copied directly into your system prompt or user message template. It instructs the model to act as a specialized environmental impact fact-checker, decomposing claims from an Environmental Impact Statement (EIS) or assessment, matching them against provided evidence, and producing a structured verification report. The square-bracket placeholders must be replaced with your application's specific data before each inference call. The prompt enforces strict separation of factual verification from interpretation, requires explicit citation, and quantifies uncertainty—all critical for regulatory and compliance workflows where unsupported assertions can lead to project delays or legal challenges.

text
You are an environmental impact verification specialist. Your task is to fact-check claims extracted from an Environmental Impact Statement (EIS) or environmental assessment against the provided evidence sources. You must follow these rules strictly.

## INPUT

**Claims to Verify:**
[CLAIMS]

**Evidence Sources:**
[EVIDENCE]

**Regulatory Context (optional):**
[REGULATORY_STANDARDS]

## CONSTRAINTS

- Verify each claim independently. Do not let one claim's outcome influence another.
- For each claim, you must assign exactly one of these verdicts: SUPPORTED, CONTRADICTED, UNSUPPORTED, or NOT_VERIFIABLE.
- SUPPORTED means the evidence directly confirms the claim within acceptable tolerance.
- CONTRADICTED means the evidence directly refutes the claim.
- UNSUPPORTED means the evidence is relevant but insufficient to confirm or refute.
- NOT_VERIFIABLE means no relevant evidence was provided or the claim is outside the scope of available data.
- For numerical claims, apply a tolerance of [NUMERICAL_TOLERANCE] unless otherwise specified.
- For temporal claims, verify against the date ranges in the evidence. Flag stale evidence older than [EVIDENCE_RECENCY_THRESHOLD].
- Separate factual verification from interpretation. If a claim contains both a factual assertion and an interpretive statement, verify only the factual portion and note the interpretive element separately.
- Do not infer support from absence of contradiction. Missing evidence is not confirming evidence.
- If [REGULATORY_STANDARDS] are provided, check claims against applicable thresholds, limits, or criteria from those standards.

## OUTPUT SCHEMA

Return a JSON object with the following structure:

{
  "verification_report": {
    "report_id": "string",
    "verification_timestamp": "string (ISO 8601)",
    "claims_verified": [
      {
        "claim_id": "string",
        "original_claim_text": "string",
        "verdict": "SUPPORTED | CONTRADICTED | UNSUPPORTED | NOT_VERIFIABLE",
        "confidence_score": 0.0-1.0,
        "evidence_citations": [
          {
            "source_id": "string",
            "excerpt": "string (exact quote from evidence)",
            "relevance": "DIRECT | INDIRECT | CONTEXTUAL"
          }
        ],
        "reasoning": "string (explain the logical chain from evidence to verdict)",
        "numerical_comparison": {
          "claimed_value": "number or null",
          "evidence_value": "number or null",
          "tolerance_applied": "number or null",
          "within_tolerance": true or false or null
        },
        "interpretive_elements_flagged": ["string (any interpretive language detected in the claim)"],
        "regulatory_standard_reference": "string or null (cite specific standard section if applicable)",
        "requires_human_review": true or false
      }
    ],
    "aggregate_summary": {
      "total_claims": "number",
      "supported_count": "number",
      "contradicted_count": "number",
      "unsupported_count": "number",
      "not_verifiable_count": "number",
      "human_review_recommended_count": "number"
    },
    "evidence_gaps_identified": ["string (describe what evidence was missing)"],
    "methodology_notes": ["string (any caveats about the verification process)"]
  }
}

## FAILURE MODES TO AVOID

- Do not mark a claim as SUPPORTED based on a single indirect source without corroboration.
- Do not confuse correlation evidence with causation evidence.
- Do not treat modeling projections as measured data unless explicitly labeled as such.
- Do not ignore temporal mismatches between claim timeframe and evidence timeframe.
- Do not omit the reasoning field—every verdict must be explainable.

To adapt this template for your pipeline, replace [CLAIMS] with a JSON array of claim objects, each containing at minimum a claim_id and claim_text. The [EVIDENCE] placeholder should receive a JSON array of source objects with source_id, content, and date fields. If your verification workflow targets a specific jurisdiction, populate [REGULATORY_STANDARDS] with the relevant statute or guideline text. Set [NUMERICAL_TOLERANCE] to a percentage or absolute value appropriate for your domain—5% is common for emission estimates, while 0.1 mg/L might apply to water quality metrics. Set [EVIDENCE_RECENCY_THRESHOLD] to a date string like "2020-01-01" to flag outdated monitoring data. After the model returns the JSON output, validate it against the schema before ingestion. For high-stakes claims where requires_human_review is true or confidence_score falls below 0.7, route the output to a domain expert with the full evidence chain attached. Never auto-accept a SUPPORTED verdict without checking that the evidence_citations array contains at least one DIRECT relevance entry.

IMPLEMENTATION TABLE

Prompt Variables

Inputs the prompt needs to work reliably. Validate these before sending the model request. Missing or malformed variables are the most common cause of silent failures in verification pipelines.

PlaceholderPurposeExampleValidation Notes

[IMPACT_STATEMENT_TEXT]

The full text of the environmental impact statement section to fact-check

Section 4.2: Predicted noise levels during construction will not exceed 55 dB L_eq at the nearest receptor.

Required. Must be non-empty string. Check for minimum 50 characters to ensure sufficient context. Reject if only a heading or fragment.

[CLAIM_TYPE]

The category of claim being verified to apply correct evidence standards

quantitative_prediction

Required. Must match enum: quantitative_prediction, qualitative_impact, regulatory_compliance, mitigation_claim, baseline_description, cumulative_impact. Reject unknown values.

[EVIDENCE_SOURCES]

Array of reference documents, monitoring data, and regulatory standards to check claims against

[{"source_id": "noise_monitoring_2024_q3", "type": "monitoring_data", "content": "..."}]

Required. Must be non-empty array. Each source requires source_id, type, and content fields. Type must be one of: monitoring_data, regulatory_standard, scientific_literature, previous_assessment, modeling_output.

[REGULATORY_JURISDICTION]

The governing regulatory framework for compliance claims

US_NEPA

Required for regulatory_compliance claim_type. Must match known jurisdiction code. Null allowed for non-regulatory claims. Validate against jurisdiction registry before sending.

[UNCERTAINTY_THRESHOLD]

Confidence score below which claims are flagged for human review

0.85

Required. Float between 0.0 and 1.0. Default 0.85. Lower values increase auto-verification rate but risk false positives. Log threshold changes for audit trail.

[OUTPUT_SCHEMA_VERSION]

Schema version for the verification report output format

2.1

Required. Must match supported schema version in your pipeline. Reject if version mismatch detected. Schema version determines field requirements and enum values in output contract.

[MAX_SOURCES_PER_CLAIM]

Limit on evidence sources cited per claim to control output size and review burden

5

Optional. Integer between 1 and 20. Default 5. Higher values increase token usage and reviewer cognitive load. Null allowed to use system default.

[REQUIRE_CITATION_EXCERPTS]

Whether to include verbatim excerpts from evidence sources in output

Required. Boolean. Set true for audit-ready outputs, false for summary-only reports. Affects output size significantly. Must match downstream consumer expectations.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Environmental Impact Statement Fact-Check Prompt into a production verification pipeline with validation, retries, and human review gates.

This prompt is designed to operate as a single step within a larger environmental compliance verification pipeline. It should not be deployed as a standalone, unsupervised fact-checker. The ideal harness wraps the model call in an application layer that manages input assembly, output validation, retry logic, and human review routing. The prompt expects a structured [CLAIMS] input (an array of discrete, atomic assertions extracted from an EIS or related document) and a [SOURCES] input (a pre-retrieved set of monitoring data, regulatory texts, and scientific literature). Do not pass raw, unprocessed documents directly to this prompt; a prior extraction step is required to isolate claims, and a retrieval step is required to gather candidate evidence.

Validation and Retry Logic: The prompt's output is a JSON array of claim verification objects. The application layer must validate this output against a strict schema before accepting it. Required fields include claim_id, verification_status (enum: SUPPORTED, CONTRADICTED, INSUFFICIENT_EVIDENCE, OUT_OF_SCOPE), evidence_summary, source_citations (array of source IDs), and uncertainty_level (enum: LOW, MEDIUM, HIGH). If the model returns malformed JSON, missing required fields, or invalid enum values, the harness should retry the call once with a repair prompt that includes the validation error message. If the second attempt also fails, the claim should be routed to a human review queue with the raw model output attached. Log all validation failures and retries for prompt debugging.

Human Review and Escalation: Any claim with a verification_status of CONTRADICTED or an uncertainty_level of HIGH should be automatically flagged for human review. The harness should package the original claim, the model's verification output, and the full text of the cited sources into a structured review packet. Do not allow the system to auto-publish or finalize these high-risk verdicts. For INSUFFICIENT_EVIDENCE claims, consider triggering an expanded retrieval step before routing to a human, as the initial source set may have been incomplete. The model choice matters: use a model with strong reasoning and structured output capabilities (e.g., GPT-4o, Claude 3.5 Sonnet) and set a low temperature (0.0–0.2) for deterministic verification. Avoid using small or general-purpose chat models for this task, as they are prone to hallucinating citations and misclassifying evidence strength.

IMPLEMENTATION TABLE

Expected Output Contract

Fields, data types, and validation rules for the verification report. Use this contract to parse, validate, and store outputs before surfacing results to users or downstream systems.

Field or ElementType or FormatRequiredValidation Rule

verification_id

string (UUID v4)

Must match regex ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

claim_id

string

Must correspond to an input claim identifier from [CLAIM_LIST]; reject if orphaned

claim_text

string

Must exactly match the original claim text from the input; character-level comparison required

verification_status

enum: verified_true | verified_false | partially_supported | unsupported | disputed

Must be one of the five allowed values; reject any other status string

evidence_summary

string (1-3 sentences)

Length must be between 50 and 500 characters; must not contain unresolved placeholders or model self-reference

evidence_sources

array of objects

Each object must have source_id, excerpt, and relevance fields; array must not be empty for verified_true or verified_false statuses

evidence_sources[].source_id

string

Must match a source identifier from [EVIDENCE_SET]; reject unknown source IDs

evidence_sources[].excerpt

string

Must be a direct quote from the source; max 300 characters; must be verifiable via substring match against source text

evidence_sources[].relevance

enum: directly_supports | directly_contradicts | partially_supports | contextual

Must be one of the four allowed values; must be logically consistent with verification_status

confidence_score

number (0.0 to 1.0)

Must be a float between 0.0 and 1.0 inclusive; two decimal places; scores below 0.6 should trigger human review routing

uncertainty_rationale

string

Required when confidence_score < 0.85; must explain specific sources of uncertainty (data gaps, source conflict, temporal mismatch, methodological limitations)

regulatory_standard_reference

string | null

If provided, must cite a specific regulatory standard (e.g., NEPA, CEQA, EU EIA Directive) with section or requirement identifier; null allowed when no regulatory standard applies

monitoring_data_match

boolean | null

true if claim was checked against monitoring data; false if checked and no match found; null if no monitoring data was available or applicable

scientific_literature_corroboration

enum: corroborated | contradicted | no_relevant_literature_found | null

null allowed when scientific literature check was not performed; otherwise must be one of the three non-null values

temporal_relevance

enum: current | outdated | indeterminate

Must be one of the three allowed values; outdated requires evidence that claim references data or standards superseded by newer information

human_review_required

boolean

Must be true if confidence_score < 0.7, verification_status is disputed, or evidence_sources contain contradictory relevance values; otherwise false

reviewer_notes

string | null

Populated only after human review; must be null in initial automated output; max 1000 characters when present

generated_at

string (ISO 8601 UTC)

Must be a valid ISO 8601 datetime in UTC; must be within 5 minutes of system receipt time or reject as stale

PRACTICAL GUARDRAILS

Common Failure Modes

What breaks first when verifying environmental impact statements in production and how to guard against it.

01

Numerical Threshold Drift

What to watch: The model accepts stated emission levels or concentration values without checking them against the specific regulatory thresholds cited in the document. A claim that 'emissions are below 25 µg/m³' passes verification even though the applicable standard is 10 µg/m³. Guardrail: Always extract the claimed value, the cited standard, and the standard's actual limit as separate fields. Add a validation step that performs a direct numerical comparison before the final verdict.

02

Baseline Comparison Omission

What to watch: The prompt verifies a claim about reduced impact by comparing it to a generic or absent baseline, missing that the EIS uses a manipulated or outdated pre-project baseline. Guardrail: Require the prompt to explicitly identify and state the baseline year, data source, and methodology before evaluating any comparative claim. Flag claims where the baseline is not explicitly defined in the source material.

03

Unit and Normalization Confusion

What to watch: The model fails to detect mismatched units (e.g., tons vs. metric tonnes, ppm vs. mg/m³) or ignores normalization factors (per capita, per kWh, per hectare), leading to a false verification of a quantitatively inaccurate claim. Guardrail: Instruct the model to extract all units and normalization factors as discrete entities. Add a pre-verification step that normalizes all values to a standard unit before comparison and flags any unresolvable unit conflicts.

04

Ignoring Temporal Scope

What to watch: A claim about a permanent reduction in water usage is verified against monitoring data from a single quarter, ignoring that the EIS's own projections show the reduction is temporary. Guardrail: The prompt must extract the stated temporal scope (construction phase, operational phase, decommissioning) and match evidence to the correct phase. Flag any claim where the evidence's temporal scope does not cover the claim's stated duration.

05

False Certainty on Modeled Projections

What to watch: The model treats a modeled prediction (e.g., 'noise levels will not exceed 55 dB') as a verifiable fact, ignoring the inherent uncertainty in the dispersion model. It fails to flag the claim as a projection requiring uncertainty quantification. Guardrail: Classify each claim as a 'measurement,' 'modeled projection,' or 'qualitative assessment.' For projections, require the prompt to check for and report the stated confidence interval or model limitations. If none are provided, flag the claim as having unquantified uncertainty.

06

Source Authority Substitution

What to watch: The prompt treats the EIS itself as the ground-truth source, verifying claims against other sections of the same document without checking the primary monitoring data, peer-reviewed literature, or regulatory database that the EIS cites. Guardrail: Implement a source hierarchy in the prompt: primary monitoring data > regulatory standard > peer-reviewed literature > EIS summary. The prompt must attempt to verify against the highest available source in the hierarchy and explicitly downgrade confidence if only the EIS itself is available.

IMPLEMENTATION TABLE

Evaluation Rubric

How to test output quality before shipping. Run these checks on a golden dataset of claims with known verification outcomes.

CriterionPass StandardFailure SignalTest Method

Claim-Verification Status Accuracy

Verification status matches known outcome for >= 95% of golden claims

Status mismatch rate exceeds 5% on golden dataset

Run prompt against 50+ pre-labeled claims; compute precision/recall per status category

Evidence Citation Completeness

Every 'Verified' or 'Contradicted' claim includes >= 1 source citation with document ID and excerpt

Verified or Contradicted claim returned without any citation object

Parse output JSON; assert citations array is non-empty for all non-Unverifiable claims

Uncertainty Quantification Presence

Confidence score present for every claim and within 0.0-1.0 range

Missing confidence field or value outside 0-1 bounds

Schema validation: assert [CONFIDENCE] field exists, is float, 0 <= value <= 1

Unverifiable Claim Handling

Claims with insufficient evidence are labeled 'Unverifiable', not 'False'

Unverifiable claim incorrectly labeled as 'Contradicted' or 'Verified'

Include 10+ unverifiable claims in golden set; assert label is exactly 'Unverifiable'

Source Grounding Fidelity

Cited excerpt textually matches source document at indicated location

Cited excerpt contains hallucinated content not present in source

Manual spot-check 20 citations; automated substring match against source documents where feasible

Regulatory Standard Reference Accuracy

Regulatory code references match actual standard identifiers and version years

Fabricated or outdated regulatory code cited

Cross-reference [REGULATORY_STANDARDS] output against known standard registry; flag unknown codes

Output Schema Compliance

JSON output validates against [OUTPUT_SCHEMA] with zero structural errors

Schema validation returns errors for required fields, types, or nesting

Automated JSON Schema validation in CI; reject on any validation error

Human-Review Routing Correctness

Claims below [CONFIDENCE_THRESHOLD] are flagged for human review

Low-confidence claim missing review flag or high-confidence claim incorrectly flagged

Set threshold at 0.7; assert review_flag is true for all claims with confidence < 0.7

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Start with the base prompt and a single document. Remove strict schema requirements and use a simpler output format like a markdown table. Focus on claim extraction accuracy before adding evidence matching.

Watch for

  • Claims that are too broad to verify
  • Missing source citations in the output
  • Model treating regulatory limits as suggestions rather than thresholds
Prasad Kumkar

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.