Generated banner for Initiating Coverage
Generated logo for Initiating Coverage

Initiating Coverage

AnthropicOfficialPublished by Anthropic

  • Skill
  • Workflow
  • Business and productivity
  • Apache-2.0
  • Low risk

From the author

Create institutional-quality equity research initiation reports through a 5-task workflow. Tasks must be executed individually with verified prerequisites - (1) company research, (2) financial modeling, (3) valuation analysis, (4) chart generation, (5) final report assembly. Each task produces specific deliverables (markdown docs, Excel models, charts, or DOCX reports). Tasks 3-5 have dependencies on earlier tasks.
— the description by Anthropic

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a systematic, multi-task process for generating equity research initiation reports. It enforces a strict, single-task execution model to ensure each component of the report—company research, financial modeling, valuation analysis, chart generation, and final assembly—is completed with verified inputs before moving to the next stage. The workflow is designed to produce professional-grade documentation, including detailed financial models, valuation analysis, and visual charts, following institutional standards.

What it does

  • Conducts qualitative company research including management bios and competitive analysis.
  • Builds comprehensive Excel financial models with 6 essential tabs.
  • Performs valuation analysis using DCF, comparables, and precedent transactions.
  • Generates 25-35 professional financial charts for visual data representation.
  • Assembles all components into a final, text-dense DOCX research report.

When to use it

  • When you need to produce a comprehensive equity research initiation report.
  • When you require a structured, step-by-step approach to financial analysis.
  • When you need to maintain strict quality control across multiple research tasks.
  • When you are preparing institutional-standard financial documentation.

Advantages

  • Enforces a logical, dependency-aware task order.
  • Ensures data integrity by verifying prerequisites before each task.
  • Produces standardized, professional-grade financial outputs.
  • Provides clear, granular control over the research and assembly process.

Usage examples

“Use initiating-coverage, Task 1 for Tesla”
The agent initiates the company research task for Tesla, producing a detailed research document.
“Do Task 2 of initiating-coverage for Tesla”
The agent begins the financial modeling task, requiring access to financial statements or pre-extracted data.
“Run Task 3 for Tesla using the initiating-coverage skill”
The agent performs valuation analysis, provided that the financial model from Task 2 is already complete.
“I want to complete all 5 tasks for Tesla”
The agent explains the one-task-at-a-time requirement and asks to start with Task 1.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/anthropics/initiating-coverage/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip initiating-coverage.zip -d .agents/skills

Documentation by Anthropic

Initiating Coverage

Create institutional-quality equity research initiation reports through a structured 5-task workflow. Each task must be executed separately with verified inputs.

Overview

This skill produces comprehensive first-time coverage reports following institutional standards (JPMorgan, Goldman Sachs, Morgan Stanley format). Tasks are executed individually, each verifying prerequisites before proceeding.

Default Font: Times New Roman throughout all documents (unless user specifies otherwise).


⚠️ CRITICAL: One Task at a Time

THIS SKILL OPERATES IN SINGLE-TASK MODE ONLY.

If User Requests Full Pipeline

When user requests:

  • "Create a coverage initiation report for [Company]"

  • "Write an initiation report for [Company]"

  • "Do the entire equity research process for [Company]"

  • "Complete all 5 tasks for [Company]"

  • Any request that implies running multiple tasks or the entire workflow

REQUIRED RESPONSE:

  1. Ask which specific task to perform:

    I can help you create an equity research initiation report for [Company].
    This involves 5 separate tasks that need to be completed individually:
    
    1. Company Research - Research business, management, industry
    2. Financial Modeling - Build projection model
    3. Valuation Analysis - DCF and comparable companies
    4. Chart Generation - Create 25-35 charts
    5. Report Assembly - Compile final report
    
    Which task would you like to start with?
  2. When user explicitly requests all tasks together:

    I understand you'd like to complete the entire initiation report pipeline.
    Currently, this skill supports executing one task at a time, which allows
    for better quality control and review at each stage.
    
    We're working on a seamless end-to-end workflow that will make this process
    more automated, but for now, we'll need to complete each task separately.
    
    Would you like to start with Task 1 (Company Research)?
  3. Never automatically assume which task to start - always ask user to confirm.

  4. Never execute multiple tasks in sequence - complete one task, deliver outputs, then wait for next user request.

Task Execution Rules
  • ✅ Execute exactly ONE task per user request

  • ✅ Always verify prerequisites before starting a task

  • ✅ Deliver task outputs and confirm completion

  • ✅ Wait for user to explicitly request the next task

  • ❌ Never chain multiple tasks together automatically

  • ❌ Never assume user wants to proceed to next task

  • ❌ Never execute Tasks 3-5 without verifying required inputs exist

⚠️ Deliverables Policy: NO SHORTCUTS

DELIVER ONLY THE SPECIFIED OUTPUTS. DO NOT CREATE EXTRA DOCUMENTS.

Each task specifies exact deliverables. Do NOT create:

  • ❌ "Completion summaries"

  • ❌ "Executive summaries"

  • ❌ "Quick reference guides"

  • ❌ "Next steps documents"

  • ❌ "Task completion reports"

  • ❌ Any other "helpful" documentation not explicitly specified

Why: These extras waste context and are not part of the professional workflow.

What TO deliver:

  • ✅ Task 1: Research document (.md) — NOTHING ELSE

  • ✅ Task 2: Financial model (.xlsx) — NOTHING ELSE

  • ✅ Task 3: Valuation analysis (.md) + Excel tabs added to Task 2 file — NOTHING ELSE

  • ✅ Task 4: Charts zip file (.zip) — NOTHING ELSE

  • ✅ Task 5: Final report (.docx) — NOTHING ELSE

If a deliverable is not listed above, DO NOT CREATE IT.


Task Selection

Select which task to execute:

TaskNamePrerequisitesOutput
1Company ResearchCompany name/ticker6-8K word document
2Financial Modeling10-K or financials accessExcel model (6 tabs)
3Valuation AnalysisFinancial model (Task 2)Valuation + price target
4Chart GenerationTasks 1, 2, 3 + external data25-35 PNG/JPG charts
5Report AssemblyALL previous tasks (1-4)30-50 page DOCX report

How to Use This Skill

User Request Patterns and Responses

Pattern 1: User specifies a specific task

User: "Use initiating-coverage, Task 1 for Tesla"
Response: ✅ Execute Task 1 immediately

Pattern 2: User asks for "initiation report" or "full pipeline"

User: "Create a coverage initiation report for Tesla"
Response: ❌ DO NOT start any task automatically
         ✅ Ask which task to start with (see template above)

Pattern 3: User wants to do "all tasks" or "entire workflow"

User: "I want to complete all 5 tasks for Tesla"
Response: ❌ DO NOT chain tasks together
         ✅ Explain one-at-a-time limitation (see template above)
         ✅ Ask if they want to start with Task 1
Correct Usage Examples

Executing a single task:

"Use initiating-coverage skill, Task 1 for Tesla"
"Do Task 2 of initiating-coverage for Tesla"
"Run Task 3 for Tesla using the initiating-coverage skill"

Completing full report (requires 5 separate requests):

Request 1: "Do Task 1 for Tesla" → Complete → Deliver outputs
Request 2: "Do Task 2 for Tesla" → Complete → Deliver outputs
Request 3: "Do Task 3 for Tesla" → Complete → Deliver outputs
Request 4: "Do Task 4 for Tesla" → Complete → Deliver outputs
Request 5: "Do Task 5 for Tesla" → Complete → Deliver outputs
Task Execution Order

For a complete initiation report, tasks must be executed in separate user requests following this order:

Request 1: Task 1 - Company Research (independent)
           ↓ [User reviews outputs and requests next task]
Request 2: Task 2 - Financial Modeling (independent)
           ↓ [User reviews outputs and requests next task]
Request 3: Task 3 - Valuation Analysis (requires Task 2 output)
           ↓ [User reviews outputs and requests next task]
Request 4: Task 4 - Chart Generation (requires Tasks 2 & 3 outputs)
           ↓ [User reviews outputs and requests next task]
Request 5: Task 5 - Report Assembly (requires ALL previous task outputs)

Note: Tasks 1 and 2 can be run in any order. Tasks 3-5 have strict dependencies and must verify inputs before proceeding.


Task 1: Company Research

Purpose: Research company's business, management, competitive position, industry, and risks.

Prerequisites: ✅ None (fully independent)

  • Company name or ticker symbol

