Best LLMs for Topic Cluster Labeling
Assigns a concise descriptive label and short explanation to a cluster of semantically related claims or content items. Illustrative uses include labeling clusters of customer requests, support issues, software defects, sales notes, research claims, interview excerpts, patient fe
Models
Frontier on this task: Claude Opus 5 at 8.91 / 10. Quality bar at 90%: 8.02.
point-estimate floor (CI low) · upper CI (less certain) · Bars sorted by blended cost; best-value model first. Greyed rows are MEDIUM+ models whose point estimate clears the bar but whose CI low does not.
| Model | Quality score | CI low | Cost / 1k runs | vs best value |
|---|---|---|---|---|
| MiniMax M3 | 8.21 / 10 | 8.06 | $3.19 | best value |
| Gemini 3.8 Flash | 8.24 / 10 | 7.97 | $5.77 | 1.8x more expensive |
| Tencent Hy3 | 8.14 / 10 | 7.96 | $6.94 | 2.2x more expensive |
| Thinking Machines Inkling Small | 8.34 / 10 | 7.96 | $9.18 | 2.9x more expensive |
| Claude Haiku 4.5 | 8.03 / 10 | 7.64 | $9.21 | 2.9x more expensive |
| Qwen 3.7 Plus | 8.09 / 10 | 7.67 | $9.55 | 3x more expensive |
| Gemini 3.5 Flash | 8.22 / 10 | 8.08 | $13.91 | 4.4x more expensive |
| DeepSeek V4 Flash | 8.12 / 10 | 7.90 | $14.06 | 4.4x more expensive |
| DeepSeek V4 Pro | 8.45 / 10 | 8.17 | $20.48 | 6.4x more expensive |
| Thinking Machines Inkling | 8.39 / 10 | 7.97 | $22.86 | 7.2x more expensive |
| GPT-5.6 Sol | 8.34 / 10 | 8.03 | $23.11 | 7.2x more expensive |
| Claude Sonnet 5 | 8.37 / 10 | 8.19 | $26.54 | 8.3x more expensive |
| Tencent Hy4 Preview | 8.40 / 10 | 7.91 | $36.57 | 11x more expensive |
| Meta Muse Spark 1.3 | 8.11 / 10 | 7.76 | $36.58 | 11x more expensive |
| GLM-5.3 | 8.72 / 10 | 8.48 | $37.33 | 12x more expensive |
| Claude Opus 5 | 8.91 / 10 | 8.58 | $42.15 | 13x more expensive |
| Grok 4.6 | 8.57 / 10 | 8.35 | $48.03 | 15x more expensive |
| Moonshot Kimi K3 | 8.91 / 10 | 8.74 | $64.23 | 20x more expensive |
| Qwen 3.8 Flash | 7.57 / 10 | 7.10 | $3.66 | 1.1x more expensive |
| NVIDIA Nemotron 3.5 Lightning | 7.28 / 10 | 6.78 | $2.52 | 21% cheaper |
| Qwen 3.8 Max | 7.96 / 10 | 7.55 | $59.03 | 18x more expensive |
| NVIDIA Nemotron-3 Nano 30B-A3B | 6.93 / 10 | 6.49 | $1.63 | 49% cheaper |
| GPT-5.6 Luna | 8.00 / 10 | 7.68 | $3.25 | 1x more expensive |
| Gemini 3.5 Flash Lite | 7.35 / 10 | 7.02 | $2.43 | 24% cheaper |
| Gemini 3.1 Flash Lite | 7.65 / 10 | 7.43 | $2.04 | 36% cheaper |
| GPT-5.4 Nano | 7.31 / 10 | 6.87 | $1.83 | 43% cheaper |
| GPT-5.6 Terra | 7.87 / 10 | 7.43 | $11.10 | 3.5x more expensive |
Cost breakdown
| Model | Quality | Confidence | Cost / 1k runs | Overpay | Mode |
|---|---|---|---|---|---|
| MiniMax M3 ★ OpenRouter | 8.21 / 10 CI [8.06, 8.37] | RANKED | $3.19 | best value | batch |
| Gemini 3.8 Flash Gemini | 8.24 / 10 CI [7.97, 8.51] | HIGH | $5.77 | 1.8x | batch |
| Tencent Hy3 OpenRouter | 8.14 / 10 CI [7.96, 8.33] | RANKED | $6.94 | 2.2x | batch |
| Thinking Machines Inkling Small OpenRouter | 8.34 / 10 CI [7.96, 8.71] | MEDIUM | $9.18 | 2.9x | batch |
| Claude Haiku 4.5 Anthropic | 8.03 / 10 CI [7.64, 8.43] | MEDIUM | $9.21 | 2.9x | batch |
| Qwen 3.7 Plus Alibaba Cloud (DashScope) | 8.09 / 10 CI [7.67, 8.50] | MEDIUM | $9.55 | 3x | batch |
| Gemini 3.5 Flash Gemini | 8.22 / 10 CI [8.08, 8.35] | RANKED | $13.91 | 4.4x | batch |
| DeepSeek V4 Flash DeepSeek | 8.12 / 10 CI [7.90, 8.35] | HIGH | $14.06 | 4.4x | batch |
| DeepSeek V4 Pro DeepSeek | 8.45 / 10 CI [8.17, 8.74] | HIGH | $20.48 | 6.4x | batch |
| Thinking Machines Inkling OpenRouter | 8.39 / 10 CI [7.97, 8.81] | MEDIUM | $22.86 | 7.2x | batch |
| GPT-5.6 Sol OpenAI | 8.34 / 10 CI [8.03, 8.64] | MEDIUM | $23.11 | 7.2x | batch |
| Claude Sonnet 5 Anthropic | 8.37 / 10 CI [8.19, 8.56] | RANKED | $26.54 | 8.3x | batch |
| Tencent Hy4 Preview OpenRouter | 8.40 / 10 CI [7.91, 8.89] | MEDIUM | $36.57 | 11x | batch |
| Meta Muse Spark 1.3 OpenRouter | 8.11 / 10 CI [7.76, 8.47] | MEDIUM | $36.58 | 11x | batch |
| GLM-5.3 Z.AI | 8.72 / 10 CI [8.48, 8.95] | HIGH | $37.33 | 12x | batch |
| Claude Opus 5 best Anthropic | 8.91 / 10 CI [8.58, 9.24] | MEDIUM | $42.15 | 13x | batch |
| Grok 4.6 xAI | 8.57 / 10 CI [8.35, 8.79] | HIGH | $48.03 | 15x | batch |
| Moonshot Kimi K3 Moonshot AI | 8.91 / 10 CI [8.74, 9.08] | RANKED | $64.23 | 20x | batch |
Overpay shows how much more you pay than the best-value model that clears the quality bar (marked ★) — the best-value good-enough option. "16x" means you overpay 16× — 16× that reference for no quality benefit above the bar. Typical call shape for this task: 22325 input tokens → 1424 output tokens, EMA-tracked from production traffic. Cost is the observed, all-in $ per 1,000 task runs: each model's own measured usage on this task — output verbosity, thinking/reasoning tokens, cache reads and writes, and the spend on its billed failures — priced at current list rates and adjusted by the billing overhead we actually reconcile against provider invoices. Models that answer tersely cost what they actually cost; models that think at length pay for it. Not comparable to providers' advertised $/1M list rates — this is what running the task costs, not a per-token price.
Evaluation rubric
Judge representativeness, specificity, distinction from neighboring concepts, support across cluster members, label clarity, concise boundary description, and absence of unsupported interpretation.
Prompt templates
This is a pooled capability — 3 prompt families share it. The pair shown first is the most frequently used in production.
LLMB_TOPIC_CLUSTER_LABELING_SYSTEM +
LLMB_TOPIC_CLUSTER_LABELING_USER
(1671 calls in window)
System prompt
Name the shared substantive idea that distinguishes this cluster from adjacent clusters. The name must be reusable across subjects: state the theme in wording that a cluster about a different company, market or programme could match into, and keep company, organisation, product, ticker and person names out of it — subject_name is context for reading the claims, never a component of the name. The specifics belong in the description: name there the entities, mechanisms, outcomes or tensions supported by multiple members, and state the common scope and the boundary that separates this cluster from its neighbours. Avoid generic labels such as “Overview,” unsupported conclusions, category repetition, and wording derived from a single outlier. Treat empty optional values as absent and return only the requested result. Your response must conform exactly to this output schema: {schema_json_string}.
User prompt
Inputs — subject_name: {subject_name}; category: {category}; claim_count: {claim_count}; claims_text: {claims_text}. Use only these inputs to complete the task defined by the system prompt.
TOPIC_CLUSTER_NAMING_SYSTEM_PROMPT +
TOPIC_CLUSTER_NAMING_USER_PROMPT
(438 calls in window)
System prompt
You are a senior analyst specializing in categorizing and naming thematic clusters of research claims.
Your task is to assign a concise, descriptive topic name and brief description to a cluster of semantically similar claims. These claims have already been grouped by embedding similarity and synthesized into a summary — you are naming the resulting topic.
**Naming Guidelines:**
- Choose a name that captures the core theme or insight of the cluster (3-7 words)
- Use clear, professional language suitable for a publication headline
- The name should be specific enough to distinguish from other topics about the same subject
- Avoid generic names like "Market Update" or "Company News" — be specific about WHAT aspect
- Good examples: "Revenue Growth Acceleration", "Regulatory Approval Risks", "Supply Chain Restructuring"
**Description Guidelines:**
- Write 1-2 sentences explaining what the topic covers
- Include the key themes, data points, or developments that define this cluster
- The description should help a reader quickly understand the scope of the topic
- The description MUST be under 500 characters (this is a hard technical limit)
Output your response in the specified JSON format.
## Required Output Format
Your response MUST be a single, valid JSON object conforming to this schema:
```json
{schema_json_string}
```User prompt
**Subject:** {subject_name}
**Claim Category:** {category}
**Number of Claims:** {claim_count}
--- CLAIMS IN CLUSTER ---
{claims_text}
--- END OF CLAIMS ---
Based on the claims above, provide a concise topic name and brief description that captures the central theme of this cluster.
**JSON Output:** The required JSON output schema is provided in the system prompt.
JSON_REPAIR_SYSTEM +
JSON_REPAIR_USER
(6 calls in window)
System prompt
You are a JSON repair tool. The user gives you malformed or partial model output and a JSON Schema. Return ONLY a single valid JSON object that satisfies the schema, salvaging as much real content from the input as possible. Do not invent data for fields the input doesn't support — use the schema's allowed empty/null values. Output the JSON object only: no prose, no markdown, no code fences.
User prompt
JSON Schema:
{schema_json}
Malformed output to repair:
{raw_text}
Return only the corrected JSON object.