OverpayingForAIPricing desk

SQL · 6 checks · max 500 tokens · benched 2026-09-16

Mistral Large 3 2512 vs Mistral Medium 3.5 vs Mistral Small 4 vs Ministral 3 8B 2512 on top five customers by 2025 spend

Mistral AI models side by side on "Top five customers by 2025 spend": Mistral Small 4 scores 10/10; Ministral 3 8B 2512 is the cheapest answer scoring 8+ at $0.02 per 1,000 runs. Outputs, checks, judge reasons, latency and cost.

The prompt every model received

System

You are a database engineer. Reply with a single SQL statement and nothing else.

User

Tables: customers(id, name) and orders(id, customer_id, amount, ordered_at). Write one standard SQL query that returns each customer's name and their total order amount for calendar year 2025, highest total first, limited to the top 5. Use a JOIN, GROUP BY and ORDER BY.

Rubric for the judge: Correct join and aggregate, filters ordered_at to 2025, sorts descending, limits to 5, portable SQL.

Side by side

Every cell is one OpenRouter call at temperature 0 with the prompt's token cap and reasoning effort "low" where the model supports it. Cost is usage × the catalogue rate in models.json. Quality is one judge call to anthropic/claude-haiku-4.5 against the prompt's rubric, cached per prompt version.

Mistral Large 3 2512

mistralai/mistral-large-2512

10/10
Latency
482ms
Cost
$0.00017
Per 1,000
$0.17

86 in · 88 out · 35 words · checks 6/6

  • regex
  • regex
  • regex
  • regex
  • regex
  • contains
```sql
SELECT c.name, SUM(o.amount) AS total_amount
FROM customers c
JOIN orders o ON c.id = o.customer_id
WHERE o.ordered_at >= '2025-01-01' AND o.ordered_at < '2026-01-01'
GROUP BY c.id, c.name
ORDER BY total_amount DESC
LIMIT 5;
```

Judge: Query correctly joins customers and orders, filters 2025 using date range, groups by customer with proper aggregation, orders descending by total, limits to 5, and uses portable standard SQL syntax.

Mistral Medium 3.5

mistralai/mistral-medium-3-5

10/10
Latency
994ms
Cost
$0.00258
Per 1,000
$2.58

98 in · 324 out (204 reasoning) · 33 words · checks 6/6

  • regex
  • regex
  • regex
  • regex
  • regex
  • contains
SELECT c.name, SUM(o.amount) AS total_amount FROM customers c JOIN orders o ON c.id = o.customer_id WHERE o.ordered_at >= '2025-01-01' AND o.ordered_at < '2026-01-01' GROUP BY c.id, c.name ORDER BY total_amount DESC LIMIT 5

Judge: Query correctly joins customers and orders, filters 2025 using date range, groups by customer with proper aggregation, orders descending by total, limits to 5, and uses portable standard SQL syntax.

Mistral Small 4

mistralai/mistral-small-2603

10/10
top judge score
Latency
970ms
Cost
$0.00016
Per 1,000
$0.16

98 in · 267 out (199 reasoning) · 33 words · checks 6/6

  • regex
  • regex
  • regex
  • regex
  • regex
  • contains
```sql
SELECT c.name, SUM(o.amount) AS total_amount FROM customers c JOIN orders o ON c.id = o.customer_id WHERE EXTRACT(YEAR FROM o.ordered_at) = 2025 GROUP BY c.id, c.name ORDER BY total_amount DESC LIMIT 5;
```

Judge: Query correctly joins customers and orders, filters 2025 using EXTRACT(YEAR FROM ...), groups by customer with proper aggregation, orders descending by total, limits to 5, and uses portable standard SQL syntax.

Ministral 3 8B 2512

mistralai/ministral-8b-2512

8/10
cheapest scoring 8+
Latency
328ms
Cost
$2.3e-5
Per 1,000
$0.02

86 in · 69 out · 31 words · checks 6/6

  • regex
  • regex
  • regex
  • regex
  • regex
  • contains
```sql
SELECT c.name, SUM(o.amount) AS total_order_amount
FROM customers c
JOIN orders o ON c.id = o.customer_id
WHERE YEAR(o.ordered_at) = 2025
GROUP BY c.id, c.name
ORDER BY total_order_amount DESC
LIMIT 5;
```

Judge: Query correctly uses JOIN, GROUP BY, ORDER BY, and LIMIT with proper 2025 filtering and descending sort, but YEAR() function is not portable across all SQL dialects (PostgreSQL, SQLite require alternatives).

Frequently asked

What does this prompt test?

SQL: Correct join and aggregate, filters ordered_at to 2025, sorts descending, limits to 5, portable SQL. The deterministic checks are regex, regex, regex, regex, regex, contains.

Which model should I pick for this task?

If the judge's bar of 8/10 is good enough for you, Ministral 3 8B 2512 at $0.02 per 1,000 runs. If you need the top score, Mistral Small 4 at $0.16 per 1,000 runs.

If our calculators helped you cut down on hidden AI wallet leaks, thanks for using them. A tiny fraction of your savings is what keeps our pricing indexes updated daily.

Not sure which AI is cheapest for your use case? Find out in 30 seconds — no signup required.

AI cost intelligence

Stop overpaying for AI tools

Join the OverpayingForAI list for pricing updates, cheaper alternatives, and practical buying guidance.

Now tracking 50+ AI tools, models, platforms, subscriptions, coding tools, and automation products.

We use your email only for OverpayingForAI updates. Unsubscribe anytime.