---
name: What If
slug: what-if
category: Data
description: What If analyzes stock scenarios using structured financial data. Use it to build base, bull, and bear cases and test sensitivity to revenue, costs, margins, rates, currency, and commodity prices.
github: "https://github.com/agentii-ai/agentii-investment-intelligence/tree/main/plugins/vertical-plugins/business-intelligence/skills/agentii/what-if"
language: Python
stars: 203
forks: 16
install: "npx degit https://github.com/agentii-ai/agentii-investment-intelligence/tree/main/plugins/vertical-plugins/business-intelligence/skills/agentii/what-if ~/.claude/skills/what-if"
installs_to: ~/.claude/skills/what-if
source_path: plugins/vertical-plugins/business-intelligence/skills/agentii/what-if/SKILL.md
collection_size: 21
category_size: 762
collection_url: "https://dirskills.com/collections/agentii-ai/agentii-investment-intelligence"
added: 2026-09-05T05:29:54.337Z
last_synced: 2026-09-05T05:29:54.337Z
canonical_url: "https://dirskills.com/skills/what-if"
---

# What If

What If analyzes stock scenarios using structured financial data. Use it to build base, bull, and bear cases and test sensitivity to revenue, costs, margins, rates, currency, and commodity prices.

**Install:**

```bash
npx degit https://github.com/agentii-ai/agentii-investment-intelligence/tree/main/plugins/vertical-plugins/business-intelligence/skills/agentii/what-if ~/.claude/skills/what-if
```

## README

# what-if

## Triggers

- What-if scenario analysis
- scenario tree construction
- base bull bear case
- sensitivity to macro variables
- revenue scenario modeling
- cost scenario analysis
- margin impact scenarios
- interest rate sensitivity
- currency impact scenarios
- commodity price scenarios

## Defaults

| Parameter | Default Value | Rationale |
|-----------|---------------|-----------|
| ticker | (required) | Stock symbol to analyze |
| lookback_quarters | 4 | Standard lookback for this skill type |

## Methodology

### 1. Retrieval Scope

This skill operates with `retrieval_scope: structured_only`. It performs structured data retrieval only (XBRL facts, financials, earnings calendar) — no unstructured document search. Document-retrieval tools are excluded from `allowed_tools`.

### 2. Retrieval Strategy

Follows the retrieval strategy decision tree in `contracts/retrieval.md`. Primary branch: **(a) Structured Data Query**. Resolve the canonical ticker first (exact → fuzzy alias → share-class) before any data call.

### 3. Temporal Scope

Default lookback: 4 fiscal quarter(s); maximum: 12. The default balances recency against the trend window this analysis requires.

### 4. Tool Allowlist

Per frontmatter `allowed_tools`:

- `search_companies` — ticker resolution + company context (entity-alias fuzzy match)
- `search_xbrl_facts` — primary structured financial facts (is_primary default)
- `get_company_financials` — consolidated IS/BS/CF highlights
- `search_earnings_calendar` — EPS actual/estimate/surprise + report dates
- `get_company_profile` — sector/industry classification + metadata
- `list_xbrl_concepts` — XBRL concept discovery for non-standard line items (`namespace` param; default `us-gaap` — use `ifrs-full` for foreign filers)

### 5. Protocol

1. **Pre-flight (mandatory)**: call `get_company_fiscal_calendar/{ticker}` then `get_ticker_coverage/{ticker}`; route on coverage.
2. **Concept discovery** (non-standard concepts only): `list_xbrl_concepts(query=<term>, ticker=<T>)`.
3. **Structured retrieval**: `search_xbrl_facts(ticker, concept=[...], fiscal_year=[...])` (is_primary default) and/or `get_company_financials/{ticker}`.
4. **Batch rule**: 3+ same-tool queries → consolidate via `batch_search` (≤8 sub-queries).
5. **Output**: write the deliverable per `## Output File`, then append to `agentii.md`.

## Output File

Write the final deliverable to `{ticker}/{YYYY-MM-DD_HHMM}_what-if_{affix}.md` .

## Output Structure

1. **Executive Summary** (≤200 words) — headline conclusions for the analysis.
2. **Data Sources** — filings + structured endpoints used, with `{ticker} {citation_id} page<N>` citations.
3. **Analysis** — the core findings, tables, and commentary for this dimension.
4. **Key Metrics** — the quantitative results with QoQ/YoY context where relevant.
5. **Coverage Gaps & Citations** — data not retrievable + citation index.

**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`.

## 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`.

## 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

| Error | Action |
|-------|--------|
| Ticker not found | Suggest checking spelling or trying list_coverage |
| No data available | Flag in Coverage Gaps, proceed with available data |
| API key invalid | Direct user to agentii.ai/api-keys |
| MCP server unreachable | Retry once; if persistent, halt with AGENTII_MCP_UNREACHABLE |

## References

- **Methodology**: [`references/methodology.md`](references/methodology.md) — tool fallbacks, retrieval strategy, analysis framework
- **Output Structure**: [`references/output-structure.md`](references/output-structure.md) — detailed deliverable sections and ordering
