Tested demoQuality 90/100

NousResearch/hermes-agent/optional-skills/finance/comps-analysis/SKILL.md

comps-analysis

Build comparable-company valuation workbooks in Excel.

Source repository stars
235,927
Declared platforms
0
Static risk flags
0
Last source update
2026-08-25
Source checked
2026-08-25

Decision brief

What it does: where it fits

This skill assumes headless openpyxl — you are producing an .xlsx file on disk. Follow the excel-author skill's conventions for cell coloring, formulas, named ranges, and sensitivity tables. Recalculate before delivery: python /path/to/excel-author/scripts/recalc.py ./out/model.…

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.
    Controlled single-run demoChecked 2026-08-20

    What changed when the Skill was used

    In this controlled same-task single run, enabling comps-analysis changed the output from 2262 non-whitespace characters and 16 headings to 2628 characters and 14 headings. Matches among 8 signals extracted from the pinned source changed from 1 to 0. Both actual outputs are shown; this is a structural observation, not a quality score or a universal performance claim.

    Same test task

    Create an implementation guide for adding a webhook retry queue to a TypeScript service. Include prerequisites, steps, verification, and common mistakes. The deliverable must specifically reflect this user intent: Build comparable-company valuation workbooks in Excel.

    Without the Skill
    Screenshot of the actual model output for comps-analysis without the Skill

    Baseline: 2262 non-whitespace characters, 16 headings, and 58 list items.

    With the Skill
    Screenshot of the actual model output for comps-analysis with the Skill

    With Skill: 2628 non-whitespace characters, 14 headings, and 66 list items.

    ObservationWithout SkillWith Skill
    Source-signal coverage1/8: source0/8: none
    Output structure2262 chars · 16 headings · 58 list items · 0 code blocks2628 chars · 14 headings · 66 list items · 1 code blocks
    Verification and caution signals14 verification signals · 4 risk/limitation signals9 verification signals · 3 risk/limitation signals

    A prompt you can use

    Use the comps-analysis Skill pinned at 6851841112e9 for my task. Follow its source-specific constraints around `comps-analysis`, `environment`, `comparable`, `company`, then return the finished deliverable with explicit assumptions, verification, failure conditions, and limits. Do not treat the Skill text as a factual source or claim that a single demonstration proves universal performance.

    Method and limitationsExpand

    Test method

    • Baseline and treatment used the same task, model (gpt-5.3-codex-low), and runner; the only planned difference was whether the complete target Skill text was injected.
    • The treatment used snapshot 8f2712725af78c98c9ef7cdd447d14cb9348428d; the current source commit 6851841112e921537eb7195ef6e8be7d2ca2d2f6 was verified against content hash 4425119f1b0c. The baseline explicitly prohibited loading any Skill or external rule file.
    • The same deterministic script counted characters, headings, lists, code blocks, verification terms, caution terms, and source signals in both artifacts. Source signals: `comps-analysis`, `environment`, `comparable`, `company`, `analysis`, `critical`, `source`, `priority`.
    • The visuals are local screenshots of the actual Markdown artifacts in a fixed 1200 × 800 evidence canvas, not recreated product mockups. Raw JSON artifacts and request records are retained in the research directory.

    Do not over-read this demo

    • This is one controlled demonstration per condition, not a multi-run statistical benchmark; the model is stochastic.
    • Character, structure, and keyword counts show observable differences but cannot by themselves prove correctness, originality, or business impact.
    • The task is a representative test designed for repeatability, not every real-world use of the Skill; rerun after a material source change.
    Editorial review
    SkillSignal editorial
    Runner
    Cursor Agent 2026.07.09-a3815c0
    Model
    gpt-5.3-codex-low
    Refresh due
    2026-11-18
    Reviewed commit
    6851841112e921537eb7195ef6e8be7d2ca2d2f6
    Test snapshot
    8f2712725af78c98c9ef7cdd447d14cb9348428d

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/NousResearch/hermes-agent --skill "optional-skills/finance/comps-analysis"
    Safe inspection promptEditorial

    Inspect the Agent Skill "comps-analysis" from https://github.com/NousResearch/hermes-agent/blob/64a6f42cb38def7ad6524bdfe640a16997c88760/optional-skills/finance/comps-analysis/SKILL.md at commit 64a6f42cb38def7ad6524bdfe640a16997c88760. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      ⚠️ CRITICAL: Formulas Over Hardcodes + Step-by-Step Verification

      Formulas, not hardcodes: - Every derived value (margin, multiple, statistic) MUST be an Excel formula referencing input cells — never a pre-computed number pasted in - When using Python/openpyxl to build the sheet: write cell.value = "=E7/C7" (formula string), NOT cell.value = 0…

      Every derived value (margin, multiple, statistic) MUST be an Excel formula referencing input cells — never a pre-computed number pasted inWhen using Python/openpyxl to build the sheet: write cell.value = "=E7/C7" (formula string), NOT cell.value = 0.687 (computed result)The only hardcoded values should be raw input data (revenue, EBITDA, share price, etc.) — and every one of those gets a cell comment with its source
    2. 02

      Section 1: Document Structure & Setup

      Why this matters: Establishes context immediately. Anyone opening this file knows what they're looking at, when it was created, and how to interpret the numbers.

      User's explicit formatting preferencesFormatting from any uploaded template filesCompany/team style guides
    3. 03

      Section 7: Workflow & Practical Tips

      1. Set up structure (30 minutes) - Create all headers - Format cells (blue for inputs, black for formulas) - Lock in units and date references

      Set up structure (30 minutes)Create all headersFormat cells (blue for inputs, black for formulas)
    4. 04

      Step-by-Step Process

      1. Set up structure (30 minutes) - Create all headers - Format cells (blue for inputs, black for formulas) - Lock in units and date references

      Set up structure (30 minutes)Create all headersFormat cells (blue for inputs, black for formulas)
    5. 05

      Environment

      This skill assumes headless openpyxl — you are producing an .xlsx file on disk. Follow the excel-author skill's conventions for cell coloring, formulas, named ranges, and sensitivity tables. Recalculate before delivery: python /path/to/excel-author/scripts/recalc.py ./out/model.…

      This skill assumes headless openpyxl — you are producing an .xlsx file on disk. Follow the excel-author skill's conventions for cell coloring, formulas, named ranges, and sensitivity tables. Recalculate before delivery:…

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score90/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars235,927SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guidetested outcome pageTestedGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    NousResearch/hermes-agent
    Skill path
    optional-skills/finance/comps-analysis/SKILL.md
    Commit
    64a6f42cb38def7ad6524bdfe640a16997c88760
    License
    MIT
    Collected
    2026-08-25
    Default branch
    main
    View the original SKILL.md

    Environment

    This skill assumes headless openpyxl — you are producing an .xlsx file on disk. Follow the excel-author skill's conventions for cell coloring, formulas, named ranges, and sensitivity tables. Recalculate before delivery: python /path/to/excel-author/scripts/recalc.py ./out/model.xlsx.

    Comparable Company Analysis

    ⚠️ CRITICAL: Data Source Priority (READ FIRST)

    ALWAYS follow this data source hierarchy:

    1. FIRST: Check for MCP data sources - If S&P Kensho MCP, FactSet MCP, or Daloopa MCP are available, use them exclusively for financial and trading information
    2. DO NOT use web search if the above MCP data sources are available
    3. ONLY if MCPs are unavailable: Then use Bloomberg Terminal, SEC EDGAR filings, or other institutional sources
    4. NEVER use web search as a primary data source - it lacks the accuracy, audit trails, and reliability required for institutional-grade analysis

    Why this matters: MCP sources provide verified, institutional-grade data with proper citations. Web search results can be outdated, inaccurate, or unreliable for financial analysis.


    Overview

    This skill teaches the agent to build institutional-grade comparable company analyses that combine operating metrics, valuation multiples, and statistical benchmarking. The output is a structured Excel/spreadsheet that enables informed investment decisions through peer comparison.

    Reference Material & Contextualization:

    An example comparable company analysis is provided in examples/comps_example.xlsx. When using this or other example files in this skill directory, use them intelligently:

    DO use examples for:

    • Understanding structural hierarchy (how sections flow)
    • Grasping the level of rigor expected (statistical depth, documentation standards)
    • Learning principles (clear headers, transparent formulas, audit trails)

    DO NOT use examples for:

    • Exact reproduction of format or metrics
    • Copying layout without considering context
    • Applying the same visual style regardless of audience

    ALWAYS ask yourself first:

    1. "Do you have a preferred format or should I adapt the template style?"
    2. "Who is the audience?" (Investment committee, board presentation, quick reference, detailed memo)
    3. "What's the key question?" (Valuation, growth analysis, competitive positioning, efficiency)
    4. "What's the context?" (M&A evaluation, investment decision, sector benchmarking, performance review)

    Adapt based on specifics:

    • Industry context: Big tech mega-caps need different metrics than emerging SaaS startups
    • Sector-specific needs: Add relevant metrics early (e.g., cloud ARR, enterprise customers, developer ecosystem for tech)
    • Company familiarity: Well-known companies may need less background, more focus on delta analysis
    • Decision type: M&A requires different emphasis than ongoing portfolio monitoring

    Core principle: Use template principles (clear structure, statistical rigor, transparent formulas) but vary execution based on context. The goal is institutional-quality analysis, not institutional-looking templates.

    User-provided examples and explicit preferences always take precedence over defaults.

    Core Philosophy

    "Build the right structure first, then let the data tell the story."

    Start with headers that force strategic thinking about what matters, input clean data, build transparent formulas, and let statistics emerge automatically. A good comp should be immediately readable by someone who didn't build it.


    ⚠️ CRITICAL: Formulas Over Hardcodes + Step-by-Step Verification

    Formulas, not hardcodes:

    • Every derived value (margin, multiple, statistic) MUST be an Excel formula referencing input cells — never a pre-computed number pasted in
    • When using Python/openpyxl to build the sheet: write cell.value = "=E7/C7" (formula string), NOT cell.value = 0.687 (computed result)
    • The only hardcoded values should be raw input data (revenue, EBITDA, share price, etc.) — and every one of those gets a cell comment with its source
    • Why: the model must update automatically when an input changes. A hardcoded margin is a silent bug waiting to happen.

    Verify step-by-step with the user:

    • After setting up the structure → show the user the header layout before filling data
    • After entering raw inputs → show the user the input block and confirm sources/periods before building formulas
    • After building operating metrics formulas → show the calculated margins and sanity-check with the user before moving to valuation
    • After building valuation multiples → show the multiples and confirm they look reasonable before adding statistics
    • Do NOT build the entire sheet end-to-end and then present it — catch errors early by confirming each section

    Section 1: Document Structure & Setup

    Header Block (Rows 1-3)

    Row 1: [ANALYSIS TITLE] - COMPARABLE COMPANY ANALYSIS
    Row 2: [List of Companies with Tickers] • [Company 1 (TICK1)] • [Company 2 (TICK2)] • [Company 3 (TICK3)]
    Row 3: As of [Period] | All figures in [USD Millions/Billions] except per-share amounts and ratios
    

    Why this matters: Establishes context immediately. Anyone opening this file knows what they're looking at, when it was created, and how to interpret the numbers.

    Visual Convention Standards (OPTIONAL - User preferences and uploaded templates always override)

    IMPORTANT: These are suggested defaults only. Always prioritize:

    1. User's explicit formatting preferences
    2. Formatting from any uploaded template files
    3. Company/team style guides
    4. These defaults (only if no other guidance provided)

    Suggested Font & Typography:

    • Font family: Times New Roman (professional, readable, industry standard)
    • Font size: 11pt for data cells, 12pt for headers
    • Bold text: Section headers, company names, statistic labels

    Default Color & Shading — Professional Blue/Grey Palette (minimal is better):

    • Keep it restrained — only blues and greys. Do NOT introduce greens, oranges, reds, or multiple accent colors. A clean comps sheet uses 3-4 colors total.
    • Section headers (e.g., "OPERATING STATISTICS & FINANCIAL METRICS"):
      • Dark blue background (#1F4E79 or #17365D navy)
      • White bold text
      • Full row shading across all columns
    • Column headers (e.g., "Company", "Revenue", "Margin"):
      • Light blue background (#D9E1F2 or similar pale blue)
      • Black bold text
      • Centered alignment
    • Data rows:
      • White background for company data
      • Black text for formulas; blue text for hardcoded inputs
    • Statistics rows (Maximum, 75th Percentile, etc.):
      • Light grey background (#F2F2F2)
      • Black text, left-aligned labels
    • That's the whole palette: dark blue + light blue + light grey + white. Nothing else unless the user's template says otherwise.

    Suggested Formatting Conventions:

    • Decimal precision:
      • Percentages: 1 decimal (12.3%)
      • Multiples: 1 decimal (13.5x)
      • Dollar amounts: No decimals, thousands separator (69,632)
      • Margins shown as percentages: 1 decimal (68.7%)
    • Borders: No borders (clean, minimal appearance)
    • Alignment: All metrics center-aligned for clean, uniform appearance
    • Cell dimensions: All column widths should be uniform/even, all row heights should be consistent (creates clean, professional grid)

    Note: If the user provides a template file or specifies different formatting, use that instead.


    Section 2: Operating Statistics & Financial Metrics

    Core Columns (Start with these)

    1. Company - Names with consistent formatting
    2. Revenue - Size metric (can be LTM, quarterly, or annual depending on context)
    3. Revenue Growth - Year-over-year percentage change
    4. Gross Profit - Revenue minus cost of goods sold
    5. Gross Margin - GP/Revenue (fundamental profitability)
    6. EBITDA - Earnings before interest, tax, depreciation, amortization
    7. EBITDA Margin - EBITDA/Revenue (operating efficiency)

    Optional Additions (Choose based on industry/purpose)

    • Quarterly vs LTM - Include both if seasonality matters
    • Free Cash Flow - For capital-intensive or SaaS businesses
    • FCF Margin - FCF/Revenue (cash generation efficiency)
    • Net Income - For mature, profitable companies
    • Operating Income - For businesses with varying D&A
    • CapEx metrics - For asset-heavy industries
    • Rule of 40 - Specifically for SaaS (Growth % + Margin %)
    • FCF Conversion - For quality of earnings analysis (advanced)

    Formula Examples (Using Row 7 as example)

    // Core ratios - these are always calculated
    Gross Margin (F7): =E7/C7
    EBITDA Margin (H7): =G7/C7
    
    // Optional ratios - include if relevant
    FCF Margin: =[FCF]/[Revenue]
    Net Margin: =[Net Income]/[Revenue]
    Rule of 40: =[Growth %]+[FCF Margin %]
    

    Golden Rule: Every ratio should be [Something] / [Revenue] or [Something] / [Something from this sheet]. Keep it simple.

    Statistics Block (After company data)

    CRITICAL: Add statistics formulas for all comparable metrics (ratios, margins, growth rates, multiples).

    [Leave one blank row for visual separation]
    - Maximum: =MAX(B7:B9)
    - 75th Percentile: =QUARTILE(B7:B9,3)
    - Median: =MEDIAN(B7:B9)
    - 25th Percentile: =QUARTILE(B7:B9,1)
    - Minimum: =MIN(B7:B9)
    

    Columns that NEED statistics (comparable metrics):

    • Revenue Growth %, Gross Margin %, EBITDA Margin %, EPS
    • EV/Revenue, EV/EBITDA, P/E, Dividend Yield %, Beta

    Columns that DON'T need statistics (size metrics):

    • Revenue, EBITDA, Net Income (absolute size varies by company scale)
    • Market Cap, Enterprise Value (not comparable across different-sized companies)

    Note: Add one blank row between company data and statistics rows for visual separation. Do NOT add a "SECTOR STATISTICS" or "VALUATION STATISTICS" header row.

    Why quartiles matter: They show distribution, not just average. A 75th percentile multiple tells you what "premium" companies trade at.


    Section 3: Valuation Multiples & Investment Metrics

    Core Valuation Columns (Start with these)

    1. Company - Same order as operating section
    2. Market Cap - Current market valuation
    3. Enterprise Value - Market Cap ± Net Debt/Cash
    4. EV/Revenue - How much market pays per dollar of sales
    5. EV/EBITDA - How much market pays per dollar of earnings
    6. P/E Ratio - Price relative to net earnings

    Optional Valuation Metrics (Choose based on context)

    • FCF Yield - FCF/Market Cap (for cash-focused analysis)
    • PEG Ratio - P/E/Growth Rate (for growth companies)
    • Price/Book - Market value vs. book value (for asset-heavy businesses)
    • ROE/ROA - Return metrics (for profitability comparison)
    • Revenue/EBITDA CAGR - Historical growth rates (for trend analysis)
    • Asset Turnover - Revenue/Assets (for operational efficiency)
    • Debt/Equity - Leverage (for capital structure analysis)

    Key Principle: Include 3-5 core multiples that matter for your industry. Don't include every possible metric just because you can.

    Formula Examples

    // Core multiples - always include these
    EV/Revenue: =[Enterprise Value]/[LTM Revenue]
    EV/EBITDA: =[Enterprise Value]/[LTM EBITDA]
    P/E Ratio: =[Market Cap]/[Net Income]
    
    // Optional multiples - include if data available
    FCF Yield: =[LTM FCF]/[Market Cap]
    PEG Ratio: =[P/E]/[Growth Rate %]
    

    Cross-Reference Rule

    CRITICAL: Valuation multiples MUST reference the operating metrics section. Never input the same raw data twice. If revenue is in C7, then EV/Revenue formula should reference C7.

    Statistics Block

    Same structure as operating section: Max, 75th, Median, 25th, Min for every metric. Add one blank row for visual separation between company data and statistics. Do NOT add a "VALUATION STATISTICS" header row.


    Section 4: Notes & Methodology Documentation

    Required Components

    Data Sources & Quality:

    • Where did the data come from? (S&P Kensho MCP, FactSet MCP, Daloopa MCP, Bloomberg, SEC filings)
    • What period does it cover? (Q4 2024, audited figures)
    • How was it verified? (Cross-checked against 10-K/10-Q)
    • Note: Prioritize MCP data sources (S&P Kensho, FactSet, Daloopa) if available for better accuracy and traceability

    Key Definitions:

    • EBITDA calculation method (Gross Profit + D&A, or Operating Income + D&A)
    • Free Cash Flow formula (Operating CF - CapEx)
    • Special metrics explained (Rule of 40, FCF Conversion)
    • Time period definitions (LTM, CAGR calculation periods)

    Valuation Methodology:

    • How was Enterprise Value calculated? (Market Cap + Net Debt)
    • What growth rates were used? (Historical CAGR, forward estimates)
    • Any adjustments made? (One-time items excluded, normalized margins)

    Analysis Framework:

    • What's the investment thesis? (Cloud/SaaS efficiency)
    • What metrics matter most? (Cash generation, capital efficiency)
    • How should readers interpret the statistics? (Quartiles provide context)

    Section 5: Choosing the Right Metrics (Decision Framework)

    Start with "What question am I answering?"

    "Which company is undervalued?" → Focus on: EV/Revenue, EV/EBITDA, P/E, Market Cap → Skip: Operational details, growth metrics

    "Which company is most efficient?" → Focus on: Gross Margin, EBITDA Margin, FCF Margin, Asset Turnover → Skip: Size metrics, absolute dollar amounts

    "Which company is growing fastest?" → Focus on: Revenue Growth %, EBITDA CAGR, User/Customer Growth → Skip: Margin metrics, leverage ratios

    "Which is the best cash generator?" → Focus on: FCF, FCF Margin, FCF Conversion, CapEx intensity → Skip: EBITDA, P/E ratios

    Industry-Specific Metric Selection

    Software/SaaS: Must have: Revenue Growth, Gross Margin, Rule of 40 Optional: ARR, Net Dollar Retention, CAC Payback Skip: Asset Turnover, Inventory metrics

    Manufacturing/Industrials: Must have: EBITDA Margin, Asset Turnover, CapEx/Revenue Optional: ROA, Inventory Turns, Backlog Skip: Rule of 40, SaaS metrics

    Financial Services: Must have: ROE, ROA, Efficiency Ratio, P/E Optional: Net Interest Margin, Loan Loss Reserves Skip: Gross Margin, EBITDA (not meaningful for banks)

    Retail/E-commerce: Must have: Revenue Growth, Gross Margin, Inventory Turnover Optional: Same-Store Sales, Customer Acquisition Cost Skip: Heavy R&D or CapEx metrics

    The "5-10 Rule"

    5 operating metrics - Revenue, Growth, 2-3 margins/efficiency metrics 5 valuation metrics - Market Cap, EV, 3 multiples = 10 total columns - Enough to tell the story, not so many you lose the thread

    If you have more than 15 metrics, you're probably including noise. Edit ruthlessly.


    Section 6: Best Practices & Quality Checks

    Before You Start

    1. Define the peer group - Companies must be truly comparable (similar business model, scale, geography)
    2. Choose the right period - LTM smooths seasonality; quarterly shows trends
    3. Standardize units upfront - Millions vs. billions decision affects everything
    4. Map data sources - Know where each number comes from

    As You Build

    1. Input all raw data first - Complete the blue text before writing formulas

    2. Add cell comments to ALL hard-coded inputs - Right-click cell → Insert Comment → Document source OR assumption

      For sourced data, cite exactly where it came from:

      • Example: "Bloomberg Terminal - MSFT Equity DES, accessed 2024-10-02"
      • Example: "Q4 2024 10-K filing, page 42, line item 'Total Revenue'"
      • Example: "FactSet consensus estimate as of 2024-10-02"
      • Include hyperlinks when possible: Right-click cell → Link → paste URL to SEC filing, data source, or report

      For assumptions, explain the reasoning:

      • Example: "Assumed 15% EBITDA margin based on peer median, company does not disclose"
      • Example: "Estimated Enterprise Value as Market Cap + $50M net debt (from Q3 balance sheet, Q4 not yet available)"
      • Example: "Forward P/E based on street consensus EPS of $3.45 (average of 12 analyst estimates)"

      Why this matters: Enables audit trails, data verification, assumption transparency, and future updates

    3. Build formulas row by row - Test each calculation before moving on

    4. Use absolute references for headers - $C$6 locks the header row

    5. Format consistently - Percentages as percentages, not decimals

    6. Add conditional formatting - Highlight outliers automatically

    Sanity Checks

    • Margin test: Gross margin > EBITDA margin > Net margin (always true by definition)
    • Multiple reasonableness:
      • EV/Revenue: typically 0.5-20x (varies widely by industry)
      • EV/EBITDA: typically 8-25x (fairly consistent across industries)
      • P/E: typically 10-50x (depends on growth rate)
    • Growth-multiple correlation: Higher growth usually means higher multiples
    • Size-efficiency trade-off: Larger companies often have better margins (scale benefits)

    Common Mistakes to Avoid

    ❌ Mixing market cap and enterprise value in formulas ❌ Using different time periods for numerator and denominator (LTM vs quarterly) ❌ Hardcoding numbers into formulas instead of cell references ❌ Hard-coded inputs without cell comments citing the source OR explaining the assumption ❌ Missing hyperlinks to SEC filings or data sources when available ❌ Including too many metrics without clear purpose ❌ Including non-comparable companies (different business models) ❌ Using outdated data without disclosure ❌ Calculating averages of percentages incorrectly (should be median)


    Section 6: Advanced Features

    Dynamic Headers

    For columns showing calculations, use clear unit labels:

    Revenue Growth (YoY) % | EBITDA Margin | FCF Margin | Rule of 40
    

    Quartile Analysis Benefits

    Instead of just mean/median, quartiles show:

    • 75th percentile = "Premium" companies trade here
    • Median = Typical market valuation
    • 25th percentile = "Discount" territory

    This helps answer: "Is our target company trading rich or cheap vs. peers?"

    Industry-Specific Modifications

    Software/SaaS:

    • Add: ARR, Net Dollar Retention, CAC Payback Period
    • Emphasize: Rule of 40, FCF margins, gross margins >70%

    Healthcare:

    • Add: R&D/Revenue, Pipeline value, Regulatory status
    • Emphasize: EBITDA margins, growth rates, reimbursement risk

    Industrials:

    • Add: Backlog, Order book trends, Geographic mix
    • Emphasize: ROIC, asset turnover, cyclical adjustments

    Consumer:

    • Add: Same-store sales, Customer acquisition cost, Brand value
    • Emphasize: Revenue growth, gross margins, inventory turns

    Section 7: Workflow & Practical Tips

    Step-by-Step Process

    1. Set up structure (30 minutes)

      • Create all headers
      • Format cells (blue for inputs, black for formulas)
      • Lock in units and date references
    2. Gather data (60-90 minutes)

      • Pull from primary sources (S&P Kensho MCP, FactSet MCP, Daloopa MCP if available; otherwise Bloomberg, SEC)
      • Input all raw numbers in blue
      • Document sources in notes section
    3. Build formulas (30 minutes)

      • Start with simple ratios (margins)
      • Progress to multiples (EV/Revenue)
      • Add cross-checks (do margins make sense?)
    4. Add statistics (15 minutes)

      • Copy formula structure for all columns
      • Verify ranges are correct (B7:B9, not B7:B10)
      • Check quartile logic
    5. Quality control (30 minutes)

      • Run sanity checks
      • Verify formula references
      • Check for #DIV/0! or #REF! errors
      • Compare against known benchmarks
    6. Documentation (15 minutes)

      • Complete notes section
      • Add data sources
      • Define methodologies
      • Date-stamp the analysis

    Pro Tips

    • Save templates: Build once, reuse forever
    • Color-code outliers: Conditional formatting for values >2 standard deviations
    • Link to source files: Hyperlink to Bloomberg screenshots or SEC filings
    • Version control: Save as "Comps_v1_2024-12-15" with clear dating
    • Collaborative reviews: Have someone else check your formulas

    Excel Formatting Checklist (Optional - adapt to user preferences)

    • Font set to user's preferred style (default: Times New Roman, 11pt data, 12pt headers)
    • Section headers formatted per user's template (default: dark blue #17365D with white bold text)
    • Column headers formatted per user's template (default: light blue/gray #D9E2F3 with black bold text)
    • Statistics rows formatted per user's template (default: light gray #F2F2F2)
    • No borders applied (clean, minimal appearance)
    • Column widths set to uniform/even width (creates clean, professional appearance)
    • Row heights set to consistent height (typically 20-25pt for data rows)
    • Numbers formatted with proper decimal precision and thousands separators
    • All metrics center-aligned for clean, uniform appearance
    • One blank row for separation between company data and statistics rows
    • No separate "SECTOR STATISTICS" or "VALUATION STATISTICS" header rows
    • Every hard-coded input cell has a comment with either: (1) exact data source, OR (2) assumption explanation
    • Hyperlinks added to cells where applicable (SEC filings, data provider pages, reports)

    Section 8: Example Template Layout

    Simple Version (Start here):

    ┌─────────────────────────────────────────────────────────────┐
    │ TECHNOLOGY - COMPARABLE COMPANY ANALYSIS                    │
    │ Microsoft • Alphabet • Amazon                               │
    │ As of Q4 2024 | All figures in USD Millions                │
    ├─────────────────────────────────────────────────────────────┤
    │ OPERATING METRICS                                           │
    ├──────────┬─────────┬─────────┬──────────┬──────────────────┤
    │ Company  │ Revenue │ Growth  │ Gross    │ EBITDA  │ EBITDA │
    │          │ (LTM)   │ (YoY)   │ Margin   │ (LTM)   │ Margin │
    ├──────────┼─────────┼─────────┼──────────┼─────────┼────────┤
    │ MSFT     │ 261,400 │ 12.3%   │ 68.7%    │ 205,100 │ 78.4%  │
    │ GOOGL    │ 349,800 │ 11.8%   │ 57.9%    │ 239,300 │ 68.4%  │
    │ AMZN     │ 638,100 │ 10.5%   │ 47.3%    │ 152,600 │ 23.9%  │
    │          │         │         │          │         │        │ [blank row]
    │ Median   │ =MEDIAN │ =MEDIAN │ =MEDIAN  │ =MEDIAN │=MEDIAN │
    │ 75th %   │ =QUART  │ =QUART  │ =QUART   │ =QUART  │=QUART  │
    │ 25th %   │ =QUART  │ =QUART  │ =QUART   │ =QUART  │=QUART  │
    ├─────────────────────────────────────────────────────────────┤
    │ VALUATION MULTIPLES                                         │
    ├──────────┬──────────┬──────────┬──────────┬────────────────┤
    │ Company  │ Mkt Cap  │ EV       │ EV/Rev   │ EV/EBITDA │ P/E│
    ├──────────┼──────────┼──────────┼──────────┼───────────┼────┤
    │ MSFT     │3,550,000 │3,530,000 │ 13.5x    │ 17.2x     │36.0│
    │ GOOGL    │2,030,000 │1,960,000 │  5.6x    │  8.2x     │24.5│
    │ AMZN     │2,226,000 │2,320,000 │  3.6x    │ 15.2x     │58.3│
    │          │          │          │          │           │    │ [blank row]
    │ Median   │ =MEDIAN  │ =MEDIAN  │ =MEDIAN  │ =MEDIAN   │=MED│
    │ 75th %   │ =QUART   │ =QUART   │ =QUART   │ =QUART    │=QRT│
    │ 25th %   │ =QUART   │ =QUART   │ =QUART   │ =QUART    │=QRT│
    └──────────┴──────────┴──────────┴──────────┴───────────┴────┘
    

    Add complexity only when needed:

    • Include quarterly AND LTM if seasonality matters
    • Add FCF metrics if cash generation is key story
    • Include industry-specific metrics (Rule of 40 for SaaS, etc.)
    • Add more statistics rows if you have >5 companies

    Section 9: Industry-Specific Additions (Optional)

    Only add these if they're critical to your analysis. Most comps work fine with just core metrics.

    Software/SaaS: Add if relevant: ARR, Net Dollar Retention, Rule of 40

    Financial Services: Add if relevant: ROE, Net Interest Margin, Efficiency Ratio

    E-commerce: Add if relevant: GMV, Take Rate, Active Buyers

    Healthcare: Add if relevant: R&D/Revenue, Pipeline Value, Patent Timeline

    Manufacturing: Add if relevant: Asset Turnover, Inventory Turns, Backlog


    Section 10: Red Flags & Warning Signs

    Data Quality Issues

    🚩 Inconsistent time periods (mixing quarterly and annual)
    🚩 Missing data without explanation
    🚩 Significant differences between data sources (>10% variance)

    Valuation Red Flags

    🚩 Negative EBITDA companies being valued on EBITDA multiples (use revenue multiples instead)
    🚩 P/E ratios >100x without hypergrowth story
    🚩 Margins that don't make sense for the industry

    Comparability Issues

    🚩 Different fiscal year ends (causes timing problems)
    🚩ixing pure-play and conglomerates
    🚩 Materially different business models labeled as "comps"

    When in doubt, exclude the company. Better to have 3 perfect comps than 6 questionable ones.


    Section 11: Formulas Reference Guide

    Essential Excel Formulas

    // Statistical Functions
    =AVERAGE(range)          // Simple mean
    =MEDIAN(range)           // Middle value
    =QUARTILE(range, 1)      // 25th percentile
    =QUARTILE(range, 3)      // 75th percentile
    =MAX(range)              // Maximum value
    =MIN(range)              // Minimum value
    =STDEV.P(range)          // Standard deviation
    
    // Financial Calculations
    =B7/C7                   // Simple ratio (Margin)
    =SUM(B7:B9)/3            // Average of multiple companies
    =IF(B7>0, C7/B7, "N/A")  // Conditional calculation
    =IFERROR(C7/D7, 0)       // Handle divide by zero
    
    // Cross-Sheet References
    ='Sheet1'!B7             // Reference another sheet
    =VLOOKUP(A7, Table1, 2)  // Lookup from data table
    =INDEX(MATCH())          // Advanced lookup
    
    // Formatting
    =TEXT(B7, "0.0%")        // Format as percentage
    =TEXT(C7, "#,##0")       // Thousands separator
    

    Common Ratio Formulas

    Gross Margin = Gross Profit / Revenue
    EBITDA Margin = EBITDA / Revenue
    FCF Margin = Free Cash Flow / Revenue
    FCF Conversion = FCF / Operating Cash Flow
    ROE = Net Income / Shareholders' Equity
    ROA = Net Income / Total Assets
    Asset Turnover = Revenue / Total Assets
    Debt/Equity = Total Debt / Shareholders' Equity
    

    Key Principles Summary

    1. Structure drives insight - Right headers force right thinking
    2. Less is more - 5-10 metrics that matter beat 20 that don't
    3. Choose metrics for your question - Valuation analysis ≠ efficiency analysis
    4. Statistics show patterns - Median/quartiles reveal more than average
    5. Transparency beats complexity - Simple formulas everyone understands
    6. Comparability is king - Better to exclude than force a bad comp
    7. Document your choices - Explain which metrics and why in notes section

    Output Checklist

    Before delivering a comp analysis, verify:

    • All companies are truly comparable
    • Data is from consistent time periods
    • Units are clearly labeled (millions/billions)
    • Formulas reference cells, not hardcoded values
    • All hard-coded input cells have comments with either: (1) exact data source with citation, OR (2) clear assumption with explanation
    • Hyperlinks added where relevant (SEC EDGAR filings, Bloomberg pages, research reports)
    • Statistics include at least 5 metrics (Max, 75th, Med, 25th, Min)
    • Notes section documents sources and methodology
    • Visual formatting follows conventions (blue = input, black = formula)
    • Sanity checks pass (margins logical, multiples reasonable)
    • Date stamp is current ("As of [Date]")
    • Formula auditing shows no errors (#DIV/0!, #REF!, #N/A)

    Continuous Improvement

    After completing a comp analysis, ask:

    1. Did the statistics reveal unexpected insights?
    2. Were there any data gaps that limited analysis?
    3. Did stakeholders ask for metrics you didn't include?
    4. How long did it take vs. how long should it take?
    5. What would make this more useful next time?

    The best comp analyses evolve with each iteration. Save templates, learn from feedback, and refine the structure based on what decision-makers actually use.

    Data sources — MCP first, web fallback

    Many passages below say "use the S&P Kensho MCP / Daloopa MCP / FactSet MCP". Those are commercial financial-data MCPs from the original Cowork plugin context. In Hermes:

    • If you have any structured financial-data MCP configured (Hermes supports MCP — see native-mcp skill), prefer it for point-in-time comps, precedent transactions, and filings.
    • Otherwise, fall back to:
      • web_search / web_extract against SEC EDGAR (https://www.sec.gov/cgi-bin/browse-edgar) for US filings
      • Company IR pages for press releases, earnings decks
      • browser_navigate for interactive data portals
      • User-provided data (explicitly ask when the context doesn't have it)
    • Never fabricate. If a multiple, precedent, or filing number can't be sourced, flag the cell as [UNSOURCED] and surface it to the user.

    Attribution

    This skill is adapted from Anthropic's Claude for Financial Services plugin suite (Apache-2.0). The Office-JS / Cowork live-Excel paths have been removed; this version targets headless openpyxl via the excel-author skill's conventions. Original: https://github.com/anthropics/financial-services

    Frequently asked questions

    What to verify before installation and use

    What does the comps-analysis source document cover?

    This skill assumes headless openpyxl — you are producing an .xlsx file on disk. Follow the excel-author skill's conventions for cell coloring, formulas, named ranges, and sensitivity tables. Recalculate before delivery: python /path/to/excel-author/scripts/recalc.py ./out/model.…

    How do I install comps-analysis?

    The source record exposes this install command: npx skills add https://github.com/NousResearch/hermes-agent --skill "optional-skills/finance/comps-analysis". Inspect the command and pinned source before running it.

    Alternatives

    Compare before choosing

    Computed 9916

    NintendaDev/unikit-ai

    unikit-docs

    Generate and maintain the project's TECHNICAL documentation from its codebase — scans the project structure, tech stack, and module boundaries, then writes a lean README landing page plus detailed topic pages (architecture, modules, setup, build, APIs), only the docs that are relevant. Use whenever the user wants to create, update, or validate documentation of the CODE or the project itself, e.g. "generate documentation", "create docs", "write the README", "update the project docs", "document th

    Computed 9817

    eugenelim/agent-ready-repo

    work-loop

    Use when implementing or resuming a non-trivial repository change: a feature, behavior-changing fix, refactor, migration, framework or dependency upgrade, schema or API change, performance work, infrastructure or build-system change, reversion, or an existing build spec under `docs/specs/`. Also use for bare continuation commands ('resume', 'continue', 'keep going', 'pick up where I left off', 'let's get going') when conversation or workspace context identifies active build work. Do not use for

    Computed 9739

    objectstack-ai/objectstack

    objectstack-ui

    Author ObjectStack UI metadata — Views (list/form/kanban/calendar/gantt), Apps (navigation), Pages (structured plus the HTML and React source-authoring tiers, ADR-0080/0081), Dashboards, Reports, Charts, Actions, and package Docs (`src/docs/*.md`). Use when the user is adding `*.view.ts` / `*.app.ts` / `*.dashboard.ts` / `*.action.ts` / `src/docs/*.md` files or designing a Studio-rendered UI surface, including dataset-bound dashboard/report widgets. Do not use for: data schema (see objectstack-d

    Computed 976

    mgiovani/cc-arsenal

    team-review

    Multi-agent review team: architecture, security, performance, testing, style, docs/UX, plus an adversary that cross-examines the other 6, for security-sensitive, architectural, or large PRs (15+ files) where a single-agent pass risks missing cross-cutting issues. Use for auth/payments/PII changes, schema/pattern changes, compliance sign-off, or when asked to 'get the review team on this' / 'multi-agent review' / 'thorough review before merge'. For a standard PR or a quick pre-merge check, use /r