Process:

  1. Verify company name/ticker provided

  2. Load detailed instructions from references/task1-company-research.md

  3. Execute qualitative research workflow

  4. Deliver research document

Output: Company Research Document (6,000-8,000 words)

  • Company overview & history

  • Management bios (300-400 words × 3-4 execs)

  • Products & services analysis

  • Industry overview

  • Competitive analysis (5-10 competitors)

  • TAM sizing

  • Risk assessment (8-12 risks)

File name: [Company]_Research_Document_[Date].md

⚠️ DELIVER ONLY THIS 1 FILE. NO completion summaries, no extra documents.

⚠️ DO NOT TAKE SHORTCUTS:

  • ✅ Write full 6,000-8,000 words (not summaries)

  • ✅ Complete 300-400 word bios for ALL 3-4 executives

  • ✅ Analyze ALL 5-10 competitors thoroughly

  • ✅ Cover all 8-12 risks across 4 categories

  • ❌ Do not abbreviate sections to save time

  • ❌ Do not skip any required sections

Verification before proceeding: None required for this task.


Task 2: Financial Modeling

Purpose: Extract historical financials and build comprehensive Excel financial model with projections and scenarios.

Prerequisites: ⚠️ Verify before starting

  • Required: Access to company financial data

    • For public companies: Latest 10-K from SEC EDGAR

    • For private companies: Financial statements or available estimates

    • OR: Pre-extracted historical financials provided by user

  • Optional: Company research (Task 1) for business context

Input Verification:

BEFORE STARTING - Select approach:

Option A: Extract financials (most common)
- [ ] Have access to 10-K or financial statements?
- [ ] Ready to extract 3-5 years of data?

Option B: User provided pre-extracted financials
- [ ] Historical financials file received?
- [ ] Contains income statement, cash flow, balance sheet (3-5 years)?

Optional:
- [ ] Company research (Task 1) complete for context?

Process:

  1. Verify access to financial data

  2. Load detailed instructions from references/task2-financial-modeling.md

  3. Step 1: Extract historical financials (if needed)

  4. Step 2+: Build projection model with 6 essential tabs

  5. Deliver Excel model

Output: Excel Financial Model (.xlsx)

  • 6 essential tabs:

    1. Revenue Model - Product breakdown (20-30 rows) + Geography breakdown (15-20 rows)

    2. Income Statement - Full P&L with 40-50 line items, historical (3-5 years) + projected (5 years)

    3. Cash Flow Statement - Operating/Investing/Financing activities, historical + projected

    4. Balance Sheet - Assets/Liabilities/Equity, historical + projected

    5. Scenarios - Bull/Base/Bear comparison table

    6. DCF Inputs - Prepared for Task 3 valuation

File name: [Company]_Financial_Model_[Date].xlsx

⚠️ DELIVER ONLY THIS 1 FILE. NO completion summaries, no extra documents.

⚠️ DO NOT TAKE SHORTCUTS:

  • ✅ If extracting financials: Extract ALL line items from 3 financial statements (3-5 years)

  • ✅ Build ALL 6 projection tabs completely with full detail

  • ✅ Create detailed revenue model with 20-30 product rows AND 15-20 geography rows

  • ✅ Build complete income statement with 40-50 line items (not abbreviated)

  • ✅ Include full cash flow statement and balance sheet with all line items

  • ✅ Complete ALL three scenarios (Bull/Base/Bear) with different parameters

  • ❌ Do not create simplified/abbreviated versions

  • ❌ Do not skip any of the 6 essential tabs

  • ❌ Do not skip historical financials extraction if needed

Verification before proceeding to Task 3:

  • [ ] Historical financials extracted (if needed) or provided

  • [ ] Excel file created and can be opened

  • [ ] Model has all 6 essential tabs (Revenue Model, Income Statement, Cash Flow, Balance Sheet, Scenarios, DCF Inputs)

  • [ ] Historical data (3-5 years) incorporated

  • [ ] Projections complete (5 years forward)

  • [ ] Scenarios complete (Bull/Base/Bear)


Task 3: Valuation Analysis

Purpose: Perform comprehensive valuation using DCF, comparables, and precedent transactions.

Prerequisites: ⚠️ Verify before starting

  • Required: Financial model from Task 2

    • Projected income statements

    • Projected cash flows

    • Revenue and EBITDA forecasts

    • DCF inputs (unlevered FCF)

⚠️ CRITICAL: DO NOT START THIS TASK UNLESS TASK 2 IS COMPLETE

This task requires the financial model from Task 2. Starting without it will result in incomplete work.

IF TASK 2 IS NOT COMPLETE: Stop immediately and inform the user that Task 2 (Financial Modeling) must be completed first. Do not attempt to proceed or create placeholder valuations.

Input Verification:

BEFORE STARTING:
- [ ] Task 2 complete? (Financial model exists)
- [ ] Model file path/location known?
- [ ] Can access projected financials from model?

Required from model:
- [ ] Projected FCF (5 years)
- [ ] Revenue projections
- [ ] EBITDA projections
- [ ] Terminal year metrics

Process:

  1. Verify financial model is accessible

  2. Load detailed instructions from references/task3-valuation.md

  3. Execute valuation workflow

  4. Deliver valuation analysis

Output: Valuation Analysis (4-6 pages + Excel tabs)

  • DCF analysis with sensitivity tables

  • Comparable companies (5-10 peers with statistical summary)

  • Precedent transactions (if applicable)

  • Valuation football field

  • Price target: $XX.XX

  • Recommendation: BUY/HOLD/SELL

  • Upside: XX%

  • Key catalysts (3-5)

Files:

  • [Company]_Valuation_Analysis_[Date].md (written analysis document)

  • Excel tabs added to [Company]_Financial_Model_[Date].xlsx (from Task 2)

    • DCF tab with calculations

    • Sensitivity analysis tab

    • Comparable companies tab

    • Valuation summary tab

⚠️ DELIVER ONLY: 1 markdown file + 4 tabs added to existing Excel. NO completion summaries, no extra documents.

⚠️ DO NOT TAKE SHORTCUTS:

  • ✅ Complete full DCF analysis with sensitivity matrix (not simplified)

  • ✅ Analyze ALL 5-10 comparable companies with full data

  • ✅ Include statistical summary in comps table (max/75th/median/25th/min)

  • ✅ Create complete sensitivity analysis tab with multiple WACC and terminal growth scenarios

  • ✅ Write full 4-6 pages of valuation analysis (not abbreviated)

  • ✅ Research and justify price target with specific methodology

  • ❌ Do not skip comparable company analysis

  • ❌ Do not create simplified DCF without sensitivity

Verification before proceeding to Task 4:

  • [ ] Price target determined

  • [ ] Valuation uses multiple methods (DCF + Comps minimum)

  • [ ] DCF sensitivity table complete

  • [ ] Comparable companies table includes statistical summary


Task 4: Chart Generation

Purpose: Generate 25-35 professional financial charts for the report.

Prerequisites: ⚠️ Verify before starting

  • Required: Company research from Task 1

    • Company history and milestones (for timeline charts)

    • Management team and org structure (for org charts)

    • Product portfolio (for product charts)

    • Customer segmentation (for customer charts)

    • Competitive landscape (for competitive charts)

    • TAM analysis (for market size charts)

  • Required: Financial model from Task 2 (with Task 3 valuation tabs added)

    • Revenue by product/geography data (Task 2 tabs)

    • Margin trends (Task 2 tabs)

    • Scenario comparison data (Task 2 tabs)

    • DCF sensitivity table (Task 3 tab in same Excel file)

    • Comparable companies data (Task 3 tab in same Excel file)

    • Valuation ranges (Task 3 tab in same Excel file)

  • Required: External market data

    • Historical stock price data (Yahoo Finance, Bloomberg, etc.)

    • Historical valuation multiples (for historical trend charts)

⚠️ CRITICAL: DO NOT START THIS TASK UNLESS TASKS 1, 2, AND 3 ARE COMPLETE

This task requires outputs from all three previous tasks. Starting without them will result in incomplete charts.

IF ANY OF TASKS 1, 2, OR 3 ARE NOT COMPLETE: Stop immediately and inform the user which tasks need to be completed first. The specific requirements are:

  • Task 1: Company research document (for 9 charts)

  • Task 2: Financial model with all 6 tabs (for 8 charts)

  • Task 3: Valuation tabs added to the model (for 6 charts)

  • External data access (for 2 charts)

