aidentity / index

agentii-ai/agentii-investment-intelligence · Apache-2.0

comps

Comparable company analysis, trading comps, peer multiples, EV/EBITDA comparison, P/E benchmarking, comps table, relative valuation, industry multiples, precedent transactions, trading comparable analysis # Curated subset — provenance RECORDED 2026-09-21 (spec 058 T004/T005, FR-051). # # This value was NOT curated and reviewed. It reached the generated # `skill-registry.yaml` first, by a hand-edit of that file on 2026-09-20 (commit # `aea28b1`, "test and debug"), which put the repo red on Check 31 — the registry said # `[retrieval-scope]` while this file declared no `essentials_modes` at all. Spec 058 # then reconciled the divergence by declaring the registry's value here, which is the # declaration FR-051 asks for (the source of truth is this file; `sync-registry.sh` # regenerates the registry from it — `sync_registry.build_entries()` reads # `essentials_modes` straight from this frontmatter, so a hand-edit to the registry # cannot survive a check). # # What is still OPEN is the curation itself: nobody has judged whether # `retrieval-scope` is the right default for this skill. The kit's only documented # derivation, `essentials_modes = first <=3 modes` (scripts/mode_backfill.py), would # give `[preflight, triggers, defaults]` — this file's own document sections, not # analysis modes — which is why that derivation is not what was applied. Note the # asymmetry a reviewer should start from: `reverse-dcf` declares the SAME five modes # (`preflight, triggers, defaults, methodology, retrieval-scope`) and defaulted to # `[methodology]`, which is what `depth_to_modes`'s own fallback prefers where it # exists. Two skills, identical declared sets, different answers, no recorded reason. # Owner: whoever owns this skill's methodology.

stable

Contents

Preflight

Run canonical pre-flight per contracts/preflight.md.

Include the X-Agentii-Trace header on every tool call per contracts/x-agentii-trace-header.md — carry the _run_id from your first tool result and name yourself (and your parent, if you were spawned).

Use the returned temporal_frame on every result; period_id is the cross-tool key.

