sotp-valuation
Sum of the Parts valuation, segment-based valuation, conglomerate valuation, business segment analysis, breakup value, segment sum valuation, parts worth more than whole, hidden asset value
Install
npx skills add https://github.com/agentii-ai/agentii-investment-intelligence/tree/main/plugins/vertical-plugins/models-and-pitches/skills/agentii/sotp-valuation
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install agentii-ai-agentii-investment-intelligence@llmmart
git clone https://github.com/agentii-ai/agentii-investment-intelligence.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole agentii-ai/agentii-investment-intelligence collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Sum of the Parts (SOTP) Valuation
Values each business segment independently and sums for total enterprise value. Essential for conglomerates (GE, MMM, HON), multi-segment tech (AMZN: AWS + Retail + Ads, GOOG: Search + Cloud + YouTube), and holding companies. SOTP often reveals "hidden value" when the market undervalues individual segments.
Preflight
Run the canonical pre-flight sequence — MCP health probe, ticker resolution, workspace style.md override, memory load, and coverage check. See contracts/preflight.md.
Include the X-Agentii-Trace header on every tool call per contracts/x-agentii-trace-header.md.
Triggers
- sum of the parts valuation
- SOTP analysis
- segment-based valuation
- breakup value
- conglomerate valuation
- parts worth more than whole
- segment sum of parts
- business segment valuation
- hidden asset value
- SOTP
Defaults
| Parameter | Default | Notes |
|---|---|---|
| segment_discovery | statement_tree | Use get_statement_structure for segment identification |
| peer_multiples | sector | Apply sector-appropriate multiples per segment |
| include_corporate | true | Subtract corporate overhead, net debt |
Methodology
Retrieval Scope
unstructured_document_search — SOTP requires segment financials from XBRL (structured) AND segment narrative/business description from MD&A (unstructured) for appropriate multiple selection.
Retrieval Strategy
See contracts/retrieval.md for the canonical decision tree; skill-specific retrieval detail is in references/methodology.md.
Temporal Scope
Default lookback: 4 fiscal quarter(s); maximum: 12. The default balances recency against the trend window this analysis requires.
Tool Allowlist
Per frontmatter allowed_tools:
search_xbrl_facts— primary structured financial facts (is_primary default)search_companies— ticker resolution + company context (entity-alias fuzzy match)get_realtime_quote— latest market price for valuation cross-checkssearch_documents— Layer 1 document discovery (page-level silver records)read_source_outline— Layer 2 lightweight page map (description + keywords)read_source_deep_outline— Layer 2.5a deep page map (table_titles/drivers/metrics)read_source_pages— Layer 3 deep read of selected pages with table markersget_statement_structure— XBRL presentation tree (concept hierarchy)
Protocol
Step-by-step execution detail is in references/methodology.md.
Deliverable Chain
Inputs → Build → Validate → Output → Next
- Inputs: resolved ticker + structured facts (
search_xbrl_facts,get_company_financials) and any filing pages from the three-layer protocol. - Build: write the
.mdsum-of-the-parts valuation (segment multiples, conglomerate-discount analysis) per## Output Structure. - Validate: run the
## Validation Gatesbelow. - Output: write the artifact path per
## Output File. - Next: append to
agentii.md; hand off to a downstream pitch/review skill if requested.
Output File
Write the final deliverable to {ticker}/{YYYY-MM-DD_HHMM}_sotp-valuation_{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:
- Executive Summary — headline conclusions (≤200 words).
- Core analysis sections — per this skill's methodology and analyst modes.
- Data classification — tag findings
[FACT]/[DEDUCTED]/[VIEW]percontracts/snapshot-synthesis.md. - Coverage Gaps & Citations — inline
/v/citations are PRIMARY (immediately after each fact); the bottom Citations section is a non-duplicative roll-up index. - 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.
Validation Gates
- Segment coverage: segment revenues must sum to ≥80% of total reported revenue. If failed: flag segments representing <80% of revenue; note "significant unallocated revenue."
- Valuation consistency: segment multiples justified by at least one comparable company or sector norm per segment. If failed: flag segments with unsubstantiated multiples.
- SOTP bridge integrity: Segment Sum - Corporate + Adjustments = Total Equity within 1%. If failed: refuse delivery; check bridge arithmetic.
Tool Fallbacks
Per-tool failure modes and fallback actions are tabulated in references/tool-fallbacks.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) percontracts/output-frontmatter-schema.md. - Snapshot synthesis: after writing the deliverable, update the two-tier snapshot and classify findings as
[FACT]/[DEDUCTED]/[VIEW]— seecontracts/snapshot-synthesis.md. - Session archival: record the run under
sessions/{YYYY-MM-DD}/and updatesessions/INDEX.mdpercontracts/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 Mode | Action | User-Facing Message |
|---|---|---|
| No segment data | Company reports as single segment | " reports as a single operating segment — SOTP not applicable. Use DCF or comps." |
| Missing segment financials | Proceed with available data; flag gaps | "Segment financials incomplete for ; SOTP based on partial data." |
Files (agentii-investment-intelligence)
-
references
-
formula-sheet.md 280 B
# Formula Sheet Canonical formulas for this model. All figures must tie to XBRL facts or cited filing pages. - Revenue growth = (Rev_t / Rev_{t-1}) - 1 - Gross margin = GrossProfit / Revenues - Operating margin = OperatingIncomeLoss / Revenues - FCF = OperatingCashFlow - CapEx -
institutional-defaults.md 302 B
# Institutional Defaults - Lookback: per skill `temporal_scope`. - Currency: reporting currency from the first XBRL fact `unit` (no conversion at v1.0). - XBRL: `is_primary = true` default; `?include_all_sources=true` only for audit/reconciliation. - Dedup: API-side; do not re-implement client-side. -
methodology.md 1.7 KB
# sotp-valuation — Methodology Detail Extracted from SKILL.md for progressive disclosure (US5). ## Retrieval Strategy Follow the retrieval strategy decision tree in `contracts/retrieval.md`. This skill uses: - Branch (a) for structured segment financials via `search_xbrl_facts` + `get_statement_structure` . - Branch (c) for MD&A segment narrative via `read_source_outline` → `read_source_pages`. - Branch (d) for simple lookups via `get_realtime_quote` / `search_companies`. ## Protocol 1. **Pre-retrieval**: `get_company_fiscal_calendar/{ticker}` then `get_ticker_coverage/{ticker}` . 2. **Segment discovery**: call `get_statement_structure(accession_number)` to identify segment-level concepts. Navigate from `Revenues` → segment children (ProductOrServiceAxis members). 3. **Segment financials**: query `search_xbrl_facts` for each segment's revenue, operating income, EBITDA, assets. 4. **Segment narrative**: `search_documents` + `read_source_pages` for MD&A segment discussion — business description, competitive position, growth outlook. 5. **Segment valuation**: assign appropriate multiple per segment based on industry comparables from `_cross/` outputs or sector norms: - High-growth segments → EV/Revenue - Mature/profitable segments → EV/EBITDA - Financial segments → P/B - Asset-heavy segments → EV/EBITDA 6. **Corporate adjustments**: subtract unallocated corporate overhead (capitalized at segment multiple), net debt, minority interest, add excess cash. 7. **SOTP bridge**: Segment A value + Segment B value + ... - Corporate Overhead - Net Debt + Cash = Total Equity Value ÷ Shares Outstanding = Per-Share Value. 8. **Output**: per with YAML frontmatter . -
modes.md 696 B
# sotp-valuation — Analyst Mode Definitions Derived from the skill's own methodology structure (scripts/mode_backfill.py, spec 046 M1). ### Mode: preflight **Objective**: Preflight analysis per the skill's methodology (see SKILL.md sections). ### Mode: triggers **Objective**: Triggers analysis per the skill's methodology (see SKILL.md sections). ### Mode: defaults **Objective**: Defaults analysis per the skill's methodology (see SKILL.md sections). ### Mode: methodology **Objective**: Methodology analysis per the skill's methodology (see SKILL.md sections). ### Mode: retrieval-scope **Objective**: Retrieval Scope analysis per the skill's methodology (see SKILL.md sections). -
output-structure.md 1.3 KB
# sotp-valuation — Output Structure (full template) Extracted from SKILL.md for progressive disclosure (US5). The skill body keeps a compact summary under `## Output Structure`. 1. **Executive Summary** — SOTP per-share value, premium/discount to current price, key value driver segment 2. **Segment Identification** — segments discovered via statement tree, business description per segment 3. **Segment Financials** — revenue, EBITDA, operating income, assets per segment with growth rates 4. **Segment Valuation** — multiple selection rationale, comparable companies, per-segment enterprise value 5. **SOTP Bridge** — segment-by-segment value → corporate overhead → net debt → cash → equity value → per-share 6. **Sensitivity** — per-share value at ±1x multiple for key segments 7. **Coverage Gaps & Citations** **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`. -
tool-fallbacks.md 388 B
# sotp-valuation — Tool Fallbacks Extracted from SKILL.md for progressive disclosure (US5). | Tool | Failure Mode | Fallback Action | |------|-------------|-----------------| | `get_statement_structure` | Tree unavailable | Use `search_documents` for "segment" keyword in 10-K MD&A | | `read_source_pages` | SQL error | Use `search_documents` for segment narrative; flag as partial | -
validation-checklist.md 313 B
# Validation Checklist - [ ] Every input figure cites a filing page or XBRL accession. - [ ] Recalc/audit returns no hardcoded-over-formula cells. - [ ] Statement identities balance within rounding. - [ ] Period labels match `get_company_fiscal_calendar`. - [ ] Coverage gaps are surfaced, not silently dropped.
-
-
SKILL.md 7.1 KB
--- name: sotp-valuation multi_ticker_semantics: target_with_optional_peers description: Sum of the Parts valuation, segment-based valuation, conglomerate valuation, business segment analysis, breakup value, segment sum valuation, parts worth more than whole, hidden asset value temporal_scope: default_quarters: 4 max_quarters: 12 description: "Latest segment data with up to 12 quarters for segment trend" allowed_tools: - search_xbrl_facts - search_companies - get_realtime_quote - search_documents - read_source_outline - read_source_deep_outline - read_source_pages - get_statement_structure retrieval_scope: unstructured_document_search min_tool_diversity: 7 --- # Sum of the Parts (SOTP) Valuation Values each business segment independently and sums for total enterprise value. Essential for conglomerates (GE, MMM, HON), multi-segment tech (AMZN: AWS + Retail + Ads, GOOG: Search + Cloud + YouTube), and holding companies. SOTP often reveals "hidden value" when the market undervalues individual segments. ## Preflight Run the canonical pre-flight sequence — MCP health probe, ticker resolution, workspace `style.md` override, memory load, and coverage check. See `contracts/preflight.md`. Include the `X-Agentii-Trace` header on every tool call per `contracts/x-agentii-trace-header.md`. ## Triggers - sum of the parts valuation {ticker} - SOTP analysis {ticker} - segment-based valuation {ticker} - breakup value {ticker} - conglomerate valuation {ticker} - parts worth more than whole {ticker} - segment sum of parts {ticker} - business segment valuation {ticker} - hidden asset value {ticker} - SOTP {ticker} ## Defaults | Parameter | Default | Notes | |-----------|---------|-------| | segment_discovery | statement_tree | Use get_statement_structure for segment identification | | peer_multiples | sector | Apply sector-appropriate multiples per segment | | include_corporate | true | Subtract corporate overhead, net debt | ## Methodology ### Retrieval Scope `unstructured_document_search` — SOTP requires segment financials from XBRL (structured) AND segment narrative/business description from MD&A (unstructured) for appropriate multiple selection. ### Retrieval Strategy See `contracts/retrieval.md` for the canonical decision tree; skill-specific retrieval detail is in `references/methodology.md`. ### Temporal Scope Default lookback: 4 fiscal quarter(s); maximum: 12. The default balances recency against the trend window this analysis requires. ### Tool Allowlist Per frontmatter `allowed_tools`: - `search_xbrl_facts` — primary structured financial facts (is_primary default) - `search_companies` — ticker resolution + company context (entity-alias fuzzy match) - `get_realtime_quote` — latest market price for valuation cross-checks - `search_documents` — Layer 1 document discovery (page-level silver records) - `read_source_outline` — Layer 2 lightweight page map (description + keywords) - `read_source_deep_outline` — Layer 2.5a deep page map (table_titles/drivers/metrics) - `read_source_pages` — Layer 3 deep read of selected pages with table markers - `get_statement_structure` — XBRL presentation tree (concept hierarchy) ### Protocol Step-by-step execution detail is in `references/methodology.md`. ## Deliverable Chain **Inputs** → **Build** → **Validate** → **Output** → **Next** 1. **Inputs**: resolved ticker + structured facts (`search_xbrl_facts`, `get_company_financials`) and any filing pages from the three-layer protocol. 2. **Build**: write the `.md` sum-of-the-parts valuation (segment multiples, conglomerate-discount analysis) per `## Output Structure`. 3. **Validate**: run the `## Validation Gates` below. 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. ## Output File Write the final deliverable to `{ticker}/{YYYY-MM-DD_HHMM}_sotp-valuation_{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`. ## Validation Gates 1. **Segment coverage**: segment revenues must sum to ≥80% of total reported revenue. *If failed*: flag segments representing <80% of revenue; note "significant unallocated revenue." 2. **Valuation consistency**: segment multiples justified by at least one comparable company or sector norm per segment. *If failed*: flag segments with unsubstantiated multiples. 3. **SOTP bridge integrity**: Segment Sum - Corporate + Adjustments = Total Equity within 1%. *If failed*: refuse delivery; check bridge arithmetic. ## Tool Fallbacks Per-tool failure modes and fallback actions are tabulated in `references/tool-fallbacks.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 Mode | Action | User-Facing Message | |-------------|--------|---------------------| | No segment data | Company reports as single segment | "{ticker} reports as a single operating segment — SOTP not applicable. Use DCF or comps." | | Missing segment financials | Proceed with available data; flag gaps | "Segment financials incomplete for {segment_names}; SOTP based on partial data." |
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.