Do not attempt to create placeholder charts or skip charts due to missing data.

Input Verification:

BEFORE STARTING:
- [ ] Task 1 complete? (Company research exists)
- [ ] Task 2 complete? (Financial model exists)
- [ ] Task 3 complete? (Valuation analysis exists)
- [ ] Can access external market data sources?

Required from Task 1:
- [ ] Company history and milestones (for charts 05, 06)
- [ ] Management team structure (for chart 07)
- [ ] Product portfolio details (for chart 08)
- [ ] Customer segmentation data (for chart 09)
- [ ] Competitive landscape analysis (for charts 16, 17, 18)
- [ ] TAM sizing and market data (for chart 15)

Required from Task 2:
- [ ] Revenue by product (historical + projected) - for chart 03 ⭐
- [ ] Revenue by geography (historical + projected) - for chart 04 ⭐
- [ ] Income statement with margins (for charts 02, 10, 11)
- [ ] Cash flow statement (for chart 12)
- [ ] Scenario comparison data (for chart 14)

Required from Task 3:
- [ ] DCF sensitivity matrix - for chart 28 ⭐
- [ ] DCF components (for chart 29)
- [ ] Comparable companies data (for charts 30, 31)
- [ ] Valuation ranges - for chart 32 ⭐

Required from External Sources:
- [ ] Historical stock price data (for chart 01)
- [ ] Historical valuation multiples (for chart 34)

Process:

  1. Verify model and valuation outputs are accessible

  2. Load detailed instructions from references/task4-chart-generation.md

  3. Execute chart generation workflow

  4. Package all charts into a zip file

  5. Deliver zip file

Output: 25-35 Professional Chart Files (PNG/JPG, 300 DPI) packaged in zip

4 MANDATORY Charts (must be present) ⭐:

  • chart_03: Revenue by product (stacked area)

  • chart_04: Revenue by geography (stacked bar)

  • chart_28: DCF sensitivity (2-way heatmap)

  • chart_32: Valuation football field (horizontal bars)

25 REQUIRED Charts (specific list):

  • Investment Summary: chart_01

  • Financial Performance: charts 02, 03⭐, 04⭐, 10, 11, 12, 14

  • Company 101: charts 05, 06, 07, 08, 09, 15, 16

  • Competitive/Market: charts 17, 18

  • Scenario Analysis: chart 13

  • Valuation: charts 28⭐, 29, 30, 31, 32⭐, 33, 34

10 OPTIONAL Charts (for 26-35 range):

  • charts 19-27, 35 (customer acquisition, unit economics, product roadmap, etc.)

IMPORTANT: Task 5 embeds ALL charts created (25-35) for visual density (1 chart per 200-300 words).

File naming: chart_01_description.png, chart_02_description.png, etc.

Deliverable: [Company]_Charts_[Date].zip containing all 25-35 chart files + chart_index.txt

⚠️ DELIVER ONLY THIS 1 ZIP FILE. NO completion summaries, no separate chart lists, no extra documents.

⚠️ DO NOT TAKE SHORTCUTS:

  • ✅ Create ALL 25 required charts minimum (specific list provided in task4-chart-generation.md)

  • ✅ Include ALL 4 mandatory charts:

    • chart_03: Revenue by product (stacked area) ⭐

    • chart_04: Revenue by geography (stacked bar) ⭐

    • chart_28: DCF sensitivity (heatmap) ⭐

    • chart_32: Valuation football field ⭐

  • ✅ Optional: Add 1-10 more charts to reach 26-35 total for greater visual density

  • ✅ Generate professional-quality charts at 300 DPI (not low-res placeholders)

  • ✅ Create unique, well-formatted charts for each visualization

  • ✅ Package all charts in zip file with chart index

  • ❌ Do not create only 10-15 charts (minimum is 25)

  • ❌ Do not skip any of the 4 mandatory charts

  • ❌ Do not use low-quality/placeholder images

Verification before proceeding to Task 5:

  • [ ] Minimum 25 chart files created (required)

  • [ ] All 4 mandatory charts present:

    • [ ] chart_03: Revenue by product ⭐

    • [ ] chart_04: Revenue by geography ⭐

    • [ ] chart_28: DCF sensitivity ⭐

    • [ ] chart_32: Valuation football field ⭐

  • [ ] All charts open and display correctly

  • [ ] Charts saved at 300 DPI (print quality)

  • [ ] Chart index created listing all files with categories

  • [ ] All charts packaged in zip file

  • [ ] File naming follows convention: chart_##_description.png


Task 5: Report Assembly

Purpose: Write and assemble the comprehensive final DOCX report.

Prerequisites: ⚠️ Verify before starting

  • Required: Company research from Task 1

    • All 6-8K words of content

    • Management bios

    • Competitive analysis

    • Risk assessment

  • Required: Financial model from Task 2

    • Excel workbook

    • All projections and scenarios

  • Required: Valuation analysis from Task 3

    • Price target and recommendation

    • DCF, comps, precedent transactions

    • All valuation data

  • Required: Chart files from Task 4

    • Zip file containing all 25-35 PNG/JPG files

    • Chart index included in zip

⚠️ CRITICAL: DO NOT START THIS TASK UNLESS ALL TASKS 1-4 ARE COMPLETE

This is the final assembly task. It cannot be completed without all previous work products.

IF ANY OF TASKS 1, 2, 3, OR 4 ARE NOT COMPLETE: Stop immediately and inform the user which tasks need to be completed first. The specific requirements are:

  • Task 1: Company research document (6-8K words)

  • Task 2: Financial model with all 6 tabs

  • Task 3: Valuation analysis with price target and recommendation

  • Task 4: Charts zip file with 25-35 charts

Do not attempt to create placeholder content, substitute missing sections, or assemble an incomplete report. The report requires ALL inputs to be publication-ready.

Input Verification:

BEFORE STARTING - ALL TASKS MUST BE COMPLETE:

Task 1 Verification:
- [ ] Company research document exists? (6-8K words)
- [ ] Management bios complete? (300-400 words × 3-4 execs)
- [ ] Competitive analysis complete? (5-10 competitors)
- [ ] Risk assessment complete? (8-12 risks)

Task 2 Verification:
- [ ] Financial model exists and can be opened?
- [ ] Model has projections (5 years)?
- [ ] Scenarios exist (Bull/Base/Bear)?

Task 3 Verification:
- [ ] Valuation analysis complete?
- [ ] Price target determined?
- [ ] Recommendation set? (BUY/HOLD/SELL)
- [ ] DCF and comps complete?

Task 4 Verification:
- [ ] Chart zip file exists?
- [ ] Can extract/access all 25-35 chart files from zip?
- [ ] All 4 mandatory charts present?
  - [ ] Revenue by product (stacked area)
  - [ ] Revenue by geography (stacked bar)
  - [ ] DCF sensitivity (heatmap)
  - [ ] Valuation football field
- [ ] Chart files accessible and can be opened?

IF ANY VERIFICATION FAILS: Stop and complete missing task first.

Process:

  1. CRITICAL: Verify ALL prerequisites before starting

  2. Load detailed instructions from references/task5-report-assembly.md

  3. Execute report assembly workflow using Claude's built-in skills:

    • Use DOCX skill to create and manipulate the Word document

    • Use XLSX skill to read Excel data from Task 2/3

    • Use Read tool to read Task 1 and Task 3 markdown files

    • Read Task 1 .md file → Convert to Word formatting → Insert charts inline

    • Read Task 2 .xlsx file → Extract tables → Write quantitative analysis

    • Read Task 3 .md file + Excel tabs → Copy/adapt valuation analysis

    • Insert Task 4 .png chart files throughout using DOCX skill

    • Create text-dense report with charts interspersed every 200-300 words

  4. Save and deliver final DOCX report

Key Principles:

  • Use Claude's DOCX and XLSX skills (NOT Python libraries)

  • Use actual file operations (read .md/.xlsx/.png files, write .docx file)

  • Good equity research reports are text-dense with lots of illustrating images (60-80% page coverage, 1+ chart per page)

🔥 CRITICAL: GO ALL OUT ON THIS TASK

