AI Social API
Updated 2026-10-12 · Chad · Topic: Hong Kong forums

Jev vs Claude Haiku: An Independent Sentiment Benchmark on 405 Cantonese, Thai and Singlish Forum Posts

TL;DR: On 150 held-out Cantonese forum posts, Claude Haiku 5.5 was ahead of Jev (jev-1.13.0) by 3 to 5 points: sentiment 82.7% vs 78.0%, relevance 95.3% vs 92.0%, intent 90.0% vs 85.3%. Jev costs about $4.50 per 100,000 posts against about $10.60 for Haiku, answers in a median 0.36 s, and its confidence is well calibrated: when it is confident on sentiment (60% of posts) it is right 92.2% of the time. A hybrid that uses Jev when confident and Haiku otherwise matched or beat Haiku on all three labels. With 150 rows the noise is roughly 6 points, so treat Haiku’s lead as likely, not proven.

This post contains Apify affiliate links (no extra cost to you). Costs and comparisons are stated honestly, including where Apify is not the best fit.

Update (2026-10-12): we ran OpenAI’s new Decisions API (gpt-6-luna) on the same posts with the same definitions. It tied Jev on sentiment (78.0% vs 78.0% on Cantonese), trailed it on relevance (88.7% vs 92.0%) and cost about 2.25× more per post. Full three-way results: Jev vs OpenAI Decisions API.

TypeSafe publishes its own benchmarks for Jev, and there are explainers, but we could not find an independent, multilingual comparison on real forum text. This is ours: same questions, same label definitions, same posts, two models. For the hands-on setup, see the practical guide to using Jev.

What did we test, and when?

JevClaude Haiku 5.5
Model IDjev-1.13.0 (pinned)claude-haiku-5-5
What it isTypeSafe’s “System One” decision model: typed answers with probabilities, no text generationAnthropic’s small LLM, 15 posts per request, structured JSON output
List price$0.042 per million input tokens, output free$0.10 per million input, $0.50 per million output
Test date2026-10-122026-10-12

Both models received the same label definitions, for three labels used in social listening:

  1. Relevance: does the post concern the tracked brand or keyword?
  2. Sentiment: negative, neutral or positive (a −2 to +2 scale underneath).
  3. Intent: complaint, praise, question or other.

Newer model versions may give different numbers.

Which posts did we use?

All posts are real, public forum posts collected with our own Apify actors. We do not publish the raw posts (forum terms), only short quotes as examples.

RoundPostsSourcePurpose
A, multilingual pilot10540 LIHKG (Cantonese, iPhone 17 thread), 25 Pantip (Thai, 3 iPhone 17 topics), 40 HardwareZone EDMW (Singlish, a TCL TV thread)Directional language comparison
B, main benchmark300LIHKG (Cantonese), keywords 港鐵 (MTR), 麥當勞 (McDonald’s), Tesla, 滙豐 (HSBC); per keyword 50 thread titles and 25 repliesHeadline numbers
Total4053 languages, 3 forums

How was the answer key made, and why does it matter?

Accuracy is only as meaningful as the answer key. Ours was built in three steps.

The caveat is real: an AI-written key could favour the model family it came from, and Haiku is a Claude model. The 20/20 spot check reduces that risk but does not remove it.

How did we keep the thresholds fair?

Jev returns scores and probabilities, and you choose where to cut them. Tuning cut-offs on the same rows you report would flatter Jev. In Round B we tuned thresholds on the even-numbered rows only and report accuracy on the odd-numbered 150 rows, which the tuning never saw. The final cut-offs: sentiment at or below −1.25 is negative, at or above +0.75 is positive, and relevance yes-probability at or above 0.55 is relevant.

Is Jev or Claude Haiku more accurate? Main results

Round B, 150 held-out LIHKG posts, final definitions (“v3” questions). The hybrid column uses Jev when it is confident and Haiku otherwise; the percentage is the share of rows Jev handled.

