bull-bear
$
npx mdskill add openai/plugins/bull-bearBuilds bull/bear/base case scenarios for any company.
- Generates upside/downside projections anchored to current stock price.
- Integrates discover_companies and get_stock_prices APIs for data.
- Calculates historical financial baselines from eight quarters.
- Delivers structured scenario frameworks with firm attribution.
SKILL.md
.github/skills/bull-bearView on GitHub ↗
---
name: bull-bear
description: Bull/bear/base case scenario framework for a given company
---
Build a bull/bear/base case scenario framework for the company named in the user's request. If no ticker or company is provided, ask for one before proceeding.
**Before starting, read `../data-access.md` for data access methods and `../design-system.md` for formatting conventions.** Follow the data access detection logic and design system throughout this skill.
Follow these steps:
## 1. Company Lookup
Look up the company by ticker using `discover_companies`. Capture:
- `company_id`
- `latest_calendar_quarter` — anchor for all period calculations below (see `../data-access.md` Section 1.5)
- `latest_fiscal_quarter`
- Firm name for report attribution (default: "Daloopa") — see `../data-access.md` Section 4.5
## 1b. Current Stock Price
Get the current stock price using `get_stock_prices` (see `../data-access.md` Section 1.7). Pass `company_id` and `dates` for the 3 most recent calendar days — use the most recent returned close price. This is the anchor for scenario comparison: each scenario's implied value will be compared against this price to show upside/downside.
## 2. Historical Financial Baseline
Calculate 8 quarters backward from `latest_calendar_quarter`. Pull:
- Revenue
- Gross Profit / Gross Margin %
- Operating Income / Operating Margin %
- EBITDA (if not reported, compute as Operating Income + D&A — label "(calc.)")
- Net Income
- Diluted EPS
- Operating Cash Flow
- CapEx
- Free Cash Flow (compute as OCF - CapEx — label "(calc.)")
- Segment-level revenue breakdowns
- Geographic revenue breakdowns
Compute trailing 4-quarter totals for revenue, EBITDA, net income, EPS, and FCF — these are the baseline the scenarios build from.
Flag any one-time items that distort quarters.
## 3. Key Operating KPIs
First, think about what the most important KPIs are for THIS specific company based on its business model and what drives its valuation. For example:
- **SaaS/cloud**: ARR, net revenue retention, RPO/cRPO, customers >$100K
- **Consumer tech**: DAU/MAU, ARPU, engagement metrics, installed base, paid subscribers
- **E-commerce/marketplace**: GMV, take rate, active buyers/sellers, order frequency
- **Retail**: same-store sales, store count, average ticket, transactions
- **Telecom/media**: subscribers, churn, ARPU, content spend
- **Hardware**: units shipped, ASP, attach rate
- **Financial services**: AUM, NIM, loan growth, credit quality metrics
- **Pharma/biotech**: pipeline stage, patient starts, scripts, market share
Search for those specific KPIs by name and pull them. These are the building blocks for bottoms-up scenario math.
Also pull capital allocation data: share count, buyback amounts, dividends.
## 4. Qualitative Research
Search SEC filings/documents across multiple queries. If any search returns empty, try alternative keywords before giving up.
- **Risk factors**: Try "risk", "uncertainty", "challenge"; fallback to "adverse", "headwind"
- **Growth drivers**: Try "growth", "opportunity", "expansion"; fallback to "momentum", "strong demand"
- **Competitive dynamics**: Try "competition", "market share"; fallback to "competitive"
- **Management outlook**: Try "outlook", "guidance", "expect"; fallback to "anticipate", "forward"
- **Capital allocation**: Try "repurchase", "dividend"; fallback to "buyback", "capital return"
- **Macro/regulatory**: Try "tariff", "regulatory"; fallback to "geopolitical", "compliance"
## 5. Consensus Positioning (if available)
If consensus estimates are available (see `../data-access.md` Section 3), note:
- Where consensus revenue/EPS sits relative to your base case
- Whether the market is positioned closer to your bull or bear case
- Recent estimate revision trends (optimistic vs pessimistic drift)
If consensus data is not available, skip this section.
## 6. Construct Three Scenarios
For each scenario, build a **bottoms-up revenue model** showing key segment or product-level assumptions (e.g., units x ASP, subscribers x ARPU, segment growth rates). Don't just state a revenue range — show the math that gets there.
### Bull Case
- Identify the most favorable realistic trajectory
- Key assumptions: revenue acceleration, margin expansion, KPI improvement, favorable macro/competitive shifts
- Quantify using historical highs and growth rates as anchors
- Show segment-level build: what needs to go right in each business line
- List specific catalysts that could drive this outcome
- Consider how capital allocation (buybacks) amplifies EPS upside
### Base Case
- Extrapolate current trends forward
- Key assumptions: continuation of recent growth rates, stable margins, steady KPI progression
- This should be the "most likely" scenario grounded in the last 4-8 quarters of data
- Show segment-level build using current trend rates
- Reference historical analogs if applicable (e.g., prior product cycles, similar macro environments)
### Bear Case
- Identify realistic downside risks
- Key assumptions: revenue deceleration, margin compression, KPI deterioration, competitive/macro headwinds
- Quantify using historical lows, risk factor analysis, and specific cost headwinds from filings (e.g., tariff drag, regulatory impact)
- Show segment-level build: what breaks in each business line
- List specific risks that could drive this outcome
- Consider how capital allocation behavior changes in a downturn (buybacks may accelerate at lower prices)
### Probability Weighting
Don't default to 25/50/25. Assign probabilities informed by the most recent data points:
- If recent results are accelerating, weight bull higher
- If macro headwinds are intensifying, weight bear higher
- Explain your reasoning for the weighting
**Be honest about which scenario is most likely.** Don't default to a bullish framing or split the difference to seem balanced. If the data suggests the bear case is more probable, say so clearly. If the bull case requires multiple things to go right simultaneously, acknowledge that compounds the risk. The reader needs your honest assessment, not diplomatic equivocation.
## 7. Save Report
Save to `reports/{TICKER}_bull_bear.html` using the HTML report template from `../design-system.md`. Write the full analysis as styled HTML with the design system CSS inlined. This is the final deliverable — no intermediate markdown step needed.
The report should include:
- Company overview and current state summary
- Historical financial data table (8 quarters, Daloopa citations, including computed EBITDA/FCF)
- Trailing 4-quarter totals as the scenario baseline
- Segment and geographic revenue tables
- KPI trends table
- Capital allocation summary (buybacks, dividends, share count)
- Three scenario sections each with:
- Key assumptions (bulleted)
- Bottoms-up segment revenue build
- Implied revenue/margin/EPS trajectory
- Implied KPI trajectory
- Catalysts / risks specific to that scenario
- Probability-weighted summary with reasoning
- Key risk factors and growth drivers from filings (with document citations)
- Summary comparison table across scenarios
- Key swing factors section — the 3-5 variables that most determine which scenario plays out
All financial figures must use Daloopa citation format: `<a href="https://daloopa.com/src/{fundamental_id}">$X.XX million</a>`
Tell the user where the HTML report was saved.
Highlight: which scenario you believe is most likely and why, the key swing factors between bull and bear cases, and where you think the market is currently positioned (closer to bull, base, or bear). If the current stock price implies an overly optimistic or pessimistic scenario, flag it.
More from openai/plugins
- accessibility-and-inclusive-visualizationMake data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.
- agent-browserBrowser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.
- agent-browser-verifyAutomated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass/fail before continuing.
- agents-sdkBuild AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.
- ai-elementsAI Elements component library guidance — pre-built React components for AI interfaces built on shadcn/ui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.
- ai-gatewayVercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.
- ai-generation-persistenceAI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation
- ai-sdkVercel AI SDK expert guidance. Use when building AI-powered features — chat interfaces, text generation, structured output, tool calling, agents, MCP integration, streaming, embeddings, reranking, image generation, or working with any LLM provider.
- aiq-deploy|
- aiq-research|