{
  "schemaVersion": "1.0",
  "item": {
    "slug": "stock-evaluator",
    "name": "Stock Evaluator",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Demandgap/stock-evaluator",
    "canonicalUrl": "https://clawhub.ai/Demandgap/stock-evaluator",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/stock-evaluator",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=stock-evaluator",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "ADVANCED-METRICS-GUIDE.md",
      "DASHBOARD-GUIDE.md",
      "EVALUATION-WORKFLOWS.md",
      "SKILL.md",
      "VALUATION-GUIDE.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/stock-evaluator"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/stock-evaluator",
    "agentPageUrl": "https://openagent3.xyz/skills/stock-evaluator/agent",
    "manifestUrl": "https://openagent3.xyz/skills/stock-evaluator/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/stock-evaluator/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "⚠️ CRITICAL: MANDATORY DELIVERABLES CHECKLIST",
        "body": "Every analysis MUST include ALL of these:\n\n☐ Technical Analysis (price action, indicators, key levels, Ichimoku Cloud)\n☐ Fundamental Analysis (business, financials, competitive position)\n☐ Advanced Financial Metrics (F-Score, Z-Score, M-Score, Max Drawdown, Value Trap Score)\n☐ Investor Persona Scores (8 legendary investor frameworks)\n☐ Valuation Assessment (multiple methods with margin of safety)\n☐ Bull vs. Bear Case (both sides with balance assessment)\n☐ Clear Recommendation (BUY / HOLD / SELL with conviction rating)\n☐ Alternative Candidates (if SELL: provide 3-5 better alternatives)\n☐ Enhanced Quant-Style Dashboard (React dashboard with 60+ metrics, Ichimoku, investor personas, TOP NEWS, and key notes)\n\nIf you cannot complete any item, STOP and ask for clarification."
      },
      {
        "title": "ZERO FABRICATION POLICY",
        "body": "NEVER fabricate, estimate, or hallucinate ANY numeric data point. Every metric in the dashboard MUST come from:\n\nA web search result with a cited source\nCompany filings (10-K, 10-Q, earnings reports)\nOfficial financial data providers\n\nIf data cannot be found → Use \"N/A\" or \"--\""
      },
      {
        "title": "MANDATORY WEB SEARCHES (minimum per analysis)",
        "body": "You MUST perform these searches before populating the dashboard:\n\nSearch #Query TemplateData Retrieved1\"[TICKER] stock price market cap P/E ratio\"Price, Market Cap, P/E2\"[TICKER] ROE ROA profit margin 2024 annual report\"Financial ratios3\"[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/sells6\"[TICKER] short interest percentage float\"Short interest7\"[TICKER] RSI MACD 50-day 200-day moving average beta volatility\"Technical indicators8\"[TICKER] analyst price target consensus\"Analyst targets"
      },
      {
        "title": "DATA SOURCE HIERARCHY",
        "body": "Use sources in this priority order:\n\nOfficial company filings (SEC EDGAR, company investor relations)\nExchange data (NYSE, NASDAQ, LSE official)\nVerified financial data (Yahoo Finance, Google Finance, MarketWatch)\nSEC Form 4 (for insider trading ONLY)\nFINRA/exchange (for short interest ONLY)"
      },
      {
        "title": "PROHIBITED",
        "body": "Using training knowledge for ANY specific current numbers\nAnalyst reports (per user preference)\nEstimates without sourcing\n\"Common knowledge\" assumptions"
      },
      {
        "title": "HANDLING UNAVAILABLE DATA",
        "body": "SituationActionDisplayMetric not found after searchingDisplay \"N/A\"value: \"N/A\"Data is outdated (>1 year old)Note the datevalue: \"15.2% (2023)\"Conflicting sourcesUse most authoritativeNote in analysisCalculated metric (F-Score)Show calculationExplain in textInsider data unavailableShow \"N/A\"insBuys: \"N/A\"\n\nCRITICAL: Zero means \"zero occurred\" - NEVER substitute zeros for missing data."
      },
      {
        "title": "STANDARDIZED METRIC LABELS",
        "body": "Use these EXACT labels in the dashboard (matches reference screenshots):"
      },
      {
        "title": "Row 1: PRICE & VALUATION | FINANCIAL PERFORMANCE",
        "body": "LabelNotesPrice:$XX.XX or €XX.XXMarket Cap:$XXB or €XXBTrailing P/E:XX.XXForward P/E:XX.XXSubsector P/E:XX.XX or N/APEG (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%)"
      },
      {
        "title": "Row 2: GROWTH METRICS | RISK INDICATORS",
        "body": "LabelNotesRevenue (YoY):XX.XX% with benchmark (>10%) - REPORTED onlyEarning (YoY):XX.XX% with benchmark (>0%) - REPORTED onlyEPS (TTM):$X.XXForward EPS:$X.XXGrowth Rates:Capped: X.X% / Uncapped: X.X%Analyst Target:$XX.XXCRS (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)"
      },
      {
        "title": "Row 3: LIQUIDITY & FREE CASH FLOW | INSIDER & SENTIMENT & CLASS",
        "body": "LabelNotesCurrent Ratio:X.XX with benchmark (1-2)Cash:$X.XBDebt:$X.XB or N/AFCF 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/ASells (12M):X - from SEC Form 4 or N/ANet Shares (12M):+/-XXK - from SEC Form 4 or N/AShort 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\""
      },
      {
        "title": "Row 4: QUALITY SCORES | MOAT & OTHER",
        "body": "LabelNotesCQVS:XX.XX with benchmark rangeLabel:Strong/Moderate/WeakValuation:XX.XXQuality:XX.XXStrength:XX.XXIntegrity:XX.XXBuffett Moat:X with benchmark (4-7)Greenblatt (MF):EY: X.X% / ROC: X.X% or N/ABeta: + 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\""
      },
      {
        "title": "STANDARDIZED BENCHMARKS (Single Source of Truth)",
        "body": "Use these EXACT thresholds for color coding:\n\nMetricGreen (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<11-2>2Current Ratio1-20.5-1 or 2-3<0.5 or >3Piotroski F≥74-6≤3Altman Z>2.991.81-2.99<1.81Beneish M<-2.22-2.22 to -1.78>-1.78PEG (1Y)<11-2>2RSI (14)30-5050-70>70 or <30Short 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 Trap0-3940-5960-100Max Drawdown>-30%-30% to -50%<-50%Revenue Growth>10%0-10%<0%Earnings Growth>0%-10% to 0%<-10%"
      },
      {
        "title": "Overview",
        "body": "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.\n\nThe evaluation answers:\n\nShould I buy this stock?\nAt what price should I enter?\nHow much should I allocate?\nWhat's my upside and downside?\nWhen should I sell?"
      },
      {
        "title": "Default Currency: € (Euro)",
        "body": "All monetary values in the dashboard should be displayed in Euro (€) as the default currency:\n\nPrice: €42.13\nMarket Cap: €78.3B\nAnalyst Target: €56.45\nEntry/Stop/Target prices: €38, €35, €56\nEPS values: €1.39, €1.91"
      },
      {
        "title": "IMPORTANT: Use REPORTED Growth Rates",
        "body": "For the dashboard metrics \"Rev Growth\" and \"Earn Growth\":\n\nUSE REPORTED GROWTH - not underlying, adjusted, or organic figures\nReported figures reflect actual GAAP/IFRS numbers including FX, acquisitions, disposals\nThis provides a more accurate picture of what investors actually received\nExample: If underlying growth is 7% but reported is 2.2%, use 2.2%\nSame for earnings: Use reported EPS growth, not adjusted EPS growth"
      },
      {
        "title": "Core Purpose",
        "body": "Stock Evaluator is for:\n\n✅ Evaluating potential investments BEFORE buying\n✅ Analyzing watchlist candidates\n✅ Getting buy/hold/sell recommendations with specific prices\n✅ Comparing multiple investment opportunities\n✅ Finding better alternatives to current consideration\n\nNOT for:\n\n❌ Reviewing existing portfolio positions (use Portfolio Analyst skill)\n❌ General stock market questions\n❌ Stock screening or discovery from scratch\n❌ Options, derivatives, or crypto analysis"
      },
      {
        "title": "Five Pillars of Stock Evaluation",
        "body": "1. Valuation Assessment\n\nIs the stock undervalued, fairly valued, or overvalued?\nMultiple valuation methods (DCF, relative, Peter Lynch, asset-based)\nMargin of safety requirement (15-30%)\nFair value estimate with confidence range\n\n2. Quality Analysis\n\nBusiness model strength and competitive moat\nFinancial health and trends (5-10 year view)\nManagement quality and capital allocation\nIndustry position and competitive advantages\n\n3. Timing Assessment\n\nTechnical setup and entry points\nNear-term catalysts and events\nMarket sentiment and positioning\nOptimal entry price range\n\n4. Position Sizing\n\nAllocation recommendation (% of portfolio)\nBased on conviction, risk, and diversification\nMaximum allocation limits\nRisk-adjusted sizing\n\n5. Conviction Rating\n\nStrong Buy: High conviction, clear undervaluation, low risk\nBuy: Good opportunity, reasonable valuation, moderate risk\nHold: Fairly valued, no compelling reason to buy now\nAvoid: Overvalued, significant risks, or better alternatives exist"
      },
      {
        "title": "What It Is",
        "body": "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.\""
      },
      {
        "title": "Value Trap Score Calculation (0-100, LOWER = more genuine, HIGHER = more trap)",
        "body": "Components to evaluate (ADD points for trap indicators):\n\n1. Price Momentum (25 points max)\n\n6-month price change vs market: If underperforming by >20%, ADD 15-25 points\n12-month price change: Sustained decline = ADD 10-20 points\nIf price momentum is POSITIVE: ADD 0 points\n\n2. Earnings Quality (25 points max)\n\nEPS trend (3 years): Declining = ADD 10-25 points\nRevenue trend: Declining = ADD 5-15 points\nMargin trend: Compressing = ADD 5-10 points\nIf earnings quality is STRONG: ADD 0 points\n\n3. Balance Sheet Health (25 points max)\n\nDebt levels increasing? ADD 5-15 points\nCash flow negative or declining? ADD 10-20 points\nWorking capital deteriorating? ADD 5-10 points\nIf balance sheet is HEALTHY: ADD 0 points\n\n4. Valuation Context (25 points max)\n\nIs low multiple justified by declining fundamentals? ADD 10-25 points\nCompare current fundamentals to when multiple was higher\nIf fundamentals justify valuation: ADD 0 points"
      },
      {
        "title": "Scoring Formula",
        "body": "Value Trap Score = Momentum Penalty + Quality Penalty + Balance Sheet Penalty + Valuation Penalty\n\n(Score ranges from 0 to 100, where 0 = definitely genuine value, 100 = definite value trap)"
      },
      {
        "title": "Score Interpretation",
        "body": "0-19: Genuine Value (likely undervalued, fundamentals intact) - GREEN\n20-39: Probably Genuine (minor concerns, monitor) - LIGHT GREEN\n40-59: Caution Zone (mixed signals, proceed carefully) - YELLOW\n60-79: Likely Trap (multiple red flags) - ORANGE\n80-100: Strong Trap Signal (avoid) - RED"
      },
      {
        "title": "Display Format",
        "body": "Value Trap: 21 (Genuine)\n\nColor coding: green <40, yellow 40-60, red >60"
      },
      {
        "title": "Investor Persona Scores",
        "body": "Score each stock against 8 famous investor philosophies (0-10 scale). This helps users understand what type of investor the stock suits."
      },
      {
        "title": "1. Warren Buffett Score",
        "body": "Based on \"The Warren Buffett Way\" - seeks durable competitive advantages\n\nKey metrics weighted:\n\nROE (>20%): 2 points\nProfit margin (>15%): 2 points\nFree cash flow positive & growing: 2 points\nMoat strength (brand, pricing power): 2 points\nPredictable earnings: 2 points\n\nBuffett likes: Predictable businesses, pricing power, low capex needs, consistent profitability"
      },
      {
        "title": "2. Charlie Munger Score",
        "body": "Based on \"Poor Charlie's Almanack\" - mental latticework, inversion thinking\n\nFocus on: What could go WRONG (inversion principle)\n\nScoring: Start at 10, subtract penalties:\n\nHigh debt (D/E > 2): -3 points\nVolatile earnings: -2 points\nPoor management history: -2 points\nNo competitive moat: -2 points\nAccounting red flags: -3 points"
      },
      {
        "title": "3. Ray Dalio Score",
        "body": "Based on \"Principles\" - All-Weather portfolio, economic machine understanding\n\nKey metrics:\n\nD/E ratio < 1: 2 points\nBeta < 1: 2 points\nStable margins across cycles: 2 points\nLow earnings volatility: 2 points\nRecession resistance history: 2 points\n\nDalio likes: Deleveraging plays, operational efficiency, cycle resilience"
      },
      {
        "title": "4. Peter Lynch Score",
        "body": "Based on \"One Up on Wall Street\" - GARP (Growth at Reasonable Price)\n\nPrimary metric: PEG Ratio (P/E ÷ Growth Rate)\n\nPEG < 0.5: 10 points\nPEG 0.5-1.0: 8 points\nPEG 1.0-1.5: 6 points\nPEG 1.5-2.0: 4 points\nPEG > 2.0: 2 points\n\nAdjustment factors:\n\n+1 if earnings growing consistently\n+1 if business easy to understand\n-1 if declining industry"
      },
      {
        "title": "5. Benjamin Graham Score",
        "body": "Based on \"The Intelligent Investor\" - Margin of Safety\n\nGraham criteria (2 points each, max 10):\n\nP/E < 15\nP/B < 1.5\nCurrent ratio > 2\nPositive earnings 10 years\nDividend paid 20+ years"
      },
      {
        "title": "6. Joel Greenblatt Score",
        "body": "Based on \"The Little Book That Beats the Market\" - Magic Formula\n\nCombines two rankings:\n\nEarnings Yield (EBIT/EV): Higher = better\nReturn on Capital (EBIT/Net Fixed Assets + Working Capital): Higher = better\n\nScoring: Combined rank in top 10% = 10 points, scaled down"
      },
      {
        "title": "7. John Templeton Score",
        "body": "Based on contrarian, global value investing\n\nKey factors:\n\nTrading at multi-year lows: +3 points\nOut of favor with analysts: +2 points\nStrong fundamentals despite pessimism: +3 points\nGlobal perspective (non-US opportunity): +2 points"
      },
      {
        "title": "8. George Soros Score",
        "body": "Based on \"The Alchemy of Finance\" - Reflexivity\n\nKey factors:\n\nMomentum and trend strength: 3 points\nMacro tailwinds: 3 points\nMarket perception shifting: 2 points\nInflection point catalyst: 2 points\n\nSoros likes: Macro plays, reflexive situations, trend participation"
      },
      {
        "title": "Display Format",
        "body": "Show 8 badges around radar chart with scores and color coding:\n\nGreen (7-10): Strong fit\nYellow (4-6.9): Moderate fit\nRed (0-3.9): Poor fit"
      },
      {
        "title": "Ichimoku Cloud Analysis",
        "body": "Components to Calculate:\n\nTenkan-sen (Conversion Line): (9-period high + 9-period low) / 2\nKijun-sen (Base Line): (26-period high + 26-period low) / 2\nSenkou Span A: (Tenkan-sen + Kijun-sen) / 2, plotted 26 periods ahead\nSenkou Span B: (52-period high + 52-period low) / 2, plotted 26 periods ahead\nChikou Span (Lagging Span): Current close plotted 26 periods back\n\nCloud (Kumo): Area between Senkou Span A and B\n\nSignals to Identify and Display:\n\nTK Bullish Cross: Tenkan-sen crosses above Kijun-sen (bullish) - mark with ◆\nTK Bearish Cross: Tenkan-sen crosses below Kijun-sen (bearish) - mark with ◆\nKumo Twist Bullish: Cloud changes from red to green - mark with ◆\nKumo Twist Bearish: Cloud changes from green to red - mark with ◆\nPrice vs Cloud: Above cloud (bullish), Below cloud (bearish), In cloud (neutral)"
      },
      {
        "title": "Dual PEG Ratios",
        "body": "PEG (1Y): P/E ÷ 1-Year Forward Growth Estimate\nPEG (5Y): P/E ÷ 5-Year Historical Growth Rate\nBoth provide different perspectives on growth valuation"
      },
      {
        "title": "FCF Margin",
        "body": "Formula: Free Cash Flow / Revenue × 100\nBenchmark: >15% is excellent, >10% is good\nShows cash generation efficiency relative to sales"
      },
      {
        "title": "News Sentiment & Short Interest",
        "body": "News Sentiment: -1 to +1 scale based on recent article sentiment\nShort Interest: % of float sold short (>10% = high, <5% = low)\nBoth indicate market sentiment and potential squeeze/reversal"
      },
      {
        "title": "1. Business Understanding (Always First)",
        "body": "What to Analyze:\n\nWhat does the company do? (products, services, business model)\nRevenue sources and breakdown\nTarget customers and markets\nCompetitive advantages (moat sources)\nMarket position and share\nIndustry dynamics and trends\n\nManagement Evaluation:\n\nCEO background, tenure, track record\nCFO and key executives\nCapital allocation decisions (dividends, buybacks, acquisitions, R&D)\nManagement compensation alignment\nInsider trading patterns (buying is bullish signal)\nLeadership quality from earnings calls and letters\n\nCompetitive Position:\n\nMarket share and trends\nKey competitors (identify 3-5 direct peers)\nWhat differentiates this company?\nSustainable competitive advantages?"
      },
      {
        "title": "2. Financial Analysis (5-10 Year View)",
        "body": "Research Process Order:\n\nLatest 10-K first - Understand current business and recent results\nGo back 5-10 years through historical 10-Ks - Understand evolution\nReview last 2-3 years of 10-Qs - Current trajectory\nExamine proxy statements - Governance and compensation\n\nKey Metrics to Analyze:\n\nQuality Benchmarks:\n\nROE > 15% (return on equity)\nProfit Margin > 15%\nGross Margin > 30%\nDebt < Annual Revenue\nPositive and growing Free Cash Flow\nRevenue growth over 5 years (inflation-adjusted)\n\nTrends to Assess:\n\nRevenue growth trajectory (accelerating/stable/decelerating?)\nMargin expansion or contraction (why?)\nCash flow consistency and quality\nBalance sheet strength (debt levels, liquidity)\nReturn on invested capital (ROIC)\nWorking capital management\n\nRed Flags:\n\nDeclining margins despite revenue growth\nNegative or inconsistent free cash flow\nDebt growing faster than cash generation\nLosing market share\nChronic guidance misses\nAccounting irregularities"
      },
      {
        "title": "3. Competitive Moat Assessment",
        "body": "Moat Strength: Wide / Narrow / None\n\nEvaluate Sources:\n\nNetwork effects: Product improves with more users?\nBrand loyalty: Pricing power from brand strength?\nSwitching costs: Difficult/expensive to switch?\nRegulatory barriers: Licenses, patents, regulations?\nCost advantages: Scale, technology, location?\nIntangible assets: Patents, trademarks, proprietary data?\n\nMoat Durability:\n\nHow long can advantages be sustained?\nWhat could erode the moat?\nIs moat strengthening or weakening?\n\nPeer Comparison:\nCompare this company's moat vs. 3-5 direct competitors:\n\nMarket share trends\nProfitability metrics (margins, ROE)\nGrowth rates\nFinancial strength"
      },
      {
        "title": "4. Advanced Financial Health Metrics",
        "body": "Beyond basic quality metrics, calculate these advanced scores for deeper insight:\n\nPiotroski F-Score (Financial Strength)\n\nPurpose: 9-point score measuring financial strength across profitability, leverage, and operating efficiency.\n\nScoring (0-9, higher is better):\n\nProfitability (4 points):\n\nROA > 0: +1\nOperating Cash Flow > 0: +1\nROA improving YoY: +1\nCash Flow from Operations > Net Income (quality of earnings): +1\n\nLeverage/Liquidity (3 points):\n\nLong-term debt decreasing YoY: +1\nCurrent ratio improving YoY: +1\nNo new shares issued in past year: +1\n\nOperating Efficiency (2 points):\n\nGross margin improving YoY: +1\nAsset turnover ratio improving YoY: +1\n\nInterpretation:\n\n8-9: Excellent financial health\n6-7: Good financial health\n4-5: Adequate financial health\n0-3: Weak financial health\n\nAltman Z-Score (Bankruptcy Risk)\n\nPurpose: Predicts probability of bankruptcy within 2 years.\n\nFormula (for public manufacturing companies):\nZ = 1.2(A) + 1.4(B) + 3.3(C) + 0.6(D) + 1.0(E)\n\nWhere:\n\nA = Working Capital / Total Assets\nB = Retained Earnings / Total Assets\nC = EBIT / Total Assets\nD = Market Cap / Total Liabilities\nE = Sales / Total Assets\n\nInterpretation:\n\nZ > 2.99: Safe Zone (low bankruptcy risk)\nZ 1.81-2.99: Grey Zone (moderate risk)\nZ < 1.81: Distress Zone (high bankruptcy risk)\n\nNote: Adjust for non-manufacturing companies (different coefficients).\n\nBeneish M-Score (Earnings Manipulation Detection)\n\nPurpose: Identifies likelihood of earnings manipulation.\n\nKey Indicators (simplified approach):\n\nDays Sales Outstanding Index (increasing = warning)\nGross Margin Index (declining = warning)\nAsset Quality Index (increasing = warning)\nSales Growth Index (excessive growth = warning)\nDepreciation Index (declining = warning)\nSG&A Index (disproportionate change = warning)\nLeverage Index (increasing = warning)\nTotal Accruals to Total Assets (high = warning)\n\nInterpretation:\n\nM-Score > -1.78: Likely manipulator (RED FLAG)\nM-Score < -1.78: Unlikely manipulator (clean)\n\nPractical Check (if full M-Score unavailable):\n\nAre accruals consistently high relative to cash flow?\nIs DSO rising faster than revenue?\nAre margins declining with revenue growth?\nAny accounting restatements or auditor changes?\n\nMax Drawdown (5-Year)\n\nPurpose: Measures largest peak-to-trough price decline.\n\nCalculation:\n\nIdentify highest price in past 5 years\nFind lowest subsequent price before recovery\nMax Drawdown % = (Low - High) / High × 100\n\nInterpretation:\n\n0-20%: Low volatility (defensive stock)\n20-40%: Moderate volatility (typical stock)\n40-60%: High volatility (cyclical/growth)\n>60%: Extreme volatility (speculative)\n\nConsolidated Scores\n\nStrength Score (0-100):\nComposite of:\n\nFinancial metrics (F-Score contribution)\nProfitability (ROE, margins)\nGrowth rates\nMarket position\n\nIntegrity Score (0-100):\nComposite of:\n\nM-Score (earnings quality)\nCash flow vs. earnings alignment\nAccounting practices\nManagement transparency\n\nPredictability Score (0-100):\nComposite of:\n\nRevenue consistency (low volatility)\nEarnings consistency\nBusiness model stability\nCyclicality assessment\n\nData Quality Score (0-100):\n\nCompleteness of financial data\nRecency of filings\nAuditor quality\nDisclosure transparency"
      },
      {
        "title": "5. Risk Analysis",
        "body": "Company-Specific Risks:\n\nExecution risk (can management deliver?)\nCompetition risk (share loss, new entrants)\nProduct concentration (single product dependency)\nCustomer concentration (few large customers)\nKey person risk (CEO dependency)\nFinancial distress risk (Z-Score assessment)\nEarnings quality risk (M-Score assessment)\n\nIndustry Risks:\n\nDisruption (technology or business model)\nCyclicality (economic sensitivity)\nRegulation (policy changes)\nCommoditization (pricing power erosion)\nStructural decline (secular headwinds)\n\nMacro Risks:\n\nEconomic (recession, inflation, rates)\nGeopolitical (trade wars, conflicts)\nCurrency (FX exposure)\nMarket (valuation levels, sentiment)\n\nOverall Risk Level: Low / Moderate / High\n\nConsolidated Risk Score: (0-1 scale, lower is better)\n\nIncorporates: Z-Score, volatility, leverage, earnings quality\n<0.30: Low Risk\n0.30-0.60: Moderate Risk\n\n\n0.60: High Risk"
      },
      {
        "title": "Valuation Assessment",
        "body": "Use multiple valuation methods - synthesize into fair value estimate."
      },
      {
        "title": "Required Valuation Methods",
        "body": "1. DCF Analysis (Discounted Cash Flow)\n\nProject free cash flows (5-10 years)\nApply appropriate discount rate (WACC)\nCalculate terminal value\nInclude margin of safety: 15-30%\nSensitivity analysis with different assumptions\n\n2. Relative Valuation\n\nCompare to 3-5 direct peer companies\nKey multiples: P/E, EV/EBITDA, Price/Sales, Price/Book\nAdjust for growth differentials\nConsider industry-specific multiples\nUse both current and historical peer averages\n\n3. Peter Lynch Fair Value\n\nGrowth-at-reasonable-price framework\nCompare P/E to growth rate (PEG ratio)\nFair value when P/E ≈ growth rate\nAdjust for quality factors\n\n4. Asset-Based (When Applicable)\n\nFor REITs, financials, asset-heavy companies\nBook value or replacement cost\nNet asset value calculations"
      },
      {
        "title": "Valuation Synthesis",
        "body": "Fair Value Estimate: €X.XX\n\nWeight each method appropriately:\n\nDCF: 40% (if reliable cash flows)\nRelative: 30% (peer comparison)\nPeter Lynch: 30% (growth-adjusted)\n\nMargin of Safety:\n\nCurrent Price vs. Fair Value: X% discount/premium\nRequired: Minimum 15% margin of safety\nAdequate: 15-30% margin of safety\nExcellent: >30% margin of safety\n\nValuation Conclusion:\n\nUNDERVALUED: >15% below fair value (buy opportunity)\nFAIRLY VALUED: Within ±15% of fair value (hold)\nOVERVALUED: >15% above fair value (avoid/sell)"
      },
      {
        "title": "Technical Analysis (Entry Timing)",
        "body": "Focus on identifying optimal entry points, not full technical analysis."
      },
      {
        "title": "Key Technical Elements",
        "body": "1. Price Action (Last 30-60 Days)\n\nCurrent trend: Uptrend / Downtrend / Range-bound\nRecent price pattern\nVolume trends (increasing on rallies?)\nMomentum assessment\n\n2. Key Levels\n\nSupport levels: Where buying interest emerges\n\nPrimary support: €X.XX\nSecondary support: €X.XX\n\n\nResistance levels: Where selling pressure increases\n\nPrimary resistance: €X.XX\nSecondary resistance: €X.XX\n\n3. Technical Indicators\n\nRSI (Relative Strength Index):\n\n\n\n70 = Overbought (may pullback)\n\n\n<30 = Oversold (potential bounce)\n40-60 = Neutral\n\n\nMACD (Moving Average Convergence Divergence):\n\nBullish crossover / Bearish crossover / Neutral\nMomentum accelerating or decelerating?\n\n\nMoving Averages:\n\n50-day MA: €X.XX (price above/below?)\n200-day MA: €X.XX (trend indicator)\n\n4. Entry Assessment\n\nTechnical Setup: Bullish / Neutral / Bearish\nOptimal Entry: Wait for pullback to support / Buy at market / Wait for breakout\nEntry Price Range: €X.XX - €X.XX\nAvoid Above: €X.XX (poor risk/reward)"
      },
      {
        "title": "Bull vs. Bear Case Analysis",
        "body": "MANDATORY: Every analysis must present both sides fairly."
      },
      {
        "title": "Bull Case (Optimistic Scenario)",
        "body": "Potential Upside: +X% to €X.XX\n\n[Key bull argument 1 with specific evidence]\n[Key bull argument 2 with specific evidence]\n[Key bull argument 3 with specific evidence]\n\nFor this to play out:\n\n[Required condition 1]\n[Required condition 2]"
      },
      {
        "title": "Bear Case (Pessimistic Scenario)",
        "body": "Potential Downside: -X% to €X.XX\n\n[Key bear argument 1 with specific evidence]\n[Key bear argument 2 with specific evidence]\n[Key bear argument 3 with specific evidence]\n\nThis happens if:\n\n[Risk trigger 1]\n[Risk trigger 2]"
      },
      {
        "title": "Balance Assessment",
        "body": "Which case is more probable: [Bull / Bear / Balanced]\n\n[Explanation of why one case is more likely, considering:\n\nQuality of evidence for each side\nHistorical precedent\nManagement track record\nIndustry dynamics\nCurrent valuation]"
      },
      {
        "title": "BUY Recommendation Criteria",
        "body": "Fair value >15% above current price (adequate margin of safety)\nStrong or improving fundamentals\nReasonable or bullish technical setup\nIdentifiable catalysts\nAcceptable risk level\nConviction: Strong Buy or Buy"
      },
      {
        "title": "HOLD Recommendation Criteria",
        "body": "Fair value within ±15% of current price\nStable fundamentals, no compelling catalyst\nBetter opportunities may exist elsewhere\nWait for better entry price\nConviction: Hold"
      },
      {
        "title": "SELL/AVOID Recommendation Criteria",
        "body": "Fair value <-15% below current price (overvalued)\nDeteriorating fundamentals\nSignificant risks\nBetter alternatives available\nMust provide 3-5 alternative candidates\nConviction: Avoid"
      },
      {
        "title": "Position Sizing Framework",
        "body": "Allocation recommendation based on:\n\nConviction + Risk = Position Size\n\nStrong Buy (High Conviction, Low Risk):\n\nPosition size: 5-8% of portfolio\nMaximum: 10%\n\nBuy (Moderate Conviction, Moderate Risk):\n\nPosition size: 3-5% of portfolio\nMaximum: 7%\n\nSpeculative/High Risk:\n\nPosition size: 1-3% of portfolio\nMaximum: 5%\n\nConsiderations:\n\nDiversification needs (avoid sector concentration)\nCorrelation with existing holdings\nOverall portfolio risk\nLiquidity requirements\nUser's risk tolerance (from project context)"
      },
      {
        "title": "Entry Strategy",
        "body": "NO scale-in strategies - recommend single entry approach:\n\nIf BUY:\n\nIdeal Entry Price: €X.XX - €X.XX (optimal range)\nMaximum Buy Price: €X.XX (above this, risk/reward unfavorable)\nApproach:\n\n\"Buy now at market\" (if currently at good price)\n\"Wait for pullback to €X.XX support\" (if extended)\n\"Buy on break above €X.XX\" (if breakout setup)\n\"Don't buy above €X.XX\" (if overvalued)"
      },
      {
        "title": "Exit Strategy",
        "body": "Price Target (12-month): €X.XX (+X% upside)\n\nConservative: €X.XX\nBase case: €X.XX\nOptimistic: €X.XX\n\nStop Loss: €X.XX (-X% maximum loss)\n\nTechnical stop: Below key support\nFundamental stop: If thesis breaks\n\nSell If (Thesis-Breaking Conditions):\n\n[Specific fundamental deterioration]\n[Specific competitive threat]\n[Specific valuation threshold]\n\nHold Duration:\n\nExpected timeframe: [6-12 months / 1-3 years / 3-5+ years]\nBased on investment type (swing trade vs long-term hold)"
      },
      {
        "title": "Catalyst Identification",
        "body": "Identify specific events that could drive stock performance.\n\nNear-Term (0-6 months):\n\nUpcoming earnings: [Date]\nProduct launches: [Event]\nRegulatory decisions: [Expected timing]\nIndustry events: [Conference, data release]\n\nMedium-Term (6-18 months):\n\nMarket expansion plans\nNew product cycles\nMargin expansion initiatives\nStrategic partnerships\n\nLong-Term (18+ months):\n\nStructural industry trends\nMarket share gains\nTechnological leadership\nBusiness model evolution"
      },
      {
        "title": "Key Analytical Constraints",
        "body": "Critical Principles:\n\nNo Press/News for Fundamental Analysis\n\nUse company filings only (10-K, 10-Q, 8-K, proxy)\nUse earnings call transcripts\nDo NOT rely on news articles or press releases\nException: News for recent developments, but verify in filings\n\n\n\nMagnitude Over Precision\n\nFocus on stocks with good margin of safety (>15%)\nDon't need perfect forecasts\nBetter to be approximately right than precisely wrong\nConservative assumptions better than optimistic\n\n\n\nLong-Term View\n\nAnalyze 5-10 year trends, not just recent quarters\nTemporary setbacks vs. structural problems\nSustainable competitive advantages matter most\nShort-term noise vs. long-term signal\n\n\n\nCompare Apples to Apples\n\nBenchmark against 3-5 direct competitors\nNot just broad market indices\nIndustry-specific metrics and norms\nAdjust for company size and maturity\n\n\n\nIntellectual Honesty\n\nAcknowledge limitations and unknowns\nPresent both bull and bear cases fairly\nSay \"I don't know\" when appropriate\nUpdate views when evidence changes"
      },
      {
        "title": "Output Template",
        "body": "# [SYMBOL] - [Company Name] Evaluation\n\n## ⚠️ DELIVERABLES CHECKLIST ✓\n☑ Technical Analysis Complete\n☑ Fundamental Analysis Complete\n☑ Valuation Assessment Complete\n☑ Bull vs. Bear Case Complete\n☑ Clear Recommendation: **[BUY / HOLD / SELL]**\n☑ Alternative Candidates: [If SELL, list 3-5 alternatives below]\n\n---\n\n## 📊 Executive Summary\n\n[2-3 sentence bottom-line assessment with key reasoning]\n\n**Recommendation: [BUY / HOLD / SELL]**\n**Conviction: [Strong Buy / Buy / Hold / Avoid]**\n\n---\n\n## 💰 Valuation Assessment\n\n**Fair Value Estimate: €X.XX** (Current: €X.XX)\n- **Margin of Safety: X%** [Adequate >15% / Insufficient <15%]\n- **Valuation: [UNDERVALUED / FAIRLY VALUED / OVERVALUED]**\n\n| Valuation Method | Fair Value | vs. Current | Weight |\n|-----------------|-----------|-------------|--------|\n| DCF Analysis | €X.XX | +X% | 40% |\n| Peer Relative | €X.XX | +X% | 30% |\n| Peter Lynch | €X.XX | +X% | 30% |\n| **Weighted Average** | **€X.XX** | **+X%** | **100%** |\n\n**Assumptions:**\n- DCF: [Key assumptions - growth rate, margins, discount rate]\n- Margin of safety applied: X%\n\n---\n\n## 🏢 Business & Competitive Analysis\n\n### What They Do\n[2-3 paragraph business model summary:\n- Core products/services\n- Revenue breakdown\n- Target markets\n- Business model]\n\n### Competitive Advantages\n**Moat Strength: [Wide / Narrow / None]**\n\n1. **[Advantage 1]**: [Detailed explanation with evidence]\n2. **[Advantage 2]**: [Detailed explanation with evidence]\n3. **[Advantage 3]**: [Detailed explanation with evidence]\n\n**Moat Durability:** [How sustainable are these advantages? 3-5 years? 10+ years?]\n\n### Management Quality Assessment\n**Overall Rating: [Excellent / Good / Adequate / Concerning]**\n\n- **CEO**: [Name] - [Background, tenure]\n  - Track record: [Achievements/concerns]\n  - Capital allocation: [Shareholder-friendly? Smart acquisitions?]\n- **CFO**: [Name] - [Financial stewardship]\n- **Insider Trading**: [Recent buying/selling activity]\n- **Key Insight**: [Overall management assessment]\n\n### Competitive Position\n\n**Market Position:**\n- Market share: X% (#X in industry)\n- Share trend: [Gaining / Stable / Losing]\n\n**Key Competitors:** [List 3-5 direct peers]\n\n**Peer Comparison:**\n| Company | Mkt Cap | Revenue Growth | Profit Margin | ROE | P/E | Moat |\n|---------|---------|---------------|---------------|-----|-----|------|\n| [Target] | €XB | X% | X% | X% | X.X | [Rating] |\n| [Peer 1] | €XB | X% | X% | X% | X.X | [Rating] |\n| [Peer 2] | €XB | X% | X% | X.X | X.X | [Rating] |\n| [Peer 3] | €XB | X% | X% | X% | X.X | [Rating] |\n\n**Competitive Assessment:** [Is this the best company in the sector?]\n\n---\n\n## 📈 Financial Health Analysis\n\n### Quality Metrics vs. Benchmarks\n\n| Metric | Current | 1Y Ago | 3Y Ago | 5Y Ago | Target | Status |\n|--------|---------|--------|--------|--------|--------|--------|\n| ROE | X% | X% | X% | X% | >15% | [✓/✗] |\n| Profit Margin | X% | X% | X% | X% | >15% | [✓/✗] |\n| Gross Margin | X% | X% | X% | X% | >30% | [✓/✗] |\n| Revenue Growth | X% | X% | X% | X% | >0% | [✓/✗] |\n| Debt/Revenue | X.X | X.X | X.X | X.X | <1.0 | [✓/✗] |\n| FCF | €XM | €XM | €XM | €XM | Positive | [✓/✗] |\n\n### Advanced Financial Health Scores\n\n**Piotroski F-Score: X/9** [Excellent 8-9 / Good 6-7 / Adequate 4-5 / Weak 0-3]\n\n*Profitability:* X/4\n- ROA positive: [✓/✗]\n- Operating CF positive: [✓/✗]\n- ROA improving: [✓/✗]\n- CF > Net Income: [✓/✗]\n\n*Leverage:* X/3\n- Debt decreasing: [✓/✗]\n- Current ratio improving: [✓/✗]\n- No dilution: [✓/✗]\n\n*Efficiency:* X/2\n- Margin improving: [✓/✗]\n- Turnover improving: [✓/✗]\n\n**Assessment:** [Detailed interpretation of F-Score]\n\n**Altman Z-Score: X.XX** [Safe >2.99 / Grey 1.81-2.99 / Distress <1.81]\n- **Bankruptcy Risk:** [Low / Moderate / High]\n- **Interpretation:** [Explanation of Z-Score and financial stability]\n\n**Beneish M-Score: X.XX** [Clean <-1.78 / Warning >-1.78]\n- **Earnings Quality:** [High / Moderate / Questionable]\n- **Red Flags:** [List any concerning indicators or state \"None\"]\n\n**Max Drawdown (5Y): -X%** [Low <20% / Moderate 20-40% / High 40-60% / Extreme >60%]\n- **Volatility Assessment:** [Low/Moderate/High volatility explanation]\n- **Peak price:** €X.XX ([Date])\n- **Trough price:** €X.XX ([Date])\n\n### Consolidated Scores\n\n**Strength Score: X/100** (Financial power and market position)\n**Integrity Score: X/100** (Earnings quality and transparency)\n**Predictability Score: X/100** (Business consistency)\n**Data Quality Score: X/100** (Information completeness)\n\n**Overall Quality Rating: [Elite / Strong / Good / Adequate / Weak]**\n\n### Financial Trends (5-10 Year View)\n\n**Revenue:**\n- [Trend description: growth rate, consistency, drivers]\n- [Any concerning patterns?]\n\n**Margins:**\n- Gross margin: [Expanding / Stable / Declining]\n- Operating margin: [Trend]\n- Net margin: [Trend]\n- Drivers: [Why are margins moving this way?]\n\n**Cash Flow:**\n- Operating cash flow: [Trend and quality]\n- Free cash flow: [Consistency, conversion]\n- Capital allocation: [Dividends, buybacks, capex, acquisitions]\n\n**Balance Sheet:**\n- Debt levels: [Conservative / Moderate / High]\n- Liquidity: [Strong / Adequate / Concerning]\n- Trend: [Strengthening / Stable / Weakening]\n\n### 🚩 Red Flags\n[List any concerning trends or issues, or state \"None identified\"]\n\n---\n\n## 📉 Technical Analysis & Entry Timing\n\n### Price Action (Last 30-60 Days)\n- **Current Price**: €X.XX\n- **52-Week Range**: €X.XX - €X.XX\n- **30-day Change**: [+/-X%]\n- **Trend**: [Uptrend / Downtrend / Range-bound]\n- **Volume**: [Increasing / Decreasing / Normal]\n\n### Key Technical Levels\n\n**Support Levels:**\n- **Primary Support: €X.XX** - [Significance/reason]\n- **Secondary Support: €X.XX** - [Significance/reason]\n\n**Resistance Levels:**\n- **Primary Resistance: €X.XX** - [Significance/reason]\n- **Secondary Resistance: €X.XX** - [Significance/reason]\n\n### Technical Indicators\n\n**RSI**: X.X [Overbought >70 / Neutral 30-70 / Oversold <30]\n**MACD**: [Bullish crossover / Bearish crossover / Neutral]\n- Interpretation: [Momentum assessment]\n\n**Moving Averages:**\n- 50-day MA: €X.XX - Price is [above/below]\n- 200-day MA: €X.XX - Price is [above/below]\n- Golden/Death Cross: [Any recent crossovers?]\n\n### Entry Assessment\n\n**Technical Setup: [Bullish / Neutral / Bearish]**\n\n**Optimal Entry Strategy:**\n- [Buy now at market / Wait for pullback to €X.XX / Buy on breakout above €X.XX]\n- **Ideal Entry Range: €X.XX - €X.XX**\n- **Maximum Buy Price: €X.XX** (avoid above this)\n\n**Momentum: [Strong Bullish / Bullish / Neutral / Bearish / Strong Bearish]**\n\n---\n\n## ⚖️ Bull vs. Bear Case\n\n### 🐂 Bull Case\n**Potential Upside: €X.XX (+X%)**\n\n1. **[Bull Argument 1]**: [Specific evidence and reasoning]\n2. **[Bull Argument 2]**: [Specific evidence and reasoning]\n3. **[Bull Argument 3]**: [Specific evidence and reasoning]\n\n**For this to play out:**\n- [Required condition 1]\n- [Required condition 2]\n\n**Probability: [High / Moderate / Low]**\n\n### 🐻 Bear Case\n**Potential Downside: €X.XX (-X%)**\n\n1. **[Bear Argument 1]**: [Specific risk and reasoning]\n2. **[Bear Argument 2]**: [Specific risk and reasoning]\n3. **[Bear Argument 3]**: [Specific risk and reasoning]\n\n**This happens if:**\n- [Risk trigger 1]\n- [Risk trigger 2]\n\n**Probability: [High / Moderate / Low]**\n\n### ⚖️ Balance Assessment\n\n**Which case is more probable: [Bull / Bear / Balanced]**\n\n[2-3 paragraph explanation of:\n- Weight of evidence for each side\n- Historical precedent\n- Management track record\n- Industry dynamics\n- Current valuation\n- Risk/reward assessment]\n\n---\n\n## ⚠️ Risk Analysis\n\n**Overall Risk Level: [Low / Moderate / High]**\n\n### Key Risks\n\n**1. [Risk Category - e.g., Competition Risk]**: \n[Specific risk and potential impact. Probability: High/Medium/Low]\n\n**2. [Risk Category - e.g., Execution Risk]**: \n[Specific risk and potential impact. Probability: High/Medium/Low]\n\n**3. [Risk Category - e.g., Valuation Risk]**: \n[Specific risk and potential impact. Probability: High/Medium/Low]\n\n**4. [Risk Category - e.g., Macro Risk]**: \n[Specific risk and potential impact. Probability: High/Medium/Low]\n\n### Risk Mitigation\n[How does the company/investment address these risks?]\n[What reduces the risk in this investment?]\n\n---\n\n## 🎯 Catalysts & Timeline\n\n### Near-Term (0-6 months)\n- **[Date]**: [Specific catalyst - earnings, product launch, etc.]\n- **[Date]**: [Specific catalyst]\n\n### Medium-Term (6-18 months)\n- [Expected development 1]\n- [Expected development 2]\n\n### Long-Term (18+ months)\n- [Structural trend 1]\n- [Structural trend 2]\n\n**Expected Timeline to Target**: [6-12 months / 1-3 years / 3-5+ years]\n\n---\n\n## 💡 Investment Recommendation\n\n### **RECOMMENDATION: [BUY / HOLD / SELL]**\n### **Conviction: [Strong Buy / Buy / Hold / Avoid]**\n\n### Rationale\n[2-3 paragraph synthesis of entire analysis:\n- Why this recommendation?\n- What makes it compelling (or not)?\n- How does valuation + fundamentals + technicals + catalysts = this conclusion?\n- What's the risk/reward?]\n\n---\n\n## 📍 Entry Strategy (if BUY)\n\n**Ideal Entry Price: €X.XX - €X.XX**\n- Reasoning: [Why this range?]\n\n**Maximum Acceptable Price: €X.XX**\n- Above this: Risk/reward unfavorable\n\n**Approach:**\n- [Buy now at market / Wait for pullback to €X.XX / Buy on breakout above €X.XX]\n- Reasoning: [Current technical setup justification]\n\n**DO NOT BUY IF:**\n- Price exceeds €X.XX without fundamental improvement\n- [Other specific condition]\n\n---\n\n## 🎯 Exit Strategy\n\n### Price Targets (12-Month Horizon)\n- **Conservative**: €X.XX (+X%)\n- **Base Case**: €X.XX (+X%)\n- **Optimistic**: €X.XX (+X%)\n\n### Stop Loss\n**Stop Loss: €X.XX (-X% maximum loss)**\n- Technical: Below €X.XX support\n- Fundamental: If [thesis-breaking condition]\n\n### Sell Conditions (Thesis-Breaking)\nExit position if any of these occur:\n1. [Specific fundamental deterioration - e.g., \"ROE drops below 10% for 2 consecutive quarters\"]\n2. [Specific competitive threat - e.g., \"Loses >5% market share to competitor\"]\n3. [Specific valuation threshold - e.g., \"Reaches €X.XX (>50% above fair value)\"]\n\n### Hold Duration\n**Expected Timeframe**: [6-12 months / 1-3 years / 3-5+ years]\n- Based on: [Investment type - swing trade vs. long-term hold]\n\n---\n\n## 📏 Position Sizing\n\n### Recommended Allocation: X-X% of portfolio\n**Specific Recommendation: X%**\n\n**Rationale:**\n- Conviction level: [Strong Buy / Buy → drives size]\n- Risk level: [Low / Moderate / High → constrains size]\n- Diversification: [Sector exposure, correlation with existing holdings]\n- Liquidity: [Can exit position easily?]\n\n**Maximum Allocation: X%**\n- Risk management limit\n- Don't exceed even if highly convicted\n\n### Sizing Guidelines Applied:\n- Strong Buy + Low Risk = 5-8% (max 10%)\n- Buy + Moderate Risk = 3-5% (max 7%)\n- Speculative + High Risk = 1-3% (max 5%)\n\n---\n\n## 🔑 Key Takeaways\n\n### Top 3 Reasons to Invest\n1. [Most compelling positive factor]\n2. [Second most compelling positive factor]\n3. [Third most compelling positive factor]\n\n### Top 3 Concerns\n1. [Biggest risk or concern]\n2. [Second biggest risk or concern]\n3. [Third biggest risk or concern]\n\n### One-Sentence Investment Thesis\n[Single sentence capturing the complete investment case - why buy or avoid]\n\n---\n\n## 📚 Research Documentation\n\n**Sources Consulted:**\n- 10-K filings: [Fiscal years reviewed - e.g., FY2020-2024]\n- 10-Q filings: [Recent quarters - e.g., Q1-Q3 2025]\n- Earnings calls: [Dates reviewed]\n- Proxy statements: [Years reviewed]\n- Management letters: [Years reviewed]\n- Competitor analysis: [Companies benchmarked]\n\n**Analysis Depth:**\n- Historical period analyzed: [X years]\n- Peer companies compared: [Number and names]\n- Valuation methods used: [DCF, Relative, Peter Lynch, Asset-based]\n\n**Confidence Level: [High / Medium / Low]**\n- **Based on**: [Quality and completeness of available data]\n- **Gaps**: [Any areas where information is limited or unavailable]\n- **Limitations**: [Any constraints in the analysis]\n\n---\n\n## 🔄 Alternative Candidates (Required if SELL/AVOID)\n\n[If recommending SELL or AVOID, provide 3-5 better investment alternatives with brief rationale for each]\n\n### Alternative 1: [Symbol] - [Company Name]\n**Why it's better**: [1-2 paragraph comparison]\n**Quick metrics**: [Valuation, growth, margins]\n\n### Alternative 2: [Symbol] - [Company Name]\n**Why it's better**: [1-2 paragraph comparison]\n**Quick metrics**: [Valuation, growth, margins]\n\n### Alternative 3: [Symbol] - [Company Name]\n**Why it's better**: [1-2 paragraph comparison]\n**Quick metrics**: [Valuation, growth, margins]\n\n[Continue for 4-5 alternatives if SELL recommendation]\n\n---\n\n**Analysis Date**: [Current Date]\n**Next Review**: [Suggested review date based on catalysts or timeline]\n**Analyst**: Claude Stock Evaluator\n\n---\n\n## 📊 Quant-Style Dashboard\n\n**FINAL MANDATORY STEP**: Create a React artifact using the standardized quant-style dashboard template with:\n\n**Required Data to Populate:**\n- ✅ All 48 metrics across 8 sections (calculated above)\n- ✅ Historical price data (5 years, 6-12 points)\n- ✅ 1-year price + 6-month forecast (4-6 points)\n- ✅ MACD data (3-5 recent points)\n- ✅ RSI data (3-5 recent points)\n- ✅ Radar chart (12 metrics, normalized 0-100)\n- ✅ Bull case (target + 5 points)\n- ✅ Bear case (target + 5 points)\n- ✅ Entry/exit strategy (5 values)\n\n**Use the EXACT template code provided in the skill instructions above.**\n**DO NOT use placeholder values - populate with actual calculated data from this analysis.**\n\n[Create the React artifact here using the quant-style template]"
      },
      {
        "title": "Quant-Style Dashboard Artifact",
        "body": "MANDATORY: After completing the full text analysis, create a React dashboard artifact using the standardized quant-style template format."
      },
      {
        "title": "Dashboard Template Structure",
        "body": "The dashboard uses a specific institutional-grade format with:\n\n1. Header Section (Orange background)\n\nFormat: TICKER - Company Name\n\n2. Eight Metric Sections (2-column grid)\n\nLeft ColumnRight ColumnPrice & Valuation (blue)Financial Performance (green)Growth Metrics (emerald)Risk Indicators (red)Liquidity & FCF (cyan)Insider & Sentiment (purple)Quality Scores (orange)Moat & Other (gray)\n\nEach section: 6 metric boxes with values, labels, benchmarks, color coding\n\n3. Charts Section (3-column grid)\n\nLeft: Linear Price Chart + MACD\n\nPrice, Intrinsic Value, Market Value lines\n5-year historical data\nMACD indicator below\n\n\n\nCenter: Radar Chart + 1-Year Forecast\n\n12-point radar (normalized 0-100)\nConsolidated advice badge\n1-year price + 6-month forecast\n\n\n\nRight: Log Price Chart + RSI\n\nLog-scale price history\nIntrinsic value comparison\nRSI (14) indicator below\n\n4. Key Notes Section (Expandable accordion)\n\n3-column layout: Bull Case | Bear Case | Entry/Exit Strategy\nClick to expand/collapse\n\n5. Footer\n\nAnalysis date, data sources, recommendation"
      },
      {
        "title": "Required Metrics by Section",
        "body": "Price & Valuation (6 metrics):\n\nPrice, Market Cap, Trailing P/E, Forward P/E, Subsector Typical P/E, PEG Ratio\n\nFinancial Performance (6 metrics):\n\nROE, ROA, Profit Margin, Operating Margin, Gross Margin, ROIC\n\nGrowth Metrics (6 metrics):\n\nRevenue Growth (5Y), Earnings Growth, EPS (TTM), Forward EPS, Analyst Rec, Target Price\n\nRisk Indicators (6 metrics):\n\nDebt/Equity, Consolidated Risk, F-Score, Z-Score, M-Score, Max Drawdown (5Y)\n\nLiquidity & FCF (6 metrics):\n\nCurrent Ratio, Total Cash, Total Debt, FCF Growth 5Y, FCF Yield, Payout Ratio\n\nInsider & Sentiment (6 metrics):\n\nInsider Buys (12M), Insider Sells (12M), Net Shares (12M), RSI (14D), Stock Type, Sector\n\nQuality Scores (6 metrics):\n\nCQVS, Label, Valuation Score, Quality Score, Strength Score, Integrity Score\n\nMoat & Other (6 metrics):\n\nMoat Score (0-10), Beta, Predictability, Data Quality, Completeness, Dividend Yield"
      },
      {
        "title": "Radar Chart Metrics (12 points, normalized 0-100)",
        "body": "Revenue Growth (normalize: X% growth → scale to 100 for 20%+)\nOperating Margin (normalize: X% → 100 for 30%+)\nGross Margin (normalize: X% → 100 for 60%+)\nProfit Margin (normalize: X% → 100 for 25%+)\nROE (normalize: X% → 100 for 30%+)\nRisk Score (inverse of consolidated risk: 100 - risk*100)\nBeta Score (inverse: 100 for beta=0.5, 50 for beta=1.5, 0 for beta=2.5+)\nP/Market Discount (100 = deeply undervalued, 50 = fair, 0 = overvalued)\nMoat Score (moat rating * 10)\nFCF Yield (X% → 100 for 8%+)\nROA (X% → 100 for 20%+)\nEarnings Growth (X% → 100 for 25%+)"
      },
      {
        "title": "Color Coding Rules",
        "body": "// Green (isGood: true) - Positive indicators\nROE > 20%, ROA > 10%, Margins > 20%, ROIC > 15%\nRevenue Growth > 10%, Current Ratio 1-2, Z-Score > 3\nM-Score < -1.78, FCF Growth > 0%, Payout < 50%\nF-Score >= 7, Quality >= 70, Strength >= 70\n\n// Red (isGood: false) - Warning indicators  \nMax Drawdown < -50%, Beta > 2, Consolidated Risk > 0.6\nPredictability < 50%, F-Score <= 3, Z-Score < 1.81\nM-Score > -1.78, Quality < 50\n\n// Yellow (isGood: 'neutral') - Monitor\nF-Score 4-6, RSI 30-70, Moat 5-7, Quality 50-70\nBeta 1.5-2.0, Predictability 50-70%"
      },
      {
        "title": "Complete Template Code",
        "body": "Use this exact template structure:\n\nimport React, { useState } from 'react';\nimport { \n  LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, \n  ResponsiveContainer, RadarChart, PolarGrid, PolarAngleAxis, \n  PolarRadiusAxis, Radar, ReferenceLine, Area, ComposedChart, Scatter\n} from 'recharts';\n\nconst QuantDashboard = () => {\n  const [showKeyNotes, setShowKeyNotes] = useState(false);\n\n  // ============================================================\n  // POPULATE WITH STOCK-SPECIFIC DATA FROM ANALYSIS\n  // ============================================================\n  \n  const ticker = \"TICKER\";  // Replace\n  const companyName = \"Company Name\";  // Replace\n  const recommendation = \"BUY\";  // BUY, HOLD, SELL, SPECULATIVE BUY\n  const analysisDate = \"December 6, 2025\";  // Current date\n\n  const metrics = {\n    // Price & Valuation - from analysis\n    price: 100.00,\n    marketCap: '€10B',\n    trailingPE: 20.0,\n    forwardPE: 18.0,\n    subsectorTypicalPE: 25.0,\n    peg1Y: 1.2,           // NEW: 1-Year Forward PEG\n    peg5Y: 2.5,           // NEW: 5-Year PEG\n    \n    // Financial Performance - from 5-10 year analysis\n    roe: 25.0,\n    roa: 12.0,\n    profitMargin: 20.0,\n    opMargin: 25.0,\n    grossMargin: 50.0,\n    roic: 18.0,\n    \n    // Growth Metrics - from historical trends (USE REPORTED, not underlying)\n    revGrowth: 15.0,      // REPORTED revenue growth YoY\n    earnGrowth: 20.0,     // REPORTED earnings growth YoY\n    epsTTM: 5.00,\n    forwardEPS: 5.50,\n    growthCapped: 10.0,   // NEW: Capped sustainable growth estimate\n    growthUncapped: 22.0, // NEW: Headline analyst growth estimate\n    analystTarget: 120.00,\n    \n    // Risk Indicators - from advanced metrics section\n    crs: 0.40,            // Consolidated Risk Score (0-1 scale)\n    debtEquity: 0.50,\n    fScore: 7,            // Piotroski F-Score\n    zScore: 4.0,          // Altman Z-Score\n    mScore: -2.5,         // Beneish M-Score\n    valueTrapScore: 25,   // NEW: 0-100, LOWER = genuine, HIGHER = trap\n    valueTrapLabel: 'Genuine', // NEW: Genuine/Caution/Trap\n    maxDrawdown: -30.0,   // 5-year max drawdown %\n    \n    // Liquidity & FCF - from cash flow analysis\n    currentRatio: 1.5,\n    totalCash: '€2B',\n    totalDebt: '€1B',\n    fcfGrowth5Y: 12.0,    // 5-year smoothed growth\n    fcfYield: 5.0,\n    fcfMargin: 18.5,      // NEW: FCF / Revenue %\n    payoutRatio: 30.0,\n    \n    // Insider & Sentiment - from SEC Form 4 or use \"N/A\" if unavailable\n    insBuys: 0,           // From SEC Form 4 - use actual count or \"N/A\"\n    insSells: 0,          // From SEC Form 4 - use actual count or \"N/A\"\n    netShares: 'N/A',     // From SEC Form 4 - use actual or \"N/A\"\n    shortInterest: 2.5,   // From FINRA/exchange - use actual or \"N/A\"\n    newsSentiment: 0.25,  // -1 to +1 scale\n    newsArticleCount: 15, // Recent article count\n    \n    // Beta & Volatility\n    beta: 1.0,            // Stock beta\n    vol1Y: 25.0,          // 1-Year volatility %\n    \n    // Quality Scores - from consolidated scoring\n    cqvs: 75.0,           // Consolidated Quality & Valuation Score\n    label: 'Quality Growth', // Elite/Compounder/Quality Growth/etc\n    valuation: 70.0,      // 0-100\n    quality: 80.0,        // 0-100\n    strength: 75.0,       // 0-100\n    integrity: 85.0,      // 0-100\n    \n    // Moat & Other\n    buffettMoat: 8,       // 0-10 scale (renamed from moat)\n    greenblattEY: 6.5,    // NEW: Earnings Yield %\n    greenblattROC: 22.0,  // NEW: Return on Capital %\n    earningsPredict: 70,  // Earnings Predictability 0-100\n    completeness: 85,     // Data completeness 0-100\n    dataQuality: 'High',  // High/Medium/Low\n    divYield: 1.5,\n    stockType: 'Growth',  // Growth/Value/Cyclical/Defensive\n    sector: 'Technology',\n    industry: 'Software',\n    \n    // NEW: Investor Persona Scores (0-10 scale each)\n    buffettScore: 7.5,    // Durable competitive advantage seeker\n    mungerScore: 6.8,     // Inversion thinker, risk avoider\n    dalioScore: 7.2,      // All-weather, cycle resilient\n    lynchScore: 8.0,      // GARP - Growth at Reasonable Price\n    grahamScore: 5.5,     // Deep value, margin of safety\n    greenblattScore: 6.0, // Magic Formula (EY + ROC)\n    templetonScore: 4.5,  // Contrarian, global value\n    sorosScore: 3.0,      // Reflexivity, macro trends\n    \n    // NEW: Valuation Lines for Charts\n    marketValueCurrent: 95.00,\n    intrinsicValueCurrent: 110.00,\n    marketValueNextYear: 105.00,\n    intrinsicValueNextYear: 120.00,\n    unrestrictedMarketValueCurrent: 125.00,\n    unrestrictedMarketValueNextYear: 140.00,\n    \n    // Valuation Assessment (for indicator below forecast)\n    valuationPercent: 15,       // Positive = undervalued, negative = overvalued\n    valuationLabel: 'Undervalued', // Undervalued/Fairly Valued/Overvalued\n  };\n\n  // TOP NEWS Headlines - Format: pipe-separated with dates at END in brackets\n  const topNews = [\n    { headline: 'Company announces Q4 guidance above expectations', date: '05 Dec 2025' },\n    { headline: 'New product launch receives positive analyst coverage', date: '28 Nov 2025' },\n    { headline: 'Strategic partnership announced with major cloud provider', date: '15 Nov 2025' },\n    { headline: 'Q3 earnings beat estimates, revenue up 18% YoY', date: '02 Nov 2025' },\n    { headline: 'Management presents at investor conference, reaffirms outlook', date: '20 Oct 2025' },\n  ];\n  \n  // Format TOP NEWS as pipe-separated string with dates at END\n  const topNewsString = topNews.map(n => `${n.headline} [${n.date}]`).join(' | ');\n\n  // Historical Price Data (10 years with multiple valuation lines)\n  const priceHistory = [\n    { date: '2016', price: 25, totalReturn: 28, marketValueCurrent: 27, intrinsicValueCurrent: 30, marketValueNextYear: 29, intrinsicValueNextYear: 32, analystTarget: 30, unrestrictedCurrent: 28, unrestrictedNextYear: 31 },\n    { date: '2017', price: 35, totalReturn: 40, marketValueCurrent: 38, intrinsicValueCurrent: 42, marketValueNextYear: 40, intrinsicValueNextYear: 45, analystTarget: 42, unrestrictedCurrent: 40, unrestrictedNextYear: 44 },\n    { date: '2018', price: 45, totalReturn: 52, marketValueCurrent: 48, intrinsicValueCurrent: 55, marketValueNextYear: 52, intrinsicValueNextYear: 60, analystTarget: 55, unrestrictedCurrent: 52, unrestrictedNextYear: 58 },\n    { date: '2019', price: 55, totalReturn: 65, marketValueCurrent: 58, intrinsicValueCurrent: 68, marketValueNextYear: 62, intrinsicValueNextYear: 72, analystTarget: 65, unrestrictedCurrent: 65, unrestrictedNextYear: 72 },\n    { date: '2020', price: 50, totalReturn: 62, marketValueCurrent: 55, intrinsicValueCurrent: 65, marketValueNextYear: 60, intrinsicValueNextYear: 70, analystTarget: 62, unrestrictedCurrent: 62, unrestrictedNextYear: 70 },\n    { date: '2021', price: 75, totalReturn: 95, marketValueCurrent: 80, intrinsicValueCurrent: 90, marketValueNextYear: 85, intrinsicValueNextYear: 98, analystTarget: 90, unrestrictedCurrent: 92, unrestrictedNextYear: 105 },\n    { date: '2022', price: 65, totalReturn: 85, marketValueCurrent: 72, intrinsicValueCurrent: 85, marketValueNextYear: 78, intrinsicValueNextYear: 92, analystTarget: 82, unrestrictedCurrent: 85, unrestrictedNextYear: 95 },\n    { date: '2023', price: 80, totalReturn: 105, marketValueCurrent: 85, intrinsicValueCurrent: 100, marketValueNextYear: 92, intrinsicValueNextYear: 108, analystTarget: 98, unrestrictedCurrent: 100, unrestrictedNextYear: 115 },\n    { date: '2024', price: 95, totalReturn: 125, marketValueCurrent: 100, intrinsicValueCurrent: 115, marketValueNextYear: 108, intrinsicValueNextYear: 125, analystTarget: 115, unrestrictedCurrent: 120, unrestrictedNextYear: 135 },\n    { date: '2025', price: 100, totalReturn: 135, marketValueCurrent: 105, intrinsicValueCurrent: 120, marketValueNextYear: 115, intrinsicValueNextYear: 132, analystTarget: 125, unrestrictedCurrent: 130, unrestrictedNextYear: 145 },\n  ];\n\n  // 1 Year Price with 6-Month Forecast, MAs, and Bollinger Bands\n  const oneYearData = [\n    { date: \"Jan'25\", price: 90, ma50: 88, ma200: 85, upperBand: 98, lowerBand: 82, forecast: null, ci95Upper: null, ci95Lower: null },\n    { date: \"Mar'25\", price: 88, ma50: 89, ma200: 86, upperBand: 96, lowerBand: 80, forecast: null, ci95Upper: null, ci95Lower: null },\n    { date: \"May'25\", price: 95, ma50: 91, ma200: 87, upperBand: 102, lowerBand: 84, forecast: null, ci95Upper: null, ci95Lower: null },\n    { date: \"Jul'25\", price: 92, ma50: 92, ma200: 88, upperBand: 100, lowerBand: 84, forecast: null, ci95Upper: null, ci95Lower: null },\n    { date: \"Sep'25\", price: 98, ma50: 94, ma200: 90, upperBand: 106, lowerBand: 86, forecast: null, ci95Upper: null, ci95Lower: null },\n    { date: \"Nov'25\", price: 100, ma50: 96, ma200: 92, upperBand: 108, lowerBand: 88, forecast: 100, ci95Upper: 108, ci95Lower: 92 },\n    { date: \"Jan'26\", price: null, ma50: null, ma200: null, upperBand: null, lowerBand: null, forecast: 108, ci95Upper: 120, ci95Lower: 96 },\n    { date: \"Mar'26\", price: null, ma50: null, ma200: null, upperBand: null, lowerBand: null, forecast: 115, ci95Upper: 130, ci95Lower: 100 },\n  ];\n\n  // NEW: Ichimoku Cloud Data (6-month view with signal markers)\n  const ichimokuData = [\n    { date: 'Jun', price: 88, tenkan: 87, kijun: 85, senkouA: 84, senkouB: 82, chikou: 85, tkCrossMarker: null, kumoTwistMarker: null },\n    { date: 'Jul', price: 92, tenkan: 90, kijun: 87, senkouA: 86, senkouB: 84, chikou: 90, tkCrossMarker: 92, kumoTwistMarker: null }, // TK Bullish Cross\n    { date: 'Aug', price: 95, tenkan: 93, kijun: 90, senkouA: 89, senkouB: 86, chikou: 93, tkCrossMarker: null, kumoTwistMarker: null },\n    { date: 'Sep', price: 98, tenkan: 96, kijun: 93, senkouA: 92, senkouB: 88, chikou: 96, tkCrossMarker: null, kumoTwistMarker: 92 }, // Kumo Twist Bullish\n    { date: 'Oct', price: 96, tenkan: 97, kijun: 95, senkouA: 94, senkouB: 90, chikou: 94, tkCrossMarker: null, kumoTwistMarker: null },\n    { date: 'Nov', price: 100, tenkan: 98, kijun: 96, senkouA: 95, senkouB: 92, chikou: 98, tkCrossMarker: null, kumoTwistMarker: null },\n  ];\n\n  // NEW: Ichimoku Signals Summary\n  const ichimokuSignals = {\n    tkCross: 'TK Bullish Cross',\n    kumoTwist: 'Kumo Twist Bullish',\n    priceVsCloud: 'Above Cloud (Bullish)',\n  };\n\n  // MACD Data (recent 6 months)\n  const macdData = [\n    { date: 'Jun', macd: 0.5, signal: 0.3, histogram: 0.2 },\n    { date: 'Jul', macd: 1.2, signal: 0.6, histogram: 0.6 },\n    { date: 'Aug', macd: 1.5, signal: 1.0, histogram: 0.5 },\n    { date: 'Sep', macd: 1.8, signal: 1.3, histogram: 0.5 },\n    { date: 'Oct', macd: 1.2, signal: 1.4, histogram: -0.2 },\n    { date: 'Nov', macd: 0.8, signal: 1.2, histogram: -0.4 },\n  ];\n\n  // RSI Data (recent 6 months)\n  const rsiData = [\n    { date: 'Jun', rsi: 45 },\n    { date: 'Jul', rsi: 55 },\n    { date: 'Aug', rsi: 62 },\n    { date: 'Sep', rsi: 68 },\n    { date: 'Oct', rsi: 58 },\n    { date: 'Nov', rsi: 55 },\n  ];\n\n  // Radar Chart Data (normalize all to 0-100 scale)\n  const radarData = [\n    { metric: 'Rev Growth', value: 70, fullMark: 100 },\n    { metric: 'Op Margin', value: 75, fullMark: 100 },\n    { metric: 'Gross Margin', value: 65, fullMark: 100 },\n    { metric: 'Profit Margin', value: 60, fullMark: 100 },\n    { metric: 'ROE', value: 70, fullMark: 100 },\n    { metric: 'Risk (CRS)', value: 60, fullMark: 100 },\n    { metric: 'Beta Score', value: 70, fullMark: 100 },\n    { metric: 'P/Market Disc', value: 50, fullMark: 100 },\n    { metric: 'Moat', value: 80, fullMark: 100 },\n    { metric: 'FCF Growth', value: 55, fullMark: 100 },\n    { metric: 'ROA', value: 65, fullMark: 100 },\n    { metric: 'Earn Growth', value: 75, fullMark: 100 },\n  ];\n\n  // Key Notes Content - from Bull/Bear case analysis\n  const bullCase = {\n    target: \"€130-150\",  // Bull case price target\n    points: [\n      \"Strong revenue growth momentum\",\n      \"Expanding margins\",\n      \"Market leadership position\",\n      \"Favorable industry tailwinds\",\n      \"Strong balance sheet\"\n    ]\n  };\n\n  const bearCase = {\n    target: \"€70-80\",  // Bear case price target\n    points: [\n      \"Valuation compression risk\",\n      \"Competitive pressures\",\n      \"Macro sensitivity\",\n      \"Execution risks\",\n      \"Key person dependency\"\n    ]\n  };\n\n  const entryStrategy = {\n    idealEntry: \"€90-95\",  // From Entry Strategy section\n    currentEntry: \"€100 acceptable\",\n    target: \"€120 (+20%)\",  // 12-month target\n    stopLoss: \"€85 (-15%)\",  // Stop loss\n    positionSize: \"2-3%\"  // Recommended allocation\n  };\n\n  // ============================================================\n  // COMPONENT CODE (Standard - use as-is)\n  // ============================================================\n\n  // Helper: Value Trap color (LOWER = genuine = green, HIGHER = trap = red)\n  const getValueTrapColor = (score) => {\n    if (score < 40) return 'bg-green-100 border-green-400 text-green-800';\n    if (score < 60) return 'bg-yellow-100 border-yellow-400 text-yellow-800';\n    return 'bg-red-100 border-red-400 text-red-800';\n  };\n\n  // Helper: Get label for Value Trap score\n  const getValueTrapLabel = (score) => {\n    if (score < 20) return 'Genuine';\n    if (score < 40) return 'Probably Genuine';\n    if (score < 60) return 'Caution';\n    if (score < 80) return 'Likely Trap';\n    return 'Strong Trap';\n  };\n\n  // Helper: Persona score color\n  const getPersonaColor = (score) => {\n    if (score >= 7) return 'bg-green-500';\n    if (score >= 4) return 'bg-yellow-500';\n    return 'bg-red-500';\n  };\n\n  // Helper: News sentiment color\n  const getSentimentColor = (sentiment) => {\n    if (sentiment > 0.3) return 'text-green-600';\n    if (sentiment > 0) return 'text-green-500';\n    if (sentiment > -0.3) return 'text-yellow-600';\n    return 'text-red-600';\n  };\n\n  // Persona Badge Component\n  const PersonaBadge = ({ name, score, position }) => (\n    <div className={`absolute ${position} flex flex-col items-center`}>\n      <div className={`w-6 h-6 rounded-full ${getPersonaColor(score)} flex items-center justify-center text-white text-[8px] font-bold`}>\n        {score.toFixed(1)}\n      </div>\n      <div className=\"text-[7px] text-gray-600 mt-0.5\">{name}</div>\n    </div>\n  );\n\n  const MetricBox = ({ label, value, benchmark, isGood, size = 'normal' }) => {\n    let bgColor = 'bg-gray-50';\n    if (isGood === true) bgColor = 'bg-green-50 border-green-200';\n    if (isGood === false) bgColor = 'bg-red-50 border-red-200';\n    if (isGood === 'neutral') bgColor = 'bg-yellow-50 border-yellow-200';\n    \n    return (\n      <div className={`${bgColor} border p-1.5 flex flex-col justify-center items-center`}>\n        <div className=\"text-base font-bold text-gray-900\">{value}</div>\n        <div className=\"text-[9px] text-gray-600 text-center leading-tight\">{label}</div>\n        {benchmark && <div className=\"text-[8px] text-gray-400\">{benchmark}</div>}\n      </div>\n    );\n  };\n\n  const SectionHeader = ({ title, bgColor }) => (\n    <div className={`${bgColor} px-2 py-1 text-[10px] font-bold text-gray-700`}>\n      {title}\n    </div>\n  );\n\n  return (\n    <div className=\"w-full max-w-7xl mx-auto p-3 bg-white text-xs\">\n      {/* Header */}\n      <div className=\"bg-orange-500 text-white px-3 py-2 mb-1 text-lg font-bold text-center\">\n        {ticker} - {companyName}\n      </div>\n\n      {/* TOP NEWS - Pipe separated with dates at END */}\n      <div className=\"border border-gray-300 rounded p-2 mb-3 bg-gray-50\">\n        <span className=\"font-bold text-[10px]\">TOP NEWS:</span>\n        <div className=\"text-[9px] mt-1\">{topNewsString}</div>\n      </div>\n\n      {/* Top 4 sections */}\n      <div className=\"grid grid-cols-2 gap-2 mb-3\">\n        {/* Price & Valuation - Updated with dual PEG */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"PRICE & VALUATION\" bgColor=\"bg-blue-100\" />\n          <div className=\"grid grid-cols-7 gap-px bg-gray-200\">\n            <MetricBox label=\"Price:\" value={`€${metrics.price}`} />\n            <MetricBox label=\"Market Cap:\" value={metrics.marketCap} />\n            <MetricBox label=\"Trailing P/E:\" value={metrics.trailingPE} />\n            <MetricBox label=\"Forward P/E:\" value={metrics.forwardPE} benchmark={`(${metrics.subsectorTypicalPE})`} isGood={metrics.forwardPE < metrics.subsectorTypicalPE} />\n            <MetricBox label=\"Subsector P/E:\" value={metrics.subsectorTypicalPE} />\n            <MetricBox label=\"PEG (1Y):\" value={metrics.peg1Y} benchmark=\"(<1.5)\" isGood={metrics.peg1Y < 1.5 ? true : metrics.peg1Y < 2 ? 'neutral' : false} />\n            <MetricBox label=\"PEG (5Y):\" value={metrics.peg5Y} benchmark=\"(<2)\" isGood={metrics.peg5Y < 2 ? true : metrics.peg5Y < 3 ? 'neutral' : false} />\n          </div>\n        </div>\n\n        {/* Financial Performance */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"FINANCIAL PERFORMANCE\" bgColor=\"bg-green-100\" />\n          <div className=\"grid grid-cols-6 gap-px bg-gray-200\">\n            <MetricBox label=\"ROE:\" value={`${metrics.roe}%`} benchmark=\"(>20%)\" isGood={metrics.roe >= 20 ? true : metrics.roe >= 10 ? 'neutral' : false} />\n            <MetricBox label=\"ROA:\" value={`${metrics.roa}%`} benchmark=\"(>10%)\" isGood={metrics.roa >= 10} />\n            <MetricBox label=\"Profit Margin:\" value={`${metrics.profitMargin}%`} benchmark=\"(>20%)\" isGood={metrics.profitMargin >= 20 ? true : metrics.profitMargin >= 10 ? 'neutral' : false} />\n            <MetricBox label=\"Operative Margin:\" value={`${metrics.opMargin}%`} benchmark=\"(>20%)\" isGood={metrics.opMargin >= 20} />\n            <MetricBox label=\"Gross Margin:\" value={`${metrics.grossMargin}%`} benchmark=\"(>40%)\" isGood={metrics.grossMargin >= 40} />\n            <MetricBox label=\"ROIC:\" value={`${metrics.roic}%`} benchmark=\"(>15%)\" isGood={metrics.roic >= 15} />\n          </div>\n        </div>\n      </div>\n\n      {/* Next 4 sections */}\n      <div className=\"grid grid-cols-2 gap-2 mb-3\">\n        {/* Growth Metrics */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"GROWTH METRICS\" bgColor=\"bg-emerald-100\" />\n          <div className=\"grid grid-cols-7 gap-px bg-gray-200\">\n            <MetricBox label=\"Revenue (YoY):\" value={`${metrics.revGrowth}%`} benchmark=\"(>10%)\" isGood={metrics.revGrowth >= 10} />\n            <MetricBox label=\"Earning (YoY):\" value={`${metrics.earnGrowth}%`} benchmark=\"(>0%)\" isGood={metrics.earnGrowth >= 0} />\n            <MetricBox label=\"EPS (TTM):\" value={`€${metrics.epsTTM}`} />\n            <MetricBox label=\"Forward EPS:\" value={`€${metrics.forwardEPS}`} isGood={metrics.forwardEPS > metrics.epsTTM} />\n            <MetricBox label=\"Growth Rates:\" value={`Capped: ${metrics.growthCapped}%`} benchmark={`Uncapped: ${metrics.growthUncapped}%`} />\n            <MetricBox label=\"Analyst Target:\" value={`€${metrics.analystTarget}`} />\n          </div>\n        </div>\n\n        {/* Risk Indicators */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"RISK INDICATORS\" bgColor=\"bg-red-100\" />\n          <div className=\"grid grid-cols-6 gap-px bg-gray-200\">\n            <MetricBox label=\"CRS (0-1):\" value={metrics.crs.toFixed(2)} benchmark=\"(Medium)\" isGood={metrics.crs < 0.4 ? true : metrics.crs < 0.6 ? 'neutral' : false} />\n            <MetricBox label=\"Debt/Equity (mrq):\" value={metrics.debtEquity} benchmark=\"(0.5-1)\" isGood={metrics.debtEquity < 1 ? true : metrics.debtEquity < 2 ? 'neutral' : false} />\n            <MetricBox label=\"Piotroski F:\" value={metrics.fScore} benchmark=\"(≥7)\" isGood={metrics.fScore >= 7 ? true : metrics.fScore >= 4 ? 'neutral' : false} />\n            <MetricBox label=\"Altman Z:\" value={metrics.zScore.toFixed(2)} benchmark=\"(>3)\" isGood={metrics.zScore >= 2.99 ? true : metrics.zScore >= 1.81 ? 'neutral' : false} />\n            <MetricBox label=\"Beneish M:\" value={metrics.mScore.toFixed(2)} benchmark=\"(<-1.78)\" isGood={metrics.mScore < -1.78} />\n            <MetricBox label=\"Value Trap:\" value={`${metrics.valueTrapScore} (${metrics.valueTrapLabel})`} isGood={metrics.valueTrapScore < 40 ? true : metrics.valueTrapScore < 60 ? 'neutral' : false} />\n          </div>\n        </div>\n      </div>\n\n      {/* Next 4 sections */}\n      <div className=\"grid grid-cols-2 gap-2 mb-3\">\n        {/* Liquidity & Free Cash Flow */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"LIQUIDITY & FREE CASH FLOW\" bgColor=\"bg-cyan-100\" />\n          <div className=\"grid grid-cols-7 gap-px bg-gray-200\">\n            <MetricBox label=\"Current Ratio:\" value={metrics.currentRatio.toFixed(2)} benchmark=\"(1-2)\" isGood={metrics.currentRatio >= 1 && metrics.currentRatio <= 2 ? true : 'neutral'} />\n            <MetricBox label=\"Cash:\" value={metrics.totalCash} />\n            <MetricBox label=\"Debt:\" value={metrics.totalDebt} />\n            <MetricBox label=\"FCF Growth 5Y:\" value={`${metrics.fcfGrowth5Y}%`} benchmark=\"(>5%)\" isGood={metrics.fcfGrowth5Y >= 5} />\n            <MetricBox label=\"FCF Yield:\" value={`${metrics.fcfYield}%`} benchmark=\"(>4%)\" isGood={metrics.fcfYield >= 4} />\n            <MetricBox label=\"FCF Margin:\" value={`${metrics.fcfMargin}%`} benchmark=\"(>15%)\" isGood={metrics.fcfMargin >= 15 ? true : metrics.fcfMargin >= 10 ? 'neutral' : false} />\n            <MetricBox label=\"Payout Ratio:\" value={`${metrics.payoutRatio}%`} benchmark=\"(<50%)\" isGood={metrics.payoutRatio < 50} />\n          </div>\n        </div>\n\n        {/* Insider & Sentiment & Class */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"INSIDER & SENTIMENT & CLASS\" bgColor=\"bg-purple-100\" />\n          <div className=\"grid grid-cols-7 gap-px bg-gray-200\">\n            <MetricBox label=\"Buys (12M):\" value={metrics.insBuys} isGood={metrics.insBuys > metrics.insSells} />\n            <MetricBox label=\"Sells (12M):\" value={metrics.insSells} />\n            <MetricBox label=\"Net Shares (12M):\" value={metrics.netShares} />\n            <MetricBox label=\"Short Int (%):\" value={`${metrics.shortInterest}%`} isGood={metrics.shortInterest < 5 ? true : metrics.shortInterest < 10 ? 'neutral' : false} />\n            <MetricBox label=\"Sentiment / Articles:\" value={`${metrics.newsSentiment > 0 ? '+' : ''}${metrics.newsSentiment.toFixed(3)} / ${metrics.newsArticleCount}`} benchmark={metrics.newsSentiment > 0 ? '(Positive)' : '(Negative)'} isGood={metrics.newsSentiment > 0} />\n            <MetricBox label={`Stock: ${metrics.stockType}`} value={`Div Yield: ${metrics.divYield}%`} />\n            <MetricBox label=\"Sector/Industry:\" value={`${metrics.sector} /`} benchmark={metrics.industry} />\n          </div>\n        </div>\n      </div>\n\n      {/* Last 2 sections */}\n      <div className=\"grid grid-cols-2 gap-2 mb-3\">\n        {/* Quality Scores */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"QUALITY SCORES\" bgColor=\"bg-orange-100\" />\n          <div className=\"grid grid-cols-6 gap-px bg-gray-200\">\n            <MetricBox label=\"CQVS:\" value={metrics.cqvs.toFixed(1)} benchmark=\"(>70)\" isGood={metrics.cqvs >= 70 ? true : metrics.cqvs >= 50 ? 'neutral' : false} />\n            <MetricBox label=\"Label:\" value={metrics.label} />\n            <MetricBox label=\"Valuation:\" value={metrics.valuation} isGood={metrics.valuation >= 70} />\n            <MetricBox label=\"Quality:\" value={metrics.quality} isGood={metrics.quality >= 70 ? true : metrics.quality >= 50 ? 'neutral' : false} />\n            <MetricBox label=\"Strength:\" value={metrics.strength} isGood={metrics.strength >= 70} />\n            <MetricBox label=\"Integrity:\" value={metrics.integrity} isGood={metrics.integrity >= 70 ? true : metrics.integrity >= 50 ? 'neutral' : false} />\n          </div>\n        </div>\n\n        {/* Moat & Other */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"MOAT & OTHER\" bgColor=\"bg-gray-200\" />\n          <div className=\"grid grid-cols-6 gap-px bg-gray-200\">\n            <MetricBox label=\"Buffett Moat:\" value={metrics.buffettMoat} benchmark=\"(4-7)\" isGood={metrics.buffettMoat >= 7 ? true : metrics.buffettMoat >= 4 ? 'neutral' : false} />\n            <MetricBox label=\"Greenblatt (MF):\" value={`EY: ${metrics.greenblattEY}%`} benchmark={metrics.greenblattROC ? `ROC: ${metrics.greenblattROC}%` : 'ROC: N/A'} isGood={metrics.greenblattEY >= 8 ? true : metrics.greenblattEY >= 4 ? 'neutral' : false} />\n            <MetricBox label={`Beta: ${metrics.beta}`} value={`Vol 1Y: ${metrics.vol1Y}%`} isGood={metrics.beta < 1 ? true : metrics.beta < 1.5 ? 'neutral' : false} />\n            <MetricBox label=\"Earnings Predict.:\" value={`${metrics.earningsPredict}%`} benchmark=\"(>80%)\" isGood={metrics.earningsPredict >= 80 ? true : metrics.earningsPredict >= 60 ? 'neutral' : false} />\n            <MetricBox label=\"Drawdown (5Y):\" value={`${metrics.maxDrawdown}%`} benchmark={metrics.maxDrawdown > -30 ? '(Low)' : metrics.maxDrawdown > -50 ? '(Mid)' : '(High)'} isGood={metrics.maxDrawdown > -30 ? true : metrics.maxDrawdown > -50 ? 'neutral' : false} />\n            <MetricBox label={`Completeness: ${metrics.completeness}%`} value={`Data Quality: ${metrics.dataQuality}`} isGood={metrics.dataQuality === 'High' ? true : metrics.dataQuality === 'Medium' ? 'neutral' : false} />\n          </div>\n        </div>\n      </div>\n\n      {/* Charts Section - Enhanced with Legends */}\n      <div className=\"grid grid-cols-3 gap-2 mb-3\">\n        {/* Linear Price Chart + MACD */}\n        <div className=\"border border-gray-300 rounded p-2\">\n          <div className=\"text-sm font-bold mb-1 text-center\">LINEAR PRICE CHART (10Y)</div>\n          <div className=\"text-[7px] text-gray-500 mb-1 pl-1\">\n            — Close Price — Total Return<br/>\n            - - Market Value (Current): €{metrics.marketValueCurrent}<br/>\n            - - Intrinsic Value (Current): €{metrics.intrinsicValueCurrent}<br/>\n            - - Analyst Target: €{metrics.analystTarget}\n          </div>\n          <ResponsiveContainer width=\"100%\" height={130}>\n            <LineChart data={priceHistory}>\n              <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#e0e0e0\" />\n              <XAxis dataKey=\"date\" tick={{ fontSize: 7 }} />\n              <YAxis tick={{ fontSize: 7 }} />\n              <Tooltip contentStyle={{ fontSize: 8 }} />\n              <Line type=\"monotone\" dataKey=\"price\" stroke=\"#1f2937\" strokeWidth={1.5} dot={false} name=\"Close\" />\n              <Line type=\"monotone\" dataKey=\"totalReturn\" stroke=\"#6b7280\" strokeWidth={1} strokeDasharray=\"2 2\" dot={false} name=\"Total Return\" />\n              <Line type=\"monotone\" dataKey=\"intrinsicValueCurrent\" stroke=\"#16a34a\" strokeWidth={1} strokeDasharray=\"5 5\" dot={false} name=\"IV Current\" />\n              <Line type=\"monotone\" dataKey=\"analystTarget\" stroke=\"#3b82f6\" strokeWidth={1} strokeDasharray=\"3 3\" dot={false} name=\"Target\" />\n            </LineChart>\n          </ResponsiveContainer>\n          <div className=\"text-xs font-bold mt-1 mb-1 text-center\">MACD</div>\n          <ResponsiveContainer width=\"100%\" height={55}>\n            <LineChart data={macdData}>\n              <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#e0e0e0\" />\n              <XAxis dataKey=\"date\" tick={{ fontSize: 6 }} />\n              <YAxis tick={{ fontSize: 6 }} />\n              <ReferenceLine y={0} stroke=\"#666\" />\n              <Tooltip contentStyle={{ fontSize: 7 }} />\n              <Line type=\"monotone\" dataKey=\"macd\" stroke=\"#2563eb\" strokeWidth={1} dot={false} name=\"MACD\" />\n              <Line type=\"monotone\" dataKey=\"signal\" stroke=\"#dc2626\" strokeWidth={1} dot={false} name=\"Signal\" />\n            </LineChart>\n          </ResponsiveContainer>\n        </div>\n\n        {/* Radar + Investor Personas + Forecast */}\n        <div className=\"border border-gray-300 rounded p-2\">\n          <div className=\"relative\">\n            <ResponsiveContainer width=\"100%\" height={140}>\n              <RadarChart data={radarData}>\n                <PolarGrid />\n                <PolarAngleAxis dataKey=\"metric\" tick={{ fontSize: 6 }} />\n                <PolarRadiusAxis angle={30} domain={[0, 100]} tick={{ fontSize: 6 }} />\n                <Radar name={ticker} dataKey=\"value\" stroke=\"#2563eb\" fill=\"#3b82f6\" fillOpacity={0.3} />\n              </RadarChart>\n            </ResponsiveContainer>\n            {/* Investor Persona Badges */}\n            <PersonaBadge name=\"Buffett\" score={metrics.buffettScore} position=\"top-0 left-1/4\" />\n            <PersonaBadge name=\"Lynch\" score={metrics.lynchScore} position=\"top-0 right-1/4\" />\n            <PersonaBadge name=\"Munger\" score={metrics.mungerScore} position=\"top-1/4 -left-2\" />\n            <PersonaBadge name=\"Greenblatt\" score={metrics.greenblattScore} position=\"top-1/4 -right-2\" />\n            <PersonaBadge name=\"Dalio\" score={metrics.dalioScore} position=\"bottom-1/4 -left-2\" />\n            <PersonaBadge name=\"Graham\" score={metrics.grahamScore} position=\"bottom-1/4 -right-2\" />\n            <PersonaBadge name=\"Templeton\" score={metrics.templetonScore} position=\"bottom-0 left-1/4\" />\n            <PersonaBadge name=\"Soros\" score={metrics.sorosScore} position=\"bottom-0 right-1/4\" />\n          </div>\n          <div className=\"text-center my-1\">\n            <span className=\"bg-green-200 px-2 py-0.5 text-[10px] font-bold rounded border border-green-400\">\n              Advice: {recommendation} (CQVS: {metrics.cqvs.toFixed(1)})\n            </span>\n          </div>\n          <div className=\"text-[8px] font-bold mb-0.5 text-center\">1Y PRICE + 6-MONTH FORECAST</div>\n          <div className=\"text-[6px] text-gray-500 mb-0.5 text-center\">— Close — 50-Day MA — 200-Day MA ▒ Bollinger Bands - - Forecast</div>\n          <ResponsiveContainer width=\"100%\" height={70}>\n            <ComposedChart data={oneYearData}>\n              <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#e0e0e0\" />\n              <XAxis dataKey=\"date\" tick={{ fontSize: 6 }} />\n              <YAxis tick={{ fontSize: 6 }} />\n              <Tooltip contentStyle={{ fontSize: 7 }} />\n              <Area type=\"monotone\" dataKey=\"upperBand\" stroke=\"none\" fill=\"#e0e0e0\" fillOpacity={0.5} />\n              <Area type=\"monotone\" dataKey=\"ci95Upper\" stroke=\"none\" fill=\"#dbeafe\" fillOpacity={0.5} />\n              <Line type=\"monotone\" dataKey=\"price\" stroke=\"#1f2937\" strokeWidth={1.5} dot={false} />\n              <Line type=\"monotone\" dataKey=\"ma50\" stroke=\"#f59e0b\" strokeWidth={1} dot={false} />\n              <Line type=\"monotone\" dataKey=\"ma200\" stroke=\"#ef4444\" strokeWidth={1} dot={false} />\n              <Line type=\"monotone\" dataKey=\"forecast\" stroke=\"#16a34a\" strokeWidth={1.5} strokeDasharray=\"5 5\" dot={false} />\n            </ComposedChart>\n          </ResponsiveContainer>\n          {/* Valuation Indicator */}\n          <div className={`text-center text-[10px] font-bold mt-1 ${metrics.valuationPercent > 10 ? 'text-green-600' : metrics.valuationPercent < -10 ? 'text-red-600' : 'text-yellow-600'}`}>\n            {metrics.valuationLabel} ({metrics.valuationPercent > 0 ? '+' : ''}{metrics.valuationPercent}%)\n          </div>\n        </div>\n\n        {/* Log Price + RSI */}\n        <div className=\"border border-gray-300 rounded p-2\">\n          <div className=\"text-sm font-bold mb-1 text-center\">LOG PRICE CHART (10Y)</div>\n          <div className=\"text-[7px] text-gray-500 mb-1 pl-1\">\n            — Close Price — Total Return<br/>\n            - - Unrestr. Market Value (Current): €{metrics.unrestrictedMarketValueCurrent}<br/>\n            - - Unrestr. Market Value (Next Year): €{metrics.unrestrictedMarketValueNextYear}\n          </div>\n          <ResponsiveContainer width=\"100%\" height={130}>\n            <LineChart data={priceHistory}>\n              <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#e0e0e0\" />\n              <XAxis dataKey=\"date\" tick={{ fontSize: 7 }} />\n              <YAxis tick={{ fontSize: 7 }} scale=\"log\" domain={['auto', 'auto']} />\n              <Tooltip contentStyle={{ fontSize: 8 }} />\n              <Line type=\"monotone\" dataKey=\"price\" stroke=\"#1f2937\" strokeWidth={1.5} dot={false} name=\"Close\" />\n              <Line type=\"monotone\" dataKey=\"totalReturn\" stroke=\"#6b7280\" strokeWidth={1} strokeDasharray=\"2 2\" dot={false} name=\"Total Return\" />\n              <Line type=\"monotone\" dataKey=\"unrestrictedCurrent\" stroke=\"#dc2626\" strokeWidth={1} strokeDasharray=\"5 5\" dot={false} name=\"Unrestr Current\" />\n              <Line type=\"monotone\" dataKey=\"unrestrictedNextYear\" stroke=\"#f97316\" strokeWidth={1} strokeDasharray=\"5 5\" dot={false} name=\"Unrestr Next\" />\n            </LineChart>\n          </ResponsiveContainer>\n          <div className=\"text-xs font-bold mt-1 mb-1 text-center\">RSI (14) = {rsiData[rsiData.length - 1].rsi}</div>\n          <ResponsiveContainer width=\"100%\" height={55}>\n            <LineChart data={rsiData}>\n              <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#e0e0e0\" />\n              <XAxis dataKey=\"date\" tick={{ fontSize: 6 }} />\n              <YAxis tick={{ fontSize: 6 }} domain={[0, 100]} />\n              <Tooltip contentStyle={{ fontSize: 7 }} />\n              <ReferenceLine y={70} stroke=\"#ef4444\" strokeDasharray=\"2 2\" />\n              <ReferenceLine y={30} stroke=\"#22c55e\" strokeDasharray=\"2 2\" />\n              <Line type=\"monotone\" dataKey=\"rsi\" stroke=\"#f59e0b\" strokeWidth={1.5} dot={false} />\n            </LineChart>\n          </ResponsiveContainer>\n        </div>\n      </div>\n\n      {/* NEW: Ichimoku Cloud Chart */}\n      <div className=\"border border-gray-300 rounded p-2 mb-3\">\n        <div className=\"text-sm font-bold mb-1 text-center\">ICHIMOKU CLOUD</div>\n        <div className=\"flex gap-4 text-[7px] justify-center mb-1\">\n          <span>— Close Price</span>\n          <span className=\"text-blue-500\">— Tenkan-sen (9)</span>\n          <span className=\"text-red-500\">— Kijun-sen (26)</span>\n          <span className=\"text-gray-400\">— Chikou Span</span>\n          <span className=\"text-green-500\">▒ Senkou Span A/B (Cloud)</span>\n          <span className=\"ml-2 font-bold text-yellow-600\">◆ TK Cross</span>\n          <span className=\"text-purple-600\">◆ Kumo Twist</span>\n        </div>\n        <ResponsiveContainer width=\"100%\" height={100}>\n          <ComposedChart data={ichimokuData}>\n            <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#e0e0e0\" />\n            <XAxis dataKey=\"date\" tick={{ fontSize: 7 }} />\n            <YAxis tick={{ fontSize: 7 }} domain={['auto', 'auto']} />\n            <Tooltip contentStyle={{ fontSize: 8 }} />\n            <Area type=\"monotone\" dataKey=\"senkouA\" stroke=\"none\" fill=\"#86efac\" fillOpacity={0.3} />\n            <Area type=\"monotone\" dataKey=\"senkouB\" stroke=\"none\" fill=\"#fca5a5\" fillOpacity={0.3} />\n            <Line type=\"monotone\" dataKey=\"price\" stroke=\"#1f2937\" strokeWidth={2} dot={false} name=\"Price\" />\n            <Line type=\"monotone\" dataKey=\"tenkan\" stroke=\"#3b82f6\" strokeWidth={1} dot={false} name=\"Tenkan\" />\n            <Line type=\"monotone\" dataKey=\"kijun\" stroke=\"#dc2626\" strokeWidth={1} dot={false} name=\"Kijun\" />\n            <Line type=\"monotone\" dataKey=\"chikou\" stroke=\"#9ca3af\" strokeWidth={1} strokeDasharray=\"3 3\" dot={false} name=\"Chikou\" />\n            <Scatter dataKey=\"tkCrossMarker\" fill=\"#9333ea\" shape=\"diamond\" name=\"TK Cross\" />\n            <Scatter dataKey=\"kumoTwistMarker\" fill=\"#dc2626\" shape=\"diamond\" name=\"Kumo Twist\" />\n          </ComposedChart>\n        </ResponsiveContainer>\n        <div className=\"flex gap-4 text-[8px] justify-center mt-1\">\n          <span className=\"bg-green-100 px-2 rounded\">{ichimokuSignals.tkCross}</span>\n          <span className=\"bg-green-100 px-2 rounded\">{ichimokuSignals.kumoTwist}</span>\n          <span className=\"bg-green-100 px-2 rounded\">{ichimokuSignals.priceVsCloud}</span>\n        </div>\n      </div>\n\n      {/* Key Notes (Expandable) */}\n      <div className=\"border border-gray-300 rounded overflow-hidden\">\n        <button \n          onClick={() => setShowKeyNotes(!showKeyNotes)}\n          className=\"w-full bg-gray-100 px-3 py-2 text-left text-sm font-bold flex items-center hover:bg-gray-200\"\n        >\n          <span className=\"mr-2\">{showKeyNotes ? '▼' : '▶'}</span> Key Notes (Click to Expand)\n        </button>\n        {showKeyNotes && (\n          <div className=\"p-3 bg-gray-50\">\n            <div className=\"grid grid-cols-3 gap-4 text-xs\">\n              {/* Bull Case */}\n              <div>\n                <div className=\"font-bold text-green-700 mb-2 text-sm\">BULL CASE ({bullCase.target})</div>\n                <ul className=\"list-disc list-inside space-y-1\">\n                  {bullCase.points.map((point, i) => <li key={i}>{point}</li>)}\n                </ul>\n              </div>\n              {/* Bear Case */}\n              <div>\n                <div className=\"font-bold text-red-700 mb-2 text-sm\">BEAR CASE ({bearCase.target})</div>\n                <ul className=\"list-disc list-inside space-y-1\">\n                  {bearCase.points.map((point, i) => <li key={i}>{point}</li>)}\n                </ul>\n              </div>\n              {/* Entry/Exit Strategy */}\n              <div>\n                <div className=\"font-bold text-blue-700 mb-2 text-sm\">ENTRY/EXIT STRATEGY</div>\n                <ul className=\"list-disc list-inside space-y-1\">\n                  <li><strong>Ideal Entry:</strong> {entryStrategy.idealEntry}</li>\n                  <li><strong>Current:</strong> {entryStrategy.currentEntry}</li>\n                  <li><strong>Target:</strong> {entryStrategy.target}</li>\n                  <li><strong>Stop Loss:</strong> {entryStrategy.stopLoss}</li>\n                  <li><strong>Position Size:</strong> {entryStrategy.positionSize}</li>\n                </ul>\n              </div>\n            </div>\n          </div>\n        )}\n      </div>\n\n      {/* Footer */}\n      <div className=\"text-xs text-gray-500 text-center mt-3\">\n        Analysis Date: {analysisDate} | Sources: SEC Filings, Company Reports | \n        <span className=\"font-bold text-blue-600 ml-1\">{recommendation}</span>\n      </div>\n    </div>\n  );\n};\n\nexport default QuantDashboard;"
      },
      {
        "title": "Implementation Instructions",
        "body": "CRITICAL STEPS:\n\nCalculate all metrics during the comprehensive text analysis\n\n\nStore metrics in variables as you calculate them\n\n\nAfter completing full text analysis, create the React artifact\n\n\nReplace ALL placeholder values in the template with actual calculated data\n\n\nUse the EXACT template structure - do not modify the component code\n\n\nPopulate these specific data arrays:\n\nmetrics object (60+ values including investor persona scores)\ntopNews array (5 recent headlines with dates)\npriceHistory array (10-year data with multiple valuation lines)\noneYearData array (with MAs, Bollinger Bands, forecast)\nichimokuData array (6-month with signal markers)\nichimokuSignals object (TK cross, Kumo twist, price vs cloud)\nmacdData array (6 recent points with histogram)\nrsiData array (6 recent points)\nradarData array (12 metrics, normalized 0-100)\nbullCase.points (5 points from bull case analysis)\nbearCase.points (5 points from bear case analysis)\nentryStrategy (5 values from entry/exit strategy)\n\n\n\nNormalize radar chart values properly:\n\nEach metric on 0-100 scale\nHigher is always better (invert risk/beta if needed)\nUse scaling formulas provided above\n\n\n\nFormat values correctly:\n\nCurrency: \"€100.00\" (Euro is the default - use € not $)\nLarge numbers: \"€10B\", \"€2.5M\"\nPercentages: 15.0 (number, not string with %)\nRatios: 1.25 (number)\nScores: 7 (integer) or 75.0 (float)\n\n\n\nGrowth metrics:\n\nUse REPORTED revenue growth (not underlying/organic)\nUse REPORTED earnings growth (not adjusted EPS growth)\n\n\n\nDO NOT:\n\nLeave placeholder values\nModify the component structure\nSkip any sections\nUse estimated/guessed data\n\nThis is the ONLY accepted dashboard format. All other dashboard styles are deprecated."
      },
      {
        "title": "Portfolio Awareness",
        "body": "Access portfolio data from project knowledge\nCheck if stock is already owned (if so, suggest using Portfolio Analyst)\nAssess fit with existing holdings (sector exposure, correlation)\nConsider position sizing in context of current allocations"
      },
      {
        "title": "Investment Profile",
        "body": "User's investment timeline, risk tolerance, preferences in project instructions\nTailor recommendations to user's profile\nConsider tax implications from user's context\nAdjust position sizing based on portfolio size and risk tolerance"
      },
      {
        "title": "Avoiding Duplication",
        "body": "If stock is already in portfolio:\n\nAcknowledge: \"You already own [SYMBOL]. For analysis of your existing position, use the Portfolio Analyst skill.\"\nStill provide evaluation if user wants fresh assessment\nFrame as \"Should you add more?\" rather than initial purchase"
      },
      {
        "title": "When to Use This Skill",
        "body": "Use Stock Evaluator when:\n\nUser asks \"Should I buy [stock]?\"\nUser wants evaluation of watchlist candidates\nUser requests stock recommendations\nUser asks \"Is [stock] a good investment?\"\nUser wants to compare multiple potential investments\nUser asks for alternatives to a stock they're considering\nUser wants entry price and position sizing guidance\nUser requests a \"quant-style dashboard\" or \"stock visualization\"\n\nDo NOT use this skill when:\n\nUser wants to review existing portfolio positions → Use Portfolio Analyst\nUser wants general market commentary → Regular knowledge\nUser wants stock screening/discovery → Different workflow\nUser asks about options, derivatives, crypto → Out of scope\n\nOutput includes:\n\nComprehensive text analysis (all sections above)\nQuant-style React dashboard artifact (standardized visual format)"
      },
      {
        "title": "Research Approach",
        "body": "Start with company filings (10-K, 10-Q) - NOT news articles\nGo back 5-10 years - Understand evolution, not just current state\nCompare to 3-5 peers - Apples to apples comparison\nMultiple valuation methods - Don't rely on single approach\nPresent both sides - Bull and bear cases fairly\nBe specific - Use actual data, not generalities"
      },
      {
        "title": "Valuation Discipline",
        "body": "Always require minimum 15% margin of safety\nUse conservative assumptions in DCF\nWeight multiple valuation methods\nConsider industry-specific norms\nDon't overpay for growth"
      },
      {
        "title": "Risk Awareness",
        "body": "Explicitly identify and quantify risks\nConsider probability and impact\nAcknowledge unknowns honestly\nDon't just focus on upside"
      },
      {
        "title": "Communication",
        "body": "Lead with clear recommendation\nSupport every claim with evidence\nUse specific numbers and dates\nExplain reasoning, don't just state conclusions\nMake recommendations unmistakable"
      },
      {
        "title": "Quality Companies",
        "body": "Consistent profitability over full cycle (5-10 years)\nStrong balance sheet (low debt, high cash)\nCompetitive moats (wide or narrow)\nShareholder-friendly capital allocation\nPredictable business model"
      },
      {
        "title": "Value Traps (AVOID)",
        "body": "Cheap for a reason (declining business)\nHigh debt with weak cash flow\nLosing market share consistently\nNo competitive advantages\nPoor management capital allocation"
      },
      {
        "title": "Growth at Reasonable Price (GARP)",
        "body": "Strong revenue growth (15-25%+)\nExpanding margins\nLarge addressable market\nCompetitive advantages\nReasonable valuation (PEG < 1.5)"
      },
      {
        "title": "Turnaround Candidates",
        "body": "New management with track record\nImproving key metrics quarter-over-quarter\nCatalyst for change\nDeep value with margin of safety\nReduced debt or improved cash flow"
      },
      {
        "title": "Quality Checks Before Finalizing",
        "body": "Before presenting analysis, verify:"
      },
      {
        "title": "DATA INTEGRITY CHECKS (CRITICAL - CHECK FIRST)",
        "body": "✅ Every numeric metric has a cited source from web search?\n✅ No insider activity fabricated? (SEC Form 4 or N/A)\n✅ No short interest fabricated? (FINRA/exchange or N/A)\n✅ ROE benchmark correct? (>20% = green, 10-20% = yellow, <10% = red)\n✅ Standardized metric labels used? (e.g., \"Operative Margin\", not \"Operating\")\n✅ All unavailable data shows \"N/A\"? (NEVER zeros or estimates)\n✅ TOP NEWS format correct? (pipe-separated, dates at END in brackets)\n✅ Valuation indicator displayed below forecast? (Undervalued/Fairly Valued/Overvalued +/- %)\n✅ Beta + Vol 1Y combined in one cell?\n✅ Sector/Industry combined in one cell?"
      },
      {
        "title": "ANALYSIS COMPLETENESS CHECKS",
        "body": "✅ All mandatory deliverables completed?\n✅ Multiple valuation methods used?\n✅ Both bull and bear cases presented?\n✅ Clear BUY/HOLD/SELL recommendation?\n✅ Specific entry price and position size?\n✅ 3-5 peer companies compared?\n✅ 5-10 year financial trends analyzed?\n✅ Research based on company filings, not news?\n✅ Margin of safety calculated?\n✅ Risk level assessed?\n✅ If SELL: 3-5 alternatives provided?\n✅ Technical entry points identified?\n✅ Advanced metrics calculated (Piotroski F, Altman Z, Beneish M, Max Drawdown)?\n✅ All monetary values in € (Euro)?\n✅ Revenue/Earnings growth using REPORTED (not underlying/adjusted) figures?\n✅ Value Trap Score calculated (0-100, LOWER = genuine)?\n✅ All 8 Investor Persona Scores calculated (0-10)?\n✅ PEG ratio calculated?\n✅ FCF Margin calculated?\n✅ Greenblatt Magic Formula metrics (EY, ROC)?\n✅ News sentiment and short interest researched?\n✅ Ichimoku Cloud data gathered with signal markers?\n✅ TOP NEWS section populated (5 recent headlines)?\n✅ 10-year price history with valuation lines available?\n✅ Enhanced dashboard created with ALL 60+ metrics populated?"
      },
      {
        "title": "FINAL VALIDATION QUESTIONS",
        "body": "Can you cite source for EVERY number in the dashboard?\nDid any metric come from training knowledge alone? (If yes, search again or use N/A)\nAre insider buys/sells from SEC Form 4 specifically? (If not found, use N/A)\n\nIf any checklist item incomplete: STOP and gather more information.\nIf data genuinely unavailable after searching: Use \"N/A\" - never fabricate."
      },
      {
        "title": "Example Evaluation Structure",
        "body": "[See complete example in EVALUATION-WORKFLOWS.md for detailed walkthrough]"
      },
      {
        "title": "Continuous Improvement",
        "body": "After each evaluation:\n\nTrack recommendation outcomes\nLearn from what worked/didn't work\nRefine valuation assumptions\nImprove pattern recognition\nUpdate industry knowledge\n\nThe goal is to discover genuinely attractive investment opportunities that fit the user's profile with adequate margin of safety and acceptable risk."
      }
    ],
    "body": "Stock Evaluator (Enhanced)\n⚠️ CRITICAL: MANDATORY DELIVERABLES CHECKLIST\n\nEvery analysis MUST include ALL of these:\n\n☐ Technical Analysis (price action, indicators, key levels, Ichimoku Cloud)\n☐ Fundamental Analysis (business, financials, competitive position)\n☐ Advanced Financial Metrics (F-Score, Z-Score, M-Score, Max Drawdown, Value Trap Score)\n☐ Investor Persona Scores (8 legendary investor frameworks)\n☐ Valuation Assessment (multiple methods with margin of safety)\n☐ Bull vs. Bear Case (both sides with balance assessment)\n☐ Clear Recommendation (BUY / HOLD / SELL with conviction rating)\n☐ Alternative Candidates (if SELL: provide 3-5 better alternatives)\n☐ Enhanced Quant-Style Dashboard (React dashboard with 60+ metrics, Ichimoku, investor personas, TOP NEWS, and key notes)\n\nIf you cannot complete any item, STOP and ask for clarification.\n\n⚠️ CRITICAL: DATA INTEGRITY RULES\nZERO FABRICATION POLICY\n\nNEVER fabricate, estimate, or hallucinate ANY numeric data point. Every metric in the dashboard MUST come from:\n\nA web search result with a cited source\nCompany filings (10-K, 10-Q, earnings reports)\nOfficial financial data providers\n\nIf data cannot be found → Use \"N/A\" or \"--\"\n\nMANDATORY WEB SEARCHES (minimum per analysis)\n\nYou MUST perform these searches before populating the dashboard:\n\nSearch #\tQuery Template\tData Retrieved\n1\t\"[TICKER] stock price market cap P/E ratio\"\tPrice, Market Cap, P/E\n2\t\"[TICKER] ROE ROA profit margin 2024 annual report\"\tFinancial ratios\n3\t\"[TICKER] revenue growth earnings growth FY2024\"\tGrowth rates (REPORTED)\n4\t\"[TICKER] Piotroski F-Score\"\tF-Score (or calculate)\n5\t\"[TICKER] insider trading SEC Form 4 2025\"\tInsider buys/sells\n6\t\"[TICKER] short interest percentage float\"\tShort interest\n7\t\"[TICKER] RSI MACD 50-day 200-day moving average beta volatility\"\tTechnical indicators\n8\t\"[TICKER] analyst price target consensus\"\tAnalyst targets\nDATA SOURCE HIERARCHY\n\nUse sources in this priority order:\n\nOfficial company filings (SEC EDGAR, company investor relations)\nExchange data (NYSE, NASDAQ, LSE official)\nVerified financial data (Yahoo Finance, Google Finance, MarketWatch)\nSEC Form 4 (for insider trading ONLY)\nFINRA/exchange (for short interest ONLY)\nPROHIBITED\nUsing training knowledge for ANY specific current numbers\nAnalyst reports (per user preference)\nEstimates without sourcing\n\"Common knowledge\" assumptions\nHANDLING UNAVAILABLE DATA\nSituation\tAction\tDisplay\nMetric not found after searching\tDisplay \"N/A\"\tvalue: \"N/A\"\nData is outdated (>1 year old)\tNote the date\tvalue: \"15.2% (2023)\"\nConflicting sources\tUse most authoritative\tNote in analysis\nCalculated metric (F-Score)\tShow calculation\tExplain in text\nInsider data unavailable\tShow \"N/A\"\tinsBuys: \"N/A\"\n\nCRITICAL: Zero means \"zero occurred\" - NEVER substitute zeros for missing data.\n\nSTANDARDIZED METRIC LABELS\n\nUse these EXACT labels in the dashboard (matches reference screenshots):\n\nRow 1: PRICE & VALUATION | FINANCIAL PERFORMANCE\nLabel\tNotes\nPrice:\t$XX.XX or €XX.XX\nMarket Cap:\t$XXB or €XXB\nTrailing P/E:\tXX.XX\nForward P/E:\tXX.XX\nSubsector P/E:\tXX.XX or N/A\nPEG (1Y):\tX.XX with benchmark (<1)\nROE:\tXX.XX% with benchmark (>20%)\nROA:\tXX.XX% with benchmark (>10%)\nProfit Margin:\tXX.XX% with benchmark (>20%)\nOperative Margin:\tXX.XX% with benchmark (>20%) - NOTE: \"Operative\" not \"Operating\"\nGross Margin:\tXX.XX% with benchmark (>40%)\nROIC:\tXX.X% with benchmark (>15%)\nRow 2: GROWTH METRICS | RISK INDICATORS\nLabel\tNotes\nRevenue (YoY):\tXX.XX% with benchmark (>10%) - REPORTED only\nEarning (YoY):\tXX.XX% with benchmark (>0%) - REPORTED only\nEPS (TTM):\t$X.XX\nForward EPS:\t$X.XX\nGrowth Rates:\tCapped: X.X% / Uncapped: X.X%\nAnalyst Target:\t$XX.XX\nCRS (0-1):\tX.XX with benchmark (Medium)\nDebt/Equity (mrq):\tX.XX with benchmark (0.5-1)\nPiotroski F:\tX with benchmark (≥7)\nAltman Z:\tX.XX with benchmark (>3)\nBeneish M:\tX.XX with benchmark (<-1.78)\nValue Trap:\tXX (Label)\nRow 3: LIQUIDITY & FREE CASH FLOW | INSIDER & SENTIMENT & CLASS\nLabel\tNotes\nCurrent Ratio:\tX.XX with benchmark (1-2)\nCash:\t$X.XB\nDebt:\t$X.XB or N/A\nFCF Growth 5Y:\tXX.X% with benchmark (>5%)\nFCF Yield:\tX.XX% with benchmark (>4%)\nFCF Margin:\tXX.XX% with benchmark (>15%)\nPayout Ratio:\tXX.XX% with benchmark (<50%)\nBuys (12M):\tX - from SEC Form 4 or N/A\nSells (12M):\tX - from SEC Form 4 or N/A\nNet Shares (12M):\t+/-XXK - from SEC Form 4 or N/A\nShort Int (%):\tX.X%\nSentiment / Articles:\t+X.XXX / XX (Positive/Negative)\nStock: [Type] + Div Yield:\tCombined: \"Stock: Growth\" + \"Div Yield: X.XX%\"\nSector/Industry:\tCombined: \"Sector / Industry\"\nRow 4: QUALITY SCORES | MOAT & OTHER\nLabel\tNotes\nCQVS:\tXX.XX with benchmark range\nLabel:\tStrong/Moderate/Weak\nValuation:\tXX.XX\nQuality:\tXX.XX\nStrength:\tXX.XX\nIntegrity:\tXX.XX\nBuffett Moat:\tX with benchmark (4-7)\nGreenblatt (MF):\tEY: X.X% / ROC: X.X% or N/A\nBeta: + Vol 1Y:\tCombined: \"Beta: X.XX\" + \"Vol 1Y: XX.X%\"\nEarnings Predict.:\tXX.X% with benchmark (>80%)\nDrawdown (5Y):\t-XX.X% with label (Low/Mid/High)\nCompleteness: + Data Quality:\tCombined: \"XX.X%\" + \"High/Medium/Low\"\nSTANDARDIZED BENCHMARKS (Single Source of Truth)\n\nUse these EXACT thresholds for color coding:\n\nMetric\tGreen (Good)\tYellow (Neutral)\tRed (Warning)\nROE\t>20%\t10-20%\t<10%\nROA\t>10%\t5-10%\t<5%\nProfit Margin\t>20%\t10-20%\t<10%\nOperative Margin\t>20%\t10-20%\t<10%\nGross Margin\t>40%\t25-40%\t<25%\nROIC\t>15%\t8-15%\t<8%\nDebt/Equity\t<1\t1-2\t>2\nCurrent Ratio\t1-2\t0.5-1 or 2-3\t<0.5 or >3\nPiotroski F\t≥7\t4-6\t≤3\nAltman Z\t>2.99\t1.81-2.99\t<1.81\nBeneish M\t<-2.22\t-2.22 to -1.78\t>-1.78\nPEG (1Y)\t<1\t1-2\t>2\nRSI (14)\t30-50\t50-70\t>70 or <30\nShort Interest\t<5%\t5-10%\t>10%\nFCF Yield\t>5%\t2-5%\t<2%\nFCF Margin\t>15%\t10-15%\t<10%\nDividend Yield\t>2%\t1-2%\t<1% or >8%\nValue Trap\t0-39\t40-59\t60-100\nMax Drawdown\t>-30%\t-30% to -50%\t<-50%\nRevenue Growth\t>10%\t0-10%\t<0%\nEarnings Growth\t>0%\t-10% to 0%\t<-10%\nOverview\n\nThis 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.\n\nThe evaluation answers:\n\nShould I buy this stock?\nAt what price should I enter?\nHow much should I allocate?\nWhat's my upside and downside?\nWhen should I sell?\nDefault Currency: € (Euro)\n\nAll monetary values in the dashboard should be displayed in Euro (€) as the default currency:\n\nPrice: €42.13\nMarket Cap: €78.3B\nAnalyst Target: €56.45\nEntry/Stop/Target prices: €38, €35, €56\nEPS values: €1.39, €1.91\nIMPORTANT: Use REPORTED Growth Rates\n\nFor the dashboard metrics \"Rev Growth\" and \"Earn Growth\":\n\nUSE REPORTED GROWTH - not underlying, adjusted, or organic figures\nReported figures reflect actual GAAP/IFRS numbers including FX, acquisitions, disposals\nThis provides a more accurate picture of what investors actually received\nExample: If underlying growth is 7% but reported is 2.2%, use 2.2%\nSame for earnings: Use reported EPS growth, not adjusted EPS growth\nCore Purpose\n\nStock Evaluator is for:\n\n✅ Evaluating potential investments BEFORE buying\n✅ Analyzing watchlist candidates\n✅ Getting buy/hold/sell recommendations with specific prices\n✅ Comparing multiple investment opportunities\n✅ Finding better alternatives to current consideration\n\nNOT for:\n\n❌ Reviewing existing portfolio positions (use Portfolio Analyst skill)\n❌ General stock market questions\n❌ Stock screening or discovery from scratch\n❌ Options, derivatives, or crypto analysis\nEvaluation Framework\nFive Pillars of Stock Evaluation\n\n1. Valuation Assessment\n\nIs the stock undervalued, fairly valued, or overvalued?\nMultiple valuation methods (DCF, relative, Peter Lynch, asset-based)\nMargin of safety requirement (15-30%)\nFair value estimate with confidence range\n\n2. Quality Analysis\n\nBusiness model strength and competitive moat\nFinancial health and trends (5-10 year view)\nManagement quality and capital allocation\nIndustry position and competitive advantages\n\n3. Timing Assessment\n\nTechnical setup and entry points\nNear-term catalysts and events\nMarket sentiment and positioning\nOptimal entry price range\n\n4. Position Sizing\n\nAllocation recommendation (% of portfolio)\nBased on conviction, risk, and diversification\nMaximum allocation limits\nRisk-adjusted sizing\n\n5. Conviction Rating\n\nStrong Buy: High conviction, clear undervaluation, low risk\nBuy: Good opportunity, reasonable valuation, moderate risk\nHold: Fairly valued, no compelling reason to buy now\nAvoid: Overvalued, significant risks, or better alternatives exist\nValue Trap Indicator\nWhat It Is\n\nA 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.\"\n\nValue Trap Score Calculation (0-100, LOWER = more genuine, HIGHER = more trap)\n\nComponents to evaluate (ADD points for trap indicators):\n\n1. Price Momentum (25 points max)\n\n6-month price change vs market: If underperforming by >20%, ADD 15-25 points\n12-month price change: Sustained decline = ADD 10-20 points\nIf price momentum is POSITIVE: ADD 0 points\n\n2. Earnings Quality (25 points max)\n\nEPS trend (3 years): Declining = ADD 10-25 points\nRevenue trend: Declining = ADD 5-15 points\nMargin trend: Compressing = ADD 5-10 points\nIf earnings quality is STRONG: ADD 0 points\n\n3. Balance Sheet Health (25 points max)\n\nDebt levels increasing? ADD 5-15 points\nCash flow negative or declining? ADD 10-20 points\nWorking capital deteriorating? ADD 5-10 points\nIf balance sheet is HEALTHY: ADD 0 points\n\n4. Valuation Context (25 points max)\n\nIs low multiple justified by declining fundamentals? ADD 10-25 points\nCompare current fundamentals to when multiple was higher\nIf fundamentals justify valuation: ADD 0 points\nScoring Formula\nValue Trap Score = Momentum Penalty + Quality Penalty + Balance Sheet Penalty + Valuation Penalty\n\n\n(Score ranges from 0 to 100, where 0 = definitely genuine value, 100 = definite value trap)\n\nScore Interpretation\n0-19: Genuine Value (likely undervalued, fundamentals intact) - GREEN\n20-39: Probably Genuine (minor concerns, monitor) - LIGHT GREEN\n40-59: Caution Zone (mixed signals, proceed carefully) - YELLOW\n60-79: Likely Trap (multiple red flags) - ORANGE\n80-100: Strong Trap Signal (avoid) - RED\nDisplay Format\nValue Trap: 21 (Genuine)\n\n\nColor coding: green <40, yellow 40-60, red >60\n\nInvestor Persona Scores\n\nScore each stock against 8 famous investor philosophies (0-10 scale). This helps users understand what type of investor the stock suits.\n\n1. Warren Buffett Score\n\nBased on \"The Warren Buffett Way\" - seeks durable competitive advantages\n\nKey metrics weighted:\n\nROE (>20%): 2 points\nProfit margin (>15%): 2 points\nFree cash flow positive & growing: 2 points\nMoat strength (brand, pricing power): 2 points\nPredictable earnings: 2 points\n\nBuffett likes: Predictable businesses, pricing power, low capex needs, consistent profitability\n\n2. Charlie Munger Score\n\nBased on \"Poor Charlie's Almanack\" - mental latticework, inversion thinking\n\nFocus on: What could go WRONG (inversion principle)\n\nScoring: Start at 10, subtract penalties:\n\nHigh debt (D/E > 2): -3 points\nVolatile earnings: -2 points\nPoor management history: -2 points\nNo competitive moat: -2 points\nAccounting red flags: -3 points\n3. Ray Dalio Score\n\nBased on \"Principles\" - All-Weather portfolio, economic machine understanding\n\nKey metrics:\n\nD/E ratio < 1: 2 points\nBeta < 1: 2 points\nStable margins across cycles: 2 points\nLow earnings volatility: 2 points\nRecession resistance history: 2 points\n\nDalio likes: Deleveraging plays, operational efficiency, cycle resilience\n\n4. Peter Lynch Score\n\nBased on \"One Up on Wall Street\" - GARP (Growth at Reasonable Price)\n\nPrimary metric: PEG Ratio (P/E ÷ Growth Rate)\n\nPEG < 0.5: 10 points\nPEG 0.5-1.0: 8 points\nPEG 1.0-1.5: 6 points\nPEG 1.5-2.0: 4 points\nPEG > 2.0: 2 points\n\nAdjustment factors:\n\n+1 if earnings growing consistently\n+1 if business easy to understand\n-1 if declining industry\n5. Benjamin Graham Score\n\nBased on \"The Intelligent Investor\" - Margin of Safety\n\nGraham criteria (2 points each, max 10):\n\nP/E < 15\nP/B < 1.5\nCurrent ratio > 2\nPositive earnings 10 years\nDividend paid 20+ years\n6. Joel Greenblatt Score\n\nBased on \"The Little Book That Beats the Market\" - Magic Formula\n\nCombines two rankings:\n\nEarnings Yield (EBIT/EV): Higher = better\nReturn on Capital (EBIT/Net Fixed Assets + Working Capital): Higher = better\n\nScoring: Combined rank in top 10% = 10 points, scaled down\n\n7. John Templeton Score\n\nBased on contrarian, global value investing\n\nKey factors:\n\nTrading at multi-year lows: +3 points\nOut of favor with analysts: +2 points\nStrong fundamentals despite pessimism: +3 points\nGlobal perspective (non-US opportunity): +2 points\n8. George Soros Score\n\nBased on \"The Alchemy of Finance\" - Reflexivity\n\nKey factors:\n\nMomentum and trend strength: 3 points\nMacro tailwinds: 3 points\nMarket perception shifting: 2 points\nInflection point catalyst: 2 points\n\nSoros likes: Macro plays, reflexive situations, trend participation\n\nDisplay Format\n\nShow 8 badges around radar chart with scores and color coding:\n\nGreen (7-10): Strong fit\nYellow (4-6.9): Moderate fit\nRed (0-3.9): Poor fit\nEnhanced Technical Analysis\nIchimoku Cloud Analysis\n\nComponents to Calculate:\n\nTenkan-sen (Conversion Line): (9-period high + 9-period low) / 2\nKijun-sen (Base Line): (26-period high + 26-period low) / 2\nSenkou Span A: (Tenkan-sen + Kijun-sen) / 2, plotted 26 periods ahead\nSenkou Span B: (52-period high + 52-period low) / 2, plotted 26 periods ahead\nChikou Span (Lagging Span): Current close plotted 26 periods back\n\nCloud (Kumo): Area between Senkou Span A and B\n\nSignals to Identify and Display:\n\nTK Bullish Cross: Tenkan-sen crosses above Kijun-sen (bullish) - mark with ◆\nTK Bearish Cross: Tenkan-sen crosses below Kijun-sen (bearish) - mark with ◆\nKumo Twist Bullish: Cloud changes from red to green - mark with ◆\nKumo Twist Bearish: Cloud changes from green to red - mark with ◆\nPrice vs Cloud: Above cloud (bullish), Below cloud (bearish), In cloud (neutral)\nDual PEG Ratios\nPEG (1Y): P/E ÷ 1-Year Forward Growth Estimate\nPEG (5Y): P/E ÷ 5-Year Historical Growth Rate\nBoth provide different perspectives on growth valuation\nFCF Margin\nFormula: Free Cash Flow / Revenue × 100\nBenchmark: >15% is excellent, >10% is good\nShows cash generation efficiency relative to sales\nNews Sentiment & Short Interest\nNews Sentiment: -1 to +1 scale based on recent article sentiment\nShort Interest: % of float sold short (>10% = high, <5% = low)\nBoth indicate market sentiment and potential squeeze/reversal\nFundamental Analysis Process\n1. Business Understanding (Always First)\n\nWhat to Analyze:\n\nWhat does the company do? (products, services, business model)\nRevenue sources and breakdown\nTarget customers and markets\nCompetitive advantages (moat sources)\nMarket position and share\nIndustry dynamics and trends\n\nManagement Evaluation:\n\nCEO background, tenure, track record\nCFO and key executives\nCapital allocation decisions (dividends, buybacks, acquisitions, R&D)\nManagement compensation alignment\nInsider trading patterns (buying is bullish signal)\nLeadership quality from earnings calls and letters\n\nCompetitive Position:\n\nMarket share and trends\nKey competitors (identify 3-5 direct peers)\nWhat differentiates this company?\nSustainable competitive advantages?\n2. Financial Analysis (5-10 Year View)\n\nResearch Process Order:\n\nLatest 10-K first - Understand current business and recent results\nGo back 5-10 years through historical 10-Ks - Understand evolution\nReview last 2-3 years of 10-Qs - Current trajectory\nExamine proxy statements - Governance and compensation\n\nKey Metrics to Analyze:\n\nQuality Benchmarks:\n\nROE > 15% (return on equity)\nProfit Margin > 15%\nGross Margin > 30%\nDebt < Annual Revenue\nPositive and growing Free Cash Flow\nRevenue growth over 5 years (inflation-adjusted)\n\nTrends to Assess:\n\nRevenue growth trajectory (accelerating/stable/decelerating?)\nMargin expansion or contraction (why?)\nCash flow consistency and quality\nBalance sheet strength (debt levels, liquidity)\nReturn on invested capital (ROIC)\nWorking capital management\n\nRed Flags:\n\nDeclining margins despite revenue growth\nNegative or inconsistent free cash flow\nDebt growing faster than cash generation\nLosing market share\nChronic guidance misses\nAccounting irregularities\n3. Competitive Moat Assessment\n\nMoat Strength: Wide / Narrow / None\n\nEvaluate Sources:\n\nNetwork effects: Product improves with more users?\nBrand loyalty: Pricing power from brand strength?\nSwitching costs: Difficult/expensive to switch?\nRegulatory barriers: Licenses, patents, regulations?\nCost advantages: Scale, technology, location?\nIntangible assets: Patents, trademarks, proprietary data?\n\nMoat Durability:\n\nHow long can advantages be sustained?\nWhat could erode the moat?\nIs moat strengthening or weakening?\n\nPeer Comparison: Compare this company's moat vs. 3-5 direct competitors:\n\nMarket share trends\nProfitability metrics (margins, ROE)\nGrowth rates\nFinancial strength\n4. Advanced Financial Health Metrics\n\nBeyond basic quality metrics, calculate these advanced scores for deeper insight:\n\nPiotroski F-Score (Financial Strength)\n\nPurpose: 9-point score measuring financial strength across profitability, leverage, and operating efficiency.\n\nScoring (0-9, higher is better):\n\nProfitability (4 points):\n\nROA > 0: +1\nOperating Cash Flow > 0: +1\nROA improving YoY: +1\nCash Flow from Operations > Net Income (quality of earnings): +1\n\nLeverage/Liquidity (3 points):\n\nLong-term debt decreasing YoY: +1\nCurrent ratio improving YoY: +1\nNo new shares issued in past year: +1\n\nOperating Efficiency (2 points):\n\nGross margin improving YoY: +1\nAsset turnover ratio improving YoY: +1\n\nInterpretation:\n\n8-9: Excellent financial health\n6-7: Good financial health\n4-5: Adequate financial health\n0-3: Weak financial health\n\nAltman Z-Score (Bankruptcy Risk)\n\nPurpose: Predicts probability of bankruptcy within 2 years.\n\nFormula (for public manufacturing companies): Z = 1.2(A) + 1.4(B) + 3.3(C) + 0.6(D) + 1.0(E)\n\nWhere:\n\nA = Working Capital / Total Assets\nB = Retained Earnings / Total Assets\nC = EBIT / Total Assets\nD = Market Cap / Total Liabilities\nE = Sales / Total Assets\n\nInterpretation:\n\nZ > 2.99: Safe Zone (low bankruptcy risk)\nZ 1.81-2.99: Grey Zone (moderate risk)\nZ < 1.81: Distress Zone (high bankruptcy risk)\n\nNote: Adjust for non-manufacturing companies (different coefficients).\n\nBeneish M-Score (Earnings Manipulation Detection)\n\nPurpose: Identifies likelihood of earnings manipulation.\n\nKey Indicators (simplified approach):\n\nDays Sales Outstanding Index (increasing = warning)\nGross Margin Index (declining = warning)\nAsset Quality Index (increasing = warning)\nSales Growth Index (excessive growth = warning)\nDepreciation Index (declining = warning)\nSG&A Index (disproportionate change = warning)\nLeverage Index (increasing = warning)\nTotal Accruals to Total Assets (high = warning)\n\nInterpretation:\n\nM-Score > -1.78: Likely manipulator (RED FLAG)\nM-Score < -1.78: Unlikely manipulator (clean)\n\nPractical Check (if full M-Score unavailable):\n\nAre accruals consistently high relative to cash flow?\nIs DSO rising faster than revenue?\nAre margins declining with revenue growth?\nAny accounting restatements or auditor changes?\n\nMax Drawdown (5-Year)\n\nPurpose: Measures largest peak-to-trough price decline.\n\nCalculation:\n\nIdentify highest price in past 5 years\nFind lowest subsequent price before recovery\nMax Drawdown % = (Low - High) / High × 100\n\nInterpretation:\n\n0-20%: Low volatility (defensive stock)\n20-40%: Moderate volatility (typical stock)\n40-60%: High volatility (cyclical/growth)\n>60%: Extreme volatility (speculative)\n\nConsolidated Scores\n\nStrength Score (0-100): Composite of:\n\nFinancial metrics (F-Score contribution)\nProfitability (ROE, margins)\nGrowth rates\nMarket position\n\nIntegrity Score (0-100): Composite of:\n\nM-Score (earnings quality)\nCash flow vs. earnings alignment\nAccounting practices\nManagement transparency\n\nPredictability Score (0-100): Composite of:\n\nRevenue consistency (low volatility)\nEarnings consistency\nBusiness model stability\nCyclicality assessment\n\nData Quality Score (0-100):\n\nCompleteness of financial data\nRecency of filings\nAuditor quality\nDisclosure transparency\n5. Risk Analysis\n\nCompany-Specific Risks:\n\nExecution risk (can management deliver?)\nCompetition risk (share loss, new entrants)\nProduct concentration (single product dependency)\nCustomer concentration (few large customers)\nKey person risk (CEO dependency)\nFinancial distress risk (Z-Score assessment)\nEarnings quality risk (M-Score assessment)\n\nIndustry Risks:\n\nDisruption (technology or business model)\nCyclicality (economic sensitivity)\nRegulation (policy changes)\nCommoditization (pricing power erosion)\nStructural decline (secular headwinds)\n\nMacro Risks:\n\nEconomic (recession, inflation, rates)\nGeopolitical (trade wars, conflicts)\nCurrency (FX exposure)\nMarket (valuation levels, sentiment)\n\nOverall Risk Level: Low / Moderate / High\n\nConsolidated Risk Score: (0-1 scale, lower is better)\n\nIncorporates: Z-Score, volatility, leverage, earnings quality\n<0.30: Low Risk\n0.30-0.60: Moderate Risk\n\n0.60: High Risk\n\nValuation Assessment\n\nUse multiple valuation methods - synthesize into fair value estimate.\n\nRequired Valuation Methods\n\n1. DCF Analysis (Discounted Cash Flow)\n\nProject free cash flows (5-10 years)\nApply appropriate discount rate (WACC)\nCalculate terminal value\nInclude margin of safety: 15-30%\nSensitivity analysis with different assumptions\n\n2. Relative Valuation\n\nCompare to 3-5 direct peer companies\nKey multiples: P/E, EV/EBITDA, Price/Sales, Price/Book\nAdjust for growth differentials\nConsider industry-specific multiples\nUse both current and historical peer averages\n\n3. Peter Lynch Fair Value\n\nGrowth-at-reasonable-price framework\nCompare P/E to growth rate (PEG ratio)\nFair value when P/E ≈ growth rate\nAdjust for quality factors\n\n4. Asset-Based (When Applicable)\n\nFor REITs, financials, asset-heavy companies\nBook value or replacement cost\nNet asset value calculations\nValuation Synthesis\n\nFair Value Estimate: €X.XX\n\nWeight each method appropriately:\n\nDCF: 40% (if reliable cash flows)\nRelative: 30% (peer comparison)\nPeter Lynch: 30% (growth-adjusted)\n\nMargin of Safety:\n\nCurrent Price vs. Fair Value: X% discount/premium\nRequired: Minimum 15% margin of safety\nAdequate: 15-30% margin of safety\nExcellent: >30% margin of safety\n\nValuation Conclusion:\n\nUNDERVALUED: >15% below fair value (buy opportunity)\nFAIRLY VALUED: Within ±15% of fair value (hold)\nOVERVALUED: >15% above fair value (avoid/sell)\nTechnical Analysis (Entry Timing)\n\nFocus on identifying optimal entry points, not full technical analysis.\n\nKey Technical Elements\n\n1. Price Action (Last 30-60 Days)\n\nCurrent trend: Uptrend / Downtrend / Range-bound\nRecent price pattern\nVolume trends (increasing on rallies?)\nMomentum assessment\n\n2. Key Levels\n\nSupport levels: Where buying interest emerges\nPrimary support: €X.XX\nSecondary support: €X.XX\nResistance levels: Where selling pressure increases\nPrimary resistance: €X.XX\nSecondary resistance: €X.XX\n\n3. Technical Indicators\n\nRSI (Relative Strength Index):\n\n70 = Overbought (may pullback)\n\n<30 = Oversold (potential bounce)\n40-60 = Neutral\nMACD (Moving Average Convergence Divergence):\nBullish crossover / Bearish crossover / Neutral\nMomentum accelerating or decelerating?\nMoving Averages:\n50-day MA: €X.XX (price above/below?)\n200-day MA: €X.XX (trend indicator)\n\n4. Entry Assessment\n\nTechnical Setup: Bullish / Neutral / Bearish\nOptimal Entry: Wait for pullback to support / Buy at market / Wait for breakout\nEntry Price Range: €X.XX - €X.XX\nAvoid Above: €X.XX (poor risk/reward)\nBull vs. Bear Case Analysis\n\nMANDATORY: Every analysis must present both sides fairly.\n\nBull Case (Optimistic Scenario)\n\nPotential Upside: +X% to €X.XX\n\n[Key bull argument 1 with specific evidence]\n[Key bull argument 2 with specific evidence]\n[Key bull argument 3 with specific evidence]\n\nFor this to play out:\n\n[Required condition 1]\n[Required condition 2]\nBear Case (Pessimistic Scenario)\n\nPotential Downside: -X% to €X.XX\n\n[Key bear argument 1 with specific evidence]\n[Key bear argument 2 with specific evidence]\n[Key bear argument 3 with specific evidence]\n\nThis happens if:\n\n[Risk trigger 1]\n[Risk trigger 2]\nBalance Assessment\n\nWhich case is more probable: [Bull / Bear / Balanced]\n\n[Explanation of why one case is more likely, considering:\n\nQuality of evidence for each side\nHistorical precedent\nManagement track record\nIndustry dynamics\nCurrent valuation]\nInvestment Recommendation Structure\nBUY Recommendation Criteria\nFair value >15% above current price (adequate margin of safety)\nStrong or improving fundamentals\nReasonable or bullish technical setup\nIdentifiable catalysts\nAcceptable risk level\nConviction: Strong Buy or Buy\nHOLD Recommendation Criteria\nFair value within ±15% of current price\nStable fundamentals, no compelling catalyst\nBetter opportunities may exist elsewhere\nWait for better entry price\nConviction: Hold\nSELL/AVOID Recommendation Criteria\nFair value <-15% below current price (overvalued)\nDeteriorating fundamentals\nSignificant risks\nBetter alternatives available\nMust provide 3-5 alternative candidates\nConviction: Avoid\nPosition Sizing Framework\n\nAllocation recommendation based on:\n\nConviction + Risk = Position Size\n\nStrong Buy (High Conviction, Low Risk):\n\nPosition size: 5-8% of portfolio\nMaximum: 10%\n\nBuy (Moderate Conviction, Moderate Risk):\n\nPosition size: 3-5% of portfolio\nMaximum: 7%\n\nSpeculative/High Risk:\n\nPosition size: 1-3% of portfolio\nMaximum: 5%\n\nConsiderations:\n\nDiversification needs (avoid sector concentration)\nCorrelation with existing holdings\nOverall portfolio risk\nLiquidity requirements\nUser's risk tolerance (from project context)\nEntry and Exit Strategy\nEntry Strategy\n\nNO scale-in strategies - recommend single entry approach:\n\nIf BUY:\n\nIdeal Entry Price: €X.XX - €X.XX (optimal range)\nMaximum Buy Price: €X.XX (above this, risk/reward unfavorable)\nApproach:\n\"Buy now at market\" (if currently at good price)\n\"Wait for pullback to €X.XX support\" (if extended)\n\"Buy on break above €X.XX\" (if breakout setup)\n\"Don't buy above €X.XX\" (if overvalued)\nExit Strategy\n\nPrice Target (12-month): €X.XX (+X% upside)\n\nConservative: €X.XX\nBase case: €X.XX\nOptimistic: €X.XX\n\nStop Loss: €X.XX (-X% maximum loss)\n\nTechnical stop: Below key support\nFundamental stop: If thesis breaks\n\nSell If (Thesis-Breaking Conditions):\n\n[Specific fundamental deterioration]\n[Specific competitive threat]\n[Specific valuation threshold]\n\nHold Duration:\n\nExpected timeframe: [6-12 months / 1-3 years / 3-5+ years]\nBased on investment type (swing trade vs long-term hold)\nCatalyst Identification\n\nIdentify specific events that could drive stock performance.\n\nNear-Term (0-6 months):\n\nUpcoming earnings: [Date]\nProduct launches: [Event]\nRegulatory decisions: [Expected timing]\nIndustry events: [Conference, data release]\n\nMedium-Term (6-18 months):\n\nMarket expansion plans\nNew product cycles\nMargin expansion initiatives\nStrategic partnerships\n\nLong-Term (18+ months):\n\nStructural industry trends\nMarket share gains\nTechnological leadership\nBusiness model evolution\nKey Analytical Constraints\n\nCritical Principles:\n\nNo Press/News for Fundamental Analysis\n\nUse company filings only (10-K, 10-Q, 8-K, proxy)\nUse earnings call transcripts\nDo NOT rely on news articles or press releases\nException: News for recent developments, but verify in filings\n\nMagnitude Over Precision\n\nFocus on stocks with good margin of safety (>15%)\nDon't need perfect forecasts\nBetter to be approximately right than precisely wrong\nConservative assumptions better than optimistic\n\nLong-Term View\n\nAnalyze 5-10 year trends, not just recent quarters\nTemporary setbacks vs. structural problems\nSustainable competitive advantages matter most\nShort-term noise vs. long-term signal\n\nCompare Apples to Apples\n\nBenchmark against 3-5 direct competitors\nNot just broad market indices\nIndustry-specific metrics and norms\nAdjust for company size and maturity\n\nIntellectual Honesty\n\nAcknowledge limitations and unknowns\nPresent both bull and bear cases fairly\nSay \"I don't know\" when appropriate\nUpdate views when evidence changes\nOutput Template\n# [SYMBOL] - [Company Name] Evaluation\n\n## ⚠️ DELIVERABLES CHECKLIST ✓\n☑ Technical Analysis Complete\n☑ Fundamental Analysis Complete\n☑ Valuation Assessment Complete\n☑ Bull vs. Bear Case Complete\n☑ Clear Recommendation: **[BUY / HOLD / SELL]**\n☑ Alternative Candidates: [If SELL, list 3-5 alternatives below]\n\n---\n\n## 📊 Executive Summary\n\n[2-3 sentence bottom-line assessment with key reasoning]\n\n**Recommendation: [BUY / HOLD / SELL]**\n**Conviction: [Strong Buy / Buy / Hold / Avoid]**\n\n---\n\n## 💰 Valuation Assessment\n\n**Fair Value Estimate: €X.XX** (Current: €X.XX)\n- **Margin of Safety: X%** [Adequate >15% / Insufficient <15%]\n- **Valuation: [UNDERVALUED / FAIRLY VALUED / OVERVALUED]**\n\n| Valuation Method | Fair Value | vs. Current | Weight |\n|-----------------|-----------|-------------|--------|\n| DCF Analysis | €X.XX | +X% | 40% |\n| Peer Relative | €X.XX | +X% | 30% |\n| Peter Lynch | €X.XX | +X% | 30% |\n| **Weighted Average** | **€X.XX** | **+X%** | **100%** |\n\n**Assumptions:**\n- DCF: [Key assumptions - growth rate, margins, discount rate]\n- Margin of safety applied: X%\n\n---\n\n## 🏢 Business & Competitive Analysis\n\n### What They Do\n[2-3 paragraph business model summary:\n- Core products/services\n- Revenue breakdown\n- Target markets\n- Business model]\n\n### Competitive Advantages\n**Moat Strength: [Wide / Narrow / None]**\n\n1. **[Advantage 1]**: [Detailed explanation with evidence]\n2. **[Advantage 2]**: [Detailed explanation with evidence]\n3. **[Advantage 3]**: [Detailed explanation with evidence]\n\n**Moat Durability:** [How sustainable are these advantages? 3-5 years? 10+ years?]\n\n### Management Quality Assessment\n**Overall Rating: [Excellent / Good / Adequate / Concerning]**\n\n- **CEO**: [Name] - [Background, tenure]\n  - Track record: [Achievements/concerns]\n  - Capital allocation: [Shareholder-friendly? Smart acquisitions?]\n- **CFO**: [Name] - [Financial stewardship]\n- **Insider Trading**: [Recent buying/selling activity]\n- **Key Insight**: [Overall management assessment]\n\n### Competitive Position\n\n**Market Position:**\n- Market share: X% (#X in industry)\n- Share trend: [Gaining / Stable / Losing]\n\n**Key Competitors:** [List 3-5 direct peers]\n\n**Peer Comparison:**\n| Company | Mkt Cap | Revenue Growth | Profit Margin | ROE | P/E | Moat |\n|---------|---------|---------------|---------------|-----|-----|------|\n| [Target] | €XB | X% | X% | X% | X.X | [Rating] |\n| [Peer 1] | €XB | X% | X% | X% | X.X | [Rating] |\n| [Peer 2] | €XB | X% | X% | X.X | X.X | [Rating] |\n| [Peer 3] | €XB | X% | X% | X% | X.X | [Rating] |\n\n**Competitive Assessment:** [Is this the best company in the sector?]\n\n---\n\n## 📈 Financial Health Analysis\n\n### Quality Metrics vs. Benchmarks\n\n| Metric | Current | 1Y Ago | 3Y Ago | 5Y Ago | Target | Status |\n|--------|---------|--------|--------|--------|--------|--------|\n| ROE | X% | X% | X% | X% | >15% | [✓/✗] |\n| Profit Margin | X% | X% | X% | X% | >15% | [✓/✗] |\n| Gross Margin | X% | X% | X% | X% | >30% | [✓/✗] |\n| Revenue Growth | X% | X% | X% | X% | >0% | [✓/✗] |\n| Debt/Revenue | X.X | X.X | X.X | X.X | <1.0 | [✓/✗] |\n| FCF | €XM | €XM | €XM | €XM | Positive | [✓/✗] |\n\n### Advanced Financial Health Scores\n\n**Piotroski F-Score: X/9** [Excellent 8-9 / Good 6-7 / Adequate 4-5 / Weak 0-3]\n\n*Profitability:* X/4\n- ROA positive: [✓/✗]\n- Operating CF positive: [✓/✗]\n- ROA improving: [✓/✗]\n- CF > Net Income: [✓/✗]\n\n*Leverage:* X/3\n- Debt decreasing: [✓/✗]\n- Current ratio improving: [✓/✗]\n- No dilution: [✓/✗]\n\n*Efficiency:* X/2\n- Margin improving: [✓/✗]\n- Turnover improving: [✓/✗]\n\n**Assessment:** [Detailed interpretation of F-Score]\n\n**Altman Z-Score: X.XX** [Safe >2.99 / Grey 1.81-2.99 / Distress <1.81]\n- **Bankruptcy Risk:** [Low / Moderate / High]\n- **Interpretation:** [Explanation of Z-Score and financial stability]\n\n**Beneish M-Score: X.XX** [Clean <-1.78 / Warning >-1.78]\n- **Earnings Quality:** [High / Moderate / Questionable]\n- **Red Flags:** [List any concerning indicators or state \"None\"]\n\n**Max Drawdown (5Y): -X%** [Low <20% / Moderate 20-40% / High 40-60% / Extreme >60%]\n- **Volatility Assessment:** [Low/Moderate/High volatility explanation]\n- **Peak price:** €X.XX ([Date])\n- **Trough price:** €X.XX ([Date])\n\n### Consolidated Scores\n\n**Strength Score: X/100** (Financial power and market position)\n**Integrity Score: X/100** (Earnings quality and transparency)\n**Predictability Score: X/100** (Business consistency)\n**Data Quality Score: X/100** (Information completeness)\n\n**Overall Quality Rating: [Elite / Strong / Good / Adequate / Weak]**\n\n### Financial Trends (5-10 Year View)\n\n**Revenue:**\n- [Trend description: growth rate, consistency, drivers]\n- [Any concerning patterns?]\n\n**Margins:**\n- Gross margin: [Expanding / Stable / Declining]\n- Operating margin: [Trend]\n- Net margin: [Trend]\n- Drivers: [Why are margins moving this way?]\n\n**Cash Flow:**\n- Operating cash flow: [Trend and quality]\n- Free cash flow: [Consistency, conversion]\n- Capital allocation: [Dividends, buybacks, capex, acquisitions]\n\n**Balance Sheet:**\n- Debt levels: [Conservative / Moderate / High]\n- Liquidity: [Strong / Adequate / Concerning]\n- Trend: [Strengthening / Stable / Weakening]\n\n### 🚩 Red Flags\n[List any concerning trends or issues, or state \"None identified\"]\n\n---\n\n## 📉 Technical Analysis & Entry Timing\n\n### Price Action (Last 30-60 Days)\n- **Current Price**: €X.XX\n- **52-Week Range**: €X.XX - €X.XX\n- **30-day Change**: [+/-X%]\n- **Trend**: [Uptrend / Downtrend / Range-bound]\n- **Volume**: [Increasing / Decreasing / Normal]\n\n### Key Technical Levels\n\n**Support Levels:**\n- **Primary Support: €X.XX** - [Significance/reason]\n- **Secondary Support: €X.XX** - [Significance/reason]\n\n**Resistance Levels:**\n- **Primary Resistance: €X.XX** - [Significance/reason]\n- **Secondary Resistance: €X.XX** - [Significance/reason]\n\n### Technical Indicators\n\n**RSI**: X.X [Overbought >70 / Neutral 30-70 / Oversold <30]\n**MACD**: [Bullish crossover / Bearish crossover / Neutral]\n- Interpretation: [Momentum assessment]\n\n**Moving Averages:**\n- 50-day MA: €X.XX - Price is [above/below]\n- 200-day MA: €X.XX - Price is [above/below]\n- Golden/Death Cross: [Any recent crossovers?]\n\n### Entry Assessment\n\n**Technical Setup: [Bullish / Neutral / Bearish]**\n\n**Optimal Entry Strategy:**\n- [Buy now at market / Wait for pullback to €X.XX / Buy on breakout above €X.XX]\n- **Ideal Entry Range: €X.XX - €X.XX**\n- **Maximum Buy Price: €X.XX** (avoid above this)\n\n**Momentum: [Strong Bullish / Bullish / Neutral / Bearish / Strong Bearish]**\n\n---\n\n## ⚖️ Bull vs. Bear Case\n\n### 🐂 Bull Case\n**Potential Upside: €X.XX (+X%)**\n\n1. **[Bull Argument 1]**: [Specific evidence and reasoning]\n2. **[Bull Argument 2]**: [Specific evidence and reasoning]\n3. **[Bull Argument 3]**: [Specific evidence and reasoning]\n\n**For this to play out:**\n- [Required condition 1]\n- [Required condition 2]\n\n**Probability: [High / Moderate / Low]**\n\n### 🐻 Bear Case\n**Potential Downside: €X.XX (-X%)**\n\n1. **[Bear Argument 1]**: [Specific risk and reasoning]\n2. **[Bear Argument 2]**: [Specific risk and reasoning]\n3. **[Bear Argument 3]**: [Specific risk and reasoning]\n\n**This happens if:**\n- [Risk trigger 1]\n- [Risk trigger 2]\n\n**Probability: [High / Moderate / Low]**\n\n### ⚖️ Balance Assessment\n\n**Which case is more probable: [Bull / Bear / Balanced]**\n\n[2-3 paragraph explanation of:\n- Weight of evidence for each side\n- Historical precedent\n- Management track record\n- Industry dynamics\n- Current valuation\n- Risk/reward assessment]\n\n---\n\n## ⚠️ Risk Analysis\n\n**Overall Risk Level: [Low / Moderate / High]**\n\n### Key Risks\n\n**1. [Risk Category - e.g., Competition Risk]**: \n[Specific risk and potential impact. Probability: High/Medium/Low]\n\n**2. [Risk Category - e.g., Execution Risk]**: \n[Specific risk and potential impact. Probability: High/Medium/Low]\n\n**3. [Risk Category - e.g., Valuation Risk]**: \n[Specific risk and potential impact. Probability: High/Medium/Low]\n\n**4. [Risk Category - e.g., Macro Risk]**: \n[Specific risk and potential impact. Probability: High/Medium/Low]\n\n### Risk Mitigation\n[How does the company/investment address these risks?]\n[What reduces the risk in this investment?]\n\n---\n\n## 🎯 Catalysts & Timeline\n\n### Near-Term (0-6 months)\n- **[Date]**: [Specific catalyst - earnings, product launch, etc.]\n- **[Date]**: [Specific catalyst]\n\n### Medium-Term (6-18 months)\n- [Expected development 1]\n- [Expected development 2]\n\n### Long-Term (18+ months)\n- [Structural trend 1]\n- [Structural trend 2]\n\n**Expected Timeline to Target**: [6-12 months / 1-3 years / 3-5+ years]\n\n---\n\n## 💡 Investment Recommendation\n\n### **RECOMMENDATION: [BUY / HOLD / SELL]**\n### **Conviction: [Strong Buy / Buy / Hold / Avoid]**\n\n### Rationale\n[2-3 paragraph synthesis of entire analysis:\n- Why this recommendation?\n- What makes it compelling (or not)?\n- How does valuation + fundamentals + technicals + catalysts = this conclusion?\n- What's the risk/reward?]\n\n---\n\n## 📍 Entry Strategy (if BUY)\n\n**Ideal Entry Price: €X.XX - €X.XX**\n- Reasoning: [Why this range?]\n\n**Maximum Acceptable Price: €X.XX**\n- Above this: Risk/reward unfavorable\n\n**Approach:**\n- [Buy now at market / Wait for pullback to €X.XX / Buy on breakout above €X.XX]\n- Reasoning: [Current technical setup justification]\n\n**DO NOT BUY IF:**\n- Price exceeds €X.XX without fundamental improvement\n- [Other specific condition]\n\n---\n\n## 🎯 Exit Strategy\n\n### Price Targets (12-Month Horizon)\n- **Conservative**: €X.XX (+X%)\n- **Base Case**: €X.XX (+X%)\n- **Optimistic**: €X.XX (+X%)\n\n### Stop Loss\n**Stop Loss: €X.XX (-X% maximum loss)**\n- Technical: Below €X.XX support\n- Fundamental: If [thesis-breaking condition]\n\n### Sell Conditions (Thesis-Breaking)\nExit position if any of these occur:\n1. [Specific fundamental deterioration - e.g., \"ROE drops below 10% for 2 consecutive quarters\"]\n2. [Specific competitive threat - e.g., \"Loses >5% market share to competitor\"]\n3. [Specific valuation threshold - e.g., \"Reaches €X.XX (>50% above fair value)\"]\n\n### Hold Duration\n**Expected Timeframe**: [6-12 months / 1-3 years / 3-5+ years]\n- Based on: [Investment type - swing trade vs. long-term hold]\n\n---\n\n## 📏 Position Sizing\n\n### Recommended Allocation: X-X% of portfolio\n**Specific Recommendation: X%**\n\n**Rationale:**\n- Conviction level: [Strong Buy / Buy → drives size]\n- Risk level: [Low / Moderate / High → constrains size]\n- Diversification: [Sector exposure, correlation with existing holdings]\n- Liquidity: [Can exit position easily?]\n\n**Maximum Allocation: X%**\n- Risk management limit\n- Don't exceed even if highly convicted\n\n### Sizing Guidelines Applied:\n- Strong Buy + Low Risk = 5-8% (max 10%)\n- Buy + Moderate Risk = 3-5% (max 7%)\n- Speculative + High Risk = 1-3% (max 5%)\n\n---\n\n## 🔑 Key Takeaways\n\n### Top 3 Reasons to Invest\n1. [Most compelling positive factor]\n2. [Second most compelling positive factor]\n3. [Third most compelling positive factor]\n\n### Top 3 Concerns\n1. [Biggest risk or concern]\n2. [Second biggest risk or concern]\n3. [Third biggest risk or concern]\n\n### One-Sentence Investment Thesis\n[Single sentence capturing the complete investment case - why buy or avoid]\n\n---\n\n## 📚 Research Documentation\n\n**Sources Consulted:**\n- 10-K filings: [Fiscal years reviewed - e.g., FY2020-2024]\n- 10-Q filings: [Recent quarters - e.g., Q1-Q3 2025]\n- Earnings calls: [Dates reviewed]\n- Proxy statements: [Years reviewed]\n- Management letters: [Years reviewed]\n- Competitor analysis: [Companies benchmarked]\n\n**Analysis Depth:**\n- Historical period analyzed: [X years]\n- Peer companies compared: [Number and names]\n- Valuation methods used: [DCF, Relative, Peter Lynch, Asset-based]\n\n**Confidence Level: [High / Medium / Low]**\n- **Based on**: [Quality and completeness of available data]\n- **Gaps**: [Any areas where information is limited or unavailable]\n- **Limitations**: [Any constraints in the analysis]\n\n---\n\n## 🔄 Alternative Candidates (Required if SELL/AVOID)\n\n[If recommending SELL or AVOID, provide 3-5 better investment alternatives with brief rationale for each]\n\n### Alternative 1: [Symbol] - [Company Name]\n**Why it's better**: [1-2 paragraph comparison]\n**Quick metrics**: [Valuation, growth, margins]\n\n### Alternative 2: [Symbol] - [Company Name]\n**Why it's better**: [1-2 paragraph comparison]\n**Quick metrics**: [Valuation, growth, margins]\n\n### Alternative 3: [Symbol] - [Company Name]\n**Why it's better**: [1-2 paragraph comparison]\n**Quick metrics**: [Valuation, growth, margins]\n\n[Continue for 4-5 alternatives if SELL recommendation]\n\n---\n\n**Analysis Date**: [Current Date]\n**Next Review**: [Suggested review date based on catalysts or timeline]\n**Analyst**: Claude Stock Evaluator\n\n---\n\n## 📊 Quant-Style Dashboard\n\n**FINAL MANDATORY STEP**: Create a React artifact using the standardized quant-style dashboard template with:\n\n**Required Data to Populate:**\n- ✅ All 48 metrics across 8 sections (calculated above)\n- ✅ Historical price data (5 years, 6-12 points)\n- ✅ 1-year price + 6-month forecast (4-6 points)\n- ✅ MACD data (3-5 recent points)\n- ✅ RSI data (3-5 recent points)\n- ✅ Radar chart (12 metrics, normalized 0-100)\n- ✅ Bull case (target + 5 points)\n- ✅ Bear case (target + 5 points)\n- ✅ Entry/exit strategy (5 values)\n\n**Use the EXACT template code provided in the skill instructions above.**\n**DO NOT use placeholder values - populate with actual calculated data from this analysis.**\n\n[Create the React artifact here using the quant-style template]\n\nQuant-Style Dashboard Artifact\n\nMANDATORY: After completing the full text analysis, create a React dashboard artifact using the standardized quant-style template format.\n\nDashboard Template Structure\n\nThe dashboard uses a specific institutional-grade format with:\n\n1. Header Section (Orange background)\n\nFormat: TICKER - Company Name\n\n2. Eight Metric Sections (2-column grid)\n\nLeft Column\tRight Column\nPrice & Valuation (blue)\tFinancial Performance (green)\nGrowth Metrics (emerald)\tRisk Indicators (red)\nLiquidity & FCF (cyan)\tInsider & Sentiment (purple)\nQuality Scores (orange)\tMoat & Other (gray)\n\nEach section: 6 metric boxes with values, labels, benchmarks, color coding\n\n3. Charts Section (3-column grid)\n\nLeft: Linear Price Chart + MACD\n\nPrice, Intrinsic Value, Market Value lines\n5-year historical data\nMACD indicator below\n\nCenter: Radar Chart + 1-Year Forecast\n\n12-point radar (normalized 0-100)\nConsolidated advice badge\n1-year price + 6-month forecast\n\nRight: Log Price Chart + RSI\n\nLog-scale price history\nIntrinsic value comparison\nRSI (14) indicator below\n\n4. Key Notes Section (Expandable accordion)\n\n3-column layout: Bull Case | Bear Case | Entry/Exit Strategy\nClick to expand/collapse\n\n5. Footer\n\nAnalysis date, data sources, recommendation\nRequired Metrics by Section\n\nPrice & Valuation (6 metrics):\n\nPrice, Market Cap, Trailing P/E, Forward P/E, Subsector Typical P/E, PEG Ratio\n\nFinancial Performance (6 metrics):\n\nROE, ROA, Profit Margin, Operating Margin, Gross Margin, ROIC\n\nGrowth Metrics (6 metrics):\n\nRevenue Growth (5Y), Earnings Growth, EPS (TTM), Forward EPS, Analyst Rec, Target Price\n\nRisk Indicators (6 metrics):\n\nDebt/Equity, Consolidated Risk, F-Score, Z-Score, M-Score, Max Drawdown (5Y)\n\nLiquidity & FCF (6 metrics):\n\nCurrent Ratio, Total Cash, Total Debt, FCF Growth 5Y, FCF Yield, Payout Ratio\n\nInsider & Sentiment (6 metrics):\n\nInsider Buys (12M), Insider Sells (12M), Net Shares (12M), RSI (14D), Stock Type, Sector\n\nQuality Scores (6 metrics):\n\nCQVS, Label, Valuation Score, Quality Score, Strength Score, Integrity Score\n\nMoat & Other (6 metrics):\n\nMoat Score (0-10), Beta, Predictability, Data Quality, Completeness, Dividend Yield\nRadar Chart Metrics (12 points, normalized 0-100)\nRevenue Growth (normalize: X% growth → scale to 100 for 20%+)\nOperating Margin (normalize: X% → 100 for 30%+)\nGross Margin (normalize: X% → 100 for 60%+)\nProfit Margin (normalize: X% → 100 for 25%+)\nROE (normalize: X% → 100 for 30%+)\nRisk Score (inverse of consolidated risk: 100 - risk*100)\nBeta Score (inverse: 100 for beta=0.5, 50 for beta=1.5, 0 for beta=2.5+)\nP/Market Discount (100 = deeply undervalued, 50 = fair, 0 = overvalued)\nMoat Score (moat rating * 10)\nFCF Yield (X% → 100 for 8%+)\nROA (X% → 100 for 20%+)\nEarnings Growth (X% → 100 for 25%+)\nColor Coding Rules\n// Green (isGood: true) - Positive indicators\nROE > 20%, ROA > 10%, Margins > 20%, ROIC > 15%\nRevenue Growth > 10%, Current Ratio 1-2, Z-Score > 3\nM-Score < -1.78, FCF Growth > 0%, Payout < 50%\nF-Score >= 7, Quality >= 70, Strength >= 70\n\n// Red (isGood: false) - Warning indicators  \nMax Drawdown < -50%, Beta > 2, Consolidated Risk > 0.6\nPredictability < 50%, F-Score <= 3, Z-Score < 1.81\nM-Score > -1.78, Quality < 50\n\n// Yellow (isGood: 'neutral') - Monitor\nF-Score 4-6, RSI 30-70, Moat 5-7, Quality 50-70\nBeta 1.5-2.0, Predictability 50-70%\n\nComplete Template Code\n\nUse this exact template structure:\n\nimport React, { useState } from 'react';\nimport { \n  LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, \n  ResponsiveContainer, RadarChart, PolarGrid, PolarAngleAxis, \n  PolarRadiusAxis, Radar, ReferenceLine, Area, ComposedChart, Scatter\n} from 'recharts';\n\nconst QuantDashboard = () => {\n  const [showKeyNotes, setShowKeyNotes] = useState(false);\n\n  // ============================================================\n  // POPULATE WITH STOCK-SPECIFIC DATA FROM ANALYSIS\n  // ============================================================\n  \n  const ticker = \"TICKER\";  // Replace\n  const companyName = \"Company Name\";  // Replace\n  const recommendation = \"BUY\";  // BUY, HOLD, SELL, SPECULATIVE BUY\n  const analysisDate = \"December 6, 2025\";  // Current date\n\n  const metrics = {\n    // Price & Valuation - from analysis\n    price: 100.00,\n    marketCap: '€10B',\n    trailingPE: 20.0,\n    forwardPE: 18.0,\n    subsectorTypicalPE: 25.0,\n    peg1Y: 1.2,           // NEW: 1-Year Forward PEG\n    peg5Y: 2.5,           // NEW: 5-Year PEG\n    \n    // Financial Performance - from 5-10 year analysis\n    roe: 25.0,\n    roa: 12.0,\n    profitMargin: 20.0,\n    opMargin: 25.0,\n    grossMargin: 50.0,\n    roic: 18.0,\n    \n    // Growth Metrics - from historical trends (USE REPORTED, not underlying)\n    revGrowth: 15.0,      // REPORTED revenue growth YoY\n    earnGrowth: 20.0,     // REPORTED earnings growth YoY\n    epsTTM: 5.00,\n    forwardEPS: 5.50,\n    growthCapped: 10.0,   // NEW: Capped sustainable growth estimate\n    growthUncapped: 22.0, // NEW: Headline analyst growth estimate\n    analystTarget: 120.00,\n    \n    // Risk Indicators - from advanced metrics section\n    crs: 0.40,            // Consolidated Risk Score (0-1 scale)\n    debtEquity: 0.50,\n    fScore: 7,            // Piotroski F-Score\n    zScore: 4.0,          // Altman Z-Score\n    mScore: -2.5,         // Beneish M-Score\n    valueTrapScore: 25,   // NEW: 0-100, LOWER = genuine, HIGHER = trap\n    valueTrapLabel: 'Genuine', // NEW: Genuine/Caution/Trap\n    maxDrawdown: -30.0,   // 5-year max drawdown %\n    \n    // Liquidity & FCF - from cash flow analysis\n    currentRatio: 1.5,\n    totalCash: '€2B',\n    totalDebt: '€1B',\n    fcfGrowth5Y: 12.0,    // 5-year smoothed growth\n    fcfYield: 5.0,\n    fcfMargin: 18.5,      // NEW: FCF / Revenue %\n    payoutRatio: 30.0,\n    \n    // Insider & Sentiment - from SEC Form 4 or use \"N/A\" if unavailable\n    insBuys: 0,           // From SEC Form 4 - use actual count or \"N/A\"\n    insSells: 0,          // From SEC Form 4 - use actual count or \"N/A\"\n    netShares: 'N/A',     // From SEC Form 4 - use actual or \"N/A\"\n    shortInterest: 2.5,   // From FINRA/exchange - use actual or \"N/A\"\n    newsSentiment: 0.25,  // -1 to +1 scale\n    newsArticleCount: 15, // Recent article count\n    \n    // Beta & Volatility\n    beta: 1.0,            // Stock beta\n    vol1Y: 25.0,          // 1-Year volatility %\n    \n    // Quality Scores - from consolidated scoring\n    cqvs: 75.0,           // Consolidated Quality & Valuation Score\n    label: 'Quality Growth', // Elite/Compounder/Quality Growth/etc\n    valuation: 70.0,      // 0-100\n    quality: 80.0,        // 0-100\n    strength: 75.0,       // 0-100\n    integrity: 85.0,      // 0-100\n    \n    // Moat & Other\n    buffettMoat: 8,       // 0-10 scale (renamed from moat)\n    greenblattEY: 6.5,    // NEW: Earnings Yield %\n    greenblattROC: 22.0,  // NEW: Return on Capital %\n    earningsPredict: 70,  // Earnings Predictability 0-100\n    completeness: 85,     // Data completeness 0-100\n    dataQuality: 'High',  // High/Medium/Low\n    divYield: 1.5,\n    stockType: 'Growth',  // Growth/Value/Cyclical/Defensive\n    sector: 'Technology',\n    industry: 'Software',\n    \n    // NEW: Investor Persona Scores (0-10 scale each)\n    buffettScore: 7.5,    // Durable competitive advantage seeker\n    mungerScore: 6.8,     // Inversion thinker, risk avoider\n    dalioScore: 7.2,      // All-weather, cycle resilient\n    lynchScore: 8.0,      // GARP - Growth at Reasonable Price\n    grahamScore: 5.5,     // Deep value, margin of safety\n    greenblattScore: 6.0, // Magic Formula (EY + ROC)\n    templetonScore: 4.5,  // Contrarian, global value\n    sorosScore: 3.0,      // Reflexivity, macro trends\n    \n    // NEW: Valuation Lines for Charts\n    marketValueCurrent: 95.00,\n    intrinsicValueCurrent: 110.00,\n    marketValueNextYear: 105.00,\n    intrinsicValueNextYear: 120.00,\n    unrestrictedMarketValueCurrent: 125.00,\n    unrestrictedMarketValueNextYear: 140.00,\n    \n    // Valuation Assessment (for indicator below forecast)\n    valuationPercent: 15,       // Positive = undervalued, negative = overvalued\n    valuationLabel: 'Undervalued', // Undervalued/Fairly Valued/Overvalued\n  };\n\n  // TOP NEWS Headlines - Format: pipe-separated with dates at END in brackets\n  const topNews = [\n    { headline: 'Company announces Q4 guidance above expectations', date: '05 Dec 2025' },\n    { headline: 'New product launch receives positive analyst coverage', date: '28 Nov 2025' },\n    { headline: 'Strategic partnership announced with major cloud provider', date: '15 Nov 2025' },\n    { headline: 'Q3 earnings beat estimates, revenue up 18% YoY', date: '02 Nov 2025' },\n    { headline: 'Management presents at investor conference, reaffirms outlook', date: '20 Oct 2025' },\n  ];\n  \n  // Format TOP NEWS as pipe-separated string with dates at END\n  const topNewsString = topNews.map(n => `${n.headline} [${n.date}]`).join(' | ');\n\n  // Historical Price Data (10 years with multiple valuation lines)\n  const priceHistory = [\n    { date: '2016', price: 25, totalReturn: 28, marketValueCurrent: 27, intrinsicValueCurrent: 30, marketValueNextYear: 29, intrinsicValueNextYear: 32, analystTarget: 30, unrestrictedCurrent: 28, unrestrictedNextYear: 31 },\n    { date: '2017', price: 35, totalReturn: 40, marketValueCurrent: 38, intrinsicValueCurrent: 42, marketValueNextYear: 40, intrinsicValueNextYear: 45, analystTarget: 42, unrestrictedCurrent: 40, unrestrictedNextYear: 44 },\n    { date: '2018', price: 45, totalReturn: 52, marketValueCurrent: 48, intrinsicValueCurrent: 55, marketValueNextYear: 52, intrinsicValueNextYear: 60, analystTarget: 55, unrestrictedCurrent: 52, unrestrictedNextYear: 58 },\n    { date: '2019', price: 55, totalReturn: 65, marketValueCurrent: 58, intrinsicValueCurrent: 68, marketValueNextYear: 62, intrinsicValueNextYear: 72, analystTarget: 65, unrestrictedCurrent: 65, unrestrictedNextYear: 72 },\n    { date: '2020', price: 50, totalReturn: 62, marketValueCurrent: 55, intrinsicValueCurrent: 65, marketValueNextYear: 60, intrinsicValueNextYear: 70, analystTarget: 62, unrestrictedCurrent: 62, unrestrictedNextYear: 70 },\n    { date: '2021', price: 75, totalReturn: 95, marketValueCurrent: 80, intrinsicValueCurrent: 90, marketValueNextYear: 85, intrinsicValueNextYear: 98, analystTarget: 90, unrestrictedCurrent: 92, unrestrictedNextYear: 105 },\n    { date: '2022', price: 65, totalReturn: 85, marketValueCurrent: 72, intrinsicValueCurrent: 85, marketValueNextYear: 78, intrinsicValueNextYear: 92, analystTarget: 82, unrestrictedCurrent: 85, unrestrictedNextYear: 95 },\n    { date: '2023', price: 80, totalReturn: 105, marketValueCurrent: 85, intrinsicValueCurrent: 100, marketValueNextYear: 92, intrinsicValueNextYear: 108, analystTarget: 98, unrestrictedCurrent: 100, unrestrictedNextYear: 115 },\n    { date: '2024', price: 95, totalReturn: 125, marketValueCurrent: 100, intrinsicValueCurrent: 115, marketValueNextYear: 108, intrinsicValueNextYear: 125, analystTarget: 115, unrestrictedCurrent: 120, unrestrictedNextYear: 135 },\n    { date: '2025', price: 100, totalReturn: 135, marketValueCurrent: 105, intrinsicValueCurrent: 120, marketValueNextYear: 115, intrinsicValueNextYear: 132, analystTarget: 125, unrestrictedCurrent: 130, unrestrictedNextYear: 145 },\n  ];\n\n  // 1 Year Price with 6-Month Forecast, MAs, and Bollinger Bands\n  const oneYearData = [\n    { date: \"Jan'25\", price: 90, ma50: 88, ma200: 85, upperBand: 98, lowerBand: 82, forecast: null, ci95Upper: null, ci95Lower: null },\n    { date: \"Mar'25\", price: 88, ma50: 89, ma200: 86, upperBand: 96, lowerBand: 80, forecast: null, ci95Upper: null, ci95Lower: null },\n    { date: \"May'25\", price: 95, ma50: 91, ma200: 87, upperBand: 102, lowerBand: 84, forecast: null, ci95Upper: null, ci95Lower: null },\n    { date: \"Jul'25\", price: 92, ma50: 92, ma200: 88, upperBand: 100, lowerBand: 84, forecast: null, ci95Upper: null, ci95Lower: null },\n    { date: \"Sep'25\", price: 98, ma50: 94, ma200: 90, upperBand: 106, lowerBand: 86, forecast: null, ci95Upper: null, ci95Lower: null },\n    { date: \"Nov'25\", price: 100, ma50: 96, ma200: 92, upperBand: 108, lowerBand: 88, forecast: 100, ci95Upper: 108, ci95Lower: 92 },\n    { date: \"Jan'26\", price: null, ma50: null, ma200: null, upperBand: null, lowerBand: null, forecast: 108, ci95Upper: 120, ci95Lower: 96 },\n    { date: \"Mar'26\", price: null, ma50: null, ma200: null, upperBand: null, lowerBand: null, forecast: 115, ci95Upper: 130, ci95Lower: 100 },\n  ];\n\n  // NEW: Ichimoku Cloud Data (6-month view with signal markers)\n  const ichimokuData = [\n    { date: 'Jun', price: 88, tenkan: 87, kijun: 85, senkouA: 84, senkouB: 82, chikou: 85, tkCrossMarker: null, kumoTwistMarker: null },\n    { date: 'Jul', price: 92, tenkan: 90, kijun: 87, senkouA: 86, senkouB: 84, chikou: 90, tkCrossMarker: 92, kumoTwistMarker: null }, // TK Bullish Cross\n    { date: 'Aug', price: 95, tenkan: 93, kijun: 90, senkouA: 89, senkouB: 86, chikou: 93, tkCrossMarker: null, kumoTwistMarker: null },\n    { date: 'Sep', price: 98, tenkan: 96, kijun: 93, senkouA: 92, senkouB: 88, chikou: 96, tkCrossMarker: null, kumoTwistMarker: 92 }, // Kumo Twist Bullish\n    { date: 'Oct', price: 96, tenkan: 97, kijun: 95, senkouA: 94, senkouB: 90, chikou: 94, tkCrossMarker: null, kumoTwistMarker: null },\n    { date: 'Nov', price: 100, tenkan: 98, kijun: 96, senkouA: 95, senkouB: 92, chikou: 98, tkCrossMarker: null, kumoTwistMarker: null },\n  ];\n\n  // NEW: Ichimoku Signals Summary\n  const ichimokuSignals = {\n    tkCross: 'TK Bullish Cross',\n    kumoTwist: 'Kumo Twist Bullish',\n    priceVsCloud: 'Above Cloud (Bullish)',\n  };\n\n  // MACD Data (recent 6 months)\n  const macdData = [\n    { date: 'Jun', macd: 0.5, signal: 0.3, histogram: 0.2 },\n    { date: 'Jul', macd: 1.2, signal: 0.6, histogram: 0.6 },\n    { date: 'Aug', macd: 1.5, signal: 1.0, histogram: 0.5 },\n    { date: 'Sep', macd: 1.8, signal: 1.3, histogram: 0.5 },\n    { date: 'Oct', macd: 1.2, signal: 1.4, histogram: -0.2 },\n    { date: 'Nov', macd: 0.8, signal: 1.2, histogram: -0.4 },\n  ];\n\n  // RSI Data (recent 6 months)\n  const rsiData = [\n    { date: 'Jun', rsi: 45 },\n    { date: 'Jul', rsi: 55 },\n    { date: 'Aug', rsi: 62 },\n    { date: 'Sep', rsi: 68 },\n    { date: 'Oct', rsi: 58 },\n    { date: 'Nov', rsi: 55 },\n  ];\n\n  // Radar Chart Data (normalize all to 0-100 scale)\n  const radarData = [\n    { metric: 'Rev Growth', value: 70, fullMark: 100 },\n    { metric: 'Op Margin', value: 75, fullMark: 100 },\n    { metric: 'Gross Margin', value: 65, fullMark: 100 },\n    { metric: 'Profit Margin', value: 60, fullMark: 100 },\n    { metric: 'ROE', value: 70, fullMark: 100 },\n    { metric: 'Risk (CRS)', value: 60, fullMark: 100 },\n    { metric: 'Beta Score', value: 70, fullMark: 100 },\n    { metric: 'P/Market Disc', value: 50, fullMark: 100 },\n    { metric: 'Moat', value: 80, fullMark: 100 },\n    { metric: 'FCF Growth', value: 55, fullMark: 100 },\n    { metric: 'ROA', value: 65, fullMark: 100 },\n    { metric: 'Earn Growth', value: 75, fullMark: 100 },\n  ];\n\n  // Key Notes Content - from Bull/Bear case analysis\n  const bullCase = {\n    target: \"€130-150\",  // Bull case price target\n    points: [\n      \"Strong revenue growth momentum\",\n      \"Expanding margins\",\n      \"Market leadership position\",\n      \"Favorable industry tailwinds\",\n      \"Strong balance sheet\"\n    ]\n  };\n\n  const bearCase = {\n    target: \"€70-80\",  // Bear case price target\n    points: [\n      \"Valuation compression risk\",\n      \"Competitive pressures\",\n      \"Macro sensitivity\",\n      \"Execution risks\",\n      \"Key person dependency\"\n    ]\n  };\n\n  const entryStrategy = {\n    idealEntry: \"€90-95\",  // From Entry Strategy section\n    currentEntry: \"€100 acceptable\",\n    target: \"€120 (+20%)\",  // 12-month target\n    stopLoss: \"€85 (-15%)\",  // Stop loss\n    positionSize: \"2-3%\"  // Recommended allocation\n  };\n\n  // ============================================================\n  // COMPONENT CODE (Standard - use as-is)\n  // ============================================================\n\n  // Helper: Value Trap color (LOWER = genuine = green, HIGHER = trap = red)\n  const getValueTrapColor = (score) => {\n    if (score < 40) return 'bg-green-100 border-green-400 text-green-800';\n    if (score < 60) return 'bg-yellow-100 border-yellow-400 text-yellow-800';\n    return 'bg-red-100 border-red-400 text-red-800';\n  };\n\n  // Helper: Get label for Value Trap score\n  const getValueTrapLabel = (score) => {\n    if (score < 20) return 'Genuine';\n    if (score < 40) return 'Probably Genuine';\n    if (score < 60) return 'Caution';\n    if (score < 80) return 'Likely Trap';\n    return 'Strong Trap';\n  };\n\n  // Helper: Persona score color\n  const getPersonaColor = (score) => {\n    if (score >= 7) return 'bg-green-500';\n    if (score >= 4) return 'bg-yellow-500';\n    return 'bg-red-500';\n  };\n\n  // Helper: News sentiment color\n  const getSentimentColor = (sentiment) => {\n    if (sentiment > 0.3) return 'text-green-600';\n    if (sentiment > 0) return 'text-green-500';\n    if (sentiment > -0.3) return 'text-yellow-600';\n    return 'text-red-600';\n  };\n\n  // Persona Badge Component\n  const PersonaBadge = ({ name, score, position }) => (\n    <div className={`absolute ${position} flex flex-col items-center`}>\n      <div className={`w-6 h-6 rounded-full ${getPersonaColor(score)} flex items-center justify-center text-white text-[8px] font-bold`}>\n        {score.toFixed(1)}\n      </div>\n      <div className=\"text-[7px] text-gray-600 mt-0.5\">{name}</div>\n    </div>\n  );\n\n  const MetricBox = ({ label, value, benchmark, isGood, size = 'normal' }) => {\n    let bgColor = 'bg-gray-50';\n    if (isGood === true) bgColor = 'bg-green-50 border-green-200';\n    if (isGood === false) bgColor = 'bg-red-50 border-red-200';\n    if (isGood === 'neutral') bgColor = 'bg-yellow-50 border-yellow-200';\n    \n    return (\n      <div className={`${bgColor} border p-1.5 flex flex-col justify-center items-center`}>\n        <div className=\"text-base font-bold text-gray-900\">{value}</div>\n        <div className=\"text-[9px] text-gray-600 text-center leading-tight\">{label}</div>\n        {benchmark && <div className=\"text-[8px] text-gray-400\">{benchmark}</div>}\n      </div>\n    );\n  };\n\n  const SectionHeader = ({ title, bgColor }) => (\n    <div className={`${bgColor} px-2 py-1 text-[10px] font-bold text-gray-700`}>\n      {title}\n    </div>\n  );\n\n  return (\n    <div className=\"w-full max-w-7xl mx-auto p-3 bg-white text-xs\">\n      {/* Header */}\n      <div className=\"bg-orange-500 text-white px-3 py-2 mb-1 text-lg font-bold text-center\">\n        {ticker} - {companyName}\n      </div>\n\n      {/* TOP NEWS - Pipe separated with dates at END */}\n      <div className=\"border border-gray-300 rounded p-2 mb-3 bg-gray-50\">\n        <span className=\"font-bold text-[10px]\">TOP NEWS:</span>\n        <div className=\"text-[9px] mt-1\">{topNewsString}</div>\n      </div>\n\n      {/* Top 4 sections */}\n      <div className=\"grid grid-cols-2 gap-2 mb-3\">\n        {/* Price & Valuation - Updated with dual PEG */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"PRICE & VALUATION\" bgColor=\"bg-blue-100\" />\n          <div className=\"grid grid-cols-7 gap-px bg-gray-200\">\n            <MetricBox label=\"Price:\" value={`€${metrics.price}`} />\n            <MetricBox label=\"Market Cap:\" value={metrics.marketCap} />\n            <MetricBox label=\"Trailing P/E:\" value={metrics.trailingPE} />\n            <MetricBox label=\"Forward P/E:\" value={metrics.forwardPE} benchmark={`(${metrics.subsectorTypicalPE})`} isGood={metrics.forwardPE < metrics.subsectorTypicalPE} />\n            <MetricBox label=\"Subsector P/E:\" value={metrics.subsectorTypicalPE} />\n            <MetricBox label=\"PEG (1Y):\" value={metrics.peg1Y} benchmark=\"(<1.5)\" isGood={metrics.peg1Y < 1.5 ? true : metrics.peg1Y < 2 ? 'neutral' : false} />\n            <MetricBox label=\"PEG (5Y):\" value={metrics.peg5Y} benchmark=\"(<2)\" isGood={metrics.peg5Y < 2 ? true : metrics.peg5Y < 3 ? 'neutral' : false} />\n          </div>\n        </div>\n\n        {/* Financial Performance */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"FINANCIAL PERFORMANCE\" bgColor=\"bg-green-100\" />\n          <div className=\"grid grid-cols-6 gap-px bg-gray-200\">\n            <MetricBox label=\"ROE:\" value={`${metrics.roe}%`} benchmark=\"(>20%)\" isGood={metrics.roe >= 20 ? true : metrics.roe >= 10 ? 'neutral' : false} />\n            <MetricBox label=\"ROA:\" value={`${metrics.roa}%`} benchmark=\"(>10%)\" isGood={metrics.roa >= 10} />\n            <MetricBox label=\"Profit Margin:\" value={`${metrics.profitMargin}%`} benchmark=\"(>20%)\" isGood={metrics.profitMargin >= 20 ? true : metrics.profitMargin >= 10 ? 'neutral' : false} />\n            <MetricBox label=\"Operative Margin:\" value={`${metrics.opMargin}%`} benchmark=\"(>20%)\" isGood={metrics.opMargin >= 20} />\n            <MetricBox label=\"Gross Margin:\" value={`${metrics.grossMargin}%`} benchmark=\"(>40%)\" isGood={metrics.grossMargin >= 40} />\n            <MetricBox label=\"ROIC:\" value={`${metrics.roic}%`} benchmark=\"(>15%)\" isGood={metrics.roic >= 15} />\n          </div>\n        </div>\n      </div>\n\n      {/* Next 4 sections */}\n      <div className=\"grid grid-cols-2 gap-2 mb-3\">\n        {/* Growth Metrics */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"GROWTH METRICS\" bgColor=\"bg-emerald-100\" />\n          <div className=\"grid grid-cols-7 gap-px bg-gray-200\">\n            <MetricBox label=\"Revenue (YoY):\" value={`${metrics.revGrowth}%`} benchmark=\"(>10%)\" isGood={metrics.revGrowth >= 10} />\n            <MetricBox label=\"Earning (YoY):\" value={`${metrics.earnGrowth}%`} benchmark=\"(>0%)\" isGood={metrics.earnGrowth >= 0} />\n            <MetricBox label=\"EPS (TTM):\" value={`€${metrics.epsTTM}`} />\n            <MetricBox label=\"Forward EPS:\" value={`€${metrics.forwardEPS}`} isGood={metrics.forwardEPS > metrics.epsTTM} />\n            <MetricBox label=\"Growth Rates:\" value={`Capped: ${metrics.growthCapped}%`} benchmark={`Uncapped: ${metrics.growthUncapped}%`} />\n            <MetricBox label=\"Analyst Target:\" value={`€${metrics.analystTarget}`} />\n          </div>\n        </div>\n\n        {/* Risk Indicators */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"RISK INDICATORS\" bgColor=\"bg-red-100\" />\n          <div className=\"grid grid-cols-6 gap-px bg-gray-200\">\n            <MetricBox label=\"CRS (0-1):\" value={metrics.crs.toFixed(2)} benchmark=\"(Medium)\" isGood={metrics.crs < 0.4 ? true : metrics.crs < 0.6 ? 'neutral' : false} />\n            <MetricBox label=\"Debt/Equity (mrq):\" value={metrics.debtEquity} benchmark=\"(0.5-1)\" isGood={metrics.debtEquity < 1 ? true : metrics.debtEquity < 2 ? 'neutral' : false} />\n            <MetricBox label=\"Piotroski F:\" value={metrics.fScore} benchmark=\"(≥7)\" isGood={metrics.fScore >= 7 ? true : metrics.fScore >= 4 ? 'neutral' : false} />\n            <MetricBox label=\"Altman Z:\" value={metrics.zScore.toFixed(2)} benchmark=\"(>3)\" isGood={metrics.zScore >= 2.99 ? true : metrics.zScore >= 1.81 ? 'neutral' : false} />\n            <MetricBox label=\"Beneish M:\" value={metrics.mScore.toFixed(2)} benchmark=\"(<-1.78)\" isGood={metrics.mScore < -1.78} />\n            <MetricBox label=\"Value Trap:\" value={`${metrics.valueTrapScore} (${metrics.valueTrapLabel})`} isGood={metrics.valueTrapScore < 40 ? true : metrics.valueTrapScore < 60 ? 'neutral' : false} />\n          </div>\n        </div>\n      </div>\n\n      {/* Next 4 sections */}\n      <div className=\"grid grid-cols-2 gap-2 mb-3\">\n        {/* Liquidity & Free Cash Flow */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"LIQUIDITY & FREE CASH FLOW\" bgColor=\"bg-cyan-100\" />\n          <div className=\"grid grid-cols-7 gap-px bg-gray-200\">\n            <MetricBox label=\"Current Ratio:\" value={metrics.currentRatio.toFixed(2)} benchmark=\"(1-2)\" isGood={metrics.currentRatio >= 1 && metrics.currentRatio <= 2 ? true : 'neutral'} />\n            <MetricBox label=\"Cash:\" value={metrics.totalCash} />\n            <MetricBox label=\"Debt:\" value={metrics.totalDebt} />\n            <MetricBox label=\"FCF Growth 5Y:\" value={`${metrics.fcfGrowth5Y}%`} benchmark=\"(>5%)\" isGood={metrics.fcfGrowth5Y >= 5} />\n            <MetricBox label=\"FCF Yield:\" value={`${metrics.fcfYield}%`} benchmark=\"(>4%)\" isGood={metrics.fcfYield >= 4} />\n            <MetricBox label=\"FCF Margin:\" value={`${metrics.fcfMargin}%`} benchmark=\"(>15%)\" isGood={metrics.fcfMargin >= 15 ? true : metrics.fcfMargin >= 10 ? 'neutral' : false} />\n            <MetricBox label=\"Payout Ratio:\" value={`${metrics.payoutRatio}%`} benchmark=\"(<50%)\" isGood={metrics.payoutRatio < 50} />\n          </div>\n        </div>\n\n        {/* Insider & Sentiment & Class */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"INSIDER & SENTIMENT & CLASS\" bgColor=\"bg-purple-100\" />\n          <div className=\"grid grid-cols-7 gap-px bg-gray-200\">\n            <MetricBox label=\"Buys (12M):\" value={metrics.insBuys} isGood={metrics.insBuys > metrics.insSells} />\n            <MetricBox label=\"Sells (12M):\" value={metrics.insSells} />\n            <MetricBox label=\"Net Shares (12M):\" value={metrics.netShares} />\n            <MetricBox label=\"Short Int (%):\" value={`${metrics.shortInterest}%`} isGood={metrics.shortInterest < 5 ? true : metrics.shortInterest < 10 ? 'neutral' : false} />\n            <MetricBox label=\"Sentiment / Articles:\" value={`${metrics.newsSentiment > 0 ? '+' : ''}${metrics.newsSentiment.toFixed(3)} / ${metrics.newsArticleCount}`} benchmark={metrics.newsSentiment > 0 ? '(Positive)' : '(Negative)'} isGood={metrics.newsSentiment > 0} />\n            <MetricBox label={`Stock: ${metrics.stockType}`} value={`Div Yield: ${metrics.divYield}%`} />\n            <MetricBox label=\"Sector/Industry:\" value={`${metrics.sector} /`} benchmark={metrics.industry} />\n          </div>\n        </div>\n      </div>\n\n      {/* Last 2 sections */}\n      <div className=\"grid grid-cols-2 gap-2 mb-3\">\n        {/* Quality Scores */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"QUALITY SCORES\" bgColor=\"bg-orange-100\" />\n          <div className=\"grid grid-cols-6 gap-px bg-gray-200\">\n            <MetricBox label=\"CQVS:\" value={metrics.cqvs.toFixed(1)} benchmark=\"(>70)\" isGood={metrics.cqvs >= 70 ? true : metrics.cqvs >= 50 ? 'neutral' : false} />\n            <MetricBox label=\"Label:\" value={metrics.label} />\n            <MetricBox label=\"Valuation:\" value={metrics.valuation} isGood={metrics.valuation >= 70} />\n            <MetricBox label=\"Quality:\" value={metrics.quality} isGood={metrics.quality >= 70 ? true : metrics.quality >= 50 ? 'neutral' : false} />\n            <MetricBox label=\"Strength:\" value={metrics.strength} isGood={metrics.strength >= 70} />\n            <MetricBox label=\"Integrity:\" value={metrics.integrity} isGood={metrics.integrity >= 70 ? true : metrics.integrity >= 50 ? 'neutral' : false} />\n          </div>\n        </div>\n\n        {/* Moat & Other */}\n        <div className=\"border border-gray-300 rounded overflow-hidden\">\n          <SectionHeader title=\"MOAT & OTHER\" bgColor=\"bg-gray-200\" />\n          <div className=\"grid grid-cols-6 gap-px bg-gray-200\">\n            <MetricBox label=\"Buffett Moat:\" value={metrics.buffettMoat} benchmark=\"(4-7)\" isGood={metrics.buffettMoat >= 7 ? true : metrics.buffettMoat >= 4 ? 'neutral' : false} />\n            <MetricBox label=\"Greenblatt (MF):\" value={`EY: ${metrics.greenblattEY}%`} benchmark={metrics.greenblattROC ? `ROC: ${metrics.greenblattROC}%` : 'ROC: N/A'} isGood={metrics.greenblattEY >= 8 ? true : metrics.greenblattEY >= 4 ? 'neutral' : false} />\n            <MetricBox label={`Beta: ${metrics.beta}`} value={`Vol 1Y: ${metrics.vol1Y}%`} isGood={metrics.beta < 1 ? true : metrics.beta < 1.5 ? 'neutral' : false} />\n            <MetricBox label=\"Earnings Predict.:\" value={`${metrics.earningsPredict}%`} benchmark=\"(>80%)\" isGood={metrics.earningsPredict >= 80 ? true : metrics.earningsPredict >= 60 ? 'neutral' : false} />\n            <MetricBox label=\"Drawdown (5Y):\" value={`${metrics.maxDrawdown}%`} benchmark={metrics.maxDrawdown > -30 ? '(Low)' : metrics.maxDrawdown > -50 ? '(Mid)' : '(High)'} isGood={metrics.maxDrawdown > -30 ? true : metrics.maxDrawdown > -50 ? 'neutral' : false} />\n            <MetricBox label={`Completeness: ${metrics.completeness}%`} value={`Data Quality: ${metrics.dataQuality}`} isGood={metrics.dataQuality === 'High' ? true : metrics.dataQuality === 'Medium' ? 'neutral' : false} />\n          </div>\n        </div>\n      </div>\n\n      {/* Charts Section - Enhanced with Legends */}\n      <div className=\"grid grid-cols-3 gap-2 mb-3\">\n        {/* Linear Price Chart + MACD */}\n        <div className=\"border border-gray-300 rounded p-2\">\n          <div className=\"text-sm font-bold mb-1 text-center\">LINEAR PRICE CHART (10Y)</div>\n          <div className=\"text-[7px] text-gray-500 mb-1 pl-1\">\n            — Close Price — Total Return<br/>\n            - - Market Value (Current): €{metrics.marketValueCurrent}<br/>\n            - - Intrinsic Value (Current): €{metrics.intrinsicValueCurrent}<br/>\n            - - Analyst Target: €{metrics.analystTarget}\n          </div>\n          <ResponsiveContainer width=\"100%\" height={130}>\n            <LineChart data={priceHistory}>\n              <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#e0e0e0\" />\n              <XAxis dataKey=\"date\" tick={{ fontSize: 7 }} />\n              <YAxis tick={{ fontSize: 7 }} />\n              <Tooltip contentStyle={{ fontSize: 8 }} />\n              <Line type=\"monotone\" dataKey=\"price\" stroke=\"#1f2937\" strokeWidth={1.5} dot={false} name=\"Close\" />\n              <Line type=\"monotone\" dataKey=\"totalReturn\" stroke=\"#6b7280\" strokeWidth={1} strokeDasharray=\"2 2\" dot={false} name=\"Total Return\" />\n              <Line type=\"monotone\" dataKey=\"intrinsicValueCurrent\" stroke=\"#16a34a\" strokeWidth={1} strokeDasharray=\"5 5\" dot={false} name=\"IV Current\" />\n              <Line type=\"monotone\" dataKey=\"analystTarget\" stroke=\"#3b82f6\" strokeWidth={1} strokeDasharray=\"3 3\" dot={false} name=\"Target\" />\n            </LineChart>\n          </ResponsiveContainer>\n          <div className=\"text-xs font-bold mt-1 mb-1 text-center\">MACD</div>\n          <ResponsiveContainer width=\"100%\" height={55}>\n            <LineChart data={macdData}>\n              <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#e0e0e0\" />\n              <XAxis dataKey=\"date\" tick={{ fontSize: 6 }} />\n              <YAxis tick={{ fontSize: 6 }} />\n              <ReferenceLine y={0} stroke=\"#666\" />\n              <Tooltip contentStyle={{ fontSize: 7 }} />\n              <Line type=\"monotone\" dataKey=\"macd\" stroke=\"#2563eb\" strokeWidth={1} dot={false} name=\"MACD\" />\n              <Line type=\"monotone\" dataKey=\"signal\" stroke=\"#dc2626\" strokeWidth={1} dot={false} name=\"Signal\" />\n            </LineChart>\n          </ResponsiveContainer>\n        </div>\n\n        {/* Radar + Investor Personas + Forecast */}\n        <div className=\"border border-gray-300 rounded p-2\">\n          <div className=\"relative\">\n            <ResponsiveContainer width=\"100%\" height={140}>\n              <RadarChart data={radarData}>\n                <PolarGrid />\n                <PolarAngleAxis dataKey=\"metric\" tick={{ fontSize: 6 }} />\n                <PolarRadiusAxis angle={30} domain={[0, 100]} tick={{ fontSize: 6 }} />\n                <Radar name={ticker} dataKey=\"value\" stroke=\"#2563eb\" fill=\"#3b82f6\" fillOpacity={0.3} />\n              </RadarChart>\n            </ResponsiveContainer>\n            {/* Investor Persona Badges */}\n            <PersonaBadge name=\"Buffett\" score={metrics.buffettScore} position=\"top-0 left-1/4\" />\n            <PersonaBadge name=\"Lynch\" score={metrics.lynchScore} position=\"top-0 right-1/4\" />\n            <PersonaBadge name=\"Munger\" score={metrics.mungerScore} position=\"top-1/4 -left-2\" />\n            <PersonaBadge name=\"Greenblatt\" score={metrics.greenblattScore} position=\"top-1/4 -right-2\" />\n            <PersonaBadge name=\"Dalio\" score={metrics.dalioScore} position=\"bottom-1/4 -left-2\" />\n            <PersonaBadge name=\"Graham\" score={metrics.grahamScore} position=\"bottom-1/4 -right-2\" />\n            <PersonaBadge name=\"Templeton\" score={metrics.templetonScore} position=\"bottom-0 left-1/4\" />\n            <PersonaBadge name=\"Soros\" score={metrics.sorosScore} position=\"bottom-0 right-1/4\" />\n          </div>\n          <div className=\"text-center my-1\">\n            <span className=\"bg-green-200 px-2 py-0.5 text-[10px] font-bold rounded border border-green-400\">\n              Advice: {recommendation} (CQVS: {metrics.cqvs.toFixed(1)})\n            </span>\n          </div>\n          <div className=\"text-[8px] font-bold mb-0.5 text-center\">1Y PRICE + 6-MONTH FORECAST</div>\n          <div className=\"text-[6px] text-gray-500 mb-0.5 text-center\">— Close — 50-Day MA — 200-Day MA ▒ Bollinger Bands - - Forecast</div>\n          <ResponsiveContainer width=\"100%\" height={70}>\n            <ComposedChart data={oneYearData}>\n              <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#e0e0e0\" />\n              <XAxis dataKey=\"date\" tick={{ fontSize: 6 }} />\n              <YAxis tick={{ fontSize: 6 }} />\n              <Tooltip contentStyle={{ fontSize: 7 }} />\n              <Area type=\"monotone\" dataKey=\"upperBand\" stroke=\"none\" fill=\"#e0e0e0\" fillOpacity={0.5} />\n              <Area type=\"monotone\" dataKey=\"ci95Upper\" stroke=\"none\" fill=\"#dbeafe\" fillOpacity={0.5} />\n              <Line type=\"monotone\" dataKey=\"price\" stroke=\"#1f2937\" strokeWidth={1.5} dot={false} />\n              <Line type=\"monotone\" dataKey=\"ma50\" stroke=\"#f59e0b\" strokeWidth={1} dot={false} />\n              <Line type=\"monotone\" dataKey=\"ma200\" stroke=\"#ef4444\" strokeWidth={1} dot={false} />\n              <Line type=\"monotone\" dataKey=\"forecast\" stroke=\"#16a34a\" strokeWidth={1.5} strokeDasharray=\"5 5\" dot={false} />\n            </ComposedChart>\n          </ResponsiveContainer>\n          {/* Valuation Indicator */}\n          <div className={`text-center text-[10px] font-bold mt-1 ${metrics.valuationPercent > 10 ? 'text-green-600' : metrics.valuationPercent < -10 ? 'text-red-600' : 'text-yellow-600'}`}>\n            {metrics.valuationLabel} ({metrics.valuationPercent > 0 ? '+' : ''}{metrics.valuationPercent}%)\n          </div>\n        </div>\n\n        {/* Log Price + RSI */}\n        <div className=\"border border-gray-300 rounded p-2\">\n          <div className=\"text-sm font-bold mb-1 text-center\">LOG PRICE CHART (10Y)</div>\n          <div className=\"text-[7px] text-gray-500 mb-1 pl-1\">\n            — Close Price — Total Return<br/>\n            - - Unrestr. Market Value (Current): €{metrics.unrestrictedMarketValueCurrent}<br/>\n            - - Unrestr. Market Value (Next Year): €{metrics.unrestrictedMarketValueNextYear}\n          </div>\n          <ResponsiveContainer width=\"100%\" height={130}>\n            <LineChart data={priceHistory}>\n              <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#e0e0e0\" />\n              <XAxis dataKey=\"date\" tick={{ fontSize: 7 }} />\n              <YAxis tick={{ fontSize: 7 }} scale=\"log\" domain={['auto', 'auto']} />\n              <Tooltip contentStyle={{ fontSize: 8 }} />\n              <Line type=\"monotone\" dataKey=\"price\" stroke=\"#1f2937\" strokeWidth={1.5} dot={false} name=\"Close\" />\n              <Line type=\"monotone\" dataKey=\"totalReturn\" stroke=\"#6b7280\" strokeWidth={1} strokeDasharray=\"2 2\" dot={false} name=\"Total Return\" />\n              <Line type=\"monotone\" dataKey=\"unrestrictedCurrent\" stroke=\"#dc2626\" strokeWidth={1} strokeDasharray=\"5 5\" dot={false} name=\"Unrestr Current\" />\n              <Line type=\"monotone\" dataKey=\"unrestrictedNextYear\" stroke=\"#f97316\" strokeWidth={1} strokeDasharray=\"5 5\" dot={false} name=\"Unrestr Next\" />\n            </LineChart>\n          </ResponsiveContainer>\n          <div className=\"text-xs font-bold mt-1 mb-1 text-center\">RSI (14) = {rsiData[rsiData.length - 1].rsi}</div>\n          <ResponsiveContainer width=\"100%\" height={55}>\n            <LineChart data={rsiData}>\n              <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#e0e0e0\" />\n              <XAxis dataKey=\"date\" tick={{ fontSize: 6 }} />\n              <YAxis tick={{ fontSize: 6 }} domain={[0, 100]} />\n              <Tooltip contentStyle={{ fontSize: 7 }} />\n              <ReferenceLine y={70} stroke=\"#ef4444\" strokeDasharray=\"2 2\" />\n              <ReferenceLine y={30} stroke=\"#22c55e\" strokeDasharray=\"2 2\" />\n              <Line type=\"monotone\" dataKey=\"rsi\" stroke=\"#f59e0b\" strokeWidth={1.5} dot={false} />\n            </LineChart>\n          </ResponsiveContainer>\n        </div>\n      </div>\n\n      {/* NEW: Ichimoku Cloud Chart */}\n      <div className=\"border border-gray-300 rounded p-2 mb-3\">\n        <div className=\"text-sm font-bold mb-1 text-center\">ICHIMOKU CLOUD</div>\n        <div className=\"flex gap-4 text-[7px] justify-center mb-1\">\n          <span>— Close Price</span>\n          <span className=\"text-blue-500\">— Tenkan-sen (9)</span>\n          <span className=\"text-red-500\">— Kijun-sen (26)</span>\n          <span className=\"text-gray-400\">— Chikou Span</span>\n          <span className=\"text-green-500\">▒ Senkou Span A/B (Cloud)</span>\n          <span className=\"ml-2 font-bold text-yellow-600\">◆ TK Cross</span>\n          <span className=\"text-purple-600\">◆ Kumo Twist</span>\n        </div>\n        <ResponsiveContainer width=\"100%\" height={100}>\n          <ComposedChart data={ichimokuData}>\n            <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#e0e0e0\" />\n            <XAxis dataKey=\"date\" tick={{ fontSize: 7 }} />\n            <YAxis tick={{ fontSize: 7 }} domain={['auto', 'auto']} />\n            <Tooltip contentStyle={{ fontSize: 8 }} />\n            <Area type=\"monotone\" dataKey=\"senkouA\" stroke=\"none\" fill=\"#86efac\" fillOpacity={0.3} />\n            <Area type=\"monotone\" dataKey=\"senkouB\" stroke=\"none\" fill=\"#fca5a5\" fillOpacity={0.3} />\n            <Line type=\"monotone\" dataKey=\"price\" stroke=\"#1f2937\" strokeWidth={2} dot={false} name=\"Price\" />\n            <Line type=\"monotone\" dataKey=\"tenkan\" stroke=\"#3b82f6\" strokeWidth={1} dot={false} name=\"Tenkan\" />\n            <Line type=\"monotone\" dataKey=\"kijun\" stroke=\"#dc2626\" strokeWidth={1} dot={false} name=\"Kijun\" />\n            <Line type=\"monotone\" dataKey=\"chikou\" stroke=\"#9ca3af\" strokeWidth={1} strokeDasharray=\"3 3\" dot={false} name=\"Chikou\" />\n            <Scatter dataKey=\"tkCrossMarker\" fill=\"#9333ea\" shape=\"diamond\" name=\"TK Cross\" />\n            <Scatter dataKey=\"kumoTwistMarker\" fill=\"#dc2626\" shape=\"diamond\" name=\"Kumo Twist\" />\n          </ComposedChart>\n        </ResponsiveContainer>\n        <div className=\"flex gap-4 text-[8px] justify-center mt-1\">\n          <span className=\"bg-green-100 px-2 rounded\">{ichimokuSignals.tkCross}</span>\n          <span className=\"bg-green-100 px-2 rounded\">{ichimokuSignals.kumoTwist}</span>\n          <span className=\"bg-green-100 px-2 rounded\">{ichimokuSignals.priceVsCloud}</span>\n        </div>\n      </div>\n\n      {/* Key Notes (Expandable) */}\n      <div className=\"border border-gray-300 rounded overflow-hidden\">\n        <button \n          onClick={() => setShowKeyNotes(!showKeyNotes)}\n          className=\"w-full bg-gray-100 px-3 py-2 text-left text-sm font-bold flex items-center hover:bg-gray-200\"\n        >\n          <span className=\"mr-2\">{showKeyNotes ? '▼' : '▶'}</span> Key Notes (Click to Expand)\n        </button>\n        {showKeyNotes && (\n          <div className=\"p-3 bg-gray-50\">\n            <div className=\"grid grid-cols-3 gap-4 text-xs\">\n              {/* Bull Case */}\n              <div>\n                <div className=\"font-bold text-green-700 mb-2 text-sm\">BULL CASE ({bullCase.target})</div>\n                <ul className=\"list-disc list-inside space-y-1\">\n                  {bullCase.points.map((point, i) => <li key={i}>{point}</li>)}\n                </ul>\n              </div>\n              {/* Bear Case */}\n              <div>\n                <div className=\"font-bold text-red-700 mb-2 text-sm\">BEAR CASE ({bearCase.target})</div>\n                <ul className=\"list-disc list-inside space-y-1\">\n                  {bearCase.points.map((point, i) => <li key={i}>{point}</li>)}\n                </ul>\n              </div>\n              {/* Entry/Exit Strategy */}\n              <div>\n                <div className=\"font-bold text-blue-700 mb-2 text-sm\">ENTRY/EXIT STRATEGY</div>\n                <ul className=\"list-disc list-inside space-y-1\">\n                  <li><strong>Ideal Entry:</strong> {entryStrategy.idealEntry}</li>\n                  <li><strong>Current:</strong> {entryStrategy.currentEntry}</li>\n                  <li><strong>Target:</strong> {entryStrategy.target}</li>\n                  <li><strong>Stop Loss:</strong> {entryStrategy.stopLoss}</li>\n                  <li><strong>Position Size:</strong> {entryStrategy.positionSize}</li>\n                </ul>\n              </div>\n            </div>\n          </div>\n        )}\n      </div>\n\n      {/* Footer */}\n      <div className=\"text-xs text-gray-500 text-center mt-3\">\n        Analysis Date: {analysisDate} | Sources: SEC Filings, Company Reports | \n        <span className=\"font-bold text-blue-600 ml-1\">{recommendation}</span>\n      </div>\n    </div>\n  );\n};\n\nexport default QuantDashboard;\n\nImplementation Instructions\n\nCRITICAL STEPS:\n\nCalculate all metrics during the comprehensive text analysis\n\nStore metrics in variables as you calculate them\n\nAfter completing full text analysis, create the React artifact\n\nReplace ALL placeholder values in the template with actual calculated data\n\nUse the EXACT template structure - do not modify the component code\n\nPopulate these specific data arrays:\n\nmetrics object (60+ values including investor persona scores)\ntopNews array (5 recent headlines with dates)\npriceHistory array (10-year data with multiple valuation lines)\noneYearData array (with MAs, Bollinger Bands, forecast)\nichimokuData array (6-month with signal markers)\nichimokuSignals object (TK cross, Kumo twist, price vs cloud)\nmacdData array (6 recent points with histogram)\nrsiData array (6 recent points)\nradarData array (12 metrics, normalized 0-100)\nbullCase.points (5 points from bull case analysis)\nbearCase.points (5 points from bear case analysis)\nentryStrategy (5 values from entry/exit strategy)\n\nNormalize radar chart values properly:\n\nEach metric on 0-100 scale\nHigher is always better (invert risk/beta if needed)\nUse scaling formulas provided above\n\nFormat values correctly:\n\nCurrency: \"€100.00\" (Euro is the default - use € not $)\nLarge numbers: \"€10B\", \"€2.5M\"\nPercentages: 15.0 (number, not string with %)\nRatios: 1.25 (number)\nScores: 7 (integer) or 75.0 (float)\n\nGrowth metrics:\n\nUse REPORTED revenue growth (not underlying/organic)\nUse REPORTED earnings growth (not adjusted EPS growth)\n\nDO NOT:\n\nLeave placeholder values\nModify the component structure\nSkip any sections\nUse estimated/guessed data\n\nThis is the ONLY accepted dashboard format. All other dashboard styles are deprecated.\n\nIntegration with Project Context\nPortfolio Awareness\nAccess portfolio data from project knowledge\nCheck if stock is already owned (if so, suggest using Portfolio Analyst)\nAssess fit with existing holdings (sector exposure, correlation)\nConsider position sizing in context of current allocations\nInvestment Profile\nUser's investment timeline, risk tolerance, preferences in project instructions\nTailor recommendations to user's profile\nConsider tax implications from user's context\nAdjust position sizing based on portfolio size and risk tolerance\nAvoiding Duplication\n\nIf stock is already in portfolio:\n\nAcknowledge: \"You already own [SYMBOL]. For analysis of your existing position, use the Portfolio Analyst skill.\"\nStill provide evaluation if user wants fresh assessment\nFrame as \"Should you add more?\" rather than initial purchase\nWhen to Use This Skill\n\nUse Stock Evaluator when:\n\nUser asks \"Should I buy [stock]?\"\nUser wants evaluation of watchlist candidates\nUser requests stock recommendations\nUser asks \"Is [stock] a good investment?\"\nUser wants to compare multiple potential investments\nUser asks for alternatives to a stock they're considering\nUser wants entry price and position sizing guidance\nUser requests a \"quant-style dashboard\" or \"stock visualization\"\n\nDo NOT use this skill when:\n\nUser wants to review existing portfolio positions → Use Portfolio Analyst\nUser wants general market commentary → Regular knowledge\nUser wants stock screening/discovery → Different workflow\nUser asks about options, derivatives, crypto → Out of scope\n\nOutput includes:\n\nComprehensive text analysis (all sections above)\nQuant-style React dashboard artifact (standardized visual format)\nBest Practices\nResearch Approach\nStart with company filings (10-K, 10-Q) - NOT news articles\nGo back 5-10 years - Understand evolution, not just current state\nCompare to 3-5 peers - Apples to apples comparison\nMultiple valuation methods - Don't rely on single approach\nPresent both sides - Bull and bear cases fairly\nBe specific - Use actual data, not generalities\nValuation Discipline\nAlways require minimum 15% margin of safety\nUse conservative assumptions in DCF\nWeight multiple valuation methods\nConsider industry-specific norms\nDon't overpay for growth\nRisk Awareness\nExplicitly identify and quantify risks\nConsider probability and impact\nAcknowledge unknowns honestly\nDon't just focus on upside\nCommunication\nLead with clear recommendation\nSupport every claim with evidence\nUse specific numbers and dates\nExplain reasoning, don't just state conclusions\nMake recommendations unmistakable\nCommon Patterns to Recognize\nQuality Companies\nConsistent profitability over full cycle (5-10 years)\nStrong balance sheet (low debt, high cash)\nCompetitive moats (wide or narrow)\nShareholder-friendly capital allocation\nPredictable business model\nValue Traps (AVOID)\nCheap for a reason (declining business)\nHigh debt with weak cash flow\nLosing market share consistently\nNo competitive advantages\nPoor management capital allocation\nGrowth at Reasonable Price (GARP)\nStrong revenue growth (15-25%+)\nExpanding margins\nLarge addressable market\nCompetitive advantages\nReasonable valuation (PEG < 1.5)\nTurnaround Candidates\nNew management with track record\nImproving key metrics quarter-over-quarter\nCatalyst for change\nDeep value with margin of safety\nReduced debt or improved cash flow\nQuality Checks Before Finalizing\n\nBefore presenting analysis, verify:\n\nDATA INTEGRITY CHECKS (CRITICAL - CHECK FIRST)\n✅ Every numeric metric has a cited source from web search?\n✅ No insider activity fabricated? (SEC Form 4 or N/A)\n✅ No short interest fabricated? (FINRA/exchange or N/A)\n✅ ROE benchmark correct? (>20% = green, 10-20% = yellow, <10% = red)\n✅ Standardized metric labels used? (e.g., \"Operative Margin\", not \"Operating\")\n✅ All unavailable data shows \"N/A\"? (NEVER zeros or estimates)\n✅ TOP NEWS format correct? (pipe-separated, dates at END in brackets)\n✅ Valuation indicator displayed below forecast? (Undervalued/Fairly Valued/Overvalued +/- %)\n✅ Beta + Vol 1Y combined in one cell?\n✅ Sector/Industry combined in one cell?\nANALYSIS COMPLETENESS CHECKS\n✅ All mandatory deliverables completed?\n✅ Multiple valuation methods used?\n✅ Both bull and bear cases presented?\n✅ Clear BUY/HOLD/SELL recommendation?\n✅ Specific entry price and position size?\n✅ 3-5 peer companies compared?\n✅ 5-10 year financial trends analyzed?\n✅ Research based on company filings, not news?\n✅ Margin of safety calculated?\n✅ Risk level assessed?\n✅ If SELL: 3-5 alternatives provided?\n✅ Technical entry points identified?\n✅ Advanced metrics calculated (Piotroski F, Altman Z, Beneish M, Max Drawdown)?\n✅ All monetary values in € (Euro)?\n✅ Revenue/Earnings growth using REPORTED (not underlying/adjusted) figures?\n✅ Value Trap Score calculated (0-100, LOWER = genuine)?\n✅ All 8 Investor Persona Scores calculated (0-10)?\n✅ PEG ratio calculated?\n✅ FCF Margin calculated?\n✅ Greenblatt Magic Formula metrics (EY, ROC)?\n✅ News sentiment and short interest researched?\n✅ Ichimoku Cloud data gathered with signal markers?\n✅ TOP NEWS section populated (5 recent headlines)?\n✅ 10-year price history with valuation lines available?\n✅ Enhanced dashboard created with ALL 60+ metrics populated?\nFINAL VALIDATION QUESTIONS\nCan you cite source for EVERY number in the dashboard?\nDid any metric come from training knowledge alone? (If yes, search again or use N/A)\nAre insider buys/sells from SEC Form 4 specifically? (If not found, use N/A)\n\nIf any checklist item incomplete: STOP and gather more information. If data genuinely unavailable after searching: Use \"N/A\" - never fabricate.\n\nExample Evaluation Structure\n\n[See complete example in EVALUATION-WORKFLOWS.md for detailed walkthrough]\n\nContinuous Improvement\n\nAfter each evaluation:\n\nTrack recommendation outcomes\nLearn from what worked/didn't work\nRefine valuation assumptions\nImprove pattern recognition\nUpdate industry knowledge\n\nThe goal is to discover genuinely attractive investment opportunities that fit the user's profile with adequate margin of safety and acceptable risk."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Demandgap/stock-evaluator",
    "publisherUrl": "https://clawhub.ai/Demandgap/stock-evaluator",
    "owner": "Demandgap",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/stock-evaluator",
    "downloadUrl": "https://openagent3.xyz/downloads/stock-evaluator",
    "agentUrl": "https://openagent3.xyz/skills/stock-evaluator/agent",
    "manifestUrl": "https://openagent3.xyz/skills/stock-evaluator/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/stock-evaluator/agent.md"
  }
}