When a request names a period, call resolve_period(ticker, expression, as_of?) first and use its fiscal period_id on every later call. For multi-issuer comparison choose comparison_basis=fiscal (each issuer's own fiscal periods) or comparison_basis=calendar (natural quarters); state it and never mix clocks. as_of is the knowledge cutoff; return a typed absence instead of widening the date range.

Triggers

  • analyze comps analysis
  • run comps analysis analysis
  • produce comps analysis report
  • comps analysis breakdown
  • comps analysis deep dive
  • build a comps analysis
  • assess comps analysis
  • quantify comps analysis
  • compare comps analysis across peers
  • review comps analysis for
  • generate comps analysis on
  • comps analysis for investment decision

Defaults

ParameterDefaultNotes
lookback_years3Historical data window
include_peersfalseWhether to surface a peer comparison block

Methodology

Retrieval Scope

This skill performs unstructured document search at scale across SEC filings and earnings call transcripts (10-K, 10-Q, 8-K). The three-layer agent-use-ready retrieval protocol (Document Discovery → Page Map → Deep Read) applies to all unstructured document search at scale.

Retrieval Strategy

See contracts/retrieval.md for the canonical decision tree; skill-specific retrieval detail is in references/methodology.md.

Temporal Scope

Default: 12 fiscal quarters (max 20). Financial modeling: trailing 12 quarters (3 fiscal years) for long-range projection inputs.

Tool Allowlist

See frontmatter allowed_tools.

Protocol

Step-by-step execution detail is in references/methodology.md.

Deliverable Chain

Inputs → Build → Validate → Output → Next

  1. Inputs: resolved ticker + peers via search_companies + search_xbrl_facts for all tickers (revenue, EBITDA, EPS, multiples) + get_company_financials.
  2. Build: write a self-contained Python script using openpyxl that creates the comps workbook (peer profiles, trading multiples, valuation summary) per ## Output Structure. Execute via Bash: python3 script.py. Verify the .xlsx exists. If import openpyxl fails, fall back to .md summary with data_availability: degraded (see contracts/office-tooling.md).
  3. Validate: run LibreOffice recalc; audit per ## Validation Gates.
  4. Output: write the artifact path per ## Output File.
  5. Next: append to agentii.md; hand off to a downstream pitch/review skill if requested.

Validation Gates

  1. peer count: between 4 and 8. If failed: If < 4: flag in Coverage Gaps, proceed with available peers. If > 8: trim to top 8 by sector proximity.
  2. trading multiples: include EV/EBITDA + P/E at minimum. If failed: If either missing: flag which multiple is unavailable and why.
  3. comps statistics table: present with mean, median, high, low for each multiple. If failed: If statistics table missing: refuse delivery.
  1. tool diversity: distinct MCP tools used in this invocation >= min_tool_diversity (5). If failed: flag as depth-insufficient in Coverage Gaps, listing which tool categories were unused (structured data / document retrieval / company metadata / earnings calendar / coverage). This gate does NOT block analysis completion — it is a quality signal for your review.

Tool Fallbacks

Per-tool failure modes and fallback actions are tabulated in references/tool-fallbacks.md.

Output File

Write the final deliverable to _cross/{descriptive-slug}_{YYYY-MM-DD_HHMM}_comps_{affix}.md or _sector/{sector_name}/{YYYY-MM-DD_HHMM}_comps_{affix}.md .

Output Structure

The deliverable is a structured markdown report written to the path in ## Output File. Full section-by-section template (headings, tables, and field definitions) lives in references/output-structure.md. Required elements:

  1. Executive Summary — headline conclusions (≤200 words).
  2. Core analysis sections — per this skill's methodology and analyst modes.
  3. Data classification — tag findings [FACT] / [DEDUCTED] / [VIEW] per contracts/snapshot-synthesis.md.
  4. Coverage Gaps & Citations — inline /v/ citations are PRIMARY (immediately after each fact); the bottom Citations section is a non-duplicative roll-up index.
  5. Output frontmatter — emit the FR-090 structured block per contracts/output-frontmatter-schema.md.

Citations & memory: follow contracts/citation-and-memory.md — ≥1 citation per 200 words; every material fact, table row, and metric is immediately followed by its inline clickable https://agentii.ai/v/{ticker}/{citation_id}/{N} link; a bottom Citations section provides a non-duplicative roll-up index; the closing TUI reply includes a compact Key Citations list (headline 5–10 facts) of clickable /v/ URLs; and append the run to agentii.md per contracts/agentii-md-schema.md.

Memory & Snapshot

  • Memory load (pre-flight): load prior workspace context for the ticker before retrieval — see contracts/memory-load.md.
  • Structured output frontmatter: emit the FR-090 block (key_metrics, conclusions, facts_count, deducted_count, views_count, citation_count) per contracts/output-frontmatter-schema.md.
  • Snapshot synthesis: after writing the deliverable, update the two-tier snapshot and classify findings as [FACT]/[DEDUCTED]/[VIEW] — see contracts/snapshot-synthesis.md.
  • Session archival: record the run under sessions/{YYYY-MM-DD}/ and update sessions/INDEX.md per contracts/session-format.md.

Final Summary (TUI)

End the closing chat reply with a compact Key Citations list (headline 5–10 facts), each a clickable https://agentii.ai/v/{ticker}/{citation_id}/{N} link, so the user can cmd+click straight to the exact SEC page. See contracts/citation-and-memory.md.

Error Handling

Failure ModeDetectionActionUser-Facing Message
Missing dataData API returns empty result setReturn the typed absence and the coverage gap; do not widen the date range"No data available for {ticker} in the resolved period."
Partial dataData API returns <80% expected recordsProceed with coverage gaps section"Analysis based on partial data; see Coverage Gaps section."
Sector mismatchPeer sector != target sectorFilter out mismatched peers"Removed {n} peer(s) due to sector mismatch."
Insufficient historyTicker <3 years on public marketsDowngrade to limited-history profile"Limited historical data; analysis adjusted accordingly."
MCP unreachablePreflight probe failsHalt with actionable error"agentii data plane unreachable; check connection."

Provenance

Authored by agentii-ai in agentii-ai/agentii-investment-intelligence. The content is mirrored here under its upstream license.

Related

3-statement 3-statement financial model, integrated IS BS CF, income statement projection, balance sheet forecast, cash flow statement, cross-statement balancing, financial model build, operating model, three statement model, integrated financial statements agentii-ai/agentii-investment-intelligence Apache-2.0 dcf DCF valuation model, discounted cash flow, intrinsic value, WACC calculation, terminal value, free cash flow projection, equity value per share, DCF sensitivity analysis, unlevered free cash flow, present value calculation, build a DCF agentii-ai/agentii-investment-intelligence Apache-2.0 full-equity-research The Auto 档 scenario — a soft-plan orchestrator for a complete fundamental equity research thesis: understand → financials → valuation → synthesize. The body is a soft plan (stages), not a rigid DAG; correctness is enforced by each referenced skill's own requires: preconditions, never by this plan's rigidity (Q2). agentii-ai/agentii-investment-intelligence Apache-2.0 lbo LBO model, leveraged buyout, private equity acquisition, sources and uses, debt schedule, returns waterfall, sponsor IRR, MOIC calculation, PE exit analysis, LBO valuation agentii-ai/agentii-investment-intelligence Apache-2.0 med-market-sizing Patient-flow market sizing for med products — prevalence → diagnosed → interested → affordable → covered → treated → persistent, priced as price × duration per cohort, with capacity constraints, named historical analog anchoring, and always bull/base/bear named-driver grids. Use to size a therapy area or product market before any valuation or share work. agentii-ai/agentii-investment-intelligence Apache-2.0