THIS IS THE FINAL DELIVERABLE. DO NOT TAKE SHORTCUTS.

  • ✅ Use full token budget - This is the culmination of all previous work

  • ✅ Write every section completely - Do not summarize or abbreviate

  • ✅ Hit ALL minimum requirements - 30+ pages, 10,000+ words, 25+ charts, 12+ tables

  • ✅ Be thorough on projection assumptions - 2,000-3,000 words with product-by-product detail

  • ✅ Be comprehensive on scenarios - 1,500-2,000 words with specific Bull/Base/Bear parameters

  • ✅ Insert ALL charts from Task 4 - Not just a few, ALL 25-35 charts throughout

  • ✅ Create ALL tables from Task 2/3 - Extract every financial table, don't skip any

  • ✅ Use Task 1 content verbatim - Copy/paste full Company 101 sections (6-8K words)

  • ✅ Professional quality only - This must be indistinguishable from JPMorgan/Goldman Sachs research

NEVER:

  • ❌ "This section would include..." - WRITE THE ACTUAL SECTION

  • ❌ "Charts would be inserted here..." - INSERT THE ACTUAL CHARTS

  • ❌ "See financial model for details..." - EXTRACT AND INCLUDE THE DETAILS

  • ❌ Skip sections due to length - Every section MUST be complete

  • ❌ Abbreviate for token conservation - Use whatever tokens are needed

This is publication-ready institutional research. Spare no effort, tokens, or detail.

Output: Comprehensive Equity Research Report (.docx)

Specifications:

  • Length: 30-50 pages (MINIMUM 30)

  • Word count: 10,000-15,000 words (MINIMUM 10,000)

  • Charts: 25-35 embedded images

  • Tables: 12-20 comprehensive tables

  • Format: Professional DOCX with clickable hyperlinks

Structure:

  • Page 1: Investment Summary (INITIATING COVERAGE format)

  • Pages 2-5: Investment thesis & risks

  • Pages 6-17: Company 101

  • Pages 18-30: Financial analysis & projections

  • Pages 31-40: Valuation analysis

  • Pages 41-50: Appendices

File name: [Company]_Initiation_Report_[Date].docx

⚠️ DELIVER ONLY THIS 1 DOCX FILE. NO executive summaries, no "highlights" documents, no extra files.

Final Verification:

  • [ ] Report is 30-50 pages

  • [ ] Word count is 10,000-15,000

  • [ ] 25-35 charts embedded

  • [ ] 12-20 tables included

  • [ ] All citations are clickable hyperlinks

  • [ ] Numbers match financial model exactly


Input Verification Protocol

Why Input Verification Matters

Each task has strict prerequisites. Running a task without required inputs will:

  • Waste time with incomplete work

  • Produce low-quality outputs

  • Require rework

Always verify inputs before starting a task.

Verification Checklist by Task

Task 1: ✅ No verification needed (independent)

Task 2: Check historical financials available

Task 3: Check financial model exists and is accessible

Task 4: Check both model (Task 2) AND valuation (Task 3) exist

Task 5: Check ALL previous tasks complete (1, 2, 3, 4)

What to Do if Verification Fails
IF prerequisites are missing:
1. Stop the current task
2. Identify which prerequisite task(s) need to be completed
3. Execute the missing task(s) first
4. Return to current task once prerequisites are met
Example Verification Dialogue
User: "Use initiating-coverage, Task 5 for Tesla"

Claude: "Starting Task 5: Report Assembly for Tesla

VERIFICATION - Checking prerequisites:
- Task 1 (Company research)... ❌ NOT FOUND
- Task 2 (Financial model)... ❌ NOT FOUND
- Task 3 (Valuation)... ❌ NOT FOUND
- Task 4 (Charts)... ❌ NOT FOUND

⚠️ VERIFICATION FAILED

Task 5 requires ALL previous tasks to be complete.

To proceed:
1. Complete Task 1: Company Research
2. Complete Task 2: Financial Modeling
3. Complete Task 3: Valuation Analysis
4. Complete Task 4: Chart Generation
5. Then return to Task 5

Would you like to start with Task 1 first?"

Task Reference Files

Detailed instructions for each task are in separate reference files to keep this skill lean:

  • references/task1-company-research.md - Company research workflow

  • references/task2-financial-modeling.md - Financial modeling workflow

  • references/task3-valuation.md - Valuation methodology

    • Also see: references/valuation-methodologies.md for DCF/comps deep dive

  • references/task4-chart-generation.md - Chart generation workflow

  • references/task5-report-assembly.md - Report writing workflow

    • Also see: assets/report-template.md for report structure

    • Also see: assets/quality-checklist.md for quality checks

When to load reference files: Load ONLY the reference file associated with the specific task being performed. These files are very large - do not load multiple reference files at once. Read the appropriate task reference file at the start of the task for detailed step-by-step instructions.


Quality Standards

All outputs meet institutional standards from leading investment banks (JPMorgan, Goldman Sachs, Morgan Stanley):

  • Comprehensive: Meet all minimum requirements

  • Detailed: Specific data and examples, not generic statements

  • Quantified: Lead with numbers and metrics

  • Cited: Proper sources with clickable hyperlinks

  • Professional: Institutional-quality formatting

  • Accurate: All numbers verified and cross-checked


Important Notes

Task Independence
  • Task 1 can run anytime (no dependencies)

  • Task 2 can run anytime (just needs historical data)

  • Tasks 1 & 2 can run in parallel

  • Task 3 requires Task 2

  • Task 4 requires Tasks 2 & 3

  • Task 5 requires Tasks 1, 2, 3, & 4

Session Management

Same session: Outputs automatically available to subsequent tasks

Different sessions: Reference previous task outputs explicitly

"Use Task 3 with the model from yesterday at [path]"
"Use Task 5 with the research document at [path]"
File Organization

Recommended structure during workflow:

ProjectFolder/
├── Task1_Research/
│   └── [Company]_Research_Document.md
├── Task2_Model/
│   └── [Company]_Financial_Model.xlsx
├── Task3_Valuation/
│   └── [Company]_Valuation_Analysis.pdf
├── Task4_Charts/
│   ├── chart_01.png
│   └── ... (25-35 files)
└── Task5_Report/
    └── [Company]_Initiation_Report.docx
No End-to-End Execution

This skill does NOT support running all tasks automatically in sequence. Each task must be explicitly requested and verified.

Why: This ensures:

  • Quality control at each stage

  • Ability to review outputs before proceeding

  • Flexibility to pause/resume workflow

  • Clear verification of prerequisites


Success Criteria

A successful initiation report workflow should:

  1. Complete all 5 tasks in order

  2. Pass all input verifications

  3. Meet all quality standards

  4. Produce all required deliverables

  5. Numbers cross-check between outputs

  6. Final report is publication-ready

Output quality: Institutional (JPMorgan/Goldman/Morgan Stanley level) Use case: First-time comprehensive coverage of a company

Files

references/task4-chart-generation.md

Task 4: Chart Generation - Detailed Workflow

This document provides step-by-step instructions for executing Task 4 (Chart Generation) of the initiating-coverage skill.

Task Overview

Purpose: Generate 25-35 professional financial charts for the report.

Prerequisites: ⚠️ Verify before starting

  • Required: Company research from Task 1

    • Company history, milestones (for timeline charts)

    • Management team, org structure (for org charts)

    • Product portfolio (for product charts)

    • Customer segmentation (for customer charts)

    • Competitive landscape (for competitive positioning charts)

    • TAM analysis (for market size charts)

  • Required: Financial model from Task 2

    • Revenue by product/geography data

    • Margin trends

    • Scenario comparison data

  • Required: Valuation analysis from Task 3

    • DCF sensitivity table

    • Comparable companies data

    • Valuation ranges

  • Required: External market data

    • Historical stock price data (Yahoo Finance, Bloomberg)

    • Historical valuation multiples (optional for chart 34)

⚠️ CRITICAL: DO NOT START THIS TASK UNLESS TASKS 1, 2, AND 3 ARE COMPLETE

This task requires outputs from all three previous tasks. Starting without them will result in incomplete charts.

IF ANY OF TASKS 1, 2, OR 3 ARE NOT COMPLETE: Stop immediately and inform the user which tasks need to be completed first. The specific requirements are:

  • Task 1: Company research document (for 9 charts)

  • Task 2: Financial model with all 6 tabs (for 8 charts)

  • Task 3: Valuation tabs added to the model (for 6 charts)

  • External data access (for 2 charts)

Do not attempt to create placeholder charts or skip charts due to missing data.

Output: 25-35 Professional Chart Files (PNG/JPG, 300 DPI)


Input Verification

BEFORE STARTING - CHECK ALL PREREQUISITES:

