AI Prompt
Baseline Narrative Generator
Generates baseline evaluation narratives with Wikipedia-style citations. Core narrative seen by all users.
Narrative GenerationActive
Prompt content
Promptbaseline.py (inline, lines 324-412)
Generate a baseline narrative for this charity with Wikipedia-style inline citations.
## Charity Information
- Name: {charity_name}
- EIN: {ein}
- Mission: {mission}
- Programs: {programs}
## Financial Data
- Total Revenue: {revenue}
- Program Expense Ratio: {ratio}
- Charity Navigator Score: {cn_score}
- Working Capital: {working_capital}
- Fundraising Efficiency: {fundraising_efficiency}
## MANDATORY VALUES (USE EXACTLY AS PROVIDED - DO NOT CALCULATE OR INVENT)
When mentioning these metrics in the narrative, you MUST use the EXACT values below.
Do NOT round differently, do NOT calculate your own values, do NOT invent numbers.
- Program Expense Ratio: {ratio} (use this exact percentage everywhere)
- Total Revenue: {revenue} (use this exact amount everywhere)
- Working Capital: {working_capital} (use this exact value everywhere)
- Fundraising Efficiency: {fundraising_efficiency} (use this exact value everywhere)
If a value is "N/A", do NOT mention that metric in the narrative at all.
## ZAKAT ELIGIBILITY CONSTRAINT (CRITICAL)
Wallet Tag: {wallet_tag}
{zakat_constraint_text}
## REVENUE GROWTH CONSTRAINT (CRITICAL)
Do NOT mention 3-year revenue CAGR, compound annual growth rate, or multi-year revenue growth percentages.
This data is not provided in the baseline context. Only mention single-year revenue if available.
## Pre-computed Scores (for context only - explain in plain English)
- GMG Score: {amal_score}/100
- Wallet Tag: {wallet_tag}
- Impact: {impact_score}/50 (Directness: {impact_directness}, Cost per beneficiary: {impact_cpb})
- Alignment: {alignment_score}/50 (Donor fit: {alignment_fit}, Cause urgency: {alignment_urgency})
- Data Confidence: {data_confidence} ({data_confidence_badge})
## SCORE/RATIONALE CONSISTENCY (CRITICAL)
Your dimension_explanations MUST be consistent with the scores above:
- If a score is LOW (0-15): Explain what's MISSING or CONCERNING (e.g., "Limited data available", "No third-party verification")
- If a score is MEDIUM (16-33): Balanced explanation of strengths and gaps
- If a score is HIGH (34+): Can highlight strengths
DO NOT invent positive data to justify low scores:
- If Impact is low, do NOT claim the organization "demonstrates effectiveness"
- If Alignment is low, do NOT claim strong Muslim donor fit
- Only mention ratings/scores that are explicitly provided in the source data above
## Available Sources for Citations (EXACTLY {num_sources} sources)
{sources_list}
## Citation Rules (CRITICAL - follow exactly)
1. You have EXACTLY {num_sources} sources available, numbered [1] through [{num_sources}]
2. ONLY use citation numbers that exist in the list above - do NOT use [N] where N > {num_sources}
3. For EVERY [N] citation you use in text, you MUST include a matching entry in all_citations
4. Format: [N] where N is the source number (e.g., [1], [2])
5. Example: "The charity maintains strong financial accountability [1]."
## Output Format
Return ONLY a valid JSON object (no markdown code blocks):
{
"headline": "One compelling sentence about the charity",
"summary": "2-3 sentences with citations like [1] and [2]",
"strengths": ["strength 1", "strength 2"],
"areas_for_improvement": ["area 1"],
"amal_score_rationale": "1-2 sentences explaining the overall score",
"dimension_explanations": {
"impact": "Plain English with citations about program effectiveness, financial health, and evidence quality",
"alignment": "Plain English with citations about donor fit, cause urgency, and track record"
},
"all_citations": [
{
"id": "[1]",
"source_name": "Source name from list above",
"source_url": "URL from source list (or null if not available)",
"claim": "The specific claim this citation supports"
}
]
}
Generate the narrative JSON:Annotations
Lists exact financial values that MUST be used verbatim. Prevents LLM from rounding differently or inventing numbers.