{"ticker": {"uuid": "cd5ada22-997d-4794-ad2b-c438fa8b7917", "symbol": "CSW", "name": "CSW Industrials, Inc.", "exchange": "NYSE", "country": "US", "sector": "Industrials", "industry": "Specialty Industrial Machinery"}, "articles": [], "by_tier": {"direct": [], "industry": [], "sector": []}, "total_fetched": 0, "total_unique": 0, "total_relevant": 0, "pipeline_health": {"providers_attempted": 1, "providers_with_results": 0, "raw_articles": 0, "unique_stories": 0, "duplicates_removed": 0, "relevant_stories": 0, "current_evidence": 0, "direct_evidence": 0, "eodhd_articles": 0, "eodhd": {"configured": true, "status": "healthy", "calls_used": 235, "call_budget": 500, "budget_used_pct": 47.0, "requests_made": 47, "last_success_at": "2026-08-13T07:30:18.336790+00:00", "newest_seen_at": "2026-08-13T07:10:37+00:00", "rate_limit": 1200, "rate_remaining": 1199, "last_error": "", "mapped_mentions": 3140, "unmapped_mentions": 1752}, "status": "unavailable"}, "sentiment_summary": {"positive": 0, "negative": 0, "neutral": 0, "score": 50, "raw_score": 50, "total": 0, "evidence_count": 0, "effective_articles": 0, "direct_story_count": 0, "industry_story_count": 0, "sector_story_count": 0, "story_count": 0, "source_count": 0, "source_concentration": 0, "direct_share": 0, "dispersion": 0, "confidence": 0, "evidence_status": "insufficient", "score_version": "evidence-v4", "newest_article_at": null, "label": "No current sentiment signal", "tone": "neutral"}, "classifier": {"primary_event": "general", "primary_label": "Market update", "confidence": 0, "events": [], "positive_events": 0, "negative_events": 0, "pipeline": {"providers_attempted": 1, "providers_with_results": 0, "raw_articles": 0, "unique_stories": 0, "duplicates_removed": 0, "relevant_stories": 0, "current_evidence": 0, "direct_evidence": 0, "eodhd_articles": 0, "eodhd": {"configured": true, "status": "healthy", "calls_used": 235, "call_budget": 500, "budget_used_pct": 47.0, "requests_made": 47, "last_success_at": "2026-08-13T07:30:18.336790+00:00", "newest_seen_at": "2026-08-13T07:10:37+00:00", "rate_limit": 1200, "rate_remaining": 1199, "last_error": "", "mapped_mentions": 3140, "unmapped_mentions": 1752}, "status": "unavailable"}}, "market_context": {"has_market_context": true, "latest_close": 350.68, "latest_week": "2026-08-07", "one_week_move": 10.0, "four_week_move": 24.9, "twelve_week_move": 37.0, "trend_signal": "0", "trend_label": "Trend inactive", "trend_tone": "negative", "market_dynamics": 1.298601, "market_dynamics_buy_signal": false, "relative_strength": 12.402844, "fair_value_gap": 26.9, "fair_value_label": "Materially above fair value", "fair_value_tone": "negative", "expectation_direction": "undecided", "expectation_probability": 53.7428, "reaction_label": "Price confirming higher", "reaction_tone": "positive", "market_sentence": "+10.0% over one week, +24.9% over four weeks, trend inactive, and materially above fair value."}, "interpretation": {"label": "No current news signal", "tone": "neutral", "classification": "insufficient", "summary": "No sufficiently fresh, directly relevant company news is available for a price comparison.", "confidence": 0, "badges": ["Insufficient evidence"], "opportunities": [], "risks": [], "event_label": "Market update", "sentiment_word": "neutral"}, "charts": {"sources": [], "tiers": [{"label": "Direct company coverage", "count": 0}, {"label": "Industry context", "count": 0}, {"label": "Sector context", "count": 0}], "events": []}, "insights": [{"label": "Weighted tone", "value": "50/100", "tone": "neutral", "text": "No current sentiment signal"}, {"label": "Evidence confidence", "value": "0/100", "tone": "neutral", "text": "0 effective stories after overlap and weighting."}, {"label": "Market reaction", "value": "No current news signal", "tone": "neutral", "text": "No sufficiently fresh, directly relevant company news is available for a price comparison."}, {"label": "Primary event", "value": "Market update", "tone": "neutral", "text": "0/100 classification confidence."}, {"label": "Company focus", "value": "0", "tone": "neutral", "text": "0% of weighted evidence is company-specific."}, {"label": "Evidence agreement", "value": "0/100", "tone": "positive", "text": "lower dispersion means the independent stories agree more closely."}, {"label": "Trend context", "value": "Trend inactive", "tone": "negative", "text": "+10.0% over one week, +24.9% over four weeks, trend inactive, and materially above fair value."}], "updated_at": "2026-08-13T07:33:31.147101+00:00", "detail_intelligence": {"headline": "The current company-level signal is not yet measurable", "summary": "Available headlines do not meet the required combination of freshness, direct relevance and independent source depth. The neutral score is a withheld classification, not a neutral forecast.", "status": "insufficient", "metrics": [{"label": "Weighted tone", "value": 50, "display": "50", "tone": "neutral", "note": "No current sentiment signal"}, {"label": "Evidence confidence", "value": 0, "display": "0", "tone": "negative", "note": "thin evidence"}, {"label": "Company focus", "value": 0, "display": "0%", "tone": "negative", "note": "0 direct stories"}, {"label": "Evidence agreement", "value": 0, "display": "N/A", "tone": "neutral", "note": "requires at least 2 stories"}], "confidence_drivers": [{"label": "Sample depth", "value": 0, "note": "0 effective stories"}, {"label": "Source breadth", "value": 0, "note": "0 independent publishers"}, {"label": "Direct relevance", "value": 0, "note": "company-specific evidence share"}, {"label": "Freshness", "value": 0, "note": "recency-weighted evidence"}, {"label": "Agreement", "value": 0, "note": "requires at least 2 stories"}, {"label": "Source independence", "value": 0, "note": "lower publisher concentration"}], "freshness": 0, "source_independence": 0, "timeline": [{"date": "2026-07-24", "label": "24 Jul", "count": 0, "score": null, "tone": "neutral", "x": 42.0, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-07-25", "label": "25 Jul", "count": 0, "score": null, "tone": "neutral", "x": 87.8, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-07-26", "label": "26 Jul", "count": 0, "score": null, "tone": "neutral", "x": 133.6, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-07-27", "label": "27 Jul", "count": 0, "score": null, "tone": "neutral", "x": 179.4, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-07-28", "label": "28 Jul", "count": 0, "score": null, "tone": "neutral", "x": 225.2, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-07-29", "label": "29 Jul", "count": 0, "score": null, "tone": "neutral", "x": 271.0, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-07-30", "label": "30 Jul", "count": 0, "score": null, "tone": "neutral", "x": 316.8, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-07-31", "label": "31 Jul", "count": 0, "score": null, "tone": "neutral", "x": 362.6, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-08-01", "label": "01 Aug", "count": 0, "score": null, "tone": "neutral", "x": 408.4, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-08-02", "label": "02 Aug", "count": 0, "score": null, "tone": "neutral", "x": 454.2, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-08-03", "label": "03 Aug", "count": 0, "score": null, "tone": "neutral", "x": 500.0, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-08-04", "label": "04 Aug", "count": 0, "score": null, "tone": "neutral", "x": 545.8, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-08-05", "label": "05 Aug", "count": 0, "score": null, "tone": "neutral", "x": 591.6, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-08-06", "label": "06 Aug", "count": 0, "score": null, "tone": "neutral", "x": 637.4, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-08-07", "label": "07 Aug", "count": 0, "score": null, "tone": "neutral", "x": 683.2, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-08-08", "label": "08 Aug", "count": 0, "score": null, "tone": "neutral", "x": 729.0, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-08-09", "label": "09 Aug", "count": 0, "score": null, "tone": "neutral", "x": 774.8, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-08-10", "label": "10 Aug", "count": 0, "score": null, "tone": "neutral", "x": 820.6, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-08-11", "label": "11 Aug", "count": 0, "score": null, "tone": "neutral", "x": 866.4, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-08-12", "label": "12 Aug", "count": 0, "score": null, "tone": "neutral", "x": 912.2, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}, {"date": "2026-08-13", "label": "13 Aug", "count": 0, "score": null, "tone": "neutral", "x": 958.0, "y": 135.0, "volume_height": 0.0, "volume_y": 266.0}], "timeline_points": "", "timeline_has_signal": false, "timeline_start": "24 Jul", "timeline_mid": "03 Aug", "timeline_end": "13 Aug", "momentum": {"label": "No current flow", "tone": "neutral", "recent_score": null, "prior_score": null, "delta": null, "recent_count": 0, "prior_count": 0, "volume_delta": 0}, "freshness_buckets": [{"label": "Last 24 hours", "count": 0, "share": 0}, {"label": "1 to 3 days", "count": 0, "share": 0}, {"label": "4 to 7 days", "count": 0, "share": 0}, {"label": "8 to 30 days", "count": 0, "share": 0}], "source_profile": [], "event_profile": [], "topics": [], "supporting": [{"label": "Market context", "text": "+10.0% over one week, +24.9% over four weeks, trend inactive, and materially above fair value."}], "tempering": [{"label": "Company coverage", "text": "No current company-specific story carries enough weight to establish a direct signal."}, {"label": "Confidence", "text": "Evidence confidence is 0/100, below the threshold for a firm classification."}], "supporting_heading": "Available context", "tempering_heading": "Why classification is withheld", "latest_observation": null, "article_count": 0, "updated_at": "2026-08-13T06:09:39.716481+00:00"}, "price_sentiment_path": {"available": true, "price_points": [{"x": 42.0, "y": 120.8, "label": "13 Feb 2026", "close": 309.17, "index": 100.0}, {"x": 78.4, "y": 117.8, "label": "20 Feb 2026", "close": 311.08, "index": 100.6}, {"x": 114.7, "y": 144.6, "label": "27 Feb 2026", "close": 294.03, "index": 95.1}, {"x": 151.1, "y": 194.8, "label": "06 Mar 2026", "close": 261.96, "index": 84.7}, {"x": 187.5, "y": 203.7, "label": "13 Mar 2026", "close": 256.28, "index": 82.9}, {"x": 223.8, "y": 199.9, "label": "20 Mar 2026", "close": 258.71, "index": 83.7}, {"x": 260.2, "y": 192.2, "label": "27 Mar 2026", "close": 263.64, "index": 85.3}, {"x": 296.6, "y": 193.3, "label": "03 Apr 2026", "close": 262.94, "index": 85.0}, {"x": 332.9, "y": 150.5, "label": "10 Apr 2026", "close": 290.25, "index": 93.9}, {"x": 369.3, "y": 150.8, "label": "17 Apr 2026", "close": 290.05, "index": 93.8}, {"x": 405.7, "y": 141.2, "label": "24 Apr 2026", "close": 296.18, "index": 95.8}, {"x": 442.0, "y": 155.3, "label": "01 May 2026", "close": 287.15, "index": 92.9}, {"x": 478.4, "y": 179.8, "label": "08 May 2026", "close": 271.52, "index": 87.8}, {"x": 514.8, "y": 204.2, "label": "15 May 2026", "close": 255.97, "index": 82.8}, {"x": 551.1, "y": 169.7, "label": "22 May 2026", "close": 278.0, "index": 89.9}, {"x": 587.5, "y": 171.3, "label": "29 May 2026", "close": 276.97, "index": 89.6}, {"x": 623.9, "y": 187.9, "label": "05 Jun 2026", "close": 266.37, "index": 86.2}, {"x": 660.2, "y": 179.0, "label": "12 Jun 2026", "close": 272.07, "index": 88.0}, {"x": 696.6, "y": 166.6, "label": "19 Jun 2026", "close": 279.94, "index": 90.5}, {"x": 732.9, "y": 162.9, "label": "26 Jun 2026", "close": 282.34, "index": 91.3}, {"x": 769.3, "y": 173.0, "label": "03 Jul 2026", "close": 275.86, "index": 89.2}, {"x": 805.7, "y": 165.5, "label": "10 Jul 2026", "close": 280.68, "index": 90.8}, {"x": 842.0, "y": 168.1, "label": "17 Jul 2026", "close": 279.01, "index": 90.2}, {"x": 878.4, "y": 152.6, "label": "24 Jul 2026", "close": 288.91, "index": 93.4}, {"x": 914.8, "y": 105.6, "label": "31 Jul 2026", "close": 318.93, "index": 103.2}, {"x": 951.1, "y": 55.8, "label": "07 Aug 2026", "close": 350.68, "index": 113.4}], "sentiment_points": [{"x": 704.3, "y": 95.0, "label": "20 Jun 2026", "score": 69}, {"x": 707.8, "y": 96.9, "label": "21 Jun 2026", "score": 68}, {"x": 710.0, "y": 96.9, "label": "21 Jun 2026", "score": 68}, {"x": 713.6, "y": 95.0, "label": "22 Jun 2026", "score": 69}, {"x": 714.7, "y": 100.6, "label": "22 Jun 2026", "score": 66}, {"x": 716.0, "y": 98.7, "label": "22 Jun 2026", "score": 67}, {"x": 716.7, "y": 98.7, "label": "22 Jun 2026", "score": 67}, {"x": 716.8, "y": 98.7, "label": "22 Jun 2026", "score": 67}, {"x": 721.3, "y": 96.9, "label": "23 Jun 2026", "score": 68}, {"x": 723.1, "y": 96.9, "label": "24 Jun 2026", "score": 68}, {"x": 727.8, "y": 100.6, "label": "25 Jun 2026", "score": 66}, {"x": 729.8, "y": 100.6, "label": "25 Jun 2026", "score": 66}, {"x": 735.2, "y": 107.9, "label": "26 Jun 2026", "score": 62}, {"x": 735.5, "y": 104.2, "label": "26 Jun 2026", "score": 64}, {"x": 737.4, "y": 109.8, "label": "26 Jun 2026", "score": 61}, {"x": 738.1, "y": 111.6, "label": "26 Jun 2026", "score": 60}, {"x": 739.8, "y": 111.6, "label": "27 Jun 2026", "score": 60}, {"x": 741.0, "y": 113.4, "label": "27 Jun 2026", "score": 59}, {"x": 743.2, "y": 109.8, "label": "27 Jun 2026", "score": 61}, {"x": 743.9, "y": 109.8, "label": "28 Jun 2026", "score": 61}, {"x": 752.1, "y": 109.8, "label": "29 Jun 2026", "score": 61}, {"x": 764.0, "y": 111.6, "label": "01 Jul 2026", "score": 60}, {"x": 766.4, "y": 111.6, "label": "02 Jul 2026", "score": 60}, {"x": 773.0, "y": 111.6, "label": "03 Jul 2026", "score": 60}, {"x": 774.5, "y": 111.6, "label": "04 Jul 2026", "score": 60}, {"x": 775.6, "y": 111.6, "label": "04 Jul 2026", "score": 60}, {"x": 777.1, "y": 111.6, "label": "04 Jul 2026", "score": 60}, {"x": 778.5, "y": 111.6, "label": "04 Jul 2026", "score": 60}, {"x": 783.1, "y": 111.6, "label": "05 Jul 2026", "score": 60}, {"x": 814.0, "y": 109.8, "label": "11 Jul 2026", "score": 61}, {"x": 837.0, "y": 111.6, "label": "16 Jul 2026", "score": 60}, {"x": 853.0, "y": 113.4, "label": "19 Jul 2026", "score": 59}, {"x": 883.9, "y": 109.8, "label": "25 Jul 2026", "score": 61}, {"x": 885.1, "y": 109.8, "label": "25 Jul 2026", "score": 61}, {"x": 918.4, "y": 107.9, "label": "31 Jul 2026", "score": 62}, {"x": 951.9, "y": 106.1, "label": "07 Aug 2026", "score": 63}, {"x": 958.0, "y": 106.1, "label": "08 Aug 2026", "score": 63}], "price_path": "42.0,120.8 78.4,117.8 114.7,144.6 151.1,194.8 187.5,203.7 223.8,199.9 260.2,192.2 296.6,193.3 332.9,150.5 369.3,150.8 405.7,141.2 442.0,155.3 478.4,179.8 514.8,204.2 551.1,169.7 587.5,171.3 623.9,187.9 660.2,179.0 696.6,166.6 732.9,162.9 769.3,173.0 805.7,165.5 842.0,168.1 878.4,152.6 914.8,105.6 951.1,55.8", "sentiment_path": "704.3,95.0 707.8,96.9 710.0,96.9 713.6,95.0 714.7,100.6 716.0,98.7 716.7,98.7 716.8,98.7 721.3,96.9 723.1,96.9 727.8,100.6 729.8,100.6 735.2,107.9 735.5,104.2 737.4,109.8 738.1,111.6 739.8,111.6 741.0,113.4 743.2,109.8 743.9,109.8 752.1,109.8 764.0,111.6 766.4,111.6 773.0,111.6 774.5,111.6 775.6,111.6 777.1,111.6 778.5,111.6 783.1,111.6 814.0,109.8 837.0,111.6 853.0,113.4 883.9,109.8 885.1,109.8 918.4,107.9 951.9,106.1 958.0,106.1", "price_change": 13.4, "sentiment_change": -6, "latest_close": 350.68, "start_label": "13 Feb", "mid_label": "15 May", "end_label": "07 Aug"}, "disclaimer": "Educational market research only. Not financial, investment, trading, tax, or legal advice."}