Task 1 Verification (Company Research)
  • [ ] Task 1 complete? (Company research document exists)

  • [ ] Company history and milestones documented? (for charts 05, 06)

  • [ ] Management team and org structure described? (for chart 07)

  • [ ] Product portfolio detailed? (for chart 08)

  • [ ] Customer segmentation analyzed? (for chart 09)

  • [ ] Competitive landscape mapped? (for charts 16, 17, 18)

  • [ ] TAM sizing completed? (for chart 15)

Task 2 Verification (Financial Model)
  • [ ] Task 2 complete? (Financial model Excel file exists)

  • [ ] Revenue by product breakdown available? (for chart 03 ⭐)

  • [ ] Revenue by geography breakdown available? (for chart 04 ⭐)

  • [ ] Historical + projected financials complete? (for charts 02, 10, 11, 12)

  • [ ] Scenario analysis (Bull/Base/Bear) complete? (for chart 14)

  • [ ] Operating metrics available? (for chart 13)

Task 3 Verification (Valuation)
  • [ ] Task 3 complete? (Valuation tabs added to model)

  • [ ] DCF sensitivity matrix exists? (for chart 28 ⭐)

  • [ ] DCF calculation details available? (for chart 29)

  • [ ] Comparable companies data collected? (for charts 30, 31)

  • [ ] Valuation ranges calculated? (for chart 32 ⭐)

External Data Verification
  • [ ] Can access historical stock price data? (Yahoo Finance, Bloomberg for chart 01)

  • [ ] Can access historical valuation data? (Optional, for chart 34)

IF ANY VERIFICATION FAILS:

  • Missing Task 1? → Complete Task 1 (Company Research) first

  • Missing Task 2? → Complete Task 2 (Financial Modeling) first

  • Missing Task 3? → Complete Task 3 (Valuation Analysis) first

  • Missing external data? → Gather from Yahoo Finance, Bloomberg, or similar sources


Chart Requirements: 25 Required + 10 Optional

IMPORTANT: Task 5 (Report Assembly) will embed ALL charts created throughout the report. The report requires dense visual content (1 chart every 200-300 words), so create comprehensive chart coverage.

4 MANDATORY Charts (Non-Negotiable) ⭐

These 4 charts are critical visualizations that MUST be present:

  1. chart_03: Revenue by Product/Segment - Stacked Area Chart ⭐

  2. chart_04: Revenue by Geography - Stacked Bar Chart ⭐

  3. chart_28: DCF Sensitivity Analysis - 2-Way Heatmap ⭐

  4. chart_32: Valuation Football Field - Horizontal Bar Chart ⭐

25 REQUIRED Charts (Complete Set)

Create all 25 of these charts. Each has a specific purpose in Task 5:

Investment Summary Section (1 chart):

  • chart_01: Stock Price Performance (12-24 months)

Financial Performance Section (6 charts):

  • chart_02: Revenue Growth Trajectory

  • chart_03: Revenue by Product - Stacked Area ⭐ MANDATORY

  • chart_04: Revenue by Geography - Stacked Bar ⭐ MANDATORY

  • chart_10: Gross Margin Evolution

  • chart_11: EBITDA Margin Progression

  • chart_12: Free Cash Flow Trend

Company 101 Section (7 charts):

  • chart_05: Company Overview/Timeline

  • chart_06: Key Milestones Timeline

  • chart_07: Organizational Structure

  • chart_08: Product Portfolio Overview

  • chart_09: Customer Segmentation

  • chart_15: Market Size Evolution (TAM)

  • chart_16: Competitive Positioning Matrix

Competitive & Market Section (2 charts):

  • chart_17: Market Share Breakdown

  • chart_18: Competitive Benchmarking

Scenario Analysis Section (2 charts):

  • chart_13: Operating Metrics Dashboard

  • chart_14: Scenario Comparison (Bull/Base/Bear)

Valuation Section (7 charts):

  • chart_28: DCF Sensitivity Heatmap ⭐ MANDATORY

  • chart_29: DCF Valuation Waterfall

  • chart_30: Trading Comps Scatter Plot

  • chart_31: Peer Multiples Comparison

  • chart_32: Valuation Football Field ⭐ MANDATORY

  • chart_33: Price Target Scenarios

  • chart_34: Historical Valuation Multiples

Total: 25 Required Charts

10 OPTIONAL Charts (For 30-35 Range)

Add these for greater visual density and storytelling (reach 26-35 total):

  • chart_19: Customer Acquisition Trends

  • chart_20: Unit Economics Evolution

  • chart_21: Product Roadmap Timeline

  • chart_22: Geographic Expansion Map

  • chart_23: R&D Investment Trends

  • chart_24: Sales & Marketing Efficiency

  • chart_25: Working Capital Trends

  • chart_26: Debt Maturity Schedule

  • chart_27: Ownership Structure

  • chart_35: Analyst Price Target Distribution

Total Range: 25-35 Charts (25 required + 0-10 optional)


Data Source Mapping for Required Charts

Understanding where each chart's data comes from:

From Task 1 (Company Research) - 9 charts
  • chart_05: Company Overview → Task 1: Company Overview section

  • chart_06: Key Milestones → Task 1: Company History section

  • chart_07: Org Structure → Task 1: Management Team section

  • chart_08: Product Portfolio → Task 1: Products & Services section

  • chart_09: Customer Segmentation → Task 1: Customers & Go-to-Market section

  • chart_15: Market Size Evolution → Task 1: Market Opportunity (TAM) section

  • chart_16: Competitive Positioning → Task 1: Competitive Landscape section

  • chart_17: Market Share → Task 1: Competitive Landscape section

  • chart_18: Competitive Benchmarking → Task 1: Competitive Landscape section

From Task 2 (Financial Model) - 8 charts
  • chart_02: Revenue Growth → Income Statement tab (Revenue row)

  • chart_03: Revenue by Product ⭐ → Revenue Model tab (Product breakdown)

  • chart_04: Revenue by Geography ⭐ → Revenue Model tab (Geography breakdown)

  • chart_10: Gross Margin → Income Statement tab (Gross Profit / Revenue)

  • chart_11: EBITDA Margin → Income Statement tab (EBITDA / Revenue)

  • chart_12: Free Cash Flow → Cash Flow Statement tab (CFO - CapEx)

  • chart_13: Operating Metrics → Multiple tabs (Income Statement, Cash Flow)

  • chart_14: Scenario Comparison → Scenarios tab (Bull/Base/Bear)

From Task 3 (Valuation) - 6 charts
  • chart_28: DCF Sensitivity ⭐ → Sensitivity Analysis tab

  • chart_29: DCF Waterfall → DCF tab (Enterprise Value components)

  • chart_30: Trading Comps Scatter → Comparable Companies tab

  • chart_31: Peer Multiples → Comparable Companies tab

  • chart_32: Valuation Football Field ⭐ → Valuation Summary tab

  • chart_33: Price Target Scenarios → Valuation Summary tab (or calculate from scenarios)

From External Sources - 2 charts
  • chart_01: Stock Price Performance → Yahoo Finance, Bloomberg, Alpha Vantage

  • chart_34: Historical Valuation Multiples → Yahoo Finance, Bloomberg (historical P/E, EV/EBITDA)

IMPORTANT: Require ALL three tasks (1, 2, 3) complete PLUS external data access to create all 25 required charts.


Step-by-Step Chart Generation Workflow

Step 1: Set Up Environment

Install required libraries:

pip install matplotlib seaborn pandas numpy plotly

Create Python script header:

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
from matplotlib.patches import Rectangle
import warnings
warnings.filterwarnings('ignore')

# Set global style
plt.style.use('seaborn-v0_8-darkgrid')
sns.set_palette("husl")

# Global settings
DPI = 300
FIGURE_WIDTH = 10
FIGURE_HEIGHT = 6
TITLE_FONT_SIZE = 14
AXIS_FONT_SIZE = 12
LABEL_FONT_SIZE = 10
Step 2: Extract Data from Model and Valuation
A. Extract Revenue Data
# Revenue by Product (from Task 2 model)
years = [2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029]

# Extract from Excel or define manually from model
product_a = [100, 120, 145, 175, 210, 252, 302, 363, 435, 522]
product_b = [80, 95, 115, 138, 165, 198, 238, 285, 342, 411]
product_c = [50, 62, 78, 98, 122, 153, 191, 239, 299, 374]
product_d = [30, 38, 48, 61, 77, 97, 122, 153, 191, 239]

