Stock Valuation

v3.0.0

Generate comprehensive company valuation reports as polished HTML/PDF. Use when user asks for stock valuation, company analysis, investment thesis, or deep-d...

1· 406·9 current·10 all-time
byXin Liu@xliucs
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description match the code and instructions: the scripts fetch financial data (yfinance), compute DCF/technicals, generate charts and an HTML/PDF report. The declared purpose (valuation/reporting) aligns with the code and runtime steps.
Instruction Scope
SKILL.md directs the agent to run local Python scripts and to perform web research (Seeking Alpha, X/Twitter, analyst pages) and save results to /tmp. This is within scope for generating qualitative research for a valuation report, but it does require the agent's web_search/web_fetch and (optionally) a 'bird' CLI to access social posts. The instructions do not ask for unrelated files or secrets, but they do rely on the agent's ability to fetch third-party web pages (which may require credentials or CLI tools if those services are rate-limited or protected).
Install Mechanism
No install spec is included (instruction-only install path) and all code is bundled with the skill. Scripts depend on standard Python packages (yfinance, matplotlib, lxml, pandas, numpy) but there are no remote download URLs or extract steps. Risk from install mechanism is low.
Credentials
The skill requests no environment variables or secrets. It does assume certain helper tools are present: a 'uv run' wrapper (used in examples), optional 'bird' CLI for X/Twitter, and a macOS Google Chrome binary path for PDF printing. These are tooling assumptions (not requested credentials) and may fail on environments without them; they do not appear to demand unrelated credentials.
Persistence & Privilege
The skill does not request always: true and does not alter other skills or system-wide settings. Scripts write caches and outputs to /tmp and to /tmp/stock_valuation_cache — this is a local, limited persistence scope appropriate for the task.
Assessment
This skill appears coherent for producing valuation reports, but note a few practical points before installing: (1) it expects Python libraries (yfinance, pandas, matplotlib, lxml, numpy) to be available — the SKILL.md uses a 'uv run --with' pattern to indicate dependency injection; ensure your runtime supports that. (2) Qualitative research steps will fetch external web pages (Seeking Alpha, Twitter/X, analyst pages) — if you have credentials or rate limits for those services, the tool may attempt to use existing CLI/tools or agent connectors; review how web_search/web_fetch and any Twitter CLI behave in your environment. (3) The PDF step uses a hardcoded macOS Chrome path and may need adjustment on Linux/Windows. (4) The skill writes cache and output files under /tmp; if you run in a multi-tenant environment, consider the privacy implications of storing intermediate data in a shared /tmp. If you need stronger assurance, verify the bundled scripts locally and run them in a sandboxed environment first.

Like a lobster shell, security has layers — review code before you run it.

latestvk97eet4kr7z2yqw3at16aa64mh82hqy7
406downloads
1stars
5versions
Updated 1mo ago
v3.0.0
MIT-0

Stock Valuation Report Generator v3.0

Generate professional valuation reports with ONE command. The pipeline auto-detects peers, runs all 8 data scripts in parallel, and produces a polished HTML report.

Quick Start (One Prompt)

User: "Generate a valuation report for AAPL"

Agent steps:

Step 1: Run Data Pipeline

uv run --with yfinance,matplotlib,lxml python3 $SKILL_DIR/scripts/run_pipeline.py TICKER
# Outputs: /tmp/TICKER_data.json

Options:

# Specify peers manually
uv run --with yfinance,matplotlib,lxml python3 $SKILL_DIR/scripts/run_pipeline.py AAPL --peers MSFT GOOG META

Step 2: Qualitative Research (MANDATORY)

Run these searches in parallel and collect the results into /tmp/TICKER_research.json:

2a. Seeking Alpha Research

web_search "{TICKER} seekingalpha analysis 2025 2026"
web_search "seekingalpha {TICKER} strong buy OR turning bullish OR high growth"

Extract 3-5 articles: title, date, rating (Strong Buy/Buy/Hold/Sell), one-sentence thesis.

2b. X/Twitter Sentiment

# If bird CLI available:
bird search '$TICKER' -n 15 --plain
# Otherwise:
web_search "{TICKER} stock twitter sentiment price target"

Extract 3-5 notable posts: username, bull/bear stance, key argument, any specific price target.

2c. Analyst Consensus

web_search "{TICKER} analyst price target consensus 2026"

Extract: consensus rating, average/low/high price targets.

2d. Earnings & Revenue

web_search "{TICKER} latest earnings call revenue composition segments"
web_fetch "BEST_EARNINGS_URL" --maxChars 6000

