Quattr leads AEO, SEO, and content rankings on G2 Spring 2026. View our G2 badges →
Request demo
Request demo

derived metric rank positions (positive means we rank worse than the rival) · lower is better

Head-to-head rank gap

also called Position gap vs a rivalRank difference

Definition

The difference in average results-page position between your site and one named competitor on the same tracked keyword.

How it's calculated

Your average rank minus the named competitor's average rank on the same keyword, rounded to two decimal places, computed only where BOTH sides hold a position above zero, otherwise null. The competitor is resolved from the roster by domain or label before the read. A row is kept when either side has a position, ordered so that the keywords YOU rank on come first and ascending by your own position within them; the ordering looks only at your side, not at whether the rival also ranks. Capped at one hundred rows.

Scope, grain and dimensions

Grain
One keyword × your domain × one competitor domain × segment × period.
Dimensions
keyword · device · country · brand
Required filters
segment_id · selected_period · source_medium · competitor
Aggregation
Not summable. It is a per-keyword difference; a portfolio view is the distribution of gaps, not their total.
Metric type
derived metric · rank positions (positive means we rank worse than the rival)

Data sources

Where you'll see this

Named reports that normally include this metric.

Competitor search report

Skills and analyses that use it

Skills carry the judgment; the analysis verbs do the reading.

Analysis verbs

competitive_keyword_ranking

Method rungs and levers

R2 Retrieved

A rung tells you what a movement here can and cannot explain, read the rungs below it first.

levers L2 Demand modelingL3 Refresh & content qualityL5 Net-new content

Ask Quattr

How to read it

The sign carries the meaning: positive means the rival is ahead of you on that keyword. Small positive gaps on keywords with real demand are the most actionable rows in the family; large gaps usually reflect a different kind of page rather than a small optimisation.

Caveats, freshness and failure modes

Null where either side has no position, that is a coverage fact, not a tie.

Where you hold no position the row still reports your rank as zero rather than null: the semantic layer defaults a no-impressions ratio to zero and the verb defaults a missing keyword to zero as well. A zero in that column means "no position", never "position zero".

A rival name is resolved by substring against the roster's domains and labels, and an unmatched name falls through as a literal domain, which can return an empty comparison.

The row set is capped at one hundred and the ordering is driven by your own position, so a wide keyword portfolio is truncated by where YOU rank, not by where the gap is largest.

A gap is a position difference, not a traffic difference; nothing here says what either position earns.

Freshness
~1 day behind, Daily observation, available the following day.

Common failure modes

  • Treating a null gap as parity.
  • Reading a zero in your own rank column as a position rather than an absence.
  • Ranking work by gap size alone, which puts the hardest keywords at the top of the list.

Not the same as

The confusions that cause the most wrong decisions.

Head-to-head rank gap Gap to leader Compare definitions →

That gap is a difference in CTR-modeled share of tracked demand against the segment leader; this one is a difference in ranking positions against a named rival.

Verification

Last verified 2026-08-04 · reference version 1.1 { } This metric as JSON ↗