# Revenue by Geography
north_america = [150, 180, 220, 265, 320, 384, 461, 553, 664, 797]
europe = [80, 95, 115, 140, 170, 204, 245, 294, 353, 423]
asia_pacific = [40, 50, 63, 80, 101, 127, 159, 199, 249, 311]
rest_of_world = [20, 25, 32, 40, 51, 64, 80, 100, 125, 156]
B. Extract Margin Data
# Margin evolution
gross_margin = [58.0, 59.2, 60.5, 61.8, 63.0, 64.5, 66.0, 67.0, 67.5, 68.0]
ebitda_margin = [12.0, 15.5, 18.8, 22.0, 25.0, 28.0, 30.5, 32.0, 33.0, 34.0]
fcf_margin = [8.0, 11.0, 14.5, 18.0, 21.0, 24.0, 26.5, 28.0, 29.0, 30.0]
C. Extract DCF Sensitivity Data
# DCF Sensitivity (from Task 3 valuation)
wacc_values = [7.0, 8.0, 9.0, 10.0, 11.0, 12.0]
terminal_growth = [1.5, 2.0, 2.5, 3.0, 3.5]

# Price per share matrix (rows = WACC, columns = terminal growth)
dcf_sensitivity = np.array([
    [66, 71, 76, 82, 89],
    [58, 62, 67, 72, 78],
    [52, 55, 59, 63, 68],
    [47, 50, 53, 56, 60],
    [42, 45, 48, 51, 54],
    [39, 41, 44, 46, 49]
])
D. Extract Valuation Ranges
# Valuation Football Field (from Task 3)
valuation_methods = ['DCF Analysis', 'Trading Comps\n(NTM)', 'Precedent\nTransactions']
valuation_low = [48, 45, 52]
valuation_high = [62, 57, 66]
current_price = 50
target_price = 55
Step 3: Create Mandatory Charts
Chart 1: Revenue by Product - Stacked Area ⭐ MANDATORY
def create_revenue_by_product_chart():
    """Create revenue by product stacked area chart"""

    fig, ax = plt.subplots(figsize=(10, 6))

    # Create stacked area chart
    ax.stackplot(years, product_a, product_b, product_c, product_d,
                 labels=['Product A', 'Product B', 'Product C', 'Product D'],
                 colors=['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728'],
                 alpha=0.8)

    # Formatting
    ax.set_xlabel('Year', fontsize=12, fontweight='bold')
    ax.set_ylabel('Revenue ($M)', fontsize=12, fontweight='bold')
    ax.set_title('Figure 3 - Revenue by Product/Segment (2020-2029E)',
                 fontsize=14, fontweight='bold', pad=20)

    # Legend
    ax.legend(loc='upper left', frameon=False, fontsize=10)

    # Grid
    ax.grid(axis='y', alpha=0.3, linestyle='--')
    ax.set_axisbelow(True)

    # Remove top and right spines
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)

    # Add vertical line to separate historical from projected
    ax.axvline(x=2024, color='gray', linestyle='--', linewidth=1, alpha=0.5)
    ax.text(2024.2, ax.get_ylim()[1]*0.95, 'Projected →',
            fontsize=9, color='gray', ha='left')

    # Source line
    fig.text(0.12, 0.02, 'Source: Company data, [Firm] estimates',
             fontsize=9, style='italic', color='gray')

    # Save
    plt.tight_layout()
    plt.savefig('chart_03_revenue_by_product_stacked_area.png',
                dpi=300, bbox_inches='tight', facecolor='white')
    plt.close()
    print("✓ Created: chart_03_revenue_by_product_stacked_area.png")

create_revenue_by_product_chart()
Chart 2: Revenue by Geography - Stacked Bar ⭐ MANDATORY
def create_revenue_by_geography_chart():
    """Create revenue by geography stacked bar chart"""

    years_labels = ['2020', '2021', '2022', '2023', '2024',
                    '2025E', '2026E', '2027E', '2028E', '2029E']

    fig, ax = plt.subplots(figsize=(10, 6))

    # Create stacked bar chart
    width = 0.6
    x = np.arange(len(years_labels))

    p1 = ax.bar(x, north_america, width, label='North America', color='#1f77b4')
    p2 = ax.bar(x, europe, width, bottom=north_america,
                label='Europe', color='#ff7f0e')
    p3 = ax.bar(x, asia_pacific, width,
                bottom=np.array(north_america) + np.array(europe),
                label='Asia-Pacific', color='#2ca02c')
    p4 = ax.bar(x, rest_of_world, width,
                bottom=np.array(north_america) + np.array(europe) + np.array(asia_pacific),
                label='Rest of World', color='#d62728')

    # Formatting
    ax.set_xlabel('Year', fontsize=12, fontweight='bold')
    ax.set_ylabel('Revenue ($M)', fontsize=12, fontweight='bold')
    ax.set_title('Figure 4 - Revenue by Geography (2020-2029E)',
                 fontsize=14, fontweight='bold', pad=20)
    ax.set_xticks(x)
    ax.set_xticklabels(years_labels, rotation=45, ha='right')

    # Legend
    ax.legend(loc='upper left', frameon=False, fontsize=10)

    # Grid
    ax.grid(axis='y', alpha=0.3, linestyle='--')
    ax.set_axisbelow(True)

    # Remove top and right spines
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)

    # Source line
    fig.text(0.12, 0.02, 'Source: Company data, [Firm] estimates',
             fontsize=9, style='italic', color='gray')

    # Save
    plt.tight_layout()
    plt.savefig('chart_04_revenue_by_geography_stacked_bar.png',
                dpi=300, bbox_inches='tight', facecolor='white')
    plt.close()
    print("✓ Created: chart_04_revenue_by_geography_stacked_bar.png")

create_revenue_by_geography_chart()
Chart 3: DCF Sensitivity - Heatmap ⭐ MANDATORY
def create_dcf_sensitivity_heatmap():
    """Create DCF sensitivity analysis heatmap"""

    # Create DataFrame
    df = pd.DataFrame(dcf_sensitivity,
                      index=[f'{w}%' for w in wacc_values],
                      columns=[f'{g}%' for g in terminal_growth])

    fig, ax = plt.subplots(figsize=(8, 6))

    # Create heatmap
    sns.heatmap(df, annot=True, fmt='d', cmap='RdYlGn',
                cbar_kws={'label': 'Price per Share ($)'},
                linewidths=0.5, linecolor='white',
                ax=ax, vmin=35, vmax=95)

    # Formatting
    ax.set_xlabel('Terminal Growth Rate', fontsize=12, fontweight='bold')
    ax.set_ylabel('WACC', fontsize=12, fontweight='bold')
    ax.set_title('Figure 28 - DCF Sensitivity Analysis ($/share)',
                 fontsize=14, fontweight='bold', pad=20)

    # Rotate y-axis labels
    plt.yticks(rotation=0)

    # Source line
    fig.text(0.12, 0.02, 'Source: [Firm] estimates',
             fontsize=9, style='italic', color='gray')

    # Save
    plt.tight_layout()
    plt.savefig('chart_28_dcf_sensitivity_heatmap.png',
                dpi=300, bbox_inches='tight', facecolor='white')
    plt.close()
    print("✓ Created: chart_28_dcf_sensitivity_heatmap.png")

create_dcf_sensitivity_heatmap()
Chart 4: Valuation Football Field ⭐ MANDATORY
def create_valuation_football_field():
    """Create valuation football field chart"""

    fig, ax = plt.subplots(figsize=(10, 5))

    # Create horizontal bars
    y_positions = np.arange(len(valuation_methods))
    colors = ['#1f77b4', '#ff7f0e', '#2ca02c']

    for i, (method, low, high, color) in enumerate(
            zip(valuation_methods, valuation_low, valuation_high, colors)):
        ax.barh(i, high - low, left=low, height=0.6,
                color=color, alpha=0.7, label=method)

        # Add value labels at ends
        ax.text(low - 1, i, f'${low}', va='center', ha='right', fontsize=10)
        ax.text(high + 1, i, f'${high}', va='center', ha='left', fontsize=10)

    # Add current price line
    ax.axvline(x=current_price, color='red', linestyle='--', linewidth=2,
               label=f'Current: ${current_price}', alpha=0.7)

    # Add target price line
    ax.axvline(x=target_price, color='black', linestyle='-', linewidth=2,
               label=f'Target: ${target_price}')

    # Formatting
    ax.set_yticks(y_positions)
    ax.set_yticklabels(valuation_methods, fontsize=11)
    ax.set_xlabel('Price Per Share ($)', fontsize=12, fontweight='bold')
    ax.set_title('Figure 32 - Valuation Football Field',
                 fontsize=14, fontweight='bold', pad=20)

    # Set x-axis limits
    ax.set_xlim(40, 70)

    # Remove spines
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)
    ax.spines['left'].set_visible(False)

    # Grid
    ax.grid(axis='x', alpha=0.3, linestyle='--')
    ax.set_axisbelow(True)

    # Legend
    ax.legend(loc='upper right', frameon=False, fontsize=9)

    # Source line
    fig.text(0.12, 0.02, 'Source: [Firm] estimates',
             fontsize=9, style='italic', color='gray')

    # Save
    plt.tight_layout()
    plt.savefig('chart_32_valuation_football_field.png',
                dpi=300, bbox_inches='tight', facecolor='white')
    plt.close()
    print("✓ Created: chart_32_valuation_football_field.png")