LabelJevClaude Haiku 5.5Hybrid
Sentiment (neg/neu/pos)78.0%82.7%82.7% (Jev handles 51%)
Relevance92.0%95.3%95.3% (Jev handles 83%)
Intent (4 classes)85.3%90.0%91.3% (Jev handles 77%)

Restricting to rows the labeller marked unambiguous narrows the gap slightly:

LabelJevHaikun
Sentiment80.3%83.5%127
Relevance93.6%95.5%110
Intent90.7%95.3%129

Haiku is ahead by 3 to 5 points on every label. The direction is consistent, but with 150 rows the noise is roughly ±6 points, so no single gap is conclusive.

Does it matter if the post is a title or a reply?

Yes. Replies are harder for both models, and Jev’s sentiment is actually ahead on replies.

Post typeJev sentimentHaiku sentimentJev relevanceHaiku relevanceJev intentHaiku intent
Titles (n=100)77%85%98%99%91%94%
Replies (n=50)80%78%80%88%74%82%

Fifty replies is a very small sample. Do not read the reply sentiment result as Jev winning.

Can you trust Jev’s confidence scores?

This is where Jev earns its place. Over all 300 Round B rows with the final questions:

LabelConfidence ruleShare of posts coveredAccuracy on those posts
Relevanceyes-probability at most 0.2 or at least 0.882%96.7%
Sentimentconfidence at least 0.760%92.2%
Sentimentconfidence at least 0.582%86.1%

With the earlier “v2” questions on the same 300 posts, relevance “sure” answers covered 62% of posts at 93.5%, and the rest were close to a coin flip (54%). Better definitions improved the calibration, not just the accuracy. In practice you can auto-accept confident answers and route the rest to a human or a second model, which is what the hybrid column does.

Why do thresholds matter so much for Jev sentiment?

On the same 300 LIHKG posts with the earlier v2 questions, mapping Jev’s score at a naive ±0.5 gave 64.0% sentiment accuracy. Tuned thresholds gave 78.7% on held-out rows. Jev shades neutral text slightly negative, so the negative threshold has to be stricter than the positive one. If you benchmark Jev with default cut-offs you will badly underrate it.

How did Jev do on Cantonese, Thai and Singlish?

Round A used the earlier v2 questions and earlier definitions, with 105 posts. “Strict” counts “slightly negative” as negative; “lenient” accepts either neutral or the polar class for “slightly” answers. Treat this as directional, not a per-language ranking.

Language (forum)Jev sentiment strict / lenientHaiku sentiment strict / lenientJev relevanceHaiku relevance
Cantonese (LIHKG, 40)77.5% / 92.5%70.0% / 82.5%72.5%62.5%
Thai (Pantip, 25)68.0% / 96.0%88.0% / 100%96.0%100%
Singlish (HardwareZone, 40)70.0% / 92.5%82.5% / 92.5%87.5%82.5%
All 10572.4% / 93.3%79.0% / 90.5%83.8%79.0%

In the pilot, Jev did better than Haiku on Cantonese and Haiku did better on Thai. That sits oddly with TypeSafe’s note that English is Jev’s primary training language and CJK is “handled but not equally well”, and it is a reminder that small samples and definitions move results. Note also that Haiku led on Cantonese in the larger, later Round B.

Do definitions matter more than the model?

In our data, yes. Under the earlier strict relevance definition (a brand that is merely the scene of an incident is not relevant), Jev beat Haiku on relevance, 88.0% versus 80.7%. Under the final definition where the scene counts, Haiku is ahead. The same pair of models swapped places because we changed one sentence. Decide your definitions before you compare models, and write them into the prompt or criteria.

Jev also reads definitions literally. With the earlier intent definition, it labelled criticism of a government minister as “complaint” (a product complaint). Adding “criticism of individual people, politicians or the government is other” lifted Jev’s intent accuracy from 82.7% to 85.3% (titles 87% to 91%).

What do sarcasm and literal readings look like?

