The engine panel

Every shopper question is asked of four model families in parallel, through the Vercel AI Gateway.

The panel

Family Primary model Fallbacks
OpenAI openai/gpt-5.6-terra openai/gpt-5.4, openai/gpt-4o
Anthropic anthropic/claude-sonnet-5 anthropic/claude-sonnet-4.6, anthropic/claude-sonnet-4.5
Google google/gemini-3.6-flash google/gemini-3.5-flash, google/gemini-2.5-pro
Perplexity perplexity/sonar perplexity/sonar-pro

Fallbacks are same-provider only, by design: falling back across providers would silently change which family answered, and the panel exists precisely to measure per-family difference.

Model IDs are pinned in source and re-asserted against the live gateway catalog in CI, so a model retirement fails the build rather than silently degrading an audit.

Call parameters

  • temperature: 0
  • max_tokens: 1024
  • Per-call timeout: 20 seconds
  • Engine concurrency: 4

Volume per run

Up to 4 engines × 5 questions = 20 engine calls, plus one brand-profile call and one judge call per response that came back.

Two supporting models

Not part of the panel, and not scored:

Role Model
Brand profile extraction openai/gpt-4o-mini
Response judging openai/gpt-4o-mini

Skipped engines

An engine that could not be reached is recorded in engine_panel.skipped with a reason, and each of its unanswered questions counts as a hole in the evidence denominator. Enough holes trips the coverage gate and the score is withheld.

Zero available engines is a hard failure. It is never a 100/100.