Extract: revenue by segment (amount, % of total, YoY growth), geographic breakdown, funded accounts/AUM/key KPIs, management guidance.

2e. Catalysts & Risks

Synthesize from all research above. Aim for 5-7 catalysts and 5-7 risks (with mitigants).

Save as Research JSON

Save to /tmp/TICKER_research.json:

{
  "sa_articles": [
    {"title": "Article Title", "date": "Dec 2025", "rating": "Strong Buy", "summary": "Key thesis in one sentence"}
  ],
  "twitter_sentiment": [
    {"user": "FinanceGuy", "stance": "Bullish", "summary": "Key argument or price target"}
  ],
  "analyst_consensus": {"rating": "Strong Buy", "avg_pt": 200.0, "low_pt": 150.0, "high_pt": 250.0},
  "catalysts": [
    "Q4 earnings beat could trigger re-rating (reporting Mar 19)",
    "Geographic expansion into new markets reducing concentration risk"
  ],
  "risks": [
    "Regulatory risk in key markets. Mitigant: diversified across 6+ jurisdictions",
    "Trading volume cyclicality. Mitigant: interest income provides stable base"
  ],
  "revenue_composition": [
    {"stream": "Product Sales", "amount": "$50B", "pct": "52%", "trend": "Strong growth", "notes": "Core hardware"}
  ],
  "geographic_data": [
    {"market": "Americas", "new_accounts_pct": "45%", "avg_deposit": "$50K", "highlights": "Largest market"}
  ]
}

Step 3: Generate Report

uv run python3 $SKILL_DIR/scripts/generate_report.py /tmp/TICKER_data.json --research /tmp/TICKER_research.json
# Outputs: /tmp/TICKER_report.html

Step 4: Convert to PDF & Deliver

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
  --headless --disable-gpu --print-to-pdf=/tmp/TICKER_report.pdf \
  --no-pdf-header-footer /tmp/TICKER_report.html

Deliver the PDF (and optionally HTML) to the user.

Script Reference

ScriptDepsOutput
run_pipeline.py TICKER [--peers P1 P2] [--output]yfinance,matplotlib,lxmlMerged JSON → file
generate_report.py DATA.json [--output] [--research](none)HTML report
fetch_fundamentals.py TICKER [PEERS...]yfinanceFinancials, ratios, peer data
fetch_technicals.py TICKERyfinanceSMAs, RSI, MACD, 52W range
fetch_historical_valuation.py TICKERyfinance,lxml5yr P/E history, percentile
dcf_model.py TICKER [--wacc] [--growth-*]yfinance10yr DCF bear/base/bull
fetch_insiders.py TICKERyfinanceInsider txns + institutional holders
fetch_options.py TICKERyfinanceP/C ratio, IV, unusual vol
fetch_earnings_calendar.py TICKERyfinanceNext earnings date
generate_charts.py TICKERyfinance,matplotlib4 PNGs → /tmp/
detect_peers.py TICKER [--count N]yfinanceAuto-detected peers
filter_tweets.py (stdin)(none)Filtered tweet JSON

Report Sections

The generated report includes all of these (in order):

  1. Header (company name, ticker, date, data sources)
  2. Earnings Badge (next earnings date)
  3. KPI Cards (price, MCap, P/E, margins — 2 rows of 4)
  4. Quarterly Trends (with QoQ growth arrows ↑↑/↑/→/↓)
  5. Revenue Composition (segment breakdown table + insight callout)
  6. Geographic Expansion (market-by-market table)
  7. Technical Analysis (6-panel: RSI, SMAs, MACD, 52W range)
  8. Charts (2×2 grid: price+SMA, revenue, margins, PE history)
  9. Historical Valuation (5Y PE avg, range, percentile + mean reversion callout)
  10. Peer Comparison (full table with highlight row + discount callout)
  11. Options Sentiment (4 KPI cards + interpretation)
  12. Insider Activity
  13. Seeking Alpha Research (bullish/cautious grouping + consensus callout)
  14. X/Twitter Sentiment (notable takes + consensus callout)
  15. Catalysts (5-7 items, most important first)
  16. Risks (5-7 items with mitigants)
  17. Valuation Framework (P/E multiples, mean reversion, DCF)
  18. Price Target Scenarios (bear/base/bull with math)
  19. Investment Thesis (specific, opinionated verdict)
  20. Disclaimer
  21. Footer

Rules

  • NEVER include personal position data, portfolio info, or user-identifiable information
  • All scripts work with uv run --with <deps> (no pip install needed)
  • Charts are embedded as base64 in HTML for portability
  • If any data script fails, its section shows gracefully degraded (no broken HTML)

Comments

Loading comments...