Cost mode:

Category: Relevance, Classification & Matching · Rail: absolute · Typical I/O: 1029→961 tokens

Models

Frontier on this task: Qwen 3.6 Plus at 9.88 / 10. Quality bar at 90%: 8.89.

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.

ModelQuality scoreCI lowCost / 1k runsvs best value
Gemini 3.1 Flash Lite9.80 / 109.66$0.21best value
Qwen 3.5 Flash9.71 / 109.52$1.768.5x more expensive
Claude Sonnet 58.97 / 108.62$6.2930x more expensive
Qwen 3.6 Plus9.88 / 109.79$7.9438x more expensive
Claude Opus 4.89.77 / 109.62$12.0058x more expensive
Kimi K2.69.53 / 109.18$17.0883x more expensive
GPT-5.4 Nano6.98 / 106.57$0.311.5x more expensive
GPT-5.6 Sol8.63 / 108.21$7.8238x more expensive
GPT-5.6 Luna8.09 / 107.65$1.356.5x more expensive
GPT-5.4 Mini6.94 / 106.48$0.472.3x more expensive
GPT-5.57.99 / 107.68$8.7142x more expensive
GPT-5.6 Terra8.48 / 108.10$3.3016x more expensive
Claude Haiku 4.57.38 / 106.90$1.728.3x more expensive
Claude Sonnet 4.68.01 / 107.55$6.3631x more expensive
Tencent Hy38.15 / 107.67$0.974.7x more expensive

Cost breakdown

ModelQualityConfidenceCost / 1k runsOverpayMode
Gemini 3.1 Flash Lite Gemini9.80 / 10 CI [9.66, 9.94]RANKED$0.21best valuebatch
Qwen 3.5 Flash Alibaba Cloud (DashScope)9.71 / 10 CI [9.52, 9.91]RANKED$1.768.5xbatch
Claude Sonnet 5 Anthropic8.97 / 10 CI [8.62, 9.32]MEDIUM$6.2930xbatch
Qwen 3.6 Plus best Alibaba Cloud (DashScope)9.88 / 10 CI [9.79, 9.97]RANKED$7.9438xbatch
Claude Opus 4.8 Anthropic9.77 / 10 CI [9.62, 9.91]RANKED$12.0058xbatch
Kimi K2.6 Moonshot AI9.53 / 10 CI [9.18, 9.89]MEDIUM$17.0883xbatch

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: 1029 input tokens → 961 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

This capability is itself a REVIEWER: given a social post and a drafted public reply, it outputs a verdict — a 0..1 score, a pass/fail decision, and reasoning — on whether the reply is good enough to post for llm-bench's community engagement.

You are judging the QUALITY OF THAT REVIEW VERDICT — not the reply itself, and not whether the JSON is well-formed. A syntactically perfect, confident-sounding verdict that reached the wrong decision or mischaracterised the reply is a POOR output, not a good one.

First, independently assess the drafted reply yourself against the reviewer's own criteria:
- Genuinely helpful and on-topic for THIS post — would it stand as a useful answer with the brand name and tracked link removed? If it is off-topic, boilerplate, or brand-recitation, the correct verdict is score <= 0.3 and passed=false.
- Natural voice, NOT salesy or spammy. "Salesy" means describing what llm-bench is or does, repeating the brand, or a generic pitch detached from the post. A single earned mention carrying a first-party kapualabs.com / post.kapualabs.com tracked link is acceptable — do not treat that domain as third-party spam.
- Any llm-bench mention is earned, not forced.
- Claim-safe: no forbidden claims, nothing unverifiable.
- Appropriate for the thread.

Then judge whether the review's decision AND its reasoning were correct:
- Did its score / passed decision match your own assessment? Heavily penalise a verdict that APPROVED an off-topic, spammy, promotional, boilerplate, or forbidden-claim reply, or that REJECTED a genuinely good one.
- Did its reasoning accurately describe the reply? Heavily penalise a verdict that MISCHARACTERISED the draft — e.g. called jargon-heavy text "conversational", claimed the reply is "lightly funny" when it contains no humour, or asserted a relevance that is not there. A hallucinated or self-contradicting characterisation is a serious error even when the final number happens to be defensible.

Reward verdicts that reach the correct decision for the right reasons and describe the reply accurately. Do NOT award a high score merely because the output follows the JSON schema, is well-formatted, or sounds confident — grade the substance of the judgement, not its surface form.

Use the FULL 0-10 range for YOUR score (this is your grade of the review, distinct from the review's own 0..1 score described above):
- 9-10: the verdict reached the correct decision AND its reasoning accurately describes the reply. Reserve this for genuinely flawless reviews.
- 6-8: broadly correct decision but with a real weakness — a shallow or partly inaccurate rationale, or a score that is defensible but not well-justified.
- 3-5: the reasoning materially mischaracterises the reply (e.g. hallucinated tone/humour, asserted relevance that is not there), even if the final number is arguably defensible.
- 0-2: the verdict is simply wrong — it approved an off-topic, spammy, promotional, boilerplate, or forbidden-claim reply, or rejected a genuinely good one, however well-formatted it is.
If you find yourself placing most reviews between 9 and 10, you are grading surface form rather than substance — go back and look harder for the errors above. Do not inflate a review that got the number right by luck while reasoning poorly.

Prompt templates

The system + user template pair used for this task.

JSON_REPAIR_SYSTEM + JSON_REPAIR_USER (39 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.