create_valuation_football_field()
Step 4: Create Remaining Required Charts (Charts 1-34)

Complete the 25 REQUIRED charts by creating all remaining charts from the required list. Each chart has a specific purpose in Task 5.

Investment Summary (1 chart)
# chart_01: Stock Price Performance (12-24 months)
# - Line chart showing stock price over time vs. market index
# - Used on Page 1 of final report
Financial Performance (5 additional charts beyond chart_03 and chart_04)
# chart_02: Revenue Growth Trajectory
# chart_10: Gross Margin Evolution
# chart_11: EBITDA Margin Progression
# chart_12: Free Cash Flow Trend
# chart_14: Scenario Comparison (Bull/Base/Bear)
Company 101 Section (7 charts)
# chart_05: Company Overview/Timeline
# chart_06: Key Milestones Timeline
# chart_07: Organizational Structure
# chart_08: Product Portfolio Overview
# chart_09: Customer Segmentation
# chart_15: Market Size Evolution (TAM)
# chart_16: Competitive Positioning Matrix
Competitive & Market (2 charts)
# chart_17: Market Share Breakdown
# chart_18: Competitive Benchmarking
Scenario Analysis (1 chart)
# chart_13: Operating Metrics Dashboard
Valuation Section (6 additional charts beyond chart_28 and chart_32)
# chart_29: DCF Valuation Waterfall
# chart_30: Trading Comps Scatter Plot
# chart_31: Peer Multiples Comparison
# chart_33: Price Target Scenarios
# chart_34: Historical Valuation Multiples

Use consistent formatting across all charts:

  • 300 DPI resolution

  • Professional color scheme

  • Clear labels, legends, and titles

  • Figure numbers (e.g., "Figure 5 - Company Timeline")

  • Source citations at bottom

Step 4B: Create Optional Charts (For 26-35 Total)

Optional: Add 1-10 additional charts from this list for greater visual density:

# chart_19: Customer Acquisition Trends
# chart_20: Unit Economics Evolution
# chart_21: Product Roadmap Timeline
# chart_22: Geographic Expansion Map
# chart_23: R&D Investment Trends
# chart_24: Sales & Marketing Efficiency
# chart_25: Working Capital Trends
# chart_26: Debt Maturity Schedule
# chart_27: Ownership Structure
# chart_35: Analyst Price Target Distribution

These optional charts provide additional visual storytelling and help achieve the "1 chart per 200-300 words" density target in Task 5.

Step 5: Create Chart Index

Create a text file documenting all charts:

def create_chart_index():
    """Create index of all charts"""

    # 25 REQUIRED CHARTS
    required_charts = [
        "chart_01_stock_price_performance.png - Stock Price Performance (12-24M)",
        "chart_02_revenue_growth_trajectory.png - Revenue Growth Trajectory",
        "chart_03_revenue_by_product_stacked_area.png - Revenue by Product [MANDATORY]",
        "chart_04_revenue_by_geography_stacked_bar.png - Revenue by Geography [MANDATORY]",
        "chart_05_company_overview.png - Company Overview/Timeline",
        "chart_06_key_milestones_timeline.png - Key Milestones Timeline",
        "chart_07_organizational_structure.png - Organizational Structure",
        "chart_08_product_portfolio.png - Product Portfolio Overview",
        "chart_09_customer_segmentation.png - Customer Segmentation",
        "chart_10_gross_margin_evolution.png - Gross Margin Evolution",
        "chart_11_ebitda_margin_progression.png - EBITDA Margin Progression",
        "chart_12_free_cash_flow_trend.png - Free Cash Flow Trend",
        "chart_13_operating_metrics_dashboard.png - Operating Metrics Dashboard",
        "chart_14_scenario_comparison.png - Scenario Comparison (Bull/Base/Bear)",
        "chart_15_market_size_evolution.png - Market Size Evolution (TAM)",
        "chart_16_competitive_positioning.png - Competitive Positioning Matrix",
        "chart_17_market_share.png - Market Share Breakdown",
        "chart_18_competitive_benchmarking.png - Competitive Benchmarking",
        "chart_28_dcf_sensitivity_heatmap.png - DCF Sensitivity Heatmap [MANDATORY]",
        "chart_29_dcf_waterfall.png - DCF Valuation Waterfall",
        "chart_30_trading_comps_scatter.png - Trading Comps Scatter Plot",
        "chart_31_peer_multiples_comparison.png - Peer Multiples Comparison",
        "chart_32_valuation_football_field.png - Valuation Football Field [MANDATORY]",
        "chart_33_price_target_scenarios.png - Price Target Scenarios",
        "chart_34_historical_valuation_multiples.png - Historical Valuation Multiples",
    ]

    # 10 OPTIONAL CHARTS (for 26-35 range)
    optional_charts = [
        "chart_19_customer_acquisition_trends.png - Customer Acquisition Trends [OPTIONAL]",
        "chart_20_unit_economics_evolution.png - Unit Economics Evolution [OPTIONAL]",
        "chart_21_product_roadmap_timeline.png - Product Roadmap Timeline [OPTIONAL]",
        "chart_22_geographic_expansion_map.png - Geographic Expansion Map [OPTIONAL]",
        "chart_23_rd_investment_trends.png - R&D Investment Trends [OPTIONAL]",
        "chart_24_sales_marketing_efficiency.png - Sales & Marketing Efficiency [OPTIONAL]",
        "chart_25_working_capital_trends.png - Working Capital Trends [OPTIONAL]",
        "chart_26_debt_maturity_schedule.png - Debt Maturity Schedule [OPTIONAL]",
        "chart_27_ownership_structure.png - Ownership Structure [OPTIONAL]",
        "chart_35_analyst_price_targets.png - Analyst Price Target Distribution [OPTIONAL]",
    ]

    with open('chart_index.txt', 'w') as f:
        f.write("CHART INDEX FOR [COMPANY] EQUITY RESEARCH REPORT\n")
        f.write("=" * 60 + "\n\n")

        f.write("4 MANDATORY CHARTS (Must be present):\n")
        f.write("- chart_03: Revenue by Product (Stacked Area) ⭐\n")
        f.write("- chart_04: Revenue by Geography (Stacked Bar) ⭐\n")
        f.write("- chart_28: DCF Sensitivity (Heatmap) ⭐\n")
        f.write("- chart_32: Valuation Football Field ⭐\n\n")

        f.write("25 REQUIRED CHARTS:\n")
        for chart in required_charts:
            f.write(f"  {chart}\n")

        f.write("\n10 OPTIONAL CHARTS (for 26-35 total):\n")
        for chart in optional_charts:
            f.write(f"  {chart}\n")

        f.write("\n" + "=" * 60 + "\n")
        f.write("NOTE: Task 5 will embed ALL charts created (25-35) throughout\n")
        f.write("the report for visual density (1 chart every 200-300 words).\n")

    print("✓ Created: chart_index.txt")

create_chart_index()
Step 6: Quality Check

Run verification checks:

import os

