Research & Evidence · The instrument
How Brand IQ is computed.
The full technical note. The source files are named throughout, so every claim on this page is checkable against the shipped code.
In one sentence
Your real buyer questions go to the AI engines your buyers use. A rules-based reader - not another AI’s opinion - scores how prominently you show up in each answer, 0 to 5. Those blend into one 0-100 Brand IQ.
Step one: prominence, 0 to 5 per answer
A deterministic rules pass reads each engine answer and scores where your name lands. No LLM grades another LLM. The ladder (from fama/src/lib/engines/_shared/prominence.ts):
- Not mentioned at all
- Only in a citation list at the bottom
- Named in passing, mid-answer
- Named as a real option in the body
- Named in the engine's first sentence
- Named first AND called a "top pick" or "best"
The mechanics are plain text rules: a mention that appears only after a “Sources:” / “References:” / “Citations:” block scores 1; in the body past the first paragraph, 2; in the first paragraph, 3; in the first sentence, 4.
The 5 requires two things at once: the brand leads the first sentence AND an emphasis token sits within 60 characters of the mention. The emphasis lexicon is fixed and published: "top pick", "our pick", "top choice", "best", "recommended", "leading", "leader", "winner", "highest rated", "favorite", "favourite", "standout", "go-to", "must-have", "number one", "#1". Deliberately, the bump applies only at base 4: “best” elsewhere in an answer is descriptive language, not an endorsement of your brand, and crediting it would over-score brands buried below the leaders.
Step two: the blend, 0 to 100
The formula, verbatim from fama/src/lib/scoring/brand-iq.ts:
score = clamp(round(100 × Σ (renorm_weight_e × mean_prominence_e / 5)), 0, 100)
For each engine that answered, take the mean prominence across its results, divide by 5, weight it, and sum. The weights are renormalized over the engines that actually produced results, so an engine being offline never punishes the brand: a four-engine run with the same mean prominence as a five-engine run produces the same score. An incomplete run is flagged degraded instead of silently smoothed over.
The v1-beta engine weights, published:
| Engine | Weight |
|---|---|
| ChatGPT | 0.30 |
| Perplexity | 0.25 |
| Gemini | 0.25 |
| Google AI Overviews | 0.10 |
| Copilot | 0.10 |
| Claude (API) | 0.10 |
| Claude (web) | 0.10 |
| Grok | 0.10 |
Alongside the blended number, the scorer keeps a per-engine 0-100 sub-score for every engine that answered. That is the drift signal: a single engine collapsing can hide inside a blended score, so alerts diff the per-engine line, not just the headline.
What can never move it
The scoring function accepts exactly one input: the prominence results. It is structurally incapable of reading your confirmed Corrections, your verified facts, or your Brand DNA, because none of them are arguments. A pinned test runs the score with and without corrections present and asserts a byte-identical integer. How loudly the engines talk about you and whether they have the facts right are kept as two separate questions, on purpose.
The scored question set is byte-identical on free and paid plans. Paid tiers add separate, unscored coverage questions; the free number is the real number, and upgrading never changes what your historical score line means.
Honest labels
- The weighting is labeled v1-beta in the code and treated as directional: the baseline weights are calibrated on market-share intuition and will be re-tuned against production data.
- When a new engine joins the roster (Claude was added 2026-06-01, Grok 2026-06-17), the renormalization denominator changes: a Brand IQ measured before the addition is not directly comparable to one measured after. Trend readers treat those dates as baseline shifts.
- Prominence thresholds and the emphasis lexicon are calibration targets, tuned against hand-rated fixtures; the current values are the shipped starting point.
The formula is published. Your number is one audit away.
Jinn