Head to head: grok-4.3 vs mistral-medium-3-5
This was a close matchup, but the split tells a clear story: one model was more dependable on instruction-following in practical business tasks, while the other won on tighter formatting discipline and a more spec-faithful redaction edge case. The final margin reflects that difference in priorities, not a blowout.
By RuntimeWire · Published

The score says 34.0 to 31.0 for grok-4.3, and that result tracks the most important misses. grok-4.3 took vendor-delay-email and messy-orders-to-json, while mistral-medium-3-5 won python-log-redactor and meeting-summary-actions. That is an even split on paper, but not an even split in impact: grok-4.3 was better where brittle instruction-following would actually break the deliverable.
The clearest example is messy-orders-to-json. grok-4.3 did the simple but essential thing: output valid JSON only, parsed the valid rows, and skipped the line missing order_id. mistral-medium-3-5 wrapped otherwise correct content in Markdown code fences, which is exactly the kind of avoidable formatting error that turns a usable answer into a failed one. In structured-output work, that matters more than polish.
grok-4.3 also had the stronger showing on vendor-delay-email. It hit the brief with a proper subject line, the right accountable tone, correct treatment of the delayed portion of the order, and stayed within the 140–180 word target. mistral-medium-3-5 wrote a decent note, but it came in short and inserted an unsupported year for May 28. That is not a stylistic quibble; it is a factual and instruction-level miss in a routine workplace task.
mistral-medium-3-5 absolutely earned its wins. On python-log-redactor, it was closer to spec because it preserved trailing punctuation for token and api_key values, whereas grok-4.3 dropped punctuation and used a narrower secret pattern. On meeting-summary-actions, both models were accurate, but mistral-medium-3-5 better matched the requested structure with exactly three concise summary bullets and cleaner separation of extracted details. Those are real advantages, especially for users who care about formatting precision.
Still, the verdict is straightforward: grok-4.3 is the better model here. mistral-medium-3-5 was sharper on a redaction edge case and cleaner on summary formatting, but grok-4.3 was more reliable on the tasks where following the output contract and the business brief was non-negotiable.
How they were tested
We ran 4 fresh text tasks, generated on the fly for this matchup so neither model could prepare in advance, and had gpt-5.4 score each one. grok-4.3 scored 34.0 to mistral-medium-3-5's 31.0.
1. python-log-redactor
Language: Python 3.11. Write a function
redact_log(line: str) -> strthat masks sensitive values in application log lines before they are stored. Rules: - Replace any IPv4 address with[IP]. - Replace any email address with[EMAIL]. - Replace any value oftoken=...orapi_key=...withtoken=[SECRET]/api_key=[SECRET]and preserve trailing punctuation. - Do not change timestamps, paths, or non-sensitive numbers. Examples:2026-02-03T07:11:04Z login ok user=mina@farside.tools ip=198.51.100.24 token=abC123-XY9->2026-02-03T07:11:04Z login ok user=[EMAIL] ip=[IP] token=[SECRET]warn api_key=z9_z9_z9, path=/v1/export client_ip=203.0.113.7->warn api_key=[SECRET], path=/v1/export client_ip=[IP]Return code only.
Winner: mistral-medium-3-5 — B better follows the requirement to preserve trailing punctuation for token/api_key values, while A drops punctuation and only matches a narrower secret character set. Both use a permissive IPv4 regex and are otherwise reasonable, but B is closer to the spec overall.
2. vendor-delay-email
Draft an email to a procurement manager at Northline Biologics. Context: our company, Alder Peak Instruments, will deliver 420 cryogenic vial racks 9 days late because a powder-coating batch failed inspection. We can ship 180 racks on the original date, the remaining 240 on May 28. Offer either a 6% discount on the delayed portion or free expedited freight. Tone: accountable, calm, professional. Length: 140–180 words. Include a clear subject line.
Winner: grok-4.3 — A better satisfies the brief with a clear subject line, accountable and professional tone, correct handling of the delayed portion, and a length that fits the 140–180 word requirement. B is concise and polished, but it appears under the requested length and introduces an unsupported year for May 28.
3. meeting-summary-actions
Summarize the meeting notes below in 3 bullet points, then extract: (a) decision, (b) owner for each action item, (c) next meeting date. Notes: - 9:00 standup for the Bristlecone mobile app. - Nia said Android crash rate rose after v4.8.1; mostly on Samsung A52 when users open saved route maps offline. - Pavel found the issue likely tied to the new tile cache. Hotfix candidate ready by Thursday afternoon. - Irene from support said 19 tickets mention blank maps; 7 of those are from paid field teams. - Team agreed not to roll back 4.8.1 because the battery drain fix is too important. - Action: Pavel to ship hotfix build to QA by Thu 3 PM. - Action: Nia to post an in-app status notice draft by noon today. - Action: Irene to tag all related support tickets with
offline-map-blank. - Next sync: Friday, April 17 at 10:30 AM.
Winner: mistral-medium-3-5 — Both are accurate, but B adheres more closely to the requested format with exactly 3 concise summary bullets and clearly separated extracted details. A is also correct, but its third bullet is vague and less informative than B’s summary.
4. messy-orders-to-json
Convert the messy order lines below into valid JSON only. Output schema: { "orders": [ {"order_id": string, "customer": string, "sku": string, "qty": integer, "unit_price": number, "rush": boolean} ] } Rules: - One object per valid line. - Trim spaces. -
qtyis an integer. -unit_priceis a number without currency symbols. -rushis true only for yes/y. - Skip the line with a missing order_id. Data: ORD-771 | customer: Leeward Studio | sku=PX-14 | qty 3 | unit $19.50 | rush yes ORD-772|customer:Mariner Vale|sku=Q-9|qty 12|unit $4|rush no | customer: Hollow Ember | sku=LM-2 | qty 5 | unit $11.00 | rush yes ORD-774 | customer: Ilex Foods | sku=AA-88 | qty 1 | unit $250.00 | rush y
Winner: grok-4.3 — Model A follows the instruction to output valid JSON only and correctly parses all valid lines while skipping the missing order_id. Model B's content is otherwise correct, but the surrounding Markdown code fences violate the 'JSON only' requirement.
See every prompt and the full side-by-side outputs in the interactive Head-to-Head.