def verify_charts():
    """Verify all charts were created successfully"""

    mandatory_charts = [
        'chart_03_revenue_by_product_stacked_area.png',
        'chart_04_revenue_by_geography_stacked_bar.png',
        'chart_28_dcf_sensitivity_heatmap.png',
        'chart_32_valuation_football_field.png'
    ]

    print("\n" + "="*60)
    print("CHART GENERATION VERIFICATION")
    print("="*60)

    # Check mandatory charts
    print("\n1. MANDATORY CHARTS:")
    all_mandatory_present = True
    for chart in mandatory_charts:
        if os.path.exists(chart):
            size = os.path.getsize(chart) / 1024  # KB
            print(f"   ✓ {chart} ({size:.1f} KB)")
        else:
            print(f"   ✗ MISSING: {chart}")
            all_mandatory_present = False

    # Count total charts
    chart_files = [f for f in os.listdir('.') if f.startswith('chart_') and f.endswith('.png')]
    print(f"\n2. TOTAL CHARTS: {len(chart_files)}")
    print(f"   Target: 25-35 charts")
    print(f"   Status: {'✓ PASS' if 25 <= len(chart_files) <= 35 else '⚠ WARNING'}")

    # Check file sizes (should be > 50KB for 300 DPI)
    print("\n3. FILE SIZE CHECK:")
    small_files = []
    for chart in chart_files[:5]:  # Sample first 5
        size = os.path.getsize(chart) / 1024
        if size < 50:
            small_files.append(chart)
        print(f"   {chart}: {size:.1f} KB")

    if small_files:
        print(f"   ⚠ WARNING: {len(small_files)} files may be low resolution")
    else:
        print(f"   ✓ All sampled files have adequate size")

    # Final verdict
    print("\n" + "="*60)
    if all_mandatory_present and 25 <= len(chart_files) <= 35:
        print("✓ VERIFICATION PASSED - Ready for Task 5")
    else:
        print("✗ VERIFICATION FAILED - Review missing charts")
    print("="*60 + "\n")

verify_charts()

Quality Standards

Visual Quality
  • [ ] High resolution (300 DPI minimum)

  • [ ] Professional color scheme (consistent across all charts)

  • [ ] Clear, legible text (no fonts smaller than 9pt)

  • [ ] Proper aspect ratio (no distortion)

  • [ ] No pixelation or artifacts

Data Accuracy
  • [ ] Data matches source (financial model and valuation)

  • [ ] Proper units and labels ($ millions, percentages, etc.)

  • [ ] Appropriate scale and range

  • [ ] Consistent time periods across charts

  • [ ] Verified calculations

Formatting Quality
  • [ ] Consistent styling across all charts

  • [ ] Proper figure numbering (sequential)

  • [ ] Clear titles and captions

  • [ ] Source citations on every chart

  • [ ] Professional appearance

Completeness
  • [ ] All 4 mandatory charts created

  • [ ] 25-35 total charts

  • [ ] Proper file naming (chart_01, chart_02, etc.)

  • [ ] Chart index created

  • [ ] Ready for embedding in Word


Chart Types Reference

When to Use Each Chart Type

Line Charts: Time series trends (revenue, margins, stock price)

Stacked Area: Revenue by product ⭐, market size composition

Stacked Bar: Revenue by geography ⭐, quarterly breakdowns

Heatmap: DCF sensitivity ⭐, correlation matrices

Horizontal Bar: Valuation football field ⭐, peer rankings

Waterfall: Revenue bridges, margin analysis, DCF build-up

Scatter/Bubble: Growth vs. valuation, competitive positioning

2×2 Matrix: Competitive positioning, product portfolio


File Naming Convention

Always use this format:

chart_[NUMBER]_[DESCRIPTION].png

Examples:
chart_01_stock_price_performance.png
chart_03_revenue_by_product_stacked_area.png
chart_28_dcf_sensitivity_heatmap.png

Number charts sequentially based on their position in the report, not creation order.


Common Chart Generation Issues

Issue 1: Low Resolution

Problem: Chart looks pixelated Solution: Ensure dpi=300 in plt.savefig()

Issue 2: Text Cutoff

Problem: Labels or titles cut off at edges Solution: Use bbox_inches='tight' in plt.savefig()

Issue 3: Poor Colors

Problem: Colors don't look professional Solution: Use established palettes like Tableau10 or define custom corporate colors

Issue 4: Overlapping Labels

Problem: Axis labels overlap Solution: Rotate labels (e.g., rotation=45) or reduce font size

Issue 5: White Space

Problem: Too much white space around chart Solution: Use plt.tight_layout() before saving


Success Criteria

A successful chart package should:

  1. Include all 4 mandatory charts (verified) ⭐

    • chart_03: Revenue by Product

    • chart_04: Revenue by Geography

    • chart_28: DCF Sensitivity

    • chart_32: Valuation Football Field

  2. Create 25 required charts minimum (verified)

  3. Optional: 1-10 additional charts for 26-35 total

  4. Have consistent professional styling across all charts

  5. Be high resolution (300 DPI) for print quality

  6. Have clear labels, legends, and titles on every chart

  7. Include proper figure numbers and source citations

  8. Be ready for immediate embedding in Word

  9. Cover all key financial metrics and analyses

  10. Tell a visual story complementing the written analysis

  11. Be accurate and auditable to source data (model/valuation)

  12. All charts packaged in zip file with chart index

Remember: Task 5 will embed ALL charts created (25-35) throughout the report for visual density.


Output Files

After completing Task 4, deliverables include:

25 REQUIRED Chart Files (Minimum):

  1. chart_01_stock_price_performance.png

  2. chart_02_revenue_growth_trajectory.png

  3. chart_03_revenue_by_product_stacked_area.png ⭐ MANDATORY

  4. chart_04_revenue_by_geography_stacked_bar.png ⭐ MANDATORY

  5. chart_05_company_overview.png

  6. chart_06_key_milestones_timeline.png

  7. chart_07_organizational_structure.png

  8. chart_08_product_portfolio.png

  9. chart_09_customer_segmentation.png

  10. chart_10_gross_margin_evolution.png

  11. chart_11_ebitda_margin_progression.png

  12. chart_12_free_cash_flow_trend.png

  13. chart_13_operating_metrics_dashboard.png

  14. chart_14_scenario_comparison.png

  15. chart_15_market_size_evolution.png

  16. chart_16_competitive_positioning.png

  17. chart_17_market_share.png

  18. chart_18_competitive_benchmarking.png 19-27. Reserved for optional charts if created

  19. chart_28_dcf_sensitivity_heatmap.png ⭐ MANDATORY

  20. chart_29_dcf_waterfall.png

  21. chart_30_trading_comps_scatter.png

  22. chart_31_peer_multiples_comparison.png

  23. chart_32_valuation_football_field.png ⭐ MANDATORY

  24. chart_33_price_target_scenarios.png

  25. chart_34_historical_valuation_multiples.png

  26. Reserved for optional chart if created

10 OPTIONAL Chart Files (For 26-35 Total):

  • chart_19 through chart_27, chart_35 (if created)

Chart Index (1 text file):

  • chart_index.txt (listing all charts with descriptions and categories)

All chart files must be:

  • 300 DPI resolution (print quality)

  • 6-10 inches wide (standard Word embedding size)

  • White background (professional appearance)

  • PNG format (lossless quality)

  • Ready for immediate Word embedding

Final Step: Package All Charts

Create a zip file containing all chart files and the chart index:

[Company]_Charts_[Date].zip
├── chart_01_stock_price_performance.png
├── chart_02_revenue_growth_trajectory.png
├── chart_03_revenue_by_product_stacked_area.png ⭐
├── chart_04_revenue_by_geography_stacked_bar.png ⭐
├── chart_05_company_overview.png
├── ... (all 25-35 chart files)
├── chart_28_dcf_sensitivity_heatmap.png ⭐
├── chart_32_valuation_football_field.png ⭐
├── chart_34_historical_valuation_multiples.png
└── chart_index.txt

Example: Tesla_Charts_2024-10-28.zip

Why this matters: Task 5 will embed ALL charts created (25-35) throughout the report. The report requires visual density (1 chart per 200-300 words), so all charts serve a purpose—either for specific analytical sections or for visual storytelling and page density.

  • Verify all 25-35 charts are present

  • Extract charts for Task 5 (Report Assembly)


Next Steps

After completing Task 4, the zip file will be used for:

  • Task 5 (Report Assembly): Extract charts and embed all into the final DOCX report at appropriate locations throughout the document

The 4 mandatory charts are critical for the valuation and financial analysis sections of the report.

Requirements and compatibility

Written for: Claude Code, Claude apps

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Names Claude Code tools

Security

What our scanner noticed· Low risk

  • Instructions that use the network

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
Anthropic
Publisher
Anthropic (Official)
Source
anthropics/financial-services · plugins/vertical-plugins/equity-research/skills/initiating-coverage · commit 6056506
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Anthropic or Anthropic.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download initiating-coverage.zip