Context helps. Adding the thread’s opening post fixed one sarcastic Cantonese reply (「食唔盡ai 俾人笑到最後就有份」), which the first question version read as positive and the second read correctly as negative.

Both models still miss some:

Two more measured behaviours: Jev’s docs warn that it can favour the first Choice option, but with the sentiment options reversed 98.1% of answers were unchanged (105 posts). And on HardwareZone, where replies embed “X said: … Click to expand…”, sending the quote as a separate context field raised Jev sentiment accuracy from 62.5% to 70.0%. The practical guide covers both.

How do cost and speed compare?

Jev (jev-1.13.0)Claude Haiku 5.5
Tokens per post1,063 input (3 questions, output free)307 input + 151 output (batched 15 per request)
Cost per post$0.000045$0.000106
Cost per 100,000 postsabout $4.50about $10.60
Speedmedian 0.36 s per post (one request per post, parallelisable; p90 0.41 s)median about 15 s per 15-post batch

Both costs are tiny next to what the labels are worth. Speed matters for real-time agents; for batch scraping it rarely does. TypeSafe’s own materials make larger speed claims; ours are measured on this specific task.

Should you use Jev or Claude Haiku?

Jev is the better fit when:

Haiku is the better fit when:

Use both when you want near-Haiku accuracy at lower cost: let Jev answer the confident rows (51% of sentiment, 83% of relevance, 77% of intent in our test) and send the rest to Haiku. That matched Haiku on sentiment and relevance and was 1.3 points higher on intent.

What are the limits of this benchmark?

Where this runs in production

We use the same three labels as an optional “AI sentiment labels” switch on our LIHKG actor on Apify. The engine is Jev, chosen for cost, speed, calibrated confidence and no extra vendor account, given the small accuracy gap. It costs $0.002 per labelled row, with the first 20 rows free per run on the free plan, effective 2026-10-27. This article is independent analysis: neither TypeSafe nor Anthropic endorses or sponsors it. For the forum data itself, see our Hong Kong forums hub.

FAQ

Is Jev better than Claude? Not on raw accuracy in our test. On 150 held-out Cantonese forum posts, Claude Haiku 5.5 scored 82.7% on sentiment, 95.3% on relevance and 90.0% on intent, against 78.0%, 92.0% and 85.3% for Jev. Jev was cheaper (about $4.50 versus about $10.60 per 100,000 posts), faster per post (median 0.36 s) and returned calibrated confidence. With 150 rows the noise is roughly 6 points, so no single gap is conclusive.

How much does Jev cost per post compared with Claude Haiku? In our setup, Jev (jev-1.13.0) cost about $0.000045 per post (1,063 input tokens for three questions, output tokens free) and Haiku 5.5 about $0.000106 per post (307 input plus 151 output tokens, batched 15 per request). That is roughly $4.50 versus $10.60 per 100,000 posts at list prices.

Does Jev work in Chinese or Cantonese? It worked usefully in our tests, but it is not tuned for it. TypeSafe’s docs say English is the primary training language and that CJK is handled but not equally well. In our pilot Jev beat Haiku on Cantonese sentiment and relevance, while on the 300-post main test Haiku was ahead by 3 to 5 points.

Does Jev work for Thai? In our 25-post Pantip pilot, Haiku did better than Jev on Thai (sentiment 88.0% strict versus 68.0%, relevance 100% versus 96.0%). The sample is small and used earlier definitions, so treat it as directional.

Can Jev write text like an LLM? No. Jev is a System One decision model: it returns typed answers with probabilities and does not generate text. That is why it is a better fit for classification-style labels than for summaries or explanations.

What is a System One model? TypeSafe uses the term for models like Jev that turn natural language and application state into typed judgments and probabilities that code can combine, instead of producing free-form text.

Further reading


Chad runs 30+ published Apify actors, including the LIHKG scraper whose posts were used here. Numbers are from a run on 2026-10-12; raw posts are not published.