Regional SERP Comparison: how RVAS works
Last updated:
Interpretation note
1.What is RVAS?
The Regional Visibility Anomaly Score (RVAS) is a 0–100 score that says how much a domain's visibility for one keyword differs between a baseline location and a compared location on the same device. Visqio computes it from licensed SERP snapshots requested with explicit location and language codes — never from Google directly — together with metrics, a status and evidence, per keyword × device × location pair.
2.Inputs and validity
Inputs are the SERP snapshots for the keyword and device at both locations over the window (default 7 days), paired by UTC calendar day, plus the project's PRIMARY domains (and CONTROLLED hosts when enabled) as the target, and previous comparison rows for persistence and trend.
TEST_INVALID when either location has a FAILED or PARTIAL snapshot for more than 50 % of the window, the snapshot language codes differ from the keyword language, or the two snapshots of a pair are more than 36 hours apart. INSUFFICIENT_DATA with fewer than 3 paired days.
3.Metrics
| Metric | Definition | Aggregation |
|---|---|---|
| Position (baseline, compared) | Best organic rank of the target; absent from top 100 = 101 | Median over window |
| Position delta | compared − baseline (positive = worse in compared) | Median |
| Presence | 1 if the target appears in the top 100 | Share of days present |
| Presence gap | baseline share − compared share, in [−1, 1] | — |
| Top-N overlap | Jaccard similarity of hostnames in the top 10 / top 20 between locations (all results) | Mean |
| Persistence | Consecutive paired days the presence-gap sign or a delta ≥ 5 has held | — |
| Churn | 1 − Jaccard(top 10 today, top 10 previous day) in the compared location | Mean |
4.Score (RVAS)
Five components, each normalised to 0–100 with higher meaning more anomalous, combined with weights that sum to 100: RVAS = round(Σ Cᵢ × wᵢ / 100).
| Component | Formula | Weight |
|---|---|---|
| C1 Presence gap | clamp(presence_gap × 100, 0, 100) — only penalises absence in compared while present in baseline | 35 |
| C2 Position delta | clamp(median delta × 5, 0, 100) — 20 positions worse → 100 | 25 |
| C3 SERP dissimilarity | (1 − top-10 overlap) × 100, counted only when C1 or C2 > 0 | 15 |
| C4 Persistence | min(persistence days / window days, 1) × 100 | 15 |
| C5 Stability | (1 − churn) × 100 if C1 > 50, else 0 — a stable SERP in which the target is consistently missing is more anomalous than a volatile one | 10 |
5.Statuses
| Status | Rule (first match) |
|---|---|
| TEST_INVALID | Validity gates above |
| INSUFFICIENT_DATA | Fewer than 3 paired days, or target absent in both locations for the whole window |
| POSSIBLE_COUNTRY_SPECIFIC_RESTRICTION | presence gap ≥ 0.85, persistence ≥ 5 days, top-10 overlap ≥ 0.4, churn ≤ 0.3, and the same pattern for ≥ 60 % of the project's keywords on this pair; requires two consecutive daily runs (hysteresis) |
| STRONG_REGIONAL_ANOMALY | RVAS ≥ 70 and persistence ≥ 3 days |
| REGIONAL_DIFFERENCE | RVAS ≥ 35 |
| NORMAL | Otherwise |
The restriction status always renders as: "Possible country-specific restriction — the domain is consistently absent in {country} while present in {baseline} across {n} keywords. This can indicate geo-targeting, hreflang, regional legal requirements, or provider sampling. Verify with GSC country impressions before concluding." When available, Search Console impressions per country over 28 days are attached as evidence.
6.Alerts
Entering STRONG_REGIONAL_ANOMALY raises a WARNING; entering POSSIBLE_COUNTRY_SPECIFIC_RESTRICTION raises a project-level CRITICAL alert listing the keywords; 30 % or more of a project's keywords in STRONG_REGIONAL_ANOMALY for one pair raises a project-level CRITICAL; a return to NORMAL after 7 or more anomalous days raises an INFO "recovered" alert. Every alert body includes the disclaimer and a link to the comparison detail.
7.Limits
Providers sample from data-centre IPs and may not reflect every user in a region. Google personalises by location, language, device and freshness, so differences are expected; only persistent, keyword-wide patterns on otherwise similar SERPs reach the restriction status, and even then the wording is a hypothesis. Constants (window 7 days, absent rank 101, thresholds above) are versioned as RULESET_VERSION 2026.08 in every record.
Frequently asked questions
Does POSSIBLE_COUNTRY_SPECIFIC_RESTRICTION mean my site is blocked in that country?
No. It is the only status that hints at restriction, and it is deliberately hedged: the domain is consistently absent in the compared location while present in the baseline, across most tracked keywords, on a SERP that otherwise looks similar. Geo-targeting, hreflang, regional legal content requirements or provider sampling can all cause it. Verify with Search Console country impressions before concluding.
Why is a pair INSUFFICIENT_DATA?
Fewer than 3 paired days exist in the 7-day window, or the target is absent in both locations for the whole window — then there is nothing to compare and the eligibility engine covers the case.
What is a paired day?
Snapshots for the same keyword and device at both locations on the same UTC calendar day and no more than 36 hours apart. Unpaired days are ignored; a pair whose language codes differ from the keyword's language makes the comparison TEST_INVALID.
What does direction = compared_better mean?
The target is better in the compared location than in the baseline. The score is computed on the mirrored pair and flagged informational; no anomaly status is emitted.
Related methodology
Sources: Google's URL Inspection API, Search Console Search Analytics API and spam policies documentation.