engines.yaml defines the model, provider, weight, and behavior for each engine.
Grounded engines
These engines retrieve external information before generating an answer. They can cite sources and provide more current information than parametric recall alone.
ChatGPT has the highest weight (0.30), reflecting its position as the most widely used consumer answer engine. Grok has the lowest weight among grounded engines.
Perplexity uses
native_grounding: true, meaning its retrieval and citation behavior is built into the model endpoint rather than added as a separate RAG layer. Claude explicitly has zdr: false — no zero-data retrieval — meaning it answers from parametric memory unless the caller adds retrieval.
Exa — retrieval engine
Exa is not an OpenRouter model. It has its own transport and bills per request rather than per token. The platform runs two Exa modes:
Both have zero engine weight (0.00). They do not contribute to the score’s engine-weighing directly but provide independent measurement of whether a brand is findable in the retrieval index. The
exa preset exercises both modes on the same prompts.
Parametric engines
These engines answer from training data only. They are not grounded and cannot cite sources.
Both parametric engines have low observed cost per call (0.0005 µUSD) and are included in the
standard and deep presets. Their output reflects the model’s training data, not current web content. A brand that launched recently may be absent from their parametric memory.
Provider architecture
All OpenRouter engines are accessed through the operator’s OpenRouter API key (OPENROUTER_API_KEY). Exa is accessed through a separate EXA_API_KEY. Both keys are operator-custodied — they go in the deployment environment, not the workspace settings. See Connections for the custody model.
How engine weighting feeds the score
The GEO score’s modeled reach component (weight 0.15) uses engine weights as a volume proxy. The calculation multiplies each measured engine’s visibility by its configured weight, sums across all grounded engines, and divides by the total configured weight:engines.yaml. They are modeling choices, not claimed traffic share. The weight of 0.30 on ChatGPT means the score treats ChatGPT coverage as 30% of the modeled reach. Weights are declared only for grounded engines; Exa modes and parametric engines have zero weight.
Missing components — an engine that was not measured — affect modeled reach through the grounded-engine penalty described in the GEO Score documentation. The volumeProxy.source is always engines.yaml grounded usage weights.