Stock Evaluator
by @demandgap
Comprehensive evaluation of potential stock investments combining valuation analysis, fundamental research, technical assessment, and clear buy/hold/sell recommendations. Use when the user asks about buying a stock, evaluating investment opportunities, analyzing watchlist candidates, or requests stock recommendations. Provides specific entry prices, position sizing, and conviction ratings.
clawhub install stock-evaluatorπ About This Skill
name: stock-evaluator-v3 description: Comprehensive evaluation of potential stock investments combining valuation analysis, fundamental research, technical assessment, and clear buy/hold/sell recommendations. Use when the user asks about buying a stock, evaluating investment opportunities, analyzing watchlist candidates, or requests stock recommendations. Provides specific entry prices, position sizing, and conviction ratings.
Stock Evaluator (Enhanced)
β οΈ CRITICAL: MANDATORY DELIVERABLES CHECKLIST
Every analysis MUST include ALL of these:If you cannot complete any item, STOP and ask for clarification.
β οΈ CRITICAL: DATA INTEGRITY RULES
ZERO FABRICATION POLICY
NEVER fabricate, estimate, or hallucinate ANY numeric data point. Every metric in the dashboard MUST come from: 1. A web search result with a cited source 2. Company filings (10-K, 10-Q, earnings reports) 3. Official financial data providersIf data cannot be found β Use "N/A" or "--"
MANDATORY WEB SEARCHES (minimum per analysis)
You MUST perform these searches before populating the dashboard:
| Search # | Query Template | Data Retrieved | |----------|---------------|----------------| | 1 | "[TICKER] stock price market cap P/E ratio" | Price, Market Cap, P/E | | 2 | "[TICKER] ROE ROA profit margin 2024 annual report" | Financial ratios | | 3 | "[TICKER] revenue growth earnings growth FY2024" | Growth rates (REPORTED) | | 4 | "[TICKER] Piotroski F-Score" | F-Score (or calculate) | | 5 | "[TICKER] insider trading SEC Form 4 2025" | Insider buys/sells | | 6 | "[TICKER] short interest percentage float" | Short interest | | 7 | "[TICKER] RSI MACD 50-day 200-day moving average beta volatility" | Technical indicators | | 8 | "[TICKER] analyst price target consensus" | Analyst targets |
DATA SOURCE HIERARCHY
Use sources in this priority order: 1. Official company filings (SEC EDGAR, company investor relations) 2. Exchange data (NYSE, NASDAQ, LSE official) 3. Verified financial data (Yahoo Finance, Google Finance, MarketWatch) 4. SEC Form 4 (for insider trading ONLY) 5. FINRA/exchange (for short interest ONLY)
PROHIBITED
HANDLING UNAVAILABLE DATA
| Situation | Action | Display |
|-----------|--------|---------|
| Metric not found after searching | Display "N/A" | value: "N/A" |
| Data is outdated (>1 year old) | Note the date | value: "15.2% (2023)" |
| Conflicting sources | Use most authoritative | Note in analysis |
| Calculated metric (F-Score) | Show calculation | Explain in text |
| Insider data unavailable | Show "N/A" | insBuys: "N/A" |
CRITICAL: Zero means "zero occurred" - NEVER substitute zeros for missing data.
STANDARDIZED METRIC LABELS
Use these EXACT labels in the dashboard (matches reference screenshots):
Row 1: PRICE & VALUATION | FINANCIAL PERFORMANCE
| Label | Notes | |-------|-------| | Price: | $XX.XX or β¬XX.XX | | Market Cap: | $XXB or β¬XXB | | Trailing P/E: | XX.XX | | Forward P/E: | XX.XX | | Subsector P/E: | XX.XX or N/A | | PEG (1Y): | X.XX with benchmark (<1) | | ROE: | XX.XX% with benchmark (>20%) | | ROA: | XX.XX% with benchmark (>10%) | | Profit Margin: | XX.XX% with benchmark (>20%) | | Operative Margin: | XX.XX% with benchmark (>20%) - NOTE: "Operative" not "Operating" | | Gross Margin: | XX.XX% with benchmark (>40%) | | ROIC: | XX.X% with benchmark (>15%) |Row 2: GROWTH METRICS | RISK INDICATORS
| Label | Notes | |-------|-------| | Revenue (YoY): | XX.XX% with benchmark (>10%) - REPORTED only | | Earning (YoY): | XX.XX% with benchmark (>0%) - REPORTED only | | EPS (TTM): | $X.XX | | Forward EPS: | $X.XX | | Growth Rates: | Capped: X.X% / Uncapped: X.X% | | Analyst Target: | $XX.XX | | CRS (0-1): | X.XX with benchmark (Medium) | | Debt/Equity (mrq): | X.XX with benchmark (0.5-1) | | Piotroski F: | X with benchmark (β₯7) | | Altman Z: | X.XX with benchmark (>3) | | Beneish M: | X.XX with benchmark (<-1.78) | | Value Trap: | XX (Label) |Row 3: LIQUIDITY & FREE CASH FLOW | INSIDER & SENTIMENT & CLASS
| Label | Notes | |-------|-------| | Current Ratio: | X.XX with benchmark (1-2) | | Cash: | $X.XB | | Debt: | $X.XB or N/A | | FCF Growth 5Y: | XX.X% with benchmark (>5%) | | FCF Yield: | X.XX% with benchmark (>4%) | | FCF Margin: | XX.XX% with benchmark (>15%) | | Payout Ratio: | XX.XX% with benchmark (<50%) | | Buys (12M): | X - from SEC Form 4 or N/A | | Sells (12M): | X - from SEC Form 4 or N/A | | Net Shares (12M): | +/-XXK - from SEC Form 4 or N/A | | Short Int (%): | X.X% | | Sentiment / Articles: | +X.XXX / XX (Positive/Negative) | | Stock: [Type] + Div Yield: | Combined: "Stock: Growth" + "Div Yield: X.XX%" | | Sector/Industry: | Combined: "Sector / Industry" |Row 4: QUALITY SCORES | MOAT & OTHER
| Label | Notes | |-------|-------| | CQVS: | XX.XX with benchmark range | | Label: | Strong/Moderate/Weak | | Valuation: | XX.XX | | Quality: | XX.XX | | Strength: | XX.XX | | Integrity: | XX.XX | | Buffett Moat: | X with benchmark (4-7) | | Greenblatt (MF): | EY: X.X% / ROC: X.X% or N/A | | Beta: + Vol 1Y: | Combined: "Beta: X.XX" + "Vol 1Y: XX.X%" | | Earnings Predict.: | XX.X% with benchmark (>80%) | | Drawdown (5Y): | -XX.X% with label (Low/Mid/High) | | Completeness: + Data Quality: | Combined: "XX.X%" + "High/Medium/Low" |STANDARDIZED BENCHMARKS (Single Source of Truth)
Use these EXACT thresholds for color coding:
| Metric | Green (Good) | Yellow (Neutral) | Red (Warning) | |--------|--------------|------------------|---------------| | ROE | >20% | 10-20% | <10% | | ROA | >10% | 5-10% | <5% | | Profit Margin | >20% | 10-20% | <10% | | Operative Margin | >20% | 10-20% | <10% | | Gross Margin | >40% | 25-40% | <25% | | ROIC | >15% | 8-15% | <8% | | Debt/Equity | <1 | 1-2 | >2 | | Current Ratio | 1-2 | 0.5-1 or 2-3 | <0.5 or >3 | | Piotroski F | β₯7 | 4-6 | β€3 | | Altman Z | >2.99 | 1.81-2.99 | <1.81 | | Beneish M | <-2.22 | -2.22 to -1.78 | >-1.78 | | PEG (1Y) | <1 | 1-2 | >2 | | RSI (14) | 30-50 | 50-70 | >70 or <30 | | Short Interest | <5% | 5-10% | >10% | | FCF Yield | >5% | 2-5% | <2% | | FCF Margin | >15% | 10-15% | <10% | | Dividend Yield | >2% | 1-2% | <1% or >8% | | Value Trap | 0-39 | 40-59 | 60-100 | | Max Drawdown | >-30% | -30% to -50% | <-50% | | Revenue Growth | >10% | 0-10% | <0% | | Earnings Growth | >0% | -10% to 0% | <-10% |
Overview
This skill provides institutional-grade evaluation of potential stock investments. Unlike portfolio analysis which reviews existing positions, this skill evaluates stocks you're considering buying or deciding whether to purchase.
The evaluation answers:
Default Currency: β¬ (Euro)
All monetary values in the dashboard should be displayed in Euro (β¬) as the default currency:IMPORTANT: Use REPORTED Growth Rates
For the dashboard metrics "Rev Growth" and "Earn Growth":Core Purpose
Stock Evaluator is for:
NOT for:
Evaluation Framework
Five Pillars of Stock Evaluation
1. Valuation Assessment
2. Quality Analysis
3. Timing Assessment
4. Position Sizing
5. Conviction Rating
Value Trap Indicator
What It Is
A Value Trap is when a stock appears undervalued (low P/E, low P/B) but is actually cheap for valid fundamental reasons. The stock keeps declining despite appearing "cheap."Value Trap Score Calculation (0-100, LOWER = more genuine, HIGHER = more trap)
Components to evaluate (ADD points for trap indicators):
1. Price Momentum (25 points max)
2. Earnings Quality (25 points max)
3. Balance Sheet Health (25 points max)
4. Valuation Context (25 points max)
Scoring Formula
Value Trap Score = Momentum Penalty + Quality Penalty + Balance Sheet Penalty + Valuation Penalty
(Score ranges from 0 to 100, where 0 = definitely genuine value, 100 = definite value trap)Score Interpretation
Display Format
Value Trap: 21 (Genuine)
Color coding: green <40, yellow 40-60, red >60Investor Persona Scores
Score each stock against 8 famous investor philosophies (0-10 scale). This helps users understand what type of investor the stock suits.
1. Warren Buffett Score
Based on "The Warren Buffett Way" - seeks durable competitive advantagesKey metrics weighted:
Buffett likes: Predictable businesses, pricing power, low capex needs, consistent profitability
2. Charlie Munger Score
Based on "Poor Charlie's Almanack" - mental latticework, inversion thinkingFocus on: What could go WRONG (inversion principle)
Scoring: Start at 10, subtract penalties:
3. Ray Dalio Score
Based on "Principles" - All-Weather portfolio, economic machine understandingKey metrics:
Dalio likes: Deleveraging plays, operational efficiency, cycle resilience
4. Peter Lynch Score
Based on "One Up on Wall Street" - GARP (Growth at Reasonable Price)Primary metric: PEG Ratio (P/E Γ· Growth Rate)
Adjustment factors:
5. Benjamin Graham Score
Based on "The Intelligent Investor" - Margin of SafetyGraham criteria (2 points each, max 10):
6. Joel Greenblatt Score
Based on "The Little Book That Beats the Market" - Magic FormulaCombines two rankings:
Scoring: Combined rank in top 10% = 10 points, scaled down
7. John Templeton Score
Based on contrarian, global value investingKey factors:
8. George Soros Score
Based on "The Alchemy of Finance" - ReflexivityKey factors:
Soros likes: Macro plays, reflexive situations, trend participation
Display Format
Show 8 badges around radar chart with scores and color coding:Enhanced Technical Analysis
Ichimoku Cloud Analysis
Components to Calculate:
Cloud (Kumo): Area between Senkou Span A and B
Signals to Identify and Display:
Dual PEG Ratios
FCF Margin
News Sentiment & Short Interest
Fundamental Analysis Process
1. Business Understanding (Always First)
What to Analyze:
Management Evaluation:
Competitive Position:
2. Financial Analysis (5-10 Year View)
Research Process Order: 1. Latest 10-K first - Understand current business and recent results 2. Go back 5-10 years through historical 10-Ks - Understand evolution 3. Review last 2-3 years of 10-Qs - Current trajectory 4. Examine proxy statements - Governance and compensation
Key Metrics to Analyze:
Quality Benchmarks:
Trends to Assess:
Red Flags:
3. Competitive Moat Assessment
Moat Strength: Wide / Narrow / None
Evaluate Sources:
Moat Durability:
Peer Comparison: Compare this company's moat vs. 3-5 direct competitors:
4. Advanced Financial Health Metrics
Beyond basic quality metrics, calculate these advanced scores for deeper insight:
Piotroski F-Score (Financial Strength)
Purpose: 9-point score measuring financial strength across profitability, leverage, and operating efficiency.
Scoring (0-9, higher is better):
*Profitability (4 points):*
*Leverage/Liquidity (3 points):*
*Operating Efficiency (2 points):*
Interpretation:
Altman Z-Score (Bankruptcy Risk)
Purpose: Predicts probability of bankruptcy within 2 years.
Formula (for public manufacturing companies): Z = 1.2(A) + 1.4(B) + 3.3(C) + 0.6(D) + 1.0(E)
Where:
Interpretation:
Note: Adjust for non-manufacturing companies (different coefficients).
Beneish M-Score (Earnings Manipulation Detection)
Purpose: Identifies likelihood of earnings manipulation.
Key Indicators (simplified approach):
Interpretation:
Practical Check (if full M-Score unavailable):
Max Drawdown (5-Year)
Purpose: Measures largest peak-to-trough price decline.
Calculation:
Interpretation:
Consolidated Scores
Strength Score (0-100): Composite of:
Integrity Score (0-100): Composite of:
Predictability Score (0-100): Composite of:
Data Quality Score (0-100):
5. Risk Analysis
Company-Specific Risks:
Industry Risks:
Macro Risks:
Overall Risk Level: Low / Moderate / High
Consolidated Risk Score: (0-1 scale, lower is better)
Valuation Assessment
Use multiple valuation methods - synthesize into fair value estimate.
Required Valuation Methods
1. DCF Analysis (Discounted Cash Flow)
2. Relative Valuation
3. Peter Lynch Fair Value
4. Asset-Based (When Applicable)
Valuation Synthesis
Fair Value Estimate: β¬X.XX
Weight each method appropriately:
Margin of Safety:
Valuation Conclusion:
Technical Analysis (Entry Timing)
Focus on identifying optimal entry points, not full technical analysis.
Key Technical Elements
1. Price Action (Last 30-60 Days)
2. Key Levels
3. Technical Indicators
4. Entry Assessment
Bull vs. Bear Case Analysis
MANDATORY: Every analysis must present both sides fairly.
Bull Case (Optimistic Scenario)
Potential Upside: +X% to β¬X.XX1. [Key bull argument 1 with specific evidence] 2. [Key bull argument 2 with specific evidence] 3. [Key bull argument 3 with specific evidence]
For this to play out:
Bear Case (Pessimistic Scenario)
Potential Downside: -X% to β¬X.XX1. [Key bear argument 1 with specific evidence] 2. [Key bear argument 2 with specific evidence] 3. [Key bear argument 3 with specific evidence]
This happens if:
Balance Assessment
Which case is more probable: [Bull / Bear / Balanced][Explanation of why one case is more likely, considering:
Investment Recommendation Structure
BUY Recommendation Criteria
HOLD Recommendation Criteria
SELL/AVOID Recommendation Criteria
Position Sizing Framework
Allocation recommendation based on:
Conviction + Risk = Position Size
Strong Buy (High Conviction, Low Risk):
Buy (Moderate Conviction, Moderate Risk):
Speculative/High Risk:
Considerations:
Entry and Exit Strategy
Entry Strategy
NO scale-in strategies - recommend single entry approach:
If BUY:
Exit Strategy
Price Target (12-month): β¬X.XX (+X% upside)
Stop Loss: β¬X.XX (-X% maximum loss)
Sell If (Thesis-Breaking Conditions): 1. [Specific fundamental deterioration] 2. [Specific competitive threat] 3. [Specific valuation threshold]
Hold Duration:
Catalyst Identification
Identify specific events that could drive stock performance.
Near-Term (0-6 months):
Medium-Term (6-18 months):
Long-Term (18+ months):
Key Analytical Constraints
Critical Principles:
1. No Press/News for Fundamental Analysis - Use company filings only (10-K, 10-Q, 8-K, proxy) - Use earnings call transcripts - Do NOT rely on news articles or press releases - Exception: News for recent developments, but verify in filings
2. Magnitude Over Precision - Focus on stocks with good margin of safety (>15%) - Don't need perfect forecasts - Better to be approximately right than precisely wrong - Conservative assumptions better than optimistic
3. Long-Term View - Analyze 5-10 year trends, not just recent quarters - Temporary setbacks vs. structural problems - Sustainable competitive advantages matter most - Short-term noise vs. long-term signal
4. Compare Apples to Apples - Benchmark against 3-5 direct competitors - Not just broad market indices - Industry-specific metrics and norms - Adjust for company size and maturity
5. Intellectual Honesty - Acknowledge limitations and unknowns - Present both bull and bear cases fairly - Say "I don't know" when appropriate - Update views when evidence changes
Output Template
# [SYMBOL] - [Company Name] Evaluationβ οΈ DELIVERABLES CHECKLIST β
β Technical Analysis Complete
β Fundamental Analysis Complete
β Valuation Assessment Complete
β Bull vs. Bear Case Complete
β Clear Recommendation: [BUY / HOLD / SELL]
β Alternative Candidates: [If SELL, list 3-5 alternatives below]
π Executive Summary
[2-3 sentence bottom-line assessment with key reasoning]
Recommendation: [BUY / HOLD / SELL]
Conviction: [Strong Buy / Buy / Hold / Avoid]
π° Valuation Assessment
Fair Value Estimate: β¬X.XX (Current: β¬X.XX)
Margin of Safety: X% [Adequate >15% / Insufficient <15%]
Valuation: [UNDERVALUED / FAIRLY VALUED / OVERVALUED] | Valuation Method | Fair Value | vs. Current | Weight |
|-----------------|-----------|-------------|--------|
| DCF Analysis | β¬X.XX | +X% | 40% |
| Peer Relative | β¬X.XX | +X% | 30% |
| Peter Lynch | β¬X.XX | +X% | 30% |
| Weighted Average | β¬X.XX | +X% | 100% |
Assumptions:
DCF: [Key assumptions - growth rate, margins, discount rate]
Margin of safety applied: X%
π’ Business & Competitive Analysis
What They Do
[2-3 paragraph business model summary:
Core products/services
Revenue breakdown
Target markets
Business model] Competitive Advantages
Moat Strength: [Wide / Narrow / None]1. [Advantage 1]: [Detailed explanation with evidence]
2. [Advantage 2]: [Detailed explanation with evidence]
3. [Advantage 3]: [Detailed explanation with evidence]
Moat Durability: [How sustainable are these advantages? 3-5 years? 10+ years?]
Management Quality Assessment
Overall Rating: [Excellent / Good / Adequate / Concerning]CEO: [Name] - [Background, tenure]
- Track record: [Achievements/concerns]
- Capital allocation: [Shareholder-friendly? Smart acquisitions?]
CFO: [Name] - [Financial stewardship]
Insider Trading: [Recent buying/selling activity]
Key Insight: [Overall management assessment] Competitive Position
Market Position:
Market share: X% (#X in industry)
Share trend: [Gaining / Stable / Losing] Key Competitors: [List 3-5 direct peers]
Peer Comparison:
| Company | Mkt Cap | Revenue Growth | Profit Margin | ROE | P/E | Moat |
|---------|---------|---------------|---------------|-----|-----|------|
| [Target] | β¬XB | X% | X% | X% | X.X | [Rating] |
| [Peer 1] | β¬XB | X% | X% | X% | X.X | [Rating] |
| [Peer 2] | β¬XB | X% | X% | X.X | X.X | [Rating] |
| [Peer 3] | β¬XB | X% | X% | X% | X.X | [Rating] |
Competitive Assessment: [Is this the best company in the sector?]
π Financial Health Analysis
Quality Metrics vs. Benchmarks
| Metric | Current | 1Y Ago | 3Y Ago | 5Y Ago | Target | Status |
|--------|---------|--------|--------|--------|--------|--------|
| ROE | X% | X% | X% | X% | >15% | [β/β] |
| Profit Margin | X% | X% | X% | X% | >15% | [β/β] |
| Gross Margin | X% | X% | X% | X% | >30% | [β/β] |
| Revenue Growth | X% | X% | X% | X% | >0% | [β/β] |
| Debt/Revenue | X.X | X.X | X.X | X.X | <1.0 | [β/β] |
| FCF | β¬XM | β¬XM | β¬XM | β¬XM | Positive | [β/β] |
Advanced Financial Health Scores
Piotroski F-Score: X/9 [Excellent 8-9 / Good 6-7 / Adequate 4-5 / Weak 0-3]
*Profitability:* X/4
ROA positive: [β/β]
Operating CF positive: [β/β]
ROA improving: [β/β]
CF > Net Income: [β/β] *Leverage:* X/3
Debt decreasing: [β/β]
Current ratio improving: [β/β]
No dilution: [β/β] *Efficiency:* X/2
Margin improving: [β/β]
Turnover improving: [β/β] Assessment: [Detailed interpretation of F-Score]
Altman Z-Score: X.XX [Safe >2.99 / Grey 1.81-2.99 / Distress <1.81]
Bankruptcy Risk: [Low / Moderate / High]
Interpretation: [Explanation of Z-Score and financial stability] Beneish M-Score: X.XX [Clean <-1.78 / Warning >-1.78]
Earnings Quality: [High / Moderate / Questionable]
Red Flags: [List any concerning indicators or state "None"] Max Drawdown (5Y): -X% [Low <20% / Moderate 20-40% / High 40-60% / Extreme >60%]
Volatility Assessment: [Low/Moderate/High volatility explanation]
Peak price: β¬X.XX ([Date])
Trough price: β¬X.XX ([Date]) Consolidated Scores
Strength Score: X/100 (Financial power and market position)
Integrity Score: X/100 (Earnings quality and transparency)
Predictability Score: X/100 (Business consistency)
Data Quality Score: X/100 (Information completeness)
Overall Quality Rating: [Elite / Strong / Good / Adequate / Weak]
Financial Trends (5-10 Year View)
Revenue:
[Trend description: growth rate, consistency, drivers]
[Any concerning patterns?] Margins:
Gross margin: [Expanding / Stable / Declining]
Operating margin: [Trend]
Net margin: [Trend]
Drivers: [Why are margins moving this way?] Cash Flow:
Operating cash flow: [Trend and quality]
Free cash flow: [Consistency, conversion]
Capital allocation: [Dividends, buybacks, capex, acquisitions] Balance Sheet:
Debt levels: [Conservative / Moderate / High]
Liquidity: [Strong / Adequate / Concerning]
Trend: [Strengthening / Stable / Weakening] π© Red Flags
[List any concerning trends or issues, or state "None identified"]
π Technical Analysis & Entry Timing
Price Action (Last 30-60 Days)
Current Price: β¬X.XX
52-Week Range: β¬X.XX - β¬X.XX
30-day Change: [+/-X%]
Trend: [Uptrend / Downtrend / Range-bound]
Volume: [Increasing / Decreasing / Normal] Key Technical Levels
Support Levels:
Primary Support: β¬X.XX - [Significance/reason]
Secondary Support: β¬X.XX - [Significance/reason] Resistance Levels:
Primary Resistance: β¬X.XX - [Significance/reason]
Secondary Resistance: β¬X.XX - [Significance/reason] Technical Indicators
RSI: X.X [Overbought >70 / Neutral 30-70 / Oversold <30]
MACD: [Bullish crossover / Bearish crossover / Neutral]
Interpretation: [Momentum assessment] Moving Averages:
50-day MA: β¬X.XX - Price is [above/below]
200-day MA: β¬X.XX - Price is [above/below]
Golden/Death Cross: [Any recent crossovers?] Entry Assessment
Technical Setup: [Bullish / Neutral / Bearish]
Optimal Entry Strategy:
[Buy now at market / Wait for pullback to β¬X.XX / Buy on breakout above β¬X.XX]
Ideal Entry Range: β¬X.XX - β¬X.XX
Maximum Buy Price: β¬X.XX (avoid above this) Momentum: [Strong Bullish / Bullish / Neutral / Bearish / Strong Bearish]
βοΈ Bull vs. Bear Case
π Bull Case
Potential Upside: β¬X.XX (+X%)1. [Bull Argument 1]: [Specific evidence and reasoning]
2. [Bull Argument 2]: [Specific evidence and reasoning]
3. [Bull Argument 3]: [Specific evidence and reasoning]
For this to play out:
[Required condition 1]
[Required condition 2] Probability: [High / Moderate / Low]
π» Bear Case
Potential Downside: β¬X.XX (-X%)1. [Bear Argument 1]: [Specific risk and reasoning]
2. [Bear Argument 2]: [Specific risk and reasoning]
3. [Bear Argument 3]: [Specific risk and reasoning]
This happens if:
[Risk trigger 1]
[Risk trigger 2] Probability: [High / Moderate / Low]
βοΈ Balance Assessment
Which case is more probable: [Bull / Bear / Balanced]
[2-3 paragraph explanation of:
Weight of evidence for each side
Historical precedent
Management track record
Industry dynamics
Current valuation
Risk/reward assessment]
β οΈ Risk Analysis
Overall Risk Level: [Low / Moderate / High]
Key Risks
1. [Risk Category - e.g., Competition Risk]:
[Specific risk and potential impact. Probability: High/Medium/Low]
2. [Risk Category - e.g., Execution Risk]:
[Specific risk and potential impact. Probability: High/Medium/Low]
3. [Risk Category - e.g., Valuation Risk]:
[Specific risk and potential impact. Probability: High/Medium/Low]
4. [Risk Category - e.g., Macro Risk]:
[Specific risk and potential impact. Probability: High/Medium/Low]
Risk Mitigation
[How does the company/investment address these risks?]
[What reduces the risk in this investment?]
π― Catalysts & Timeline
Near-Term (0-6 months)
[Date]: [Specific catalyst - earnings, product launch, etc.]
[Date]: [Specific catalyst] Medium-Term (6-18 months)
[Expected development 1]
[Expected development 2] Long-Term (18+ months)
[Structural trend 1]
[Structural trend 2] Expected Timeline to Target: [6-12 months / 1-3 years / 3-5+ years]
π‘ Investment Recommendation
RECOMMENDATION: [BUY / HOLD / SELL]
Conviction: [Strong Buy / Buy / Hold / Avoid]
Rationale
[2-3 paragraph synthesis of entire analysis:
Why this recommendation?
What makes it compelling (or not)?
How does valuation + fundamentals + technicals + catalysts = this conclusion?
What's the risk/reward?]
π Entry Strategy (if BUY)
Ideal Entry Price: β¬X.XX - β¬X.XX
Reasoning: [Why this range?] Maximum Acceptable Price: β¬X.XX
Above this: Risk/reward unfavorable Approach:
[Buy now at market / Wait for pullback to β¬X.XX / Buy on breakout above β¬X.XX]
Reasoning: [Current technical setup justification] DO NOT BUY IF:
Price exceeds β¬X.XX without fundamental improvement
[Other specific condition]
π― Exit Strategy
Price Targets (12-Month Horizon)
Conservative: β¬X.XX (+X%)
Base Case: β¬X.XX (+X%)
Optimistic: β¬X.XX (+X%) Stop Loss
Stop Loss: β¬X.XX (-X% maximum loss)
Technical: Below β¬X.XX support
Fundamental: If [thesis-breaking condition] Sell Conditions (Thesis-Breaking)
Exit position if any of these occur:
1. [Specific fundamental deterioration - e.g., "ROE drops below 10% for 2 consecutive quarters"]
2. [Specific competitive threat - e.g., "Loses >5% market share to competitor"]
3. [Specific valuation threshold - e.g., "Reaches β¬X.XX (>50% above fair value)"]Hold Duration
Expected Timeframe: [6-12 months / 1-3 years / 3-5+ years]
Based on: [Investment type - swing trade vs. long-term hold]
π Position Sizing
Recommended Allocation: X-X% of portfolio
Specific Recommendation: X%Rationale:
Conviction level: [Strong Buy / Buy β drives size]
Risk level: [Low / Moderate / High β constrains size]
Diversification: [Sector exposure, correlation with existing holdings]
Liquidity: [Can exit position easily?] Maximum Allocation: X%
Risk management limit
Don't exceed even if highly convicted Sizing Guidelines Applied:
Strong Buy + Low Risk = 5-8% (max 10%)
Buy + Moderate Risk = 3-5% (max 7%)
Speculative + High Risk = 1-3% (max 5%)
π Key Takeaways
Top 3 Reasons to Invest
1. [Most compelling positive factor]
2. [Second most compelling positive factor]
3. [Third most compelling positive factor]Top 3 Concerns
1. [Biggest risk or concern]
2. [Second biggest risk or concern]
3. [Third biggest risk or concern]One-Sentence Investment Thesis
[Single sentence capturing the complete investment case - why buy or avoid]
π Research Documentation
Sources Consulted:
10-K filings: [Fiscal years reviewed - e.g., FY2020-2024]
10-Q filings: [Recent quarters - e.g., Q1-Q3 2025]
Earnings calls: [Dates reviewed]
Proxy statements: [Years reviewed]
Management letters: [Years reviewed]
Competitor analysis: [Companies benchmarked] Analysis Depth:
Historical period analyzed: [X years]
Peer companies compared: [Number and names]
Valuation methods used: [DCF, Relative, Peter Lynch, Asset-based] Confidence Level: [High / Medium / Low]
Based on: [Quality and completeness of available data]
Gaps: [Any areas where information is limited or unavailable]
Limitations: [Any constraints in the analysis]
π Alternative Candidates (Required if SELL/AVOID)
[If recommending SELL or AVOID, provide 3-5 better investment alternatives with brief rationale for each]
Alternative 1: [Symbol] - [Company Name]
Why it's better: [1-2 paragraph comparison]
Quick metrics: [Valuation, growth, margins]Alternative 2: [Symbol] - [Company Name]
Why it's better: [1-2 paragraph comparison]
Quick metrics: [Valuation, growth, margins]Alternative 3: [Symbol] - [Company Name]
Why it's better: [1-2 paragraph comparison]
Quick metrics: [Valuation, growth, margins][Continue for 4-5 alternatives if SELL recommendation]
Analysis Date: [Current Date]
Next Review: [Suggested review date based on catalysts or timeline]
Analyst: Claude Stock Evaluator
π Quant-Style Dashboard
FINAL MANDATORY STEP: Create a React artifact using the standardized quant-style dashboard template with:
Required Data to Populate:
β
All 48 metrics across 8 sections (calculated above)
β
Historical price data (5 years, 6-12 points)
β
1-year price + 6-month forecast (4-6 points)
β
MACD data (3-5 recent points)
β
RSI data (3-5 recent points)
β
Radar chart (12 metrics, normalized 0-100)
β
Bull case (target + 5 points)
β
Bear case (target + 5 points)
β
Entry/exit strategy (5 values) Use the EXACT template code provided in the skill instructions above.
DO NOT use placeholder values - populate with actual calculated data from this analysis.
[Create the React artifact here using the quant-style template]
Quant-Style Dashboard Artifact
MANDATORY: After completing the full text analysis, create a React dashboard artifact using the standardized quant-style template format.
Dashboard Template Structure
The dashboard uses a specific institutional-grade format with:
1. Header Section (Orange background)
TICKER - Company Name2. Eight Metric Sections (2-column grid)
| Left Column | Right Column | |-------------|--------------| | Price & Valuation (blue) | Financial Performance (green) | | Growth Metrics (emerald) | Risk Indicators (red) | | Liquidity & FCF (cyan) | Insider & Sentiment (purple) | | Quality Scores (orange) | Moat & Other (gray) |
Each section: 6 metric boxes with values, labels, benchmarks, color coding
3. Charts Section (3-column grid)
4. Key Notes Section (Expandable accordion)
5. Footer
Required Metrics by Section
Price & Valuation (6 metrics):
Financial Performance (6 metrics):
Growth Metrics (6 metrics):
Risk Indicators (6 metrics):
Liquidity & FCF (6 metrics):
Insider & Sentiment (6 metrics):
Quality Scores (6 metrics):
Moat & Other (6 metrics):
Radar Chart Metrics (12 points, normalized 0-100)
1. Revenue Growth (normalize: X% growth β scale to 100 for 20%+) 2. Operating Margin (normalize: X% β 100 for 30%+) 3. Gross Margin (normalize: X% β 100 for 60%+) 4. Profit Margin (normalize: X% β 100 for 25%+) 5. ROE (normalize: X% β 100 for 30%+) 6. Risk Score (inverse of consolidated risk: 100 - risk*100) 7. Beta Score (inverse: 100 for beta=0.5, 50 for beta=1.5, 0 for beta=2.5+) 8. P/Market Discount (100 = deeply undervalued, 50 = fair, 0 = overvalued) 9. Moat Score (moat rating * 10) 10. FCF Yield (X% β 100 for 8%+) 11. ROA (X% β 100 for 20%+) 12. Earnings Growth (X% β 100 for 25%+)Color Coding Rules
// Green (isGood: true) - Positive indicators
ROE > 20%, ROA > 10%, Margins > 20%, ROIC > 15%
Revenue Growth > 10%, Current Ratio 1-2, Z-Score > 3
M-Score < -1.78, FCF Growth > 0%, Payout < 50%
F-Score >= 7, Quality >= 70, Strength >= 70// Red (isGood: false) - Warning indicators
Max Drawdown < -50%, Beta > 2, Consolidated Risk > 0.6
Predictability < 50%, F-Score <= 3, Z-Score < 1.81
M-Score > -1.78, Quality < 50
// Yellow (isGood: 'neutral') - Monitor
F-Score 4-6, RSI 30-70, Moat 5-7, Quality 50-70
Beta 1.5-2.0, Predictability 50-70%
Complete Template Code
Use this exact template structure:
import React, { useState } from 'react';
import {
LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip,
ResponsiveContainer, RadarChart, PolarGrid, PolarAngleAxis,
PolarRadiusAxis, Radar, ReferenceLine, Area, ComposedChart, Scatter
} from 'recharts';const QuantDashboard = () => {
const [showKeyNotes, setShowKeyNotes] = useState(false);
// ============================================================
// POPULATE WITH STOCK-SPECIFIC DATA FROM ANALYSIS
// ============================================================
const ticker = "TICKER"; // Replace
const companyName = "Company Name"; // Replace
const recommendation = "BUY"; // BUY, HOLD, SELL, SPECULATIVE BUY
const analysisDate = "December 6, 2025"; // Current date
const metrics = {
// Price & Valuation - from analysis
price: 100.00,
marketCap: 'β¬10B',
trailingPE: 20.0,
forwardPE: 18.0,
subsectorTypicalPE: 25.0,
peg1Y: 1.2, // NEW: 1-Year Forward PEG
peg5Y: 2.5, // NEW: 5-Year PEG
// Financial Performance - from 5-10 year analysis
roe: 25.0,
roa: 12.0,
profitMargin: 20.0,
opMargin: 25.0,
grossMargin: 50.0,
roic: 18.0,
// Growth Metrics - from historical trends (USE REPORTED, not underlying)
revGrowth: 15.0, // REPORTED revenue growth YoY
earnGrowth: 20.0, // REPORTED earnings growth YoY
epsTTM: 5.00,
forwardEPS: 5.50,
growthCapped: 10.0, // NEW: Capped sustainable growth estimate
growthUncapped: 22.0, // NEW: Headline analyst growth estimate
analystTarget: 120.00,
// Risk Indicators - from advanced metrics section
crs: 0.40, // Consolidated Risk Score (0-1 scale)
debtEquity: 0.50,
fScore: 7, // Piotroski F-Score
zScore: 4.0, // Altman Z-Score
mScore: -2.5, // Beneish M-Score
valueTrapScore: 25, // NEW: 0-100, LOWER = genuine, HIGHER = trap
valueTrapLabel: 'Genuine', // NEW: Genuine/Caution/Trap
maxDrawdown: -30.0, // 5-year max drawdown %
// Liquidity & FCF - from cash flow analysis
currentRatio: 1.5,
totalCash: 'β¬2B',
totalDebt: 'β¬1B',
fcfGrowth5Y: 12.0, // 5-year smoothed growth
fcfYield: 5.0,
fcfMargin: 18.5, // NEW: FCF / Revenue %
payoutRatio: 30.0,
// Insider & Sentiment - from SEC Form 4 or use "N/A" if unavailable
insBuys: 0, // From SEC Form 4 - use actual count or "N/A"
insSells: 0, // From SEC Form 4 - use actual count or "N/A"
netShares: 'N/A', // From SEC Form 4 - use actual or "N/A"
shortInterest: 2.5, // From FINRA/exchange - use actual or "N/A"
newsSentiment: 0.25, // -1 to +1 scale
newsArticleCount: 15, // Recent article count
// Beta & Volatility
beta: 1.0, // Stock beta
vol1Y: 25.0, // 1-Year volatility %
// Quality Scores - from consolidated scoring
cqvs: 75.0, // Consolidated Quality & Valuation Score
label: 'Quality Growth', // Elite/Compounder/Quality Growth/etc
valuation: 70.0, // 0-100
quality: 80.0, // 0-100
strength: 75.0, // 0-100
integrity: 85.0, // 0-100
// Moat & Other
buffettMoat: 8, // 0-10 scale (renamed from moat)
greenblattEY: 6.5, // NEW: Earnings Yield %
greenblattROC: 22.0, // NEW: Return on Capital %
earningsPredict: 70, // Earnings Predictability 0-100
completeness: 85, // Data completeness 0-100
dataQuality: 'High', // High/Medium/Low
divYield: 1.5,
stockType: 'Growth', // Growth/Value/Cyclical/Defensive
sector: 'Technology',
industry: 'Software',
// NEW: Investor Persona Scores (0-10 scale each)
buffettScore: 7.5, // Durable competitive advantage seeker
mungerScore: 6.8, // Inversion thinker, risk avoider
dalioScore: 7.2, // All-weather, cycle resilient
lynchScore: 8.0, // GARP - Growth at Reasonable Price
grahamScore: 5.5, // Deep value, margin of safety
greenblattScore: 6.0, // Magic Formula (EY + ROC)
templetonScore: 4.5, // Contrarian, global value
sorosScore: 3.0, // Reflexivity, macro trends
// NEW: Valuation Lines for Charts
marketValueCurrent: 95.00,
intrinsicValueCurrent: 110.00,
marketValueNextYear: 105.00,
intrinsicValueNextYear: 120.00,
unrestrictedMarketValueCurrent: 125.00,
unrestrictedMarketValueNextYear: 140.00,
// Valuation Assessment (for indicator below forecast)
valuationPercent: 15, // Positive = undervalued, negative = overvalued
valuationLabel: 'Undervalued', // Undervalued/Fairly Valued/Overvalued
};
// TOP NEWS Headlines - Format: pipe-separated with dates at END in brackets
const topNews = [
{ headline: 'Company announces Q4 guidance above expectations', date: '05 Dec 2025' },
{ headline: 'New product launch receives positive analyst coverage', date: '28 Nov 2025' },
{ headline: 'Strategic partnership announced with major cloud provider', date: '15 Nov 2025' },
{ headline: 'Q3 earnings beat estimates, revenue up 18% YoY', date: '02 Nov 2025' },
{ headline: 'Management presents at investor conference, reaffirms outlook', date: '20 Oct 2025' },
];
// Format TOP NEWS as pipe-separated string with dates at END
const topNewsString = topNews.map(n => ${n.headline} [${n.date}]).join(' | ');
// Historical Price Data (10 years with multiple valuation lines)
const priceHistory = [
{ date: '2016', price: 25, totalReturn: 28, marketValueCurrent: 27, intrinsicValueCurrent: 30, marketValueNextYear: 29, intrinsicValueNextYear: 32, analystTarget: 30, unrestrictedCurrent: 28, unrestrictedNextYear: 31 },
{ date: '2017', price: 35, totalReturn: 40, marketValueCurrent: 38, intrinsicValueCurrent: 42, marketValueNextYear: 40, intrinsicValueNextYear: 45, analystTarget: 42, unrestrictedCurrent: 40, unrestrictedNextYear: 44 },
{ date: '2018', price: 45, totalReturn: 52, marketValueCurrent: 48, intrinsicValueCurrent: 55, marketValueNextYear: 52, intrinsicValueNextYear: 60, analystTarget: 55, unrestrictedCurrent: 52, unrestrictedNextYear: 58 },
{ date: '2019', price: 55, totalReturn: 65, marketValueCurrent: 58, intrinsicValueCurrent: 68, marketValueNextYear: 62, intrinsicValueNextYear: 72, analystTarget: 65, unrestrictedCurrent: 65, unrestrictedNextYear: 72 },
{ date: '2020', price: 50, totalReturn: 62, marketValueCurrent: 55, intrinsicValueCurrent: 65, marketValueNextYear: 60, intrinsicValueNextYear: 70, analystTarget: 62, unrestrictedCurrent: 62, unrestrictedNextYear: 70 },
{ date: '2021', price: 75, totalReturn: 95, marketValueCurrent: 80, intrinsicValueCurrent: 90, marketValueNextYear: 85, intrinsicValueNextYear: 98, analystTarget: 90, unrestrictedCurrent: 92, unrestrictedNextYear: 105 },
{ date: '2022', price: 65, totalReturn: 85, marketValueCurrent: 72, intrinsicValueCurrent: 85, marketValueNextYear: 78, intrinsicValueNextYear: 92, analystTarget: 82, unrestrictedCurrent: 85, unrestrictedNextYear: 95 },
{ date: '2023', price: 80, totalReturn: 105, marketValueCurrent: 85, intrinsicValueCurrent: 100, marketValueNextYear: 92, intrinsicValueNextYear: 108, analystTarget: 98, unrestrictedCurrent: 100, unrestrictedNextYear: 115 },
{ date: '2024', price: 95, totalReturn: 125, marketValueCurrent: 100, intrinsicValueCurrent: 115, marketValueNextYear: 108, intrinsicValueNextYear: 125, analystTarget: 115, unrestrictedCurrent: 120, unrestrictedNextYear: 135 },
{ date: '2025', price: 100, totalReturn: 135, marketValueCurrent: 105, intrinsicValueCurrent: 120, marketValueNextYear: 115, intrinsicValueNextYear: 132, analystTarget: 125, unrestrictedCurrent: 130, unrestrictedNextYear: 145 },
];
// 1 Year Price with 6-Month Forecast, MAs, and Bollinger Bands
const oneYearData = [
{ date: "Jan'25", price: 90, ma50: 88, ma200: 85, upperBand: 98, lowerBand: 82, forecast: null, ci95Upper: null, ci95Lower: null },
{ date: "Mar'25", price: 88, ma50: 89, ma200: 86, upperBand: 96, lowerBand: 80, forecast: null, ci95Upper: null, ci95Lower: null },
{ date: "May'25", price: 95, ma50: 91, ma200: 87, upperBand: 102, lowerBand: 84, forecast: null, ci95Upper: null, ci95Lower: null },
{ date: "Jul'25", price: 92, ma50: 92, ma200: 88, upperBand: 100, lowerBand: 84, forecast: null, ci95Upper: null, ci95Lower: null },
{ date: "Sep'25", price: 98, ma50: 94, ma200: 90, upperBand: 106, lowerBand: 86, forecast: null, ci95Upper: null, ci95Lower: null },
{ date: "Nov'25", price: 100, ma50: 96, ma200: 92, upperBand: 108, lowerBand: 88, forecast: 100, ci95Upper: 108, ci95Lower: 92 },
{ date: "Jan'26", price: null, ma50: null, ma200: null, upperBand: null, lowerBand: null, forecast: 108, ci95Upper: 120, ci95Lower: 96 },
{ date: "Mar'26", price: null, ma50: null, ma200: null, upperBand: null, lowerBand: null, forecast: 115, ci95Upper: 130, ci95Lower: 100 },
];
// NEW: Ichimoku Cloud Data (6-month view with signal markers)
const ichimokuData = [
{ date: 'Jun', price: 88, tenkan: 87, kijun: 85, senkouA: 84, senkouB: 82, chikou: 85, tkCrossMarker: null, kumoTwistMarker: null },
{ date: 'Jul', price: 92, tenkan: 90, kijun: 87, senkouA: 86, senkouB: 84, chikou: 90, tkCrossMarker: 92, kumoTwistMarker: null }, // TK Bullish Cross
{ date: 'Aug', price: 95, tenkan: 93, kijun: 90, senkouA: 89, senkouB: 86, chikou: 93, tkCrossMarker: null, kumoTwistMarker: null },
{ date: 'Sep', price: 98, tenkan: 96, kijun: 93, senkouA: 92, senkouB: 88, chikou: 96, tkCrossMarker: null, kumoTwistMarker: 92 }, // Kumo Twist Bullish
{ date: 'Oct', price: 96, tenkan: 97, kijun: 95, senkouA: 94, senkouB: 90, chikou: 94, tkCrossMarker: null, kumoTwistMarker: null },
{ date: 'Nov', price: 100, tenkan: 98, kijun: 96, senkouA: 95, senkouB: 92, chikou: 98, tkCrossMarker: null, kumoTwistMarker: null },
];
// NEW: Ichimoku Signals Summary
const ichimokuSignals = {
tkCross: 'TK Bullish Cross',
kumoTwist: 'Kumo Twist Bullish',
priceVsCloud: 'Above Cloud (Bullish)',
};
// MACD Data (recent 6 months)
const macdData = [
{ date: 'Jun', macd: 0.5, signal: 0.3, histogram: 0.2 },
{ date: 'Jul', macd: 1.2, signal: 0.6, histogram: 0.6 },
{ date: 'Aug', macd: 1.5, signal: 1.0, histogram: 0.5 },
{ date: 'Sep', macd: 1.8, signal: 1.3, histogram: 0.5 },
{ date: 'Oct', macd: 1.2, signal: 1.4, histogram: -0.2 },
{ date: 'Nov', macd: 0.8, signal: 1.2, histogram: -0.4 },
];
// RSI Data (recent 6 months)
const rsiData = [
{ date: 'Jun', rsi: 45 },
{ date: 'Jul', rsi: 55 },
{ date: 'Aug', rsi: 62 },
{ date: 'Sep', rsi: 68 },
{ date: 'Oct', rsi: 58 },
{ date: 'Nov', rsi: 55 },
];
// Radar Chart Data (normalize all to 0-100 scale)
const radarData = [
{ metric: 'Rev Growth', value: 70, fullMark: 100 },
{ metric: 'Op Margin', value: 75, fullMark: 100 },
{ metric: 'Gross Margin', value: 65, fullMark: 100 },
{ metric: 'Profit Margin', value: 60, fullMark: 100 },
{ metric: 'ROE', value: 70, fullMark: 100 },
{ metric: 'Risk (CRS)', value: 60, fullMark: 100 },
{ metric: 'Beta Score', value: 70, fullMark: 100 },
{ metric: 'P/Market Disc', value: 50, fullMark: 100 },
{ metric: 'Moat', value: 80, fullMark: 100 },
{ metric: 'FCF Growth', value: 55, fullMark: 100 },
{ metric: 'ROA', value: 65, fullMark: 100 },
{ metric: 'Earn Growth', value: 75, fullMark: 100 },
];
// Key Notes Content - from Bull/Bear case analysis
const bullCase = {
target: "β¬130-150", // Bull case price target
points: [
"Strong revenue growth momentum",
"Expanding margins",
"Market leadership position",
"Favorable industry tailwinds",
"Strong balance sheet"
]
};
const bearCase = {
target: "β¬70-80", // Bear case price target
points: [
"Valuation compression risk",
"Competitive pressures",
"Macro sensitivity",
"Execution risks",
"Key person dependency"
]
};
const entryStrategy = {
idealEntry: "β¬90-95", // From Entry Strategy section
currentEntry: "β¬100 acceptable",
target: "β¬120 (+20%)", // 12-month target
stopLoss: "β¬85 (-15%)", // Stop loss
positionSize: "2-3%" // Recommended allocation
};
// ============================================================
// COMPONENT CODE (Standard - use as-is)
// ============================================================
// Helper: Value Trap color (LOWER = genuine = green, HIGHER = trap = red)
const getValueTrapColor = (score) => {
if (score < 40) return 'bg-green-100 border-green-400 text-green-800';
if (score < 60) return 'bg-yellow-100 border-yellow-400 text-yellow-800';
return 'bg-red-100 border-red-400 text-red-800';
};
// Helper: Get label for Value Trap score
const getValueTrapLabel = (score) => {
if (score < 20) return 'Genuine';
if (score < 40) return 'Probably Genuine';
if (score < 60) return 'Caution';
if (score < 80) return 'Likely Trap';
return 'Strong Trap';
};
// Helper: Persona score color
const getPersonaColor = (score) => {
if (score >= 7) return 'bg-green-500';
if (score >= 4) return 'bg-yellow-500';
return 'bg-red-500';
};
// Helper: News sentiment color
const getSentimentColor = (sentiment) => {
if (sentiment > 0.3) return 'text-green-600';
if (sentiment > 0) return 'text-green-500';
if (sentiment > -0.3) return 'text-yellow-600';
return 'text-red-600';
};
// Persona Badge Component
const PersonaBadge = ({ name, score, position }) => (
absolute ${position} flex flex-col items-center}>
w-6 h-6 rounded-full ${getPersonaColor(score)} flex items-center justify-center text-white text-[8px] font-bold}>
{score.toFixed(1)}
{name}
); const MetricBox = ({ label, value, benchmark, isGood, size = 'normal' }) => {
let bgColor = 'bg-gray-50';
if (isGood === true) bgColor = 'bg-green-50 border-green-200';
if (isGood === false) bgColor = 'bg-red-50 border-red-200';
if (isGood === 'neutral') bgColor = 'bg-yellow-50 border-yellow-200';
return (
${bgColor} border p-1.5 flex flex-col justify-center items-center}>
{value}
{label}
{benchmark && {benchmark}}
);
}; const SectionHeader = ({ title, bgColor }) => (
${bgColor} px-2 py-1 text-[10px] font-bold text-gray-700}>
{title}
); return (
{/* Header */}
{ticker} - {companyName}
{/* TOP NEWS - Pipe separated with dates at END */}
TOP NEWS:
{topNewsString}
{/* Top 4 sections */}
{/* Price & Valuation - Updated with dual PEG */}
β¬${metrics.price}} />
(${metrics.subsectorTypicalPE})} isGood={metrics.forwardPE < metrics.subsectorTypicalPE} />
{/* Financial Performance */}
${metrics.roe}%} benchmark="(>20%)" isGood={metrics.roe >= 20 ? true : metrics.roe >= 10 ? 'neutral' : false} />
${metrics.roa}%} benchmark="(>10%)" isGood={metrics.roa >= 10} />
${metrics.profitMargin}%} benchmark="(>20%)" isGood={metrics.profitMargin >= 20 ? true : metrics.profitMargin >= 10 ? 'neutral' : false} />
${metrics.opMargin}%} benchmark="(>20%)" isGood={metrics.opMargin >= 20} />
${metrics.grossMargin}%} benchmark="(>40%)" isGood={metrics.grossMargin >= 40} />
${metrics.roic}%} benchmark="(>15%)" isGood={metrics.roic >= 15} />
{/* Next 4 sections */}
{/* Growth Metrics */}
${metrics.revGrowth}%} benchmark="(>10%)" isGood={metrics.revGrowth >= 10} />
${metrics.earnGrowth}%} benchmark="(>0%)" isGood={metrics.earnGrowth >= 0} />
β¬${metrics.epsTTM}} />
β¬${metrics.forwardEPS}} isGood={metrics.forwardEPS > metrics.epsTTM} />
Capped: ${metrics.growthCapped}%} benchmark={Uncapped: ${metrics.growthUncapped}%} />
β¬${metrics.analystTarget}} />
{/* Risk Indicators */}
= 7 ? true : metrics.fScore >= 4 ? 'neutral' : false} />
= 2.99 ? true : metrics.zScore >= 1.81 ? 'neutral' : false} />
${metrics.valueTrapScore} (${metrics.valueTrapLabel})} isGood={metrics.valueTrapScore < 40 ? true : metrics.valueTrapScore < 60 ? 'neutral' : false} />
{/* Next 4 sections */}
{/* Liquidity & Free Cash Flow */}
= 1 && metrics.currentRatio <= 2 ? true : 'neutral'} />
${metrics.fcfGrowth5Y}%} benchmark="(>5%)" isGood={metrics.fcfGrowth5Y >= 5} />
${metrics.fcfYield}%} benchmark="(>4%)" isGood={metrics.fcfYield >= 4} />
${metrics.fcfMargin}%} benchmark="(>15%)" isGood={metrics.fcfMargin >= 15 ? true : metrics.fcfMargin >= 10 ? 'neutral' : false} />
${metrics.payoutRatio}%} benchmark="(<50%)" isGood={metrics.payoutRatio < 50} />
{/* Insider & Sentiment & Class */}
metrics.insSells} />
${metrics.shortInterest}%} isGood={metrics.shortInterest < 5 ? true : metrics.shortInterest < 10 ? 'neutral' : false} />
${metrics.newsSentiment > 0 ? '+' : ''}${metrics.newsSentiment.toFixed(3)} / ${metrics.newsArticleCount}} benchmark={metrics.newsSentiment > 0 ? '(Positive)' : '(Negative)'} isGood={metrics.newsSentiment > 0} />
Stock: ${metrics.stockType}} value={Div Yield: ${metrics.divYield}%} />
${metrics.sector} /} benchmark={metrics.industry} />
{/* Last 2 sections */}
{/* Quality Scores */}
= 70 ? true : metrics.cqvs >= 50 ? 'neutral' : false} />
= 70} />
= 70 ? true : metrics.quality >= 50 ? 'neutral' : false} />
= 70} />
= 70 ? true : metrics.integrity >= 50 ? 'neutral' : false} />
{/* Moat & Other */}
= 7 ? true : metrics.buffettMoat >= 4 ? 'neutral' : false} />
EY: ${metrics.greenblattEY}%} benchmark={metrics.greenblattROC ? ROC: ${metrics.greenblattROC}% : 'ROC: N/A'} isGood={metrics.greenblattEY >= 8 ? true : metrics.greenblattEY >= 4 ? 'neutral' : false} />
Beta: ${metrics.beta}} value={Vol 1Y: ${metrics.vol1Y}%} isGood={metrics.beta < 1 ? true : metrics.beta < 1.5 ? 'neutral' : false} />
${metrics.earningsPredict}%} benchmark="(>80%)" isGood={metrics.earningsPredict >= 80 ? true : metrics.earningsPredict >= 60 ? 'neutral' : false} />
${metrics.maxDrawdown}%} benchmark={metrics.maxDrawdown > -30 ? '(Low)' : metrics.maxDrawdown > -50 ? '(Mid)' : '(High)'} isGood={metrics.maxDrawdown > -30 ? true : metrics.maxDrawdown > -50 ? 'neutral' : false} />
Completeness: ${metrics.completeness}%} value={Data Quality: ${metrics.dataQuality}} isGood={metrics.dataQuality === 'High' ? true : metrics.dataQuality === 'Medium' ? 'neutral' : false} />
{/* Charts Section - Enhanced with Legends */}
{/* Linear Price Chart + MACD */}
LINEAR PRICE CHART (10Y)
β Close Price β Total Return
- - Market Value (Current): β¬{metrics.marketValueCurrent}
- - Intrinsic Value (Current): β¬{metrics.intrinsicValueCurrent}
- - Analyst Target: β¬{metrics.analystTarget}
MACD
{/* Radar + Investor Personas + Forecast */}
{/* Investor Persona Badges */}
Advice: {recommendation} (CQVS: {metrics.cqvs.toFixed(1)})
1Y PRICE + 6-MONTH FORECAST
β Close β 50-Day MA β 200-Day MA β Bollinger Bands - - Forecast
{/* Valuation Indicator */}
text-center text-[10px] font-bold mt-1 ${metrics.valuationPercent > 10 ? 'text-green-600' : metrics.valuationPercent < -10 ? 'text-red-600' : 'text-yellow-600'}}>
{metrics.valuationLabel} ({metrics.valuationPercent > 0 ? '+' : ''}{metrics.valuationPercent}%)
{/* Log Price + RSI */}
LOG PRICE CHART (10Y)
β Close Price β Total Return
- - Unrestr. Market Value (Current): β¬{metrics.unrestrictedMarketValueCurrent}
- - Unrestr. Market Value (Next Year): β¬{metrics.unrestrictedMarketValueNextYear}
RSI (14) = {rsiData[rsiData.length - 1].rsi}
{/* NEW: Ichimoku Cloud Chart */}
ICHIMOKU CLOUD
β Close Price
β Tenkan-sen (9)
β Kijun-sen (26)
β Chikou Span
β Senkou Span A/B (Cloud)
β TK Cross
β Kumo Twist
{ichimokuSignals.tkCross}
{ichimokuSignals.kumoTwist}
{ichimokuSignals.priceVsCloud}
{/* Key Notes (Expandable) */}
{showKeyNotes && (
{/* Bull Case */}
BULL CASE ({bullCase.target})
{bullCase.points.map((point, i) => - {point}
)}
{/* Bear Case */}
BEAR CASE ({bearCase.target})
{bearCase.points.map((point, i) => - {point}
)}
{/* Entry/Exit Strategy */}
ENTRY/EXIT STRATEGY
- Ideal Entry: {entryStrategy.idealEntry}
- Current: {entryStrategy.currentEntry}
- Target: {entryStrategy.target}
- Stop Loss: {entryStrategy.stopLoss}
- Position Size: {entryStrategy.positionSize}
)}
{/* Footer */}
Analysis Date: {analysisDate} | Sources: SEC Filings, Company Reports |
{recommendation}
);
};export default QuantDashboard;
Implementation Instructions
CRITICAL STEPS:
1. Calculate all metrics during the comprehensive text analysis
2. Store metrics in variables as you calculate them
3. After completing full text analysis, create the React artifact
4. Replace ALL placeholder values in the template with actual calculated data
5. Use the EXACT template structure - do not modify the component code
6. Populate these specific data arrays:
- metrics object (60+ values including investor persona scores)
- topNews array (5 recent headlines with dates)
- priceHistory array (10-year data with multiple valuation lines)
- oneYearData array (with MAs, Bollinger Bands, forecast)
- ichimokuData array (6-month with signal markers)
- ichimokuSignals object (TK cross, Kumo twist, price vs cloud)
- macdData array (6 recent points with histogram)
- rsiData array (6 recent points)
- radarData array (12 metrics, normalized 0-100)
- bullCase.points (5 points from bull case analysis)
- bearCase.points (5 points from bear case analysis)
- entryStrategy (5 values from entry/exit strategy)
6. Normalize radar chart values properly: - Each metric on 0-100 scale - Higher is always better (invert risk/beta if needed) - Use scaling formulas provided above
7. Format values correctly:
- Currency: "β¬100.00" (Euro is the default - use β¬ not $)
- Large numbers: "β¬10B", "β¬2.5M"
- Percentages: 15.0 (number, not string with %)
- Ratios: 1.25 (number)
- Scores: 7 (integer) or 75.0 (float)
8. Growth metrics: - Use REPORTED revenue growth (not underlying/organic) - Use REPORTED earnings growth (not adjusted EPS growth)
9. DO NOT: - Leave placeholder values - Modify the component structure - Skip any sections - Use estimated/guessed data
This is the ONLY accepted dashboard format. All other dashboard styles are deprecated.
Integration with Project Context
Portfolio Awareness
Investment Profile
Avoiding Duplication
If stock is already in portfolio:When to Use This Skill
Use Stock Evaluator when:
Do NOT use this skill when:
Output includes:
Best Practices
Research Approach
1. Start with company filings (10-K, 10-Q) - NOT news articles 2. Go back 5-10 years - Understand evolution, not just current state 3. Compare to 3-5 peers - Apples to apples comparison 4. Multiple valuation methods - Don't rely on single approach 5. Present both sides - Bull and bear cases fairly 6. Be specific - Use actual data, not generalitiesValuation Discipline
Risk Awareness
Communication
Common Patterns to Recognize
Quality Companies
Value Traps (AVOID)
Growth at Reasonable Price (GARP)
Turnaround Candidates
Quality Checks Before Finalizing
Before presenting analysis, verify:
DATA INTEGRITY CHECKS (CRITICAL - CHECK FIRST)
1. β Every numeric metric has a cited source from web search? 2. β No insider activity fabricated? (SEC Form 4 or N/A) 3. β No short interest fabricated? (FINRA/exchange or N/A) 4. β ROE benchmark correct? (>20% = green, 10-20% = yellow, <10% = red) 5. β Standardized metric labels used? (e.g., "Operative Margin", not "Operating") 6. β All unavailable data shows "N/A"? (NEVER zeros or estimates) 7. β TOP NEWS format correct? (pipe-separated, dates at END in brackets) 8. β Valuation indicator displayed below forecast? (Undervalued/Fairly Valued/Overvalued +/- %) 9. β Beta + Vol 1Y combined in one cell? 10. β Sector/Industry combined in one cell?ANALYSIS COMPLETENESS CHECKS
11. β All mandatory deliverables completed? 12. β Multiple valuation methods used? 13. β Both bull and bear cases presented? 14. β Clear BUY/HOLD/SELL recommendation? 15. β Specific entry price and position size? 16. β 3-5 peer companies compared? 17. β 5-10 year financial trends analyzed? 18. β Research based on company filings, not news? 19. β Margin of safety calculated? 20. β Risk level assessed? 21. β If SELL: 3-5 alternatives provided? 22. β Technical entry points identified? 23. β Advanced metrics calculated (Piotroski F, Altman Z, Beneish M, Max Drawdown)? 24. β All monetary values in β¬ (Euro)? 25. β Revenue/Earnings growth using REPORTED (not underlying/adjusted) figures? 26. β Value Trap Score calculated (0-100, LOWER = genuine)? 27. β All 8 Investor Persona Scores calculated (0-10)? 28. β PEG ratio calculated? 29. β FCF Margin calculated? 30. β Greenblatt Magic Formula metrics (EY, ROC)? 31. β News sentiment and short interest researched? 32. β Ichimoku Cloud data gathered with signal markers? 33. β TOP NEWS section populated (5 recent headlines)? 34. β 10-year price history with valuation lines available? 35. β Enhanced dashboard created with ALL 60+ metrics populated?FINAL VALIDATION QUESTIONS
If any checklist item incomplete: STOP and gather more information. If data genuinely unavailable after searching: Use "N/A" - never fabricate.
Example Evaluation Structure
[See complete example in EVALUATION-WORKFLOWS.md for detailed walkthrough]
Continuous Improvement
After each evaluation:
The goal is to discover genuinely attractive investment opportunities that fit the user's profile with adequate margin of safety and acceptable risk.