diff --git a/MemelyAlphaStockRanking_multi_model.xlsx b/MemelyAlphaStockRanking_multi_model.xlsx new file mode 100644 index 0000000..7450194 Binary files /dev/null and b/MemelyAlphaStockRanking_multi_model.xlsx differ diff --git a/build_multi_model_excel.py b/build_multi_model_excel.py new file mode 100644 index 0000000..a03d72d --- /dev/null +++ b/build_multi_model_excel.py @@ -0,0 +1,533 @@ +#!/usr/bin/env python3 +""" +Build a multi-model Excel file: +- Copy original sheets for each model +- Each model gets its own colored score columns +- Add a cross-model comparison summary sheet +""" + +import json +import pandas as pd +from openpyxl import load_workbook +from openpyxl.styles import PatternFill, Font, Alignment, Border, Side +from openpyxl.utils import get_column_letter +from copy import copy + +EXCEL_SRC = "/home/ubuntu/upload/MemelyAlphaStockRanking(副本)(副本).xlsx" +EXCEL_OUT = "/home/ubuntu/memely-alpha-stock-ranking/MemelyAlphaStockRanking_multi_model.xlsx" + +# Model configs: name, json_path, highlight_color, header_color +MODELS = [ + { + "name": "GPT-4.1-mini", + "short": "gpt41mini", + "json": "/home/ubuntu/memely-alpha-stock-ranking/research_scores.json", + "fill_color": "BDD7EE", # Light blue + "header_color": "2F75B5", # Dark blue + "header_font_color": "FFFFFF", + }, + { + "name": "GPT-4.1-nano", + "short": "gpt41nano", + "json": "/home/ubuntu/memely-alpha-stock-ranking/scores_gpt41nano.json", + "fill_color": "C6EFCE", # Light green + "header_color": "548235", # Dark green + "header_font_color": "FFFFFF", + }, + { + "name": "Gemini-2.5-flash", + "short": "gemini25flash", + "json": "/home/ubuntu/memely-alpha-stock-ranking/scores_gemini25flash.json", + "fill_color": "E2BFEE", # Light purple + "header_color": "7030A0", # Dark purple + "header_font_color": "FFFFFF", + }, +] + +# Load all scores +all_scores = {} +for m in MODELS: + with open(m["json"], 'r') as f: + all_scores[m["name"]] = json.load(f) + print(f"Loaded {len(all_scores[m['name']])} scores for {m['name']}") + +# Load original workbook +wb = load_workbook(EXCEL_SRC) + +thin_border = Border( + left=Side(style='thin'), + right=Side(style='thin'), + top=Side(style='thin'), + bottom=Side(style='thin') +) + +# ============================================================ +# For each model, create a copy of "stock master list" sheet +# with that model's scores appended in its color +# ============================================================ + +# Read original data for reference +df = pd.read_excel(EXCEL_SRC, sheet_name='stock master list') +df4 = pd.read_excel(EXCEL_SRC, sheet_name='Sheet4') + +# Get original sheet as template +orig_ws = wb['stock master list'] +orig_max_col = orig_ws.max_column +orig_max_row = orig_ws.max_row + +for model_cfg in MODELS: + model_name = model_cfg["name"] + scores = all_scores[model_name] + + fill_color = model_cfg["fill_color"] + header_color = model_cfg["header_color"] + header_font_color = model_cfg["header_font_color"] + + cell_fill = PatternFill(start_color=fill_color, end_color=fill_color, fill_type="solid") + hdr_fill = PatternFill(start_color=header_color, end_color=header_color, fill_type="solid") + hdr_font = Font(bold=True, color=header_font_color, size=11) + score_font = Font(size=10) + + sheet_name = f"Scores - {model_name}" + # Truncate sheet name if too long (max 31 chars) + if len(sheet_name) > 31: + sheet_name = sheet_name[:31] + + ws = wb.copy_worksheet(orig_ws) + ws.title = sheet_name + + # Add score columns + new_headers = [ + f'{model_name} Overall', + f'{model_name} Momentum', + f'{model_name} Theme', + f'{model_name} Risk', + f'{model_name} Social Buzz', + f'{model_name} Analysis', + ] + + for j, hdr in enumerate(new_headers): + col = orig_max_col + 1 + j + cell = ws.cell(row=1, column=col, value=hdr) + cell.fill = hdr_fill + cell.font = hdr_font + cell.alignment = Alignment(horizontal='center', wrap_text=True) + cell.border = thin_border + + # Write scores + for row in range(2, orig_max_row + 1): + symbol = ws.cell(row=row, column=1).value + if symbol and symbol in scores: + s = scores[symbol] + + fields = ['overall_score', 'momentum_score', 'theme_score', 'risk_score', 'social_buzz_score', 'brief_analysis'] + for j, field in enumerate(fields): + col = orig_max_col + 1 + j + cell = ws.cell(row=row, column=col, value=s.get(field, '')) + cell.fill = cell_fill + cell.font = score_font + if field != 'brief_analysis': + cell.alignment = Alignment(horizontal='center') + else: + cell.alignment = Alignment(wrap_text=True) + cell.border = thin_border + + # Set column widths + widths = [14, 16, 14, 12, 16, 55] + for j, w in enumerate(widths): + col_letter = get_column_letter(orig_max_col + 1 + j) + ws.column_dimensions[col_letter].width = w + + ws.freeze_panes = 'B2' + print(f"Created sheet: {sheet_name}") + +# ============================================================ +# Create cross-model comparison summary sheet +# ============================================================ + +ws_comp = wb.create_sheet("Multi-Model Comparison", 0) + +# Headers +comp_headers = ['Rank', 'Symbol', 'Theme'] +for m in MODELS: + comp_headers.append(f'{m["name"]} Overall') +comp_headers.extend(['Avg Overall', 'Std Dev', 'Consensus']) +for m in MODELS: + comp_headers.append(f'{m["name"]} Momentum') +for m in MODELS: + comp_headers.append(f'{m["name"]} Theme') +for m in MODELS: + comp_headers.append(f'{m["name"]} Risk') +for m in MODELS: + comp_headers.append(f'{m["name"]} Social Buzz') + +# Write headers with styling +general_hdr_fill = PatternFill(start_color="333333", end_color="333333", fill_type="solid") +general_hdr_font = Font(bold=True, color="FFFFFF", size=10) + +for col, hdr in enumerate(comp_headers, 1): + cell = ws_comp.cell(row=1, column=col, value=hdr) + # Color-code model-specific headers + matched = False + for m in MODELS: + if m["name"] in hdr: + cell.fill = PatternFill(start_color=m["header_color"], end_color=m["header_color"], fill_type="solid") + cell.font = Font(bold=True, color=m["header_font_color"], size=10) + matched = True + break + if not matched: + cell.fill = general_hdr_fill + cell.font = general_hdr_font + cell.alignment = Alignment(horizontal='center', wrap_text=True) + cell.border = thin_border + +# Collect all symbols and compute averages +symbol_info = {} +for _, row in df.iterrows(): + sym = row['Symbol'] + if pd.notna(sym) and sym not in symbol_info: + symbol_info[sym] = str(row.get('Theme', '')) + +import statistics + +ranking_data = [] +for sym in symbol_info: + overalls = [] + momentums = [] + themes = [] + risks = [] + buzzes = [] + + for m in MODELS: + s = all_scores[m["name"]].get(sym, {}) + o = s.get('overall_score', None) + if o is not None: + overalls.append(o) + mo = s.get('momentum_score', None) + if mo is not None: + momentums.append(mo) + t = s.get('theme_score', None) + if t is not None: + themes.append(t) + r = s.get('risk_score', None) + if r is not None: + risks.append(r) + b = s.get('social_buzz_score', None) + if b is not None: + buzzes.append(b) + + avg = statistics.mean(overalls) if overalls else 0 + std = statistics.stdev(overalls) if len(overalls) > 1 else 0 + + ranking_data.append({ + 'symbol': sym, + 'theme': symbol_info[sym], + 'avg_overall': avg, + 'std_overall': std, + 'overalls': overalls, + 'momentums': momentums, + 'themes': themes, + 'risks': risks, + 'buzzes': buzzes, + }) + +# Sort by average overall score +ranking_data.sort(key=lambda x: x['avg_overall'], reverse=True) + +def get_score_fill_general(score): + if score >= 70: + return PatternFill(start_color="92D050", end_color="92D050", fill_type="solid") + elif score >= 50: + return PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid") + elif score >= 30: + return PatternFill(start_color="FFC000", end_color="FFC000", fill_type="solid") + else: + return PatternFill(start_color="FF6B6B", end_color="FF6B6B", fill_type="solid") + +def get_consensus(avg, std): + if std <= 5: + return "Strong Consensus" + elif std <= 10: + return "Moderate Consensus" + elif std <= 15: + return "Weak Consensus" + else: + return "Divergent" + +for rank, rd in enumerate(ranking_data, 1): + row = rank + 1 + sym = rd['symbol'] + + ws_comp.cell(row=row, column=1, value=rank).border = thin_border + ws_comp.cell(row=row, column=1).alignment = Alignment(horizontal='center') + + cell = ws_comp.cell(row=row, column=2, value=sym) + cell.font = Font(bold=True) + cell.border = thin_border + + theme_val = rd['theme'] if pd.notna(rd['theme']) and rd['theme'] != 'nan' else '' + ws_comp.cell(row=row, column=3, value=theme_val).border = thin_border + + # Model overall scores with model-specific colors + col = 4 + for i, m in enumerate(MODELS): + s = all_scores[m["name"]].get(sym, {}) + val = s.get('overall_score', '') + cell = ws_comp.cell(row=row, column=col + i, value=val) + if isinstance(val, (int, float)): + cell.fill = PatternFill(start_color=m["fill_color"], end_color=m["fill_color"], fill_type="solid") + cell.alignment = Alignment(horizontal='center') + cell.border = thin_border + + col += len(MODELS) + + # Average + avg = rd['avg_overall'] + cell = ws_comp.cell(row=row, column=col, value=round(avg, 1)) + cell.fill = get_score_fill_general(avg) + cell.font = Font(bold=True, size=11) + cell.alignment = Alignment(horizontal='center') + cell.border = thin_border + col += 1 + + # Std Dev + std = rd['std_overall'] + cell = ws_comp.cell(row=row, column=col, value=round(std, 1)) + cell.alignment = Alignment(horizontal='center') + cell.border = thin_border + col += 1 + + # Consensus + consensus = get_consensus(avg, std) + cell = ws_comp.cell(row=row, column=col, value=consensus) + if "Strong" in consensus: + cell.fill = PatternFill(start_color="92D050", end_color="92D050", fill_type="solid") + elif "Moderate" in consensus: + cell.fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid") + elif "Weak" in consensus: + cell.fill = PatternFill(start_color="FFC000", end_color="FFC000", fill_type="solid") + else: + cell.fill = PatternFill(start_color="FF6B6B", end_color="FF6B6B", fill_type="solid") + cell.alignment = Alignment(horizontal='center') + cell.border = thin_border + col += 1 + + # Momentum scores per model + for i, m in enumerate(MODELS): + s = all_scores[m["name"]].get(sym, {}) + val = s.get('momentum_score', '') + cell = ws_comp.cell(row=row, column=col + i, value=val) + if isinstance(val, (int, float)): + cell.fill = PatternFill(start_color=m["fill_color"], end_color=m["fill_color"], fill_type="solid") + cell.alignment = Alignment(horizontal='center') + cell.border = thin_border + col += len(MODELS) + + # Theme scores per model + for i, m in enumerate(MODELS): + s = all_scores[m["name"]].get(sym, {}) + val = s.get('theme_score', '') + cell = ws_comp.cell(row=row, column=col + i, value=val) + if isinstance(val, (int, float)): + cell.fill = PatternFill(start_color=m["fill_color"], end_color=m["fill_color"], fill_type="solid") + cell.alignment = Alignment(horizontal='center') + cell.border = thin_border + col += len(MODELS) + + # Risk scores per model + for i, m in enumerate(MODELS): + s = all_scores[m["name"]].get(sym, {}) + val = s.get('risk_score', '') + cell = ws_comp.cell(row=row, column=col + i, value=val) + if isinstance(val, (int, float)): + cell.fill = PatternFill(start_color=m["fill_color"], end_color=m["fill_color"], fill_type="solid") + cell.alignment = Alignment(horizontal='center') + cell.border = thin_border + col += len(MODELS) + + # Social buzz scores per model + for i, m in enumerate(MODELS): + s = all_scores[m["name"]].get(sym, {}) + val = s.get('social_buzz_score', '') + cell = ws_comp.cell(row=row, column=col + i, value=val) + if isinstance(val, (int, float)): + cell.fill = PatternFill(start_color=m["fill_color"], end_color=m["fill_color"], fill_type="solid") + cell.alignment = Alignment(horizontal='center') + cell.border = thin_border + +# Set column widths for comparison sheet +ws_comp.column_dimensions['A'].width = 6 +ws_comp.column_dimensions['B'].width = 10 +ws_comp.column_dimensions['C'].width = 18 +for col_idx in range(4, 4 + len(comp_headers) - 3): + col_letter = get_column_letter(col_idx) + ws_comp.column_dimensions[col_letter].width = 16 + +ws_comp.freeze_panes = 'D2' +print(f"Created 'Multi-Model Comparison' sheet") + +# ============================================================ +# Also create per-model ranking sheets (sorted by that model's overall score) +# ============================================================ + +for model_cfg in MODELS: + model_name = model_cfg["name"] + scores = all_scores[model_name] + fill_color = model_cfg["fill_color"] + header_color = model_cfg["header_color"] + header_font_color = model_cfg["header_font_color"] + + cell_fill = PatternFill(start_color=fill_color, end_color=fill_color, fill_type="solid") + hdr_fill = PatternFill(start_color=header_color, end_color=header_color, fill_type="solid") + hdr_font = Font(bold=True, color=header_font_color, size=10) + + sheet_name = f"Rank - {model_name}" + if len(sheet_name) > 31: + sheet_name = sheet_name[:31] + + ws_rank = wb.create_sheet(sheet_name) + + rank_headers = ['Rank', 'Symbol', 'Theme', 'Overall', 'Momentum', 'Theme Score', 'Risk', 'Social Buzz', 'YTD Perf', 'Analysis'] + + for col, hdr in enumerate(rank_headers, 1): + cell = ws_rank.cell(row=1, column=col, value=hdr) + cell.fill = hdr_fill + cell.font = hdr_font + cell.alignment = Alignment(horizontal='center', wrap_text=True) + cell.border = thin_border + + # Sort by overall score + sorted_scores = sorted(scores.items(), key=lambda x: x[1].get('overall_score', 0), reverse=True) + + for rank, (sym, s) in enumerate(sorted_scores, 1): + row = rank + 1 + theme = symbol_info.get(sym, '') + if pd.isna(theme) or theme == 'nan': + theme = '' + + ws_rank.cell(row=row, column=1, value=rank).border = thin_border + ws_rank.cell(row=row, column=1).alignment = Alignment(horizontal='center') + + cell = ws_rank.cell(row=row, column=2, value=sym) + cell.font = Font(bold=True) + cell.border = thin_border + + ws_rank.cell(row=row, column=3, value=theme).border = thin_border + + # Overall + overall = s.get('overall_score', 0) + cell = ws_rank.cell(row=row, column=4, value=overall) + cell.fill = cell_fill + cell.font = Font(bold=True, size=11) + cell.alignment = Alignment(horizontal='center') + cell.border = thin_border + + # Momentum + cell = ws_rank.cell(row=row, column=5, value=s.get('momentum_score', '')) + cell.fill = cell_fill + cell.alignment = Alignment(horizontal='center') + cell.border = thin_border + + # Theme Score + cell = ws_rank.cell(row=row, column=6, value=s.get('theme_score', '')) + cell.fill = cell_fill + cell.alignment = Alignment(horizontal='center') + cell.border = thin_border + + # Risk + cell = ws_rank.cell(row=row, column=7, value=s.get('risk_score', '')) + cell.fill = cell_fill + cell.alignment = Alignment(horizontal='center') + cell.border = thin_border + + # Social Buzz + cell = ws_rank.cell(row=row, column=8, value=s.get('social_buzz_score', '')) + cell.fill = cell_fill + cell.alignment = Alignment(horizontal='center') + cell.border = thin_border + + # YTD Perf from original data + ytd_val = '' + for _, orig_row in df.iterrows(): + if orig_row['Symbol'] == sym: + ytd_val = orig_row.get('performance Year to Date', '') + break + if pd.notna(ytd_val) and ytd_val != '': + cell = ws_rank.cell(row=row, column=9, value=ytd_val) + cell.number_format = '0.00%' + else: + cell = ws_rank.cell(row=row, column=9, value='N/A') + cell.alignment = Alignment(horizontal='center') + cell.border = thin_border + + # Analysis + cell = ws_rank.cell(row=row, column=10, value=s.get('brief_analysis', '')) + cell.fill = cell_fill + cell.alignment = Alignment(wrap_text=True) + cell.border = thin_border + + # Column widths + rank_widths = [6, 10, 18, 10, 12, 12, 10, 14, 12, 55] + for i, w in enumerate(rank_widths): + ws_rank.column_dimensions[get_column_letter(i + 1)].width = w + + ws_rank.freeze_panes = 'D2' + print(f"Created ranking sheet: {sheet_name}") + +# ============================================================ +# Add a legend/info sheet +# ============================================================ +ws_legend = wb.create_sheet("Model Legend", 1) + +ws_legend.cell(row=1, column=1, value="Model Color Legend").font = Font(bold=True, size=14) +ws_legend.merge_cells('A1:D1') + +ws_legend.cell(row=3, column=1, value="Model Name").font = Font(bold=True, size=11) +ws_legend.cell(row=3, column=2, value="Provider").font = Font(bold=True, size=11) +ws_legend.cell(row=3, column=3, value="Color").font = Font(bold=True, size=11) +ws_legend.cell(row=3, column=4, value="Sheet Names").font = Font(bold=True, size=11) + +for i, m in enumerate(MODELS): + row = 4 + i + ws_legend.cell(row=row, column=1, value=m["name"]).font = Font(bold=True) + + provider = "OpenAI" if "GPT" in m["name"] or "gpt" in m["name"] else "Google" + ws_legend.cell(row=row, column=2, value=provider) + + cell = ws_legend.cell(row=row, column=3, value=f"Sample Color") + cell.fill = PatternFill(start_color=m["fill_color"], end_color=m["fill_color"], fill_type="solid") + + sheet_name_scores = f"Scores - {m['name']}"[:31] + sheet_name_rank = f"Rank - {m['name']}"[:31] + ws_legend.cell(row=row, column=4, value=f"{sheet_name_scores}, {sheet_name_rank}") + +ws_legend.cell(row=8, column=1, value="Sheet Overview").font = Font(bold=True, size=12) + +sheets_info = [ + ("Multi-Model Comparison", "Cross-model comparison with all scores side by side, sorted by average overall score"), + ("Model Legend", "This sheet - explains color coding and sheet structure"), +] +for m in MODELS: + sheets_info.append((f"Scores - {m['name']}"[:31], f"Original stock master list + {m['name']} scores in {m['name']} color")) + sheets_info.append((f"Rank - {m['name']}"[:31], f"Stocks ranked by {m['name']} overall score")) + +for i, (sn, desc) in enumerate(sheets_info): + row = 9 + i + ws_legend.cell(row=row, column=1, value=sn).font = Font(bold=True) + ws_legend.cell(row=row, column=2, value=desc) + ws_legend.merge_cells(start_row=row, start_column=2, end_row=row, end_column=4) + +ws_legend.column_dimensions['A'].width = 30 +ws_legend.column_dimensions['B'].width = 20 +ws_legend.column_dimensions['C'].width = 15 +ws_legend.column_dimensions['D'].width = 60 + +print(f"Created 'Model Legend' sheet") + +# Save +wb.save(EXCEL_OUT) +print(f"\n=== DONE ===") +print(f"Saved multi-model Excel to: {EXCEL_OUT}") +print(f"Total sheets: {len(wb.sheetnames)}") +for sn in wb.sheetnames: + print(f" - {sn}") diff --git a/score_multi_model.py b/score_multi_model.py new file mode 100644 index 0000000..461157f --- /dev/null +++ b/score_multi_model.py @@ -0,0 +1,152 @@ +#!/usr/bin/env python3 +""" +Score all stocks using a specified AI model. +Usage: python3 score_multi_model.py +""" + +import pandas as pd +import json +import os +import sys +import time +from openai import OpenAI + +model_name = sys.argv[1] +output_json = sys.argv[2] + +client = OpenAI() + +EXCEL_PATH = "/home/ubuntu/upload/MemelyAlphaStockRanking(副本)(副本).xlsx" + +# Read the master list +df = pd.read_excel(EXCEL_PATH, sheet_name='stock master list') +df4 = pd.read_excel(EXCEL_PATH, sheet_name='Sheet4') + +sector_map = {} +for _, row in df4.iterrows(): + sym = row.get('Symbol') + if pd.notna(sym): + sector_map[sym] = { + 'sector': row.get('Sector', ''), + 'theme': row.get('Theme', ''), + } + +# Build stock info +stocks_info = [] +seen = set() +for _, row in df.iterrows(): + sym = row['Symbol'] + if pd.isna(sym) or sym in seen: + continue + seen.add(sym) + info = { + 'symbol': sym, + 'theme': str(row.get('Theme', '')), + 'perf_7d': row.get('performance past 7 days', None), + 'perf_ytd': row.get('performance Year to Date', None), + 'perf_specific': row.get('performance on specific dates', None), + 'first_call_kol': str(row.get('first call X kol', '')), + 'top_contributor': str(row.get('top contributor', '')), + } + if sym in sector_map: + info['sector'] = sector_map[sym].get('sector', '') + info['theme_s4'] = sector_map[sym].get('theme', '') + stocks_info.append(info) + +print(f"[{model_name}] Total stocks to score: {len(stocks_info)}") + +def score_batch(batch_stocks, model): + stocks_text = "" + for s in batch_stocks: + perf_7d = f"{s['perf_7d']:.2%}" if pd.notna(s.get('perf_7d')) else "N/A" + perf_ytd = f"{s['perf_ytd']:.2%}" if pd.notna(s.get('perf_ytd')) else "N/A" + perf_spec = f"{s['perf_specific']:.2%}" if pd.notna(s.get('perf_specific')) else "N/A" + sector = s.get('sector', s.get('theme', 'N/A')) + theme = s.get('theme_s4', s.get('theme', 'N/A')) + stocks_text += f""" +--- +Symbol: {s['symbol']} +Sector: {sector} +Theme: {theme} +Performance (Past 7 Days): {perf_7d} +Performance (Year to Date): {perf_ytd} +Performance (Specific Date): {perf_spec} +First Call KOL: {s.get('first_call_kol', 'N/A')} +Top Contributor: {s.get('top_contributor', 'N/A')} +""" + + prompt = f"""You are a professional stock/crypto analyst. Evaluate each of the following stocks/assets and provide a comprehensive score. + +For EACH stock, provide: +1. **overall_score** (1-100): Overall investment attractiveness score +2. **momentum_score** (1-100): Based on recent price performance and momentum +3. **theme_score** (1-100): How strong/relevant is the thematic play (e.g., AI, Defense, Aerospace, Crypto, etc.) +4. **risk_score** (1-100): Risk level (100 = highest risk) +5. **social_buzz_score** (1-100): Social media attention and KOL backing strength +6. **brief_analysis**: 2-3 sentence analysis explaining the scores + +Consider these factors: +- YTD performance indicates momentum strength +- Thematic relevance to current market trends (AI, Defense, Aerospace, Crypto, Quantum Computing are hot in 2025-2026) +- Small/micro cap stocks with strong themes get higher theme scores +- Stocks with notable KOL backing get higher social buzz scores +- Higher volatility = higher risk score + +Here are the stocks to evaluate: +{stocks_text} + +Return ONLY a valid JSON array with objects for each stock. Each object must have: symbol, overall_score, momentum_score, theme_score, risk_score, social_buzz_score, brief_analysis. +Do not include any text outside the JSON array.""" + + for attempt in range(3): + try: + response = client.chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": "You are a professional financial analyst. Always respond with valid JSON only."}, + {"role": "user", "content": prompt} + ], + temperature=0.3, + max_tokens=8000 + ) + content = response.choices[0].message.content.strip() + if content.startswith("```"): + content = content.split("```")[1] + if content.startswith("json"): + content = content[4:] + results = json.loads(content) + return results + except Exception as e: + print(f" Attempt {attempt+1} error: {e}") + time.sleep(3) + return None + +# Process in batches +batch_size = 15 +scored = {} +total_batches = (len(stocks_info) + batch_size - 1) // batch_size + +for i in range(0, len(stocks_info), batch_size): + batch = stocks_info[i:i+batch_size] + batch_num = i // batch_size + 1 + symbols_in_batch = [s['symbol'] for s in batch] + print(f"[{model_name}] Batch {batch_num}/{total_batches}: {symbols_in_batch}") + + results = score_batch(batch, model_name) + + if results: + for r in results: + sym = r.get('symbol', '') + if sym: + scored[sym] = r + print(f" ✓ {sym}: Overall={r.get('overall_score')}") + else: + print(f" ✗ Batch {batch_num} failed after retries") + + time.sleep(1) + +with open(output_json, 'w') as f: + json.dump(scored, f, indent=2, ensure_ascii=False) + +print(f"\n[{model_name}] COMPLETE: {len(scored)}/{len(stocks_info)} scored") +print(f"Saved to: {output_json}") diff --git a/scores_gemini25flash.json b/scores_gemini25flash.json new file mode 100644 index 0000000..ed8db14 --- /dev/null +++ b/scores_gemini25flash.json @@ -0,0 +1,1090 @@ +{ + "EQRLF": { + "symbol": "EQRLF", + "overall_score": 85, + "momentum_score": 95, + "theme_score": 50, + "risk_score": 80, + "social_buzz_score": 40, + "brief_analysis": "EQRLF shows exceptional YTD momentum, indicating strong recent performance. The lack of a defined theme and KOL backing, however, introduces higher risk and limits its thematic appeal and social buzz." + }, + "GDRZF": { + "symbol": "GDRZF", + "overall_score": 70, + "momentum_score": 80, + "theme_score": 60, + "risk_score": 85, + "social_buzz_score": 75, + "brief_analysis": "GDRZF has strong YTD performance and notable social media backing, contributing to its momentum and buzz. However, the 'Venezuela' theme carries inherent geopolitical risks, leading to a higher risk score despite its momentum." + }, + "AXTI": { + "symbol": "AXTI", + "overall_score": 88, + "momentum_score": 90, + "theme_score": 85, + "risk_score": 70, + "social_buzz_score": 80, + "brief_analysis": "AXTI benefits from strong YTD performance and a highly relevant Photonics theme, aligning with future tech trends. It also has good social media backing, contributing to its overall attractiveness and momentum." + }, + "AAOI": { + "symbol": "AAOI", + "overall_score": 82, + "momentum_score": 85, + "theme_score": 85, + "risk_score": 75, + "social_buzz_score": 70, + "brief_analysis": "AAOI exhibits strong YTD performance and is well-positioned within the high-growth Photonics sector. While recent performance is slightly down, its strong theme and social backing make it an attractive, albeit moderately risky, investment." + }, + "FSLY": { + "symbol": "FSLY", + "overall_score": 78, + "momentum_score": 80, + "theme_score": 65, + "risk_score": 70, + "social_buzz_score": 75, + "brief_analysis": "FSLY demonstrates solid YTD momentum and good social media engagement. The absence of a specific hot theme limits its thematic score, but its consistent performance and KOL backing are positive indicators." + }, + "ALM": { + "symbol": "ALM", + "overall_score": 65, + "momentum_score": 70, + "theme_score": 45, + "risk_score": 65, + "social_buzz_score": 60, + "brief_analysis": "ALM has decent YTD performance but lacks a clear, compelling theme, which dampens its overall appeal. Its social buzz is moderate, and the absence of a strong narrative contributes to a lower overall score." + }, + "AMPX": { + "symbol": "AMPX", + "overall_score": 80, + "momentum_score": 75, + "theme_score": 90, + "risk_score": 80, + "social_buzz_score": 70, + "brief_analysis": "AMPX is highly attractive due to its strong thematic play in Solid State Batteries, aligning with future energy trends, and its presence in Semis, Optics & Edge AI. While YTD momentum is good, the innovative nature of its theme introduces higher risk." + }, + "UCTT": { + "symbol": "UCTT", + "overall_score": 68, + "momentum_score": 70, + "theme_score": 50, + "risk_score": 60, + "social_buzz_score": 65, + "brief_analysis": "UCTT shows good YTD performance and moderate social buzz. However, the lack of a defined hot theme limits its thematic score, making it a more general play without a specific high-growth narrative." + }, + "ICHR": { + "symbol": "ICHR", + "overall_score": 62, + "momentum_score": 65, + "theme_score": 40, + "risk_score": 60, + "social_buzz_score": 65, + "brief_analysis": "ICHR has fair YTD performance and some social media presence. Its overall score is tempered by the absence of a clear, compelling theme, which reduces its potential for significant thematic-driven growth." + }, + "PSRHF": { + "symbol": "PSRHF", + "overall_score": 85, + "momentum_score": 85, + "theme_score": 90, + "risk_score": 80, + "social_buzz_score": 75, + "brief_analysis": "PSRHF is a strong thematic play with 'Helium 3', a potentially revolutionary resource, driving high interest. Its excellent YTD momentum and good social buzz make it attractive, though the speculative nature of its theme implies higher risk." + }, + "ATOM": { + "symbol": "ATOM", + "overall_score": 60, + "momentum_score": 60, + "theme_score": 45, + "risk_score": 65, + "social_buzz_score": 70, + "brief_analysis": "ATOM has moderate YTD performance and decent social media backing. The absence of a specific hot theme and recent negative performance on a specific date contribute to a lower overall score and higher perceived risk." + }, + "INTT": { + "symbol": "INTT", + "overall_score": 68, + "momentum_score": 65, + "theme_score": 50, + "risk_score": 60, + "social_buzz_score": 70, + "brief_analysis": "INTT shows moderate YTD performance and good social media engagement. Its lack of a defined, high-growth theme limits its thematic appeal, but consistent performance and KOL backing provide some stability." + }, + "RCAT": { + "symbol": "RCAT", + "overall_score": 85, + "momentum_score": 75, + "theme_score": 90, + "risk_score": 70, + "social_buzz_score": 80, + "brief_analysis": "RCAT is a highly relevant play in the Defense sector with a strong 'Drone' theme, aligning with current geopolitical trends. Its solid YTD performance and strong social buzz make it an attractive, albeit moderately risky, investment." + }, + "AEHR": { + "symbol": "AEHR", + "overall_score": 65, + "momentum_score": 60, + "theme_score": 50, + "risk_score": 60, + "social_buzz_score": 65, + "brief_analysis": "AEHR has moderate YTD performance and some social media attention. The absence of a clear, compelling theme and recent negative performance limit its overall attractiveness and momentum." + }, + "UAMY": { + "symbol": "UAMY", + "overall_score": 80, + "momentum_score": 70, + "theme_score": 85, + "risk_score": 75, + "social_buzz_score": 80, + "brief_analysis": "UAMY is a strong thematic play in 'Rare Earth' within the Defense sector, crucial for modern technology and national security. Its good YTD performance and strong social media backing make it appealing, though the sector can be volatile." + }, + "LASR": { + "symbol": "LASR", + "overall_score": 78, + "momentum_score": 85, + "theme_score": 80, + "risk_score": 65, + "social_buzz_score": 75, + "brief_analysis": "LASR shows strong YTD momentum and benefits from the highly relevant Defense theme. The presence of KOL backing contributes to its social buzz, while its performance suggests moderate risk." + }, + "UMAC": { + "symbol": "UMAC", + "overall_score": 82, + "momentum_score": 90, + "theme_score": 85, + "risk_score": 70, + "social_buzz_score": 80, + "brief_analysis": "UMAC exhibits excellent recent and YTD performance, aligning with the strong Drone theme within Defense. Its significant KOL backing boosts its social buzz, indicating high investor interest and potential volatility." + }, + "OSS": { + "symbol": "OSS", + "overall_score": 75, + "momentum_score": 80, + "theme_score": 75, + "risk_score": 60, + "social_buzz_score": 70, + "brief_analysis": "OSS has solid YTD performance and is well-positioned within the Defense theme. Its social buzz is decent due to KOL mentions, and its consistent performance suggests a moderate risk profile." + }, + "RIME": { + "symbol": "RIME", + "overall_score": 60, + "momentum_score": 65, + "theme_score": 40, + "risk_score": 75, + "social_buzz_score": 85, + "brief_analysis": "RIME's YTD performance is good, but a lack of clear theme and recent flat performance are concerns. High social buzz from KOLs suggests speculative interest, contributing to a higher risk score." + }, + "IPGP": { + "symbol": "IPGP", + "overall_score": 58, + "momentum_score": 60, + "theme_score": 45, + "risk_score": 70, + "social_buzz_score": 70, + "brief_analysis": "IPGP shows decent YTD performance but recent negative momentum and an undefined theme limit its attractiveness. KOL backing provides some social buzz, but the overall risk is elevated due to recent volatility." + }, + "SOLS": { + "symbol": "SOLS", + "overall_score": 55, + "momentum_score": 60, + "theme_score": 40, + "risk_score": 68, + "social_buzz_score": 70, + "brief_analysis": "SOLS has fair YTD performance but negative recent momentum and an unstated theme. KOL backing generates some social buzz, but the lack of clear direction and recent dips contribute to moderate risk." + }, + "IRDM": { + "symbol": "IRDM", + "overall_score": 70, + "momentum_score": 70, + "theme_score": 80, + "risk_score": 60, + "social_buzz_score": 75, + "brief_analysis": "IRDM benefits from a strong Defense theme (DSCS) and consistent YTD performance. KOL backing provides good social buzz, and its stable performance suggests a moderate risk level." + }, + "CRCL": { + "symbol": "CRCL", + "overall_score": 85, + "momentum_score": 88, + "theme_score": 90, + "risk_score": 70, + "social_buzz_score": 85, + "brief_analysis": "CRCL demonstrates strong momentum, especially with its significant specific date performance, and is highly relevant to the hot Fintech & Crypto Stablecoin theme. High social buzz from KOLs indicates strong investor interest, though the crypto space carries inherent risk." + }, + "SKM": { + "symbol": "SKM", + "overall_score": 62, + "momentum_score": 65, + "theme_score": 80, + "risk_score": 75, + "social_buzz_score": 70, + "brief_analysis": "SKM has a strong Anthropic theme but recent negative momentum. While YTD performance is positive, the recent dip and inherent volatility of emerging tech contribute to a higher risk score despite KOL backing." + }, + "ASTI": { + "symbol": "ASTI", + "overall_score": 50, + "momentum_score": 45, + "theme_score": 70, + "risk_score": 80, + "social_buzz_score": 65, + "brief_analysis": "ASTI has a relevant Aerospace theme but shows significant negative recent momentum and only modest YTD gains. The high volatility and recent price drops contribute to a high risk score, despite some KOL attention." + }, + "KLIC": { + "symbol": "KLIC", + "overall_score": 58, + "momentum_score": 60, + "theme_score": 40, + "risk_score": 65, + "social_buzz_score": 60, + "brief_analysis": "KLIC has decent YTD performance but recent negative momentum and no clear theme. Social buzz is moderate, and the lack of a strong narrative combined with recent dips suggests a moderate risk profile." + }, + "HIMX": { + "symbol": "HIMX", + "overall_score": 65, + "momentum_score": 75, + "theme_score": 40, + "risk_score": 70, + "social_buzz_score": 50, + "brief_analysis": "HIMX shows very strong recent momentum but weaker YTD performance and no stated theme. The absence of KOL backing limits social buzz, and its recent surge could indicate higher volatility and risk." + }, + "Q": { + "symbol": "Q", + "overall_score": 55, + "momentum_score": 60, + "theme_score": 40, + "risk_score": 65, + "social_buzz_score": 40, + "brief_analysis": "Q has moderate YTD performance but negative recent momentum and no clear theme. The absence of KOL backing results in low social buzz, and its performance suggests moderate risk." + }, + "NBIS": { + "symbol": "NBIS", + "overall_score": 80, + "momentum_score": 85, + "theme_score": 90, + "risk_score": 60, + "social_buzz_score": 90, + "brief_analysis": "NBIS exhibits strong recent momentum and a highly relevant AI Hyperscaler theme. Significant KOL backing from a top contributor drives high social buzz, making it an attractive play with moderate risk." + }, + "NVTS": { + "symbol": "NVTS", + "overall_score": 68, + "momentum_score": 75, + "theme_score": 40, + "risk_score": 70, + "social_buzz_score": 40, + "brief_analysis": "NVTS shows strong recent momentum and impressive specific date performance, but its YTD is solely based on recent gains and lacks a stated theme. The absence of KOL backing results in low social buzz, and its sharp recent rise suggests higher risk." + }, + "PPTA": { + "symbol": "PPTA", + "overall_score": 65, + "momentum_score": 70, + "theme_score": 40, + "risk_score": 75, + "social_buzz_score": 80, + "brief_analysis": "PPTA shows good YTD momentum despite recent dips, indicating underlying strength. The lack of a defined theme and sector, however, increases its risk profile, though strong KOL backing provides a significant social buzz boost." + }, + "PL": { + "symbol": "PL", + "overall_score": 78, + "momentum_score": 75, + "theme_score": 85, + "risk_score": 60, + "social_buzz_score": 70, + "brief_analysis": "PL benefits from a strong Aerospace theme, aligning with current market trends, and solid YTD performance. While recent performance is down, the thematic relevance and KOL backing make it attractive, with moderate risk." + }, + "STM": { + "symbol": "STM", + "overall_score": 68, + "momentum_score": 65, + "theme_score": 80, + "risk_score": 65, + "social_buzz_score": 50, + "brief_analysis": "STM has a strong Aerospace theme and decent YTD performance, but recent price action is negative. The absence of a top contributor for social buzz slightly dampens its overall appeal, placing it at a moderate risk level." + }, + "VOXR": { + "symbol": "VOXR", + "overall_score": 60, + "momentum_score": 60, + "theme_score": 55, + "risk_score": 70, + "social_buzz_score": 60, + "brief_analysis": "VOXR's Precious Metal theme is less 'hot' than others, and recent performance is negative despite positive YTD. The presence of a KOL provides some social buzz, but the overall risk is elevated due to sector volatility and lack of a top contributor." + }, + "UUUU": { + "symbol": "UUUU", + "overall_score": 62, + "momentum_score": 50, + "theme_score": 80, + "risk_score": 75, + "social_buzz_score": 85, + "brief_analysis": "UUUU benefits from a strong Nuclear theme and significant KOL backing, but its momentum has been weak recently, especially on the specific date. This combination of strong theme and high social buzz, offset by recent underperformance, suggests higher risk." + }, + "AREC": { + "symbol": "AREC", + "overall_score": 65, + "momentum_score": 55, + "theme_score": 70, + "risk_score": 70, + "social_buzz_score": 80, + "brief_analysis": "AREC's Rare Earth theme is relevant, and it has strong KOL backing, but its momentum is moderate. The recent negative performance and inherent volatility in the rare earth sector contribute to a higher risk score." + }, + "CPSH": { + "symbol": "CPSH", + "overall_score": 60, + "momentum_score": 55, + "theme_score": 50, + "risk_score": 80, + "social_buzz_score": 85, + "brief_analysis": "CPSH shows strong social buzz with KOL backing, but its 'Material' theme is less compelling than others, and recent performance is significantly negative. The high volatility, especially on the specific date, indicates a high-risk profile despite decent YTD gains." + }, + "LFMD": { + "symbol": "LFMD", + "overall_score": 85, + "momentum_score": 95, + "theme_score": 90, + "risk_score": 70, + "social_buzz_score": 65, + "brief_analysis": "LFMD exhibits exceptional recent momentum and a highly relevant GLP-1 theme, making it very attractive. While the social buzz is moderate, the strong performance and thematic alignment outweigh the inherent biotech risk." + }, + "CRML": { + "symbol": "CRML", + "overall_score": 70, + "momentum_score": 60, + "theme_score": 75, + "risk_score": 65, + "social_buzz_score": 75, + "brief_analysis": "CRML benefits from a Defense & Strategic Resources theme with a specific 'Greenland' focus, and good social buzz. Its momentum is moderate, and while the theme is strong, the specific niche might limit broader appeal, leading to moderate risk." + }, + "NEE": { + "symbol": "NEE", + "overall_score": 72, + "momentum_score": 65, + "theme_score": 90, + "risk_score": 55, + "social_buzz_score": 30, + "brief_analysis": "NEE's AI Energy theme is highly relevant and forward-looking, giving it a strong theme score. Despite moderate momentum and low social buzz, its strong thematic play and relatively lower risk make it an attractive long-term prospect." + }, + "KTOS": { + "symbol": "KTOS", + "overall_score": 75, + "momentum_score": 50, + "theme_score": 90, + "risk_score": 60, + "social_buzz_score": 80, + "brief_analysis": "KTOS has a very strong Defense theme and significant social buzz from KOLs, making it highly attractive thematically. While recent momentum is negative, the strong sector relevance and social backing provide a solid foundation with moderate risk." + }, + "COHU": { + "symbol": "COHU", + "overall_score": 55, + "momentum_score": 50, + "theme_score": 40, + "risk_score": 70, + "social_buzz_score": 30, + "brief_analysis": "COHU lacks a defined theme and sector, and its momentum is weak, especially on the specific date. The absence of KOL backing results in low social buzz, contributing to a higher risk profile and lower overall attractiveness." + }, + "AIRO": { + "symbol": "AIRO", + "overall_score": 68, + "momentum_score": 45, + "theme_score": 85, + "risk_score": 70, + "social_buzz_score": 85, + "brief_analysis": "AIRO benefits from a strong Drone theme within Defense and excellent social buzz. However, its momentum is currently weak, indicating higher volatility and risk despite the strong thematic relevance and KOL support." + }, + "ASTS": { + "symbol": "ASTS", + "overall_score": 65, + "momentum_score": 40, + "theme_score": 85, + "risk_score": 75, + "social_buzz_score": 80, + "brief_analysis": "ASTS has a compelling Aerospace theme and strong social buzz, but its momentum is currently very low. The high-growth, high-risk nature of space technology, combined with recent underperformance, elevates its risk score." + }, + "RDW": { + "symbol": "RDW", + "overall_score": 68, + "momentum_score": 50, + "theme_score": 85, + "risk_score": 70, + "social_buzz_score": 85, + "brief_analysis": "RDW possesses a strong Aerospace theme and excellent social buzz, with a notable positive specific date performance. Despite moderate YTD momentum, the thematic relevance and KOL backing make it attractive, though with inherent aerospace sector risk." + }, + "MP": { + "symbol": "MP", + "overall_score": 45, + "momentum_score": 50, + "theme_score": 30, + "risk_score": 60, + "social_buzz_score": 20, + "brief_analysis": "MP shows moderate YTD performance but lacks a clear thematic play and social buzz. The absence of specific sector/theme information and KOL backing contributes to a lower overall attractiveness and social buzz score." + }, + "VPG": { + "symbol": "VPG", + "overall_score": 65, + "momentum_score": 55, + "theme_score": 75, + "risk_score": 65, + "social_buzz_score": 70, + "brief_analysis": "VPG benefits from the strong Robotics theme and notable KOL backing, boosting its theme and social buzz scores. Its YTD performance is decent, but recent volatility and a significant drop on a specific date indicate higher risk." + }, + "MRCY": { + "symbol": "MRCY", + "overall_score": 60, + "momentum_score": 45, + "theme_score": 80, + "risk_score": 70, + "social_buzz_score": 75, + "brief_analysis": "MRCY is strong in the Defense theme with good KOL backing, leading to high theme and social buzz scores. However, its recent negative performance and significant drop on a specific date suggest higher risk and lower momentum." + }, + "LEXX": { + "symbol": "LEXX", + "overall_score": 55, + "momentum_score": 65, + "theme_score": 35, + "risk_score": 60, + "social_buzz_score": 65, + "brief_analysis": "LEXX has decent YTD momentum and some social buzz from KOLs. The lack of a defined theme, however, limits its overall attractiveness despite positive recent performance." + }, + "ACMR": { + "symbol": "ACMR", + "overall_score": 68, + "momentum_score": 40, + "theme_score": 90, + "risk_score": 80, + "social_buzz_score": 80, + "brief_analysis": "ACMR is highly attractive due to its strong AI Chip theme and significant KOL backing. Despite a recent sharp decline on a specific date, indicating high risk and lower momentum, its thematic relevance and social buzz remain strong." + }, + "LTRX": { + "symbol": "LTRX", + "overall_score": 40, + "momentum_score": 50, + "theme_score": 30, + "risk_score": 55, + "social_buzz_score": 20, + "brief_analysis": "LTRX shows modest positive momentum but suffers from a lack of a defined theme and social media presence. The absence of KOL backing and specific thematic information limits its overall appeal." + }, + "OPRA": { + "symbol": "OPRA", + "overall_score": 70, + "momentum_score": 60, + "theme_score": 85, + "risk_score": 65, + "social_buzz_score": 85, + "brief_analysis": "OPRA benefits from a strong AI Distribution theme and significant KOL backing, driving high theme and social buzz scores. Its positive performance on a specific date indicates potential, though recent YTD is modest." + }, + "FLY": { + "symbol": "FLY", + "overall_score": 75, + "momentum_score": 80, + "theme_score": 80, + "risk_score": 70, + "social_buzz_score": 75, + "brief_analysis": "FLY exhibits strong recent momentum and is well-aligned with the Aerospace theme, supported by KOLs. Despite a negative YTD, its strong recent performance and thematic relevance make it attractive, though with inherent volatility." + }, + "POET": { + "symbol": "POET", + "overall_score": 72, + "momentum_score": 65, + "theme_score": 85, + "risk_score": 75, + "social_buzz_score": 80, + "brief_analysis": "POET has a compelling Photonics theme and strong KOL backing, leading to high theme and social buzz scores. Its significant positive performance on a specific date suggests high potential, but also implies higher risk due to volatility." + }, + "TE": { + "symbol": "TE", + "overall_score": 70, + "momentum_score": 70, + "theme_score": 70, + "risk_score": 70, + "social_buzz_score": 80, + "brief_analysis": "TE shows strong recent momentum and has a relevant Solar theme with good KOL backing. Despite a negative YTD, its recent positive performance and social buzz contribute to a solid overall score, albeit with moderate risk." + }, + "VOYG": { + "symbol": "VOYG", + "overall_score": 65, + "momentum_score": 55, + "theme_score": 80, + "risk_score": 65, + "social_buzz_score": 80, + "brief_analysis": "VOYG aligns well with the Aerospace theme and has strong social buzz due to KOL backing. While its YTD performance is negative, recent positive movement and thematic relevance make it an interesting play with moderate risk." + }, + "JOYY": { + "symbol": "JOYY", + "overall_score": 68, + "momentum_score": 60, + "theme_score": 85, + "risk_score": 60, + "social_buzz_score": 70, + "brief_analysis": "JOYY benefits from a strong AI Distribution theme and KOL backing, contributing to high theme and social buzz scores. Despite a negative YTD, its recent positive momentum and thematic relevance make it attractive." + }, + "SYNA": { + "symbol": "SYNA", + "overall_score": 65, + "momentum_score": 45, + "theme_score": 85, + "risk_score": 70, + "social_buzz_score": 60, + "brief_analysis": "SYNA has a very strong AI IoT theme, making it highly relevant to current market trends. While momentum is weak and risk is moderate, its thematic strength and some KOL backing provide a good foundation." + }, + "CEPT": { + "symbol": "CEPT", + "overall_score": 70, + "momentum_score": 40, + "theme_score": 90, + "risk_score": 80, + "social_buzz_score": 85, + "brief_analysis": "CEPT is highly attractive due to its strong RWA theme within Fintech & Crypto, and significant KOL backing. Despite negative momentum, its thematic relevance and social buzz position it as a high-risk, high-reward play." + }, + "ONDS": { + "symbol": "ONDS", + "overall_score": 68, + "momentum_score": 65, + "theme_score": 75, + "risk_score": 70, + "social_buzz_score": 80, + "brief_analysis": "ONDS shows good recent momentum and a relevant Drone theme, supported by strong KOL backing. Despite a negative YTD, its thematic appeal and social buzz make it an interesting, albeit moderately risky, investment." + }, + "SATS": { + "symbol": "SATS", + "overall_score": 45, + "momentum_score": 30, + "theme_score": 70, + "risk_score": 70, + "social_buzz_score": 60, + "brief_analysis": "SATS shows weak momentum with negative YTD performance, but its Aerospace theme is relevant. The presence of KOLs provides some social buzz, though its micro-cap nature implies higher risk." + }, + "LPTH": { + "symbol": "LPTH", + "overall_score": 35, + "momentum_score": 20, + "theme_score": 65, + "risk_score": 80, + "social_buzz_score": 70, + "brief_analysis": "LPTH exhibits poor momentum with significant YTD declines. Photonics is a strong thematic play, and a dedicated KOL boosts its social buzz, but its performance suggests high risk." + }, + "TMC": { + "symbol": "TMC", + "overall_score": 40, + "momentum_score": 25, + "theme_score": 75, + "risk_score": 85, + "social_buzz_score": 75, + "brief_analysis": "TMC has negative momentum, but the Rare Earth theme is highly relevant for future technologies. Strong KOL backing drives social buzz, but its micro-cap status and volatility contribute to high risk." + }, + "SHMD": { + "symbol": "SHMD", + "overall_score": 40, + "momentum_score": 20, + "theme_score": 80, + "risk_score": 80, + "social_buzz_score": 70, + "brief_analysis": "SHMD's momentum is very weak with substantial YTD losses. However, its AI PCB theme is extremely strong and relevant. KOL backing provides social buzz, but its performance indicates high risk." + }, + "RKLB": { + "symbol": "RKLB", + "overall_score": 45, + "momentum_score": 30, + "theme_score": 70, + "risk_score": 70, + "social_buzz_score": 65, + "brief_analysis": "RKLB displays negative momentum, but the Aerospace theme remains strong. It benefits from KOL attention, suggesting moderate social buzz, but its performance indicates a moderate to high risk profile." + }, + "CRSP": { + "symbol": "CRSP", + "overall_score": 30, + "momentum_score": 15, + "theme_score": 70, + "risk_score": 90, + "brief_analysis": "CRSP shows very poor momentum with significant recent declines. Gene Editing is a strong thematic play, but the lack of KOLs results in low social buzz, and its volatility suggests very high risk." + }, + "DPRO": { + "symbol": "DPRO", + "overall_score": 45, + "momentum_score": 35, + "theme_score": 75, + "risk_score": 75, + "social_buzz_score": 70, + "brief_analysis": "DPRO has slightly positive recent momentum but negative YTD performance. The Drone theme within Defense is highly relevant, and strong KOL backing boosts social buzz, but it carries significant risk." + }, + "ZETA": { + "symbol": "ZETA", + "overall_score": 50, + "momentum_score": 40, + "theme_score": 85, + "risk_score": 70, + "social_buzz_score": 75, + "brief_analysis": "ZETA has mixed momentum but a very strong AI Agent theme, which is highly relevant. Strong KOL backing provides significant social buzz, making it an interesting, albeit risky, thematic play." + }, + "VELO": { + "symbol": "VELO", + "overall_score": 60, + "momentum_score": 70, + "theme_score": 70, + "risk_score": 80, + "social_buzz_score": 80, + "brief_analysis": "VELO shows strong recent momentum despite negative YTD, with a highly relevant Aerospace theme. Excellent KOL backing drives high social buzz, but its volatility and past performance indicate high risk." + }, + "TMQ": { + "symbol": "TMQ", + "overall_score": 25, + "momentum_score": 20, + "theme_score": 30, + "risk_score": 70, + "social_buzz_score": 10, + "brief_analysis": "TMQ exhibits weak momentum and lacks a specified strong theme or KOL backing. This results in low social buzz and a higher risk profile due to lack of clear drivers." + }, + "IDR": { + "symbol": "IDR", + "overall_score": 25, + "momentum_score": 20, + "theme_score": 30, + "risk_score": 70, + "social_buzz_score": 10, + "brief_analysis": "IDR has poor momentum and no clear thematic play or KOL support. This combination leads to low social buzz and a higher risk assessment due to lack of identifiable catalysts." + }, + "OSCR": { + "symbol": "OSCR", + "overall_score": 40, + "momentum_score": 30, + "theme_score": 50, + "risk_score": 65, + "social_buzz_score": 65, + "brief_analysis": "OSCR shows weak momentum, and while Healthcare is a broad theme, it's not as 'hot' as others. KOL backing provides some social buzz, but its performance suggests moderate risk." + }, + "GLXY": { + "symbol": "GLXY", + "overall_score": 60, + "momentum_score": 60, + "theme_score": 85, + "risk_score": 70, + "social_buzz_score": 80, + "brief_analysis": "GLXY has positive recent momentum and a very strong AI Hyperscaler theme, highly relevant to current trends. Strong KOL backing generates significant social buzz, making it an attractive, albeit risky, play." + }, + "BKKT": { + "symbol": "BKKT", + "overall_score": 55, + "momentum_score": 50, + "theme_score": 80, + "risk_score": 75, + "social_buzz_score": 75, + "brief_analysis": "BKKT shows recent positive momentum despite negative YTD, with a strong RWA theme in the crypto space. Notable KOL backing contributes to high social buzz, but crypto assets inherently carry higher risk." + }, + "ALMU": { + "symbol": "ALMU", + "overall_score": 35, + "momentum_score": 25, + "theme_score": 65, + "risk_score": 80, + "social_buzz_score": 70, + "brief_analysis": "ALMU exhibits weak momentum with significant YTD declines. Photonics is a strong thematic play, and a dedicated KOL boosts its social buzz, but its performance suggests high risk." + }, + "AVAV": { + "symbol": "AVAV", + "overall_score": 45, + "momentum_score": 30, + "theme_score": 70, + "risk_score": 75, + "social_buzz_score": 60, + "brief_analysis": "AVAV's drone theme is strong, but its negative YTD performance indicates poor momentum. The presence of a KOL provides some social buzz, but the overall high volatility suggests significant risk." + }, + "ETOR": { + "symbol": "ETOR", + "overall_score": 50, + "momentum_score": 35, + "theme_score": 80, + "risk_score": 80, + "social_buzz_score": 70, + "brief_analysis": "ETOR benefits from a strong crypto theme and KOL backing, contributing to decent social buzz. However, its negative YTD performance and inherent crypto volatility lead to a high risk score and moderate momentum." + }, + "COUR": { + "symbol": "COUR", + "overall_score": 55, + "momentum_score": 40, + "theme_score": 85, + "risk_score": 70, + "social_buzz_score": 80, + "brief_analysis": "COUR's AI Education theme is highly relevant, and strong KOL backing drives significant social buzz. While YTD performance is negative, the theme and social attention offer potential, though it remains a higher-risk play." + }, + "G": { + "symbol": "G", + "overall_score": 25, + "momentum_score": 20, + "theme_score": 10, + "risk_score": 65, + "social_buzz_score": 10, + "brief_analysis": "G lacks a defined theme and KOL backing, resulting in low theme and social buzz scores. Its negative YTD performance indicates weak momentum, making it an unattractive investment with moderate risk." + }, + "INOD": { + "symbol": "INOD", + "overall_score": 40, + "momentum_score": 30, + "theme_score": 80, + "risk_score": 75, + "social_buzz_score": 50, + "brief_analysis": "INOD's AI Data theme is strong and relevant, but its momentum is poor with significant YTD losses. The presence of a KOL offers some social buzz, but the overall high risk needs careful consideration." + }, + "FIGR": { + "symbol": "FIGR", + "overall_score": 60, + "momentum_score": 65, + "theme_score": 85, + "risk_score": 85, + "social_buzz_score": 75, + "brief_analysis": "FIGR shows strong recent momentum and a highly relevant RWA theme within Fintech & Crypto. Despite negative YTD, strong KOL backing and recent positive performance boost its scores, though it carries very high risk." + }, + "CHYM": { + "symbol": "CHYM", + "overall_score": 35, + "momentum_score": 25, + "theme_score": 60, + "risk_score": 70, + "social_buzz_score": 65, + "brief_analysis": "CHYM's Neobanking theme is moderately relevant, and it has decent KOL backing for social buzz. However, its consistently negative performance across all periods indicates very weak momentum and higher risk." + }, + "RXRX": { + "symbol": "RXRX", + "overall_score": 50, + "momentum_score": 35, + "theme_score": 90, + "risk_score": 80, + "social_buzz_score": 55, + "brief_analysis": "RXRX benefits from a highly attractive AI Medicine theme, but its momentum is weak with significant YTD losses. The biotech sector inherently carries high risk, balanced by some KOL attention." + }, + "NB": { + "symbol": "NB", + "overall_score": 45, + "momentum_score": 30, + "theme_score": 70, + "risk_score": 70, + "social_buzz_score": 70, + "brief_analysis": "NB's Rare Earth theme is relevant, and it has strong KOL backing, boosting its social buzz. However, its negative YTD performance indicates poor momentum, and the sector can be volatile, leading to moderate risk." + }, + "DNA": { + "symbol": "DNA", + "overall_score": 20, + "momentum_score": 20, + "theme_score": 10, + "risk_score": 70, + "social_buzz_score": 10, + "brief_analysis": "DNA lacks a clear theme and KOL backing, resulting in very low scores for theme and social buzz. Its consistently negative performance across all periods indicates very weak momentum and high risk." + }, + "OKLO": { + "symbol": "OKLO", + "overall_score": 40, + "momentum_score": 25, + "theme_score": 80, + "risk_score": 80, + "social_buzz_score": 70, + "brief_analysis": "OKLO's SMR Nuclear theme is highly relevant and futuristic, with good KOL backing for social buzz. However, its significant negative YTD performance points to weak momentum and high inherent risk in this emerging sector." + }, + "SYM": { + "symbol": "SYM", + "overall_score": 40, + "momentum_score": 25, + "theme_score": 75, + "risk_score": 75, + "social_buzz_score": 65, + "brief_analysis": "SYM's Robotics theme is strong and forward-looking, with decent KOL backing. Despite this, its momentum is poor with substantial YTD losses, indicating high risk and a need for improved performance." + }, + "DARE": { + "symbol": "DARE", + "overall_score": 30, + "momentum_score": 20, + "theme_score": 50, + "risk_score": 80, + "social_buzz_score": 70, + "brief_analysis": "DARE's Healthcare theme is broad, and it has strong KOL backing, boosting social buzz. However, its consistently negative and significant performance across all periods indicates very weak momentum and high risk." + }, + "EVLV": { + "symbol": "EVLV", + "overall_score": 45, + "momentum_score": 30, + "theme_score": 80, + "risk_score": 75, + "social_buzz_score": 60, + "brief_analysis": "EVLV's AI Detector theme is highly relevant, and it has a notable KOL for social buzz. Despite a recent positive day, its YTD performance is poor, indicating weak momentum and high risk in this specialized AI niche." + }, + "PATH": { + "symbol": "PATH", + "overall_score": 45, + "momentum_score": 30, + "theme_score": 85, + "risk_score": 75, + "social_buzz_score": 70, + "brief_analysis": "PATH's AI Agent theme is very strong and timely, with good KOL backing for social buzz. While it shows some recent positive movement, its significant YTD decline suggests poor momentum and high risk." + }, + "GEMI": { + "symbol": "GEMI", + "overall_score": 45, + "momentum_score": 20, + "theme_score": 70, + "risk_score": 80, + "social_buzz_score": 65, + "brief_analysis": "GEMI shows poor momentum with significant YTD losses, indicating high risk. However, its crypto theme remains relevant, and notable KOL backing provides some social buzz, partially offsetting performance concerns." + }, + "SMR": { + "symbol": "SMR", + "overall_score": 50, + "momentum_score": 25, + "theme_score": 80, + "risk_score": 75, + "social_buzz_score": 60, + "brief_analysis": "SMR's momentum is weak with substantial YTD declines, pointing to elevated risk. The SMR Nuclear theme is highly relevant for 2025-2026, and KOL backing contributes to its social presence." + }, + "CERT": { + "symbol": "CERT", + "overall_score": 48, + "momentum_score": 25, + "theme_score": 85, + "risk_score": 70, + "social_buzz_score": 50, + "brief_analysis": "CERT exhibits negative momentum and high risk, typical for early-stage biotech. Its AI Medicine theme is very strong, but the lack of a top contributor limits its social buzz." + }, + "NVO": { + "symbol": "NVO", + "overall_score": 55, + "momentum_score": 20, + "theme_score": 90, + "risk_score": 65, + "social_buzz_score": 70, + "brief_analysis": "NVO's momentum is poor, but the GLP-1 theme is exceptionally strong and highly relevant. Despite recent performance, strong KOL backing from a single source boosts its social buzz and thematic appeal." + }, + "IONQ": { + "symbol": "IONQ", + "overall_score": 55, + "momentum_score": 20, + "theme_score": 95, + "risk_score": 85, + "social_buzz_score": 75, + "brief_analysis": "IONQ has weak momentum and high risk, common for emerging tech. Its Quantum Computing theme is a top trend, and strong KOL backing from two sources significantly enhances its social buzz." + }, + "PPSI": { + "symbol": "PPSI", + "overall_score": 45, + "momentum_score": 20, + "theme_score": 80, + "risk_score": 75, + "social_buzz_score": 45, + "brief_analysis": "PPSI shows poor momentum and high risk, reflecting its early-stage AI Energy focus. The theme is strong, but limited social buzz due to only one KOL mention impacts its overall attractiveness." + }, + "HIMS": { + "symbol": "HIMS", + "overall_score": 60, + "momentum_score": 60, + "theme_score": 60, + "risk_score": 60, + "social_buzz_score": 70, + "brief_analysis": "HIMS demonstrates strong recent momentum despite negative YTD performance, indicating potential turnaround. Its healthcare theme is stable, and consistent KOL backing provides good social buzz." + }, + "RGTI": { + "symbol": "RGTI", + "overall_score": 50, + "momentum_score": 15, + "theme_score": 90, + "risk_score": 90, + "social_buzz_score": 70, + "brief_analysis": "RGTI exhibits very weak momentum and extremely high risk, typical for micro-cap quantum computing. The Quantum Computing theme is highly relevant, and KOL backing provides some social visibility." + }, + "RBRK": { + "symbol": "RBRK", + "overall_score": 48, + "momentum_score": 20, + "theme_score": 75, + "risk_score": 70, + "social_buzz_score": 45, + "brief_analysis": "RBRK has poor momentum and high risk. The Cybersecurity theme is consistently relevant, but the absence of a top contributor limits its social buzz, affecting overall appeal." + }, + "WRD": { + "symbol": "WRD", + "overall_score": 55, + "momentum_score": 50, + "theme_score": 80, + "risk_score": 70, + "social_buzz_score": 70, + "brief_analysis": "WRD shows decent recent momentum despite negative YTD performance, indicating some investor interest. The Robotaxi theme is forward-looking and strong, with good KOL backing boosting social buzz." + }, + "ZENA": { + "symbol": "ZENA", + "overall_score": 35, + "momentum_score": 15, + "theme_score": 65, + "risk_score": 80, + "social_buzz_score": 20, + "brief_analysis": "ZENA has very poor momentum and high risk, with significant YTD losses. The Drone theme is relevant but lacks the 'hot' factor, and the absence of any KOL backing results in very low social buzz." + }, + "LMND": { + "symbol": "LMND", + "overall_score": 50, + "momentum_score": 30, + "theme_score": 85, + "risk_score": 65, + "social_buzz_score": 65, + "brief_analysis": "LMND shows slightly positive recent momentum but negative YTD, indicating volatility. Its AI Insurance theme is strong and disruptive, and dual KOL backing provides good social buzz." + }, + "HROW": { + "symbol": "HROW", + "overall_score": 40, + "momentum_score": 15, + "theme_score": 60, + "risk_score": 75, + "social_buzz_score": 60, + "brief_analysis": "HROW exhibits very weak momentum and high risk, with substantial YTD and specific date losses. The general Healthcare theme is less specific, but consistent KOL backing provides some social visibility." + }, + "INFQ": { + "symbol": "INFQ", + "overall_score": 45, + "momentum_score": 10, + "theme_score": 90, + "risk_score": 95, + "social_buzz_score": 65, + "brief_analysis": "INFQ has extremely poor momentum and very high risk, typical for a nascent quantum computing company. The Quantum Computing theme is highly attractive, and KOL backing provides some social buzz despite performance." + }, + "AMBA": { + "symbol": "AMBA", + "overall_score": 45, + "momentum_score": 20, + "theme_score": 70, + "risk_score": 70, + "social_buzz_score": 70, + "brief_analysis": "AMBA shows poor momentum and high risk. While its Semis/Optics/Edge AI theme is strong, the Drone application is less prominent. Strong and consistent KOL backing boosts its social buzz." + }, + "QUBT": { + "symbol": "QUBT", + "overall_score": 45, + "momentum_score": 20, + "theme_score": 85, + "risk_score": 80, + "social_buzz_score": 60, + "brief_analysis": "QUBT's strong Quantum Computing theme is highly relevant for 2025-2026, boosting its theme score despite poor YTD performance. The presence of a KOL provides some social buzz, but high volatility and negative momentum contribute to a high risk and low overall score." + }, + "MBLY": { + "symbol": "MBLY", + "overall_score": 40, + "momentum_score": 25, + "theme_score": 70, + "risk_score": 75, + "social_buzz_score": 70, + "brief_analysis": "MBLY benefits from the strong Robotics theme and notable KOL backing, which helps its social buzz. However, significant negative YTD performance indicates weak momentum, leading to a higher risk profile and a moderate overall score." + }, + "SLP": { + "symbol": "SLP", + "overall_score": 50, + "momentum_score": 30, + "theme_score": 90, + "risk_score": 70, + "social_buzz_score": 60, + "brief_analysis": "SLP's AI Medicine theme is exceptionally strong and relevant, driving a high theme score. While YTD performance is negative, recent 7-day performance is flat, and KOL backing provides some social buzz, but overall momentum remains weak." + }, + "SDGR": { + "symbol": "SDGR", + "overall_score": 55, + "momentum_score": 35, + "theme_score": 90, + "risk_score": 65, + "social_buzz_score": 65, + "brief_analysis": "SDGR's AI Medicine theme is highly attractive, and its recent performance shows some positive signs despite a negative YTD. KOL backing contributes to social buzz, and while still risky, it appears slightly less volatile than peers." + }, + "PGNY": { + "symbol": "PGNY", + "overall_score": 35, + "momentum_score": 20, + "theme_score": 50, + "risk_score": 70, + "social_buzz_score": 55, + "brief_analysis": "PGNY's general Healthcare theme is less specific than AI Medicine, resulting in a lower theme score. Poor YTD performance and negative recent trends indicate weak momentum, and while there's KOL backing, the overall risk is high for the potential reward." + }, + "CAI": { + "symbol": "CAI", + "overall_score": 48, + "momentum_score": 25, + "theme_score": 90, + "risk_score": 75, + "social_buzz_score": 75, + "brief_analysis": "CAI benefits from a very strong AI Medicine theme and strong KOL backing from a top contributor, boosting its social buzz. However, significant negative YTD performance and recent declines indicate poor momentum and high risk." + }, + "QBTS": { + "symbol": "QBTS", + "overall_score": 38, + "momentum_score": 15, + "theme_score": 85, + "risk_score": 85, + "social_buzz_score": 30, + "brief_analysis": "QBTS's Quantum Computing theme is highly relevant, but its momentum is very weak with significant YTD and recent declines. The lack of KOL backing results in low social buzz, contributing to a high risk and low overall score." + }, + "ENVX": { + "symbol": "ENVX", + "overall_score": 35, + "momentum_score": 15, + "theme_score": 60, + "risk_score": 80, + "social_buzz_score": 70, + "brief_analysis": "ENVX's Battery theme is relevant, and it has strong KOL backing, but its momentum is very poor with significant YTD and recent losses. This combination of weak performance and high volatility leads to a high risk and low overall attractiveness." + }, + "SES": { + "symbol": "SES", + "overall_score": 25, + "momentum_score": 20, + "theme_score": 30, + "risk_score": 85, + "social_buzz_score": 20, + "brief_analysis": "SES lacks a specified strong theme and KOL backing, resulting in low theme and social buzz scores. Despite a positive 7-day performance, its YTD is significantly negative, indicating high risk and very weak overall momentum." + }, + "GTLB": { + "symbol": "GTLB", + "overall_score": 40, + "momentum_score": 20, + "theme_score": 80, + "risk_score": 75, + "social_buzz_score": 70, + "brief_analysis": "GTLB's AI Agent theme is strong and relevant, and it has good KOL backing, boosting its social buzz. However, significant negative YTD and recent performance indicate weak momentum, contributing to a high risk profile and moderate overall score." + }, + "CRNC": { + "symbol": "CRNC", + "overall_score": 38, + "momentum_score": 18, + "theme_score": 70, + "risk_score": 80, + "social_buzz_score": 75, + "brief_analysis": "CRNC's Robotaxi theme is interesting, and it benefits from strong KOL backing, leading to high social buzz. However, very poor YTD performance and continued negative momentum indicate high risk and a low overall attractiveness." + }, + "CDLX": { + "symbol": "CDLX", + "overall_score": 30, + "momentum_score": 10, + "theme_score": 65, + "risk_score": 85, + "social_buzz_score": 20, + "brief_analysis": "CDLX's AI Data theme is relevant, but its momentum is extremely weak with significant YTD and recent declines. The absence of KOL backing results in very low social buzz, contributing to a very high risk and low overall score." + }, + "SNAP": { + "symbol": "SNAP", + "overall_score": 30, + "momentum_score": 10, + "theme_score": 60, + "risk_score": 80, + "social_buzz_score": 60, + "brief_analysis": "SNAP's AI Distribution theme is relevant, and it has some KOL backing, but its momentum is extremely poor with substantial YTD and recent losses. This combination of weak performance and high volatility leads to a high risk and low overall score." + }, + "KLAR": { + "symbol": "KLAR", + "overall_score": 45, + "momentum_score": 40, + "theme_score": 50, + "risk_score": 70, + "social_buzz_score": 70, + "brief_analysis": "KLAR shows strong recent positive momentum, despite a very poor YTD, which is a positive sign. While the BNPL theme is less 'hot' than AI, strong KOL backing boosts social buzz, making it a moderately risky but potentially interesting play." + }, + "U": { + "symbol": "U", + "overall_score": 35, + "momentum_score": 10, + "theme_score": 70, + "risk_score": 85, + "social_buzz_score": 70, + "brief_analysis": "U's AI adtech theme is relevant, and it has strong KOL backing, but its momentum is extremely weak with significant YTD losses. This indicates very high risk and low overall attractiveness despite the thematic relevance and social buzz." + }, + "SUUN": { + "symbol": "SUUN", + "overall_score": 25, + "momentum_score": 10, + "theme_score": 60, + "risk_score": 90, + "social_buzz_score": 15, + "brief_analysis": "SUUN exhibits extremely poor momentum with significant YTD losses, indicating strong downward pressure. While Aerospace is a relevant theme, the lack of KOL backing and substantial price decline suggest high risk and low investor confidence." + } +} \ No newline at end of file diff --git a/scores_gpt41nano.json b/scores_gpt41nano.json new file mode 100644 index 0000000..3166b01 --- /dev/null +++ b/scores_gpt41nano.json @@ -0,0 +1,1091 @@ +{ + "EQRLF": { + "symbol": "EQRLF", + "overall_score": 85, + "momentum_score": 90, + "theme_score": 50, + "risk_score": 30, + "social_buzz_score": 20, + "brief_analysis": "EQRLF shows exceptional YTD performance indicating strong momentum, but lacks clear thematic relevance and social buzz. Its overall attractiveness is high due to momentum, with moderate risk." + }, + "GDRZF": { + "symbol": "GDRZF", + "overall_score": 65, + "momentum_score": 70, + "theme_score": 40, + "risk_score": 60, + "social_buzz_score": 55, + "brief_analysis": "GDRZF has solid YTD gains but recent negative performance and limited social buzz reduce its attractiveness. The thematic play is niche, and risk is moderate to high." + }, + "AXTI": { + "symbol": "AXTI", + "overall_score": 78, + "momentum_score": 85, + "theme_score": 70, + "risk_score": 40, + "social_buzz_score": 65, + "brief_analysis": "AXTI demonstrates strong recent momentum and a relevant theme in photonics, supported by notable social media attention. Its risk is moderate, making it a promising pick." + }, + "AAOI": { + "symbol": "AAOI", + "overall_score": 70, + "momentum_score": 60, + "theme_score": 70, + "risk_score": 55, + "social_buzz_score": 50, + "brief_analysis": "AAOI has decent YTD performance and thematic relevance in photonics but recent negative momentum and social buzz are moderate. Risk is moderate." + }, + "FSLY": { + "symbol": "FSLY", + "overall_score": 75, + "momentum_score": 85, + "theme_score": 45, + "risk_score": 50, + "social_buzz_score": 60, + "brief_analysis": "FSLY shows strong recent performance and momentum, though lacking a specific thematic focus. Social buzz is moderate, with moderate risk." + }, + "ALM": { + "symbol": "ALM", + "overall_score": 60, + "momentum_score": 55, + "theme_score": 30, + "risk_score": 65, + "social_buzz_score": 40, + "brief_analysis": "ALM's performance is steady but unremarkable, with low thematic relevance and social buzz. Risk is moderate to high, limiting attractiveness." + }, + "AMPX": { + "symbol": "AMPX", + "overall_score": 80, + "momentum_score": 75, + "theme_score": 80, + "risk_score": 35, + "social_buzz_score": 70, + "brief_analysis": "AMPX benefits from strong thematic relevance in solid-state batteries and good momentum, supported by social media backing. Risk is relatively low." + }, + "UCTT": { + "symbol": "UCTT", + "overall_score": 65, + "momentum_score": 55, + "theme_score": 40, + "risk_score": 50, + "social_buzz_score": 45, + "brief_analysis": "UCTT shows modest recent gains and performance, with limited thematic and social buzz. Risk is moderate, with some potential for growth." + }, + "ICHR": { + "symbol": "ICHR", + "overall_score": 60, + "momentum_score": 50, + "theme_score": 35, + "risk_score": 55, + "social_buzz_score": 40, + "brief_analysis": "ICHR exhibits flat performance and low thematic relevance, with limited social buzz. Risk remains moderate, with uncertain growth prospects." + }, + "PSRHF": { + "symbol": "PSRHF", + "overall_score": 78, + "momentum_score": 80, + "theme_score": 75, + "risk_score": 40, + "social_buzz_score": 65, + "brief_analysis": "PSRHF shows strong momentum and thematic relevance in Helium 3, supported by social media attention. Its risk is moderate, making it attractive." + }, + "ATOM": { + "symbol": "ATOM", + "overall_score": 62, + "momentum_score": 55, + "theme_score": 30, + "risk_score": 70, + "social_buzz_score": 50, + "brief_analysis": "ATOM has modest recent gains with low thematic relevance and social buzz. High risk due to volatility limits its attractiveness." + }, + "INTT": { + "symbol": "INTT", + "overall_score": 65, + "momentum_score": 65, + "theme_score": 25, + "risk_score": 60, + "social_buzz_score": 45, + "brief_analysis": "INTT shows steady performance and momentum but limited thematic relevance. Risk is moderate, with some growth potential." + }, + "RCAT": { + "symbol": "RCAT", + "overall_score": 75, + "momentum_score": 80, + "theme_score": 65, + "risk_score": 50, + "social_buzz_score": 60, + "brief_analysis": "RCAT benefits from strong momentum and a relevant theme in defense drones, supported by social buzz. Risk remains moderate." + }, + "AEHR": { + "symbol": "AEHR", + "overall_score": 55, + "momentum_score": 40, + "theme_score": 20, + "risk_score": 70, + "social_buzz_score": 35, + "brief_analysis": "AEHR has underwhelming recent performance with low thematic relevance and social buzz. High risk and limited attractiveness." + }, + "UAMY": { + "symbol": "UAMY", + "overall_score": 58, + "momentum_score": 50, + "theme_score": 55, + "risk_score": 65, + "social_buzz_score": 45, + "brief_analysis": "UAMY shows modest gains with a niche theme in rare earths, supported by some social buzz. Risk is moderate to high." + }, + "LASR": { + "symbol": "LASR", + "overall_score": 75, + "momentum_score": 80, + "theme_score": 70, + "risk_score": 50, + "social_buzz_score": 65, + "brief_analysis": "LASR demonstrates strong YTD performance and thematic relevance in Defense, supported by notable KOLs. Moderate risk reflects sector volatility and recent performance stability." + }, + "UMAC": { + "symbol": "UMAC", + "overall_score": 82, + "momentum_score": 85, + "theme_score": 85, + "risk_score": 55, + "social_buzz_score": 70, + "brief_analysis": "UMAC shows impressive recent momentum and a highly relevant drone theme, with active social media backing. Slightly elevated risk due to sector volatility and rapid gains." + }, + "OSS": { + "symbol": "OSS", + "overall_score": 78, + "momentum_score": 75, + "theme_score": 70, + "risk_score": 55, + "social_buzz_score": 68, + "brief_analysis": "OSS maintains solid YTD gains in Defense, with good thematic relevance and social backing. Moderate risk from sector fluctuations and recent performance patterns." + }, + "RIME": { + "symbol": "RIME", + "overall_score": 60, + "momentum_score": 50, + "theme_score": 40, + "risk_score": 65, + "social_buzz_score": 55, + "brief_analysis": "RIME shows stable YTD performance but lacks recent momentum and thematic focus, with moderate social buzz. Higher risk due to inconsistent recent performance." + }, + "IPGP": { + "symbol": "IPGP", + "overall_score": 58, + "momentum_score": 45, + "theme_score": 35, + "risk_score": 60, + "social_buzz_score": 50, + "brief_analysis": "IPGP has moderate YTD gains but negative recent performance, with limited thematic relevance. Risk remains moderate with some social media presence." + }, + "SOLS": { + "symbol": "SOLS", + "overall_score": 55, + "momentum_score": 48, + "theme_score": 30, + "risk_score": 62, + "social_buzz_score": 45, + "brief_analysis": "SOLS shows stable YTD but weak recent momentum and low thematic relevance, with moderate social buzz. Risk is slightly elevated due to recent declines." + }, + "IRDM": { + "symbol": "IRDM", + "overall_score": 70, + "momentum_score": 65, + "theme_score": 60, + "risk_score": 50, + "social_buzz_score": 60, + "brief_analysis": "IRDM demonstrates consistent performance in Defense with steady momentum and moderate risk, supported by social backing. Attractive for sector-focused investors." + }, + "CRCL": { + "symbol": "CRCL", + "overall_score": 80, + "momentum_score": 85, + "theme_score": 80, + "risk_score": 55, + "social_buzz_score": 75, + "brief_analysis": "CRCL exhibits strong recent gains and thematic relevance in Stablecoins, with significant social media attention. Slightly higher risk due to crypto market volatility." + }, + "SKM": { + "symbol": "SKM", + "overall_score": 50, + "momentum_score": 45, + "theme_score": 40, + "risk_score": 70, + "social_buzz_score": 55, + "brief_analysis": "SKM shows negative recent performance and limited thematic focus, with moderate social buzz. Higher risk from sector and performance volatility." + }, + "ASTI": { + "symbol": "ASTI", + "overall_score": 45, + "momentum_score": 40, + "theme_score": 65, + "risk_score": 75, + "social_buzz_score": 50, + "brief_analysis": "ASTI faces recent declines and sector challenges, with a niche aerospace theme and limited social media presence. Elevated risk due to sector volatility." + }, + "KLIC": { + "symbol": "KLIC", + "overall_score": 60, + "momentum_score": 55, + "theme_score": 50, + "risk_score": 55, + "social_buzz_score": 50, + "brief_analysis": "KLIC maintains moderate performance with slight recent declines, with no strong thematic or social backing. Risk is average for sector stability." + }, + "HIMX": { + "symbol": "HIMX", + "overall_score": 85, + "momentum_score": 90, + "theme_score": 75, + "risk_score": 45, + "social_buzz_score": 80, + "brief_analysis": "HIMX shows exceptional recent momentum and social media attention, with a strong tech theme. Low to moderate risk makes it highly attractive." + }, + "Q": { + "symbol": "Q", + "overall_score": 65, + "momentum_score": 60, + "theme_score": 50, + "risk_score": 55, + "social_buzz_score": 50, + "brief_analysis": "Q demonstrates steady performance with moderate momentum and limited thematic focus. Risk remains average, with no notable social buzz." + }, + "NBIS": { + "symbol": "NBIS", + "overall_score": 78, + "momentum_score": 85, + "theme_score": 80, + "risk_score": 55, + "social_buzz_score": 70, + "brief_analysis": "NBIS shows strong recent gains and relevance in AI hyperscaling, supported by active social media backing. Slight sector risk due to AI market dynamics." + }, + "NVTS": { + "symbol": "NVTS", + "overall_score": 80, + "momentum_score": 85, + "theme_score": 60, + "risk_score": 50, + "social_buzz_score": 65, + "brief_analysis": "NVTS exhibits excellent recent momentum and moderate thematic relevance, with solid social media presence. Risk is relatively low, making it a promising asset." + }, + "PPTA": { + "symbol": "PPTA", + "overall_score": 55, + "momentum_score": 65, + "theme_score": 40, + "risk_score": 70, + "social_buzz_score": 50, + "brief_analysis": "PPTA shows moderate momentum with a positive YTD performance but recent decline. Lack of clear thematic relevance and limited social buzz contribute to a cautious overall score, though potential exists due to recent gains." + }, + "PL": { + "symbol": "PL", + "overall_score": 75, + "momentum_score": 70, + "theme_score": 80, + "risk_score": 55, + "social_buzz_score": 65, + "brief_analysis": "PL benefits from strong aerospace theme relevance and consistent performance, supported by notable KOL backing. Its momentum remains solid, making it a relatively attractive option with moderate risk." + }, + "STM": { + "symbol": "STM", + "overall_score": 60, + "momentum_score": 60, + "theme_score": 70, + "risk_score": 65, + "social_buzz_score": 40, + "brief_analysis": "STM maintains steady performance within aerospace, but limited social buzz and no prominent KOL support reduce its attractiveness. It offers moderate momentum with manageable risk." + }, + "VOXR": { + "symbol": "VOXR", + "overall_score": 58, + "momentum_score": 55, + "theme_score": 75, + "risk_score": 60, + "social_buzz_score": 45, + "brief_analysis": "VOXR's niche in precious metals and decent YTD gains provide some appeal, though social media attention is limited. Its thematic relevance boosts its overall attractiveness despite moderate risk." + }, + "UUUU": { + "symbol": "UUUU", + "overall_score": 50, + "momentum_score": 45, + "theme_score": 80, + "risk_score": 75, + "social_buzz_score": 55, + "brief_analysis": "UUUU's focus on nuclear energy is thematically relevant but recent performance and high volatility increase risk. Social buzz is moderate, making it a higher-risk speculative play." + }, + "AREC": { + "symbol": "AREC", + "overall_score": 65, + "momentum_score": 60, + "theme_score": 75, + "risk_score": 65, + "social_buzz_score": 60, + "brief_analysis": "AREC benefits from strong thematic relevance in rare earths and steady performance. Moderate momentum and social buzz support its investment potential with balanced risk." + }, + "CPSH": { + "symbol": "CPSH", + "overall_score": 55, + "momentum_score": 50, + "theme_score": 70, + "risk_score": 80, + "social_buzz_score": 55, + "brief_analysis": "CPSH's material theme is relevant but recent sharp decline and high volatility increase risk. Momentum is modest, and social buzz is average, making it a riskier speculative option." + }, + "LFMD": { + "symbol": "LFMD", + "overall_score": 78, + "momentum_score": 85, + "theme_score": 85, + "risk_score": 50, + "social_buzz_score": 70, + "brief_analysis": "LFMD exhibits strong momentum with impressive recent gains and high thematic relevance in GLP-1 biotech. Its lower risk profile and active social media presence make it highly attractive." + }, + "CRML": { + "symbol": "CRML", + "overall_score": 62, + "momentum_score": 55, + "theme_score": 65, + "risk_score": 60, + "social_buzz_score": 50, + "brief_analysis": "CRML's Greenland theme is niche but relevant, with modest recent performance. Its overall attractiveness is moderate, supported by steady momentum and social buzz." + }, + "NEE": { + "symbol": "NEE", + "overall_score": 68, + "momentum_score": 65, + "theme_score": 70, + "risk_score": 55, + "social_buzz_score": 40, + "brief_analysis": "NEE's AI energy theme aligns with current trends, and its performance remains stable. Limited social media attention slightly lowers its overall score, but it remains a solid pick." + }, + "KTOS": { + "symbol": "KTOS", + "overall_score": 60, + "momentum_score": 55, + "theme_score": 70, + "risk_score": 65, + "social_buzz_score": 55, + "brief_analysis": "KTOS operates within defense with moderate momentum and thematic relevance. Risks are balanced by its strategic sector focus and social buzz, making it a cautious but relevant investment." + }, + "COHU": { + "symbol": "COHU", + "overall_score": 52, + "momentum_score": 45, + "theme_score": 50, + "risk_score": 60, + "social_buzz_score": 40, + "brief_analysis": "COHU shows limited recent performance and low thematic relevance, with moderate risk. Lack of social buzz and momentum reduce its investment appeal." + }, + "AIRO": { + "symbol": "AIRO", + "overall_score": 58, + "momentum_score": 55, + "theme_score": 75, + "risk_score": 65, + "social_buzz_score": 55, + "brief_analysis": "AIRO's drone theme is relevant within defense, with moderate recent gains. Its risk profile is balanced by thematic strength and social backing, offering cautious optimism." + }, + "ASTS": { + "symbol": "ASTS", + "overall_score": 66, + "momentum_score": 65, + "theme_score": 70, + "risk_score": 55, + "social_buzz_score": 60, + "brief_analysis": "ASTS benefits from aerospace theme relevance and positive recent performance, supported by social buzz. Its momentum and moderate risk make it a promising aerospace stock." + }, + "RDW": { + "symbol": "RDW", + "overall_score": 70, + "momentum_score": 75, + "theme_score": 70, + "risk_score": 50, + "social_buzz_score": 65, + "brief_analysis": "RDW demonstrates strong recent momentum and thematic relevance in aerospace, with active social media support. Its lower risk profile enhances its attractiveness as a growth-oriented play." + }, + "MP": { + "symbol": "MP", + "overall_score": 35, + "momentum_score": 20, + "theme_score": 0, + "risk_score": 50, + "social_buzz_score": 0, + "brief_analysis": "MP shows minimal recent performance and lacks thematic relevance or social buzz, resulting in a low overall attractiveness score. Its stability is uncertain due to limited data and performance." + }, + "VPG": { + "symbol": "VPG", + "overall_score": 55, + "momentum_score": 30, + "theme_score": 80, + "risk_score": 60, + "social_buzz_score": 70, + "brief_analysis": "VPG's thematic focus on robotics is strong and relevant, with moderate recent performance. Social media attention is notable, but recent momentum is weak, balancing the overall score." + }, + "MRCY": { + "symbol": "MRCY", + "overall_score": 50, + "momentum_score": 25, + "theme_score": 80, + "risk_score": 70, + "social_buzz_score": 60, + "brief_analysis": "MRCY operates in defense, a hot theme, but recent performance has been poor, and it carries higher risk. Social buzz is moderate, making it a cautious pick." + }, + "LEXX": { + "symbol": "LEXX", + "overall_score": 60, + "momentum_score": 55, + "theme_score": 0, + "risk_score": 40, + "social_buzz_score": 65, + "brief_analysis": "LEXX shows solid year-to-date gains and decent social buzz, though lacking a specific theme. Its momentum and risk profile make it a moderately attractive option." + }, + "ACMR": { + "symbol": "ACMR", + "overall_score": 55, + "momentum_score": 40, + "theme_score": 85, + "risk_score": 75, + "social_buzz_score": 55, + "brief_analysis": "ACMR's AI chip theme is highly relevant, but recent performance has been volatile with high risk. Social backing is moderate, balancing its attractiveness." + }, + "LTRX": { + "symbol": "LTRX", + "overall_score": 50, + "momentum_score": 25, + "theme_score": 0, + "risk_score": 50, + "social_buzz_score": 0, + "brief_analysis": "LTRX shows minimal recent activity and lacks a clear theme or social buzz, resulting in a lower overall score. Its stability and growth prospects are uncertain." + }, + "OPRA": { + "symbol": "OPRA", + "overall_score": 65, + "momentum_score": 55, + "theme_score": 70, + "risk_score": 55, + "social_buzz_score": 75, + "brief_analysis": "OPRA's AI distribution theme is relevant, with recent positive performance and strong social buzz. Its momentum and thematic relevance make it a promising candidate." + }, + "FLY": { + "symbol": "FLY", + "overall_score": 70, + "momentum_score": 75, + "theme_score": 70, + "risk_score": 50, + "social_buzz_score": 65, + "brief_analysis": "FLY demonstrates strong recent performance and a relevant aerospace theme, supported by social media attention. Its momentum and moderate risk profile make it attractive." + }, + "POET": { + "symbol": "POET", + "overall_score": 60, + "momentum_score": 55, + "theme_score": 80, + "risk_score": 65, + "social_buzz_score": 60, + "brief_analysis": "POET's photonics theme is relevant, with decent recent gains and social buzz. Its overall profile indicates moderate attractiveness with some volatility." + }, + "TE": { + "symbol": "TE", + "overall_score": 65, + "momentum_score": 70, + "theme_score": 75, + "risk_score": 55, + "social_buzz_score": 65, + "brief_analysis": "TE's solar theme is highly relevant, with positive recent momentum and social attention. Its balanced risk and performance make it a solid option." + }, + "VOYG": { + "symbol": "VOYG", + "overall_score": 55, + "momentum_score": 45, + "theme_score": 70, + "risk_score": 60, + "social_buzz_score": 55, + "brief_analysis": "VOYG's aerospace theme is relevant, but recent performance is modest. Social buzz is moderate, with some volatility influencing its overall attractiveness." + }, + "JOYY": { + "symbol": "JOYY", + "overall_score": 50, + "momentum_score": 30, + "theme_score": 0, + "risk_score": 55, + "social_buzz_score": 70, + "brief_analysis": "JOYY lacks a specific theme and has weak recent momentum, though it benefits from social buzz. Its overall attractiveness is moderate with some risk." + }, + "SYNA": { + "symbol": "SYNA", + "overall_score": 55, + "momentum_score": 35, + "theme_score": 80, + "risk_score": 65, + "social_buzz_score": 50, + "brief_analysis": "SYNA's AI IoT theme is relevant, but recent performance has been weak. Moderate social buzz and risk profile make it a cautiously attractive option." + }, + "CEPT": { + "symbol": "CEPT", + "overall_score": 50, + "momentum_score": 30, + "theme_score": 60, + "risk_score": 70, + "social_buzz_score": 55, + "brief_analysis": "CEPT's RWA crypto theme is niche, with limited recent momentum and higher risk. Social buzz is moderate, leading to a cautious overall score." + }, + "ONDS": { + "symbol": "ONDS", + "overall_score": 60, + "momentum_score": 50, + "theme_score": 70, + "risk_score": 65, + "social_buzz_score": 50, + "brief_analysis": "ONDS's drone theme is relevant, with positive recent performance and moderate social buzz. Its momentum and risk profile are balanced, making it moderately attractive." + }, + "SATS": { + "symbol": "SATS", + "overall_score": 55, + "momentum_score": 45, + "theme_score": 70, + "risk_score": 40, + "social_buzz_score": 60, + "brief_analysis": "SATS shows stable performance with a relevant aerospace theme and moderate social buzz. Slight recent decline indicates cautious momentum, but thematic relevance boosts its attractiveness." + }, + "LPTH": { + "symbol": "LPTH", + "overall_score": 48, + "momentum_score": 35, + "theme_score": 75, + "risk_score": 55, + "social_buzz_score": 50, + "brief_analysis": "LPTH's declining performance and niche photonics theme suggest moderate investment potential with higher risk. Social buzz is moderate, reflecting niche interest." + }, + "TMC": { + "symbol": "TMC", + "overall_score": 52, + "momentum_score": 50, + "theme_score": 65, + "risk_score": 60, + "social_buzz_score": 45, + "brief_analysis": "TMC's slight positive recent performance and rare earth theme offer some upside, but overall risk remains elevated due to recent declines and sector volatility." + }, + "SHMD": { + "symbol": "SHMD", + "overall_score": 50, + "momentum_score": 30, + "theme_score": 80, + "risk_score": 70, + "social_buzz_score": 55, + "brief_analysis": "Despite a strong AI PCB theme, SHMD's poor YTD performance and high risk score reflect sector volatility and recent declines, warranting caution." + }, + "RKLB": { + "symbol": "RKLB", + "overall_score": 58, + "momentum_score": 55, + "theme_score": 70, + "risk_score": 50, + "social_buzz_score": 65, + "brief_analysis": "RKLB benefits from a relevant aerospace theme and positive recent momentum, with solid social buzz. Risks are moderate given sector volatility." + }, + "CRSP": { + "symbol": "CRSP", + "overall_score": 40, + "momentum_score": 20, + "theme_score": 65, + "risk_score": 80, + "social_buzz_score": 30, + "brief_analysis": "CRSP's significant recent decline and high risk score reflect sector volatility and uncertain near-term prospects, despite its innovative gene editing theme." + }, + "DPRO": { + "symbol": "DPRO", + "overall_score": 55, + "momentum_score": 45, + "theme_score": 60, + "risk_score": 55, + "social_buzz_score": 50, + "brief_analysis": "DPRO's stable performance and drone theme offer moderate attractiveness, though past declines and sector risks temper enthusiasm." + }, + "ZETA": { + "symbol": "ZETA", + "overall_score": 53, + "momentum_score": 45, + "theme_score": 75, + "risk_score": 65, + "social_buzz_score": 70, + "brief_analysis": "ZETA's recent positive spike and AI Agent theme, coupled with strong social buzz, make it an intriguing but somewhat risky play." + }, + "VELO": { + "symbol": "VELO", + "overall_score": 62, + "momentum_score": 80, + "theme_score": 60, + "risk_score": 50, + "social_buzz_score": 55, + "brief_analysis": "VELO's impressive recent performance and aerospace theme suggest high momentum and moderate risk, appealing to trend-followers." + }, + "TMQ": { + "symbol": "TMQ", + "overall_score": 45, + "momentum_score": 40, + "theme_score": 50, + "risk_score": 55, + "social_buzz_score": 40, + "brief_analysis": "TMQ's mixed recent performance and lack of clear thematic relevance result in a cautious outlook with moderate risk." + }, + "IDR": { + "symbol": "IDR", + "overall_score": 43, + "momentum_score": 35, + "theme_score": 50, + "risk_score": 60, + "social_buzz_score": 35, + "brief_analysis": "IDR's declining performance and undefined theme suggest higher risk with limited thematic and social interest." + }, + "OSCR": { + "symbol": "OSCR", + "overall_score": 52, + "momentum_score": 45, + "theme_score": 55, + "risk_score": 55, + "social_buzz_score": 50, + "brief_analysis": "OSCR's stable recent performance and healthcare theme provide moderate attractiveness, with sector risks influencing overall score." + }, + "GLXY": { + "symbol": "GLXY", + "overall_score": 65, + "momentum_score": 70, + "theme_score": 80, + "risk_score": 45, + "social_buzz_score": 75, + "brief_analysis": "GLXY's positive recent momentum, strong AI hyperscaler theme, and high social buzz make it a compelling high-potential asset with moderate risk." + }, + "BKKT": { + "symbol": "BKKT", + "overall_score": 50, + "momentum_score": 55, + "theme_score": 60, + "risk_score": 70, + "social_buzz_score": 65, + "brief_analysis": "BKKT's modest recent gains amidst a challenging year and RWA theme suggest moderate potential but elevated risk levels." + }, + "ALMU": { + "symbol": "ALMU", + "overall_score": 55, + "momentum_score": 50, + "theme_score": 75, + "risk_score": 55, + "social_buzz_score": 50, + "brief_analysis": "ALMU's niche photonics theme and stable recent performance offer moderate attractiveness, with sector risks and recent declines tempering optimism." + }, + "AVAV": { + "symbol": "AVAV", + "overall_score": 55, + "momentum_score": 40, + "theme_score": 80, + "risk_score": 65, + "social_buzz_score": 50, + "brief_analysis": "Despite recent negative performance, AVAV's strong thematic relevance in drones and moderate social buzz contribute to a balanced investment profile. The recent decline suggests caution, but the thematic strength offers potential upside." + }, + "ETOR": { + "symbol": "ETOR", + "overall_score": 60, + "momentum_score": 55, + "theme_score": 75, + "risk_score": 70, + "social_buzz_score": 65, + "brief_analysis": "ETOR's exposure to crypto and fintech, combined with recent moderate performance and active KOL backing, makes it an intriguing but higher-risk asset. Its thematic relevance remains strong in the evolving crypto landscape." + }, + "COUR": { + "symbol": "COUR", + "overall_score": 58, + "momentum_score": 50, + "theme_score": 85, + "risk_score": 60, + "social_buzz_score": 55, + "brief_analysis": "AI education is a hot theme, and COUR's relatively stable recent performance supports its investment case. Moderate social buzz and thematic relevance enhance its attractiveness despite ongoing volatility." + }, + "G": { + "symbol": "G", + "overall_score": 45, + "momentum_score": 35, + "theme_score": 40, + "risk_score": 55, + "social_buzz_score": 30, + "brief_analysis": "G's lack of clear thematic focus and modest recent performance result in a lower overall score. It carries moderate risk and limited social attention, suggesting a cautious approach." + }, + "INOD": { + "symbol": "INOD", + "overall_score": 52, + "momentum_score": 45, + "theme_score": 80, + "risk_score": 70, + "social_buzz_score": 50, + "brief_analysis": "AI Data remains a relevant theme, and INOD's performance shows some resilience. However, elevated risk levels and moderate social buzz limit its overall attractiveness." + }, + "FIGR": { + "symbol": "FIGR", + "overall_score": 65, + "momentum_score": 70, + "theme_score": 75, + "risk_score": 60, + "social_buzz_score": 70, + "brief_analysis": "Strong recent performance driven by RWA theme and active KOL backing boost FIGR's investment appeal. Its momentum and social buzz make it a compelling choice despite inherent crypto risks." + }, + "CHYM": { + "symbol": "CHYM", + "overall_score": 50, + "momentum_score": 40, + "theme_score": 65, + "risk_score": 75, + "social_buzz_score": 55, + "brief_analysis": "Neobanking remains relevant, but CHYM's poor recent performance and high risk profile temper its attractiveness. Moderate social buzz offers some support." + }, + "RXRX": { + "symbol": "RXRX", + "overall_score": 58, + "momentum_score": 50, + "theme_score": 85, + "risk_score": 65, + "social_buzz_score": 55, + "brief_analysis": "AI Medicine is a promising theme, and RXRX's stable recent performance supports its potential. Moderate risk and social buzz make it a noteworthy biotech play." + }, + "NB": { + "symbol": "NB", + "overall_score": 55, + "momentum_score": 45, + "theme_score": 80, + "risk_score": 70, + "social_buzz_score": 60, + "brief_analysis": "Rare Earth theme remains relevant amid geopolitical interest, with NB showing slight resilience. Elevated risk and moderate social buzz suggest cautious optimism." + }, + "DNA": { + "symbol": "DNA", + "overall_score": 48, + "momentum_score": 55, + "theme_score": 50, + "risk_score": 80, + "social_buzz_score": 40, + "brief_analysis": "Despite a recent uptick, DNA's overall profile is hampered by high volatility and limited thematic focus. Social buzz is minimal, indicating lower investor interest." + }, + "OKLO": { + "symbol": "OKLO", + "overall_score": 62, + "momentum_score": 55, + "theme_score": 80, + "risk_score": 70, + "social_buzz_score": 60, + "brief_analysis": "SMR Nuclear is gaining attention as a clean energy theme, and OKLO's recent performance supports its potential. Moderate risk and active social backing enhance its appeal." + }, + "SYM": { + "symbol": "SYM", + "overall_score": 55, + "momentum_score": 45, + "theme_score": 75, + "risk_score": 75, + "social_buzz_score": 55, + "brief_analysis": "Robotics remains a relevant theme, but SYM's performance and high risk profile limit its attractiveness. Social buzz is moderate, suggesting cautious interest." + }, + "DARE": { + "symbol": "DARE", + "overall_score": 50, + "momentum_score": 40, + "theme_score": 65, + "risk_score": 80, + "social_buzz_score": 50, + "brief_analysis": "Healthcare is a broad theme, but DARE's poor recent performance and high volatility reduce its investment appeal. Moderate social buzz offers limited support." + }, + "EVLV": { + "symbol": "EVLV", + "overall_score": 55, + "momentum_score": 50, + "theme_score": 70, + "risk_score": 70, + "social_buzz_score": 55, + "brief_analysis": "AI Detector is a niche theme with some recent positive signals. Its moderate risk and social attention make it an interesting, albeit cautious, pick." + }, + "PATH": { + "symbol": "PATH", + "overall_score": 60, + "momentum_score": 55, + "theme_score": 85, + "risk_score": 65, + "social_buzz_score": 60, + "brief_analysis": "AI Agent is highly relevant in current AI trends, with recent positive momentum and active social backing. Its overall profile suggests a promising investment opportunity." + }, + "GEMI": { + "symbol": "GEMI", + "overall_score": 55, + "momentum_score": 40, + "theme_score": 85, + "risk_score": 70, + "social_buzz_score": 65, + "brief_analysis": "GEMI's crypto theme is highly relevant but recent performance has been weak, impacting momentum. Its social buzz is moderate, and the risk remains high due to crypto market volatility." + }, + "SMR": { + "symbol": "SMR", + "overall_score": 50, + "momentum_score": 45, + "theme_score": 80, + "risk_score": 75, + "social_buzz_score": 50, + "brief_analysis": "SMR's nuclear theme is niche with strong relevance, but recent performance is slightly negative. Risk is elevated due to sector volatility, and social buzz is moderate." + }, + "CERT": { + "symbol": "CERT", + "overall_score": 60, + "momentum_score": 55, + "theme_score": 75, + "risk_score": 65, + "social_buzz_score": 55, + "brief_analysis": "AI medicine is a promising theme with moderate recent gains. The stock shows decent momentum, though sector risks and moderate social attention temper attractiveness." + }, + "NVO": { + "symbol": "NVO", + "overall_score": 62, + "momentum_score": 50, + "theme_score": 70, + "risk_score": 70, + "social_buzz_score": 60, + "brief_analysis": "NVO's GLP-1 theme is highly relevant in biotech, with some recent decline. Sector risks are high, but social buzz is moderate, making it a cautiously attractive option." + }, + "IONQ": { + "symbol": "IONQ", + "overall_score": 58, + "momentum_score": 35, + "theme_score": 90, + "risk_score": 80, + "social_buzz_score": 70, + "brief_analysis": "Quantum computing remains a hot theme, but recent performance is weak. High risk and strong thematic relevance balance out for investors interested in cutting-edge tech." + }, + "PPSI": { + "symbol": "PPSI", + "overall_score": 52, + "momentum_score": 40, + "theme_score": 85, + "risk_score": 75, + "social_buzz_score": 45, + "brief_analysis": "AI energy is a niche but relevant theme; recent performance is poor. High sector risk and moderate social buzz limit overall attractiveness." + }, + "HIMS": { + "symbol": "HIMS", + "overall_score": 65, + "momentum_score": 70, + "theme_score": 60, + "risk_score": 55, + "social_buzz_score": 75, + "brief_analysis": "Healthcare theme is broad with recent strong performance, especially in the short term. Moderate risk and high social buzz make it a relatively attractive pick." + }, + "RGTI": { + "symbol": "RGTI", + "overall_score": 50, + "momentum_score": 35, + "theme_score": 90, + "risk_score": 80, + "social_buzz_score": 50, + "brief_analysis": "Quantum computing remains a high-interest theme but with weak recent performance. Elevated risk and moderate social attention temper its appeal." + }, + "RBRK": { + "symbol": "RBRK", + "overall_score": 55, + "momentum_score": 45, + "theme_score": 70, + "risk_score": 65, + "social_buzz_score": 50, + "brief_analysis": "Cybersecurity is a relevant theme with steady performance, but recent declines and sector risks keep overall scores moderate." + }, + "WRD": { + "symbol": "WRD", + "overall_score": 58, + "momentum_score": 55, + "theme_score": 75, + "risk_score": 60, + "social_buzz_score": 70, + "brief_analysis": "Robotaxi is a hot thematic area with recent positive momentum. Sector risks are moderate, and social buzz is relatively high." + }, + "ZENA": { + "symbol": "ZENA", + "overall_score": 48, + "momentum_score": 40, + "theme_score": 80, + "risk_score": 75, + "social_buzz_score": 30, + "brief_analysis": "Drone theme is relevant but niche, with weak recent performance and low social buzz. High sector risk limits attractiveness." + }, + "LMND": { + "symbol": "LMND", + "overall_score": 55, + "momentum_score": 50, + "theme_score": 70, + "risk_score": 65, + "social_buzz_score": 55, + "brief_analysis": "AI insurance is emerging with moderate recent performance. Sector risks are notable, but social buzz is moderate, offering some potential." + }, + "HROW": { + "symbol": "HROW", + "overall_score": 50, + "momentum_score": 45, + "theme_score": 60, + "risk_score": 80, + "social_buzz_score": 55, + "brief_analysis": "Healthcare sector remains relevant but recent declines and sector volatility increase risk. Social buzz is moderate." + }, + "INFQ": { + "symbol": "INFQ", + "overall_score": 45, + "momentum_score": 30, + "theme_score": 85, + "risk_score": 85, + "social_buzz_score": 40, + "brief_analysis": "Quantum computing is highly relevant but with very weak recent performance and high risk, making it suitable only for high-risk investors." + }, + "AMBA": { + "symbol": "AMBA", + "overall_score": 55, + "momentum_score": 50, + "theme_score": 80, + "risk_score": 70, + "social_buzz_score": 60, + "brief_analysis": "Drone-related themes are gaining interest; recent performance is slightly negative. Moderate risk and social buzz make it a balanced choice." + }, + "QUBT": { + "symbol": "QUBT", + "overall_score": 55, + "momentum_score": 40, + "theme_score": 85, + "risk_score": 70, + "social_buzz_score": 60, + "brief_analysis": "QUBT's strong thematic relevance in quantum computing boosts its theme score, but recent performance decline and negative YTD momentum lower its overall attractiveness. Moderate social buzz and risk reflect its niche position and volatility." + }, + "MBLY": { + "symbol": "MBLY", + "overall_score": 52, + "momentum_score": 38, + "theme_score": 80, + "risk_score": 75, + "social_buzz_score": 65, + "brief_analysis": "MBLY's robotics theme is highly relevant in current tech trends, yet its persistent negative performance impacts its overall score. Good social engagement and higher risk due to volatility are notable factors." + }, + "SLP": { + "symbol": "SLP", + "overall_score": 58, + "momentum_score": 45, + "theme_score": 78, + "risk_score": 65, + "social_buzz_score": 55, + "brief_analysis": "AI medicine remains a promising theme, reflected in SLP's moderate momentum and social buzz. Despite recent performance dips, its thematic relevance sustains a relatively attractive score." + }, + "SDGR": { + "symbol": "SDGR", + "overall_score": 59, + "momentum_score": 50, + "theme_score": 80, + "risk_score": 60, + "social_buzz_score": 50, + "brief_analysis": "SDGR's focus on AI medicine aligns well with current trends, supporting its moderate overall score. Slightly better recent performance and social presence contribute positively." + }, + "PGNY": { + "symbol": "PGNY", + "overall_score": 50, + "momentum_score": 42, + "theme_score": 70, + "risk_score": 75, + "social_buzz_score": 55, + "brief_analysis": "Healthcare sector relevance provides some support, but ongoing performance struggles and high risk reduce its overall attractiveness. Social buzz is moderate." + }, + "CAI": { + "symbol": "CAI", + "overall_score": 54, + "momentum_score": 43, + "theme_score": 85, + "risk_score": 70, + "social_buzz_score": 60, + "brief_analysis": "CAI's strong thematic relevance in AI medicine boosts its score, but persistent declines and volatility keep risk high. Social engagement is moderate." + }, + "QBTS": { + "symbol": "QBTS", + "overall_score": 48, + "momentum_score": 35, + "theme_score": 80, + "risk_score": 80, + "social_buzz_score": 40, + "brief_analysis": "Quantum computing theme is highly relevant, but poor recent performance and high volatility result in a lower overall score. Limited social buzz adds to risk." + }, + "ENVX": { + "symbol": "ENVX", + "overall_score": 53, + "momentum_score": 42, + "theme_score": 75, + "risk_score": 75, + "social_buzz_score": 55, + "brief_analysis": "Battery technology remains a hot theme, supporting ENVX's moderate score. Recent declines and high risk factors temper its attractiveness, though social buzz is decent." + }, + "SES": { + "symbol": "SES", + "overall_score": 55, + "momentum_score": 55, + "theme_score": 50, + "risk_score": 55, + "social_buzz_score": 45, + "brief_analysis": "SES shows positive momentum despite overall poor performance, with moderate risk and limited thematic focus. Social buzz is relatively low." + }, + "GTLB": { + "symbol": "GTLB", + "overall_score": 50, + "momentum_score": 35, + "theme_score": 80, + "risk_score": 80, + "social_buzz_score": 55, + "brief_analysis": "AI agent theme is relevant but recent performance and high volatility reduce overall attractiveness. Social buzz is moderate." + }, + "CRNC": { + "symbol": "CRNC", + "overall_score": 49, + "momentum_score": 30, + "theme_score": 75, + "risk_score": 85, + "social_buzz_score": 50, + "brief_analysis": "Robotaxi theme is promising but recent declines and high risk result in a lower overall score. Social engagement is moderate." + }, + "CDLX": { + "symbol": "CDLX", + "overall_score": 45, + "momentum_score": 25, + "theme_score": 70, + "risk_score": 90, + "social_buzz_score": 40, + "brief_analysis": "AI data theme is relevant but poor recent performance and high volatility lower its attractiveness. Social buzz is limited." + }, + "SNAP": { + "symbol": "SNAP", + "overall_score": 43, + "momentum_score": 20, + "theme_score": 75, + "risk_score": 85, + "social_buzz_score": 70, + "brief_analysis": "AI distribution is a relevant theme, but SNAP's significant declines and high volatility reduce its overall score. Strong social buzz helps slightly." + }, + "KLAR": { + "symbol": "KLAR", + "overall_score": 60, + "momentum_score": 65, + "theme_score": 60, + "risk_score": 55, + "social_buzz_score": 65, + "brief_analysis": "KLAR's BNPL theme is currently gaining momentum, boosting its overall attractiveness despite ongoing losses. Moderate risk and good social buzz support this score." + }, + "U": { + "symbol": "U", + "overall_score": 42, + "momentum_score": 30, + "theme_score": 80, + "risk_score": 85, + "social_buzz_score": 55, + "brief_analysis": "AI adtech remains a hot theme, but U's poor recent performance and high volatility lower its overall score. Social buzz is moderate." + }, + "SUUN": { + "symbol": "SUUN", + "overall_score": 35, + "momentum_score": 10, + "theme_score": 70, + "risk_score": 80, + "social_buzz_score": 20, + "brief_analysis": "SUUN exhibits poor recent momentum with a significant YTD decline, indicating high risk. Its thematic relevance in aerospace remains strong, but the lack of recent positive performance and social buzz lowers its overall attractiveness. Caution is advised due to volatility and weak momentum signals." + } +} \ No newline at end of file