Tested 2026-10-15
Sorting support tickets into categories as JSON: Mistral: Mistral Nemo won, 2 of 6 models failed a must-have; OpenRouter's own picker passed every must-have but cost 72× the winner (4th of 4)
Classify incoming support tickets into billing, bug, how-to or account and return JSON — for a micro-SaaS founder automating the inbox.
What this project actually needed
- takes written text as input — must have
- produces written text — must have
- returns valid JSON every time — must have
- puts each ticket in the right category — must have: every ticket categorised correctly
- cost at your volume — decides the order
The winner
Mistral: Mistral Nemo passed every must-have and ranked first by how this job said to choose.
OpenRouter's automatic picker sent this job to deepseek/deepseek-v4.1-flash, google/gemini-2.5-flash and passed every must-have but cost 72× the winner (4th of 4). It picks one message at a time and never sees this job's must-haves.
Who failed, in their own words
Meta: Llama 3.1 8B Instruct
- returns valid JSON every time:
Here is the JSON response for the given input: ``` { "category": "billing" } ```
inclusionAI: Ling 3.0 Flash VL
- gives an answer:
no answer came back after three tries (HTTP 429: b'{"error":{"message":"Provider returned error","c)
Every model on every requirement
| Model | cost at your volume | produces written text | takes written text as input | returns valid JSON every time | puts each ticket in the right category |
|---|---|---|---|---|---|
| Auto Router | $0.2075 a month (measured on your tasks) | not applicable — the picker chooses a model per request | not applicable — the picker chooses a model per request | passed 3 of 3 tasks | passed 3 of 3 tasks |
| OpenAI: gpt-oss-20b | $0.0334 a month (measured on your tasks) | yes (estimate — not observed) | yes (estimate — not observed) | passed 3 of 3 tasks | passed 3 of 3 tasks |
| Mistral: Mistral Nemo | $0.0029 a month (measured on your tasks) | yes (estimate — not observed) | yes (estimate — not observed) | passed 3 of 3 tasks | passed 3 of 3 tasks |
| Meta: Llama 3.1 8B Instruct | $0.0054 a month (measured on your tasks) | yes (estimate — not observed) | yes (estimate — not observed) | passed 1 of 3 tasks | passed 3 of 3 tasks |
| inclusionAI: Ling 3.0 Flash | $0.0553 a month (measured on your tasks) | yes (estimate — not observed) | yes (estimate — not observed) | passed 3 of 3 tasks | passed 3 of 3 tasks |
| inclusionAI: Ling 3.0 Flash VL | not measured | yes (estimate — not observed) | yes (estimate — not observed) | not judged — no graded answers | not judged — no graded answers |
6 models tested on support ticket routing; cost of this test $0.0195.
Your app does something like this? XF Model Watch keeps it on the best model. XF Model Watch re-tests your own job as new models arrive and emails you only when one passes every check. Watch this job