{"version":"2026-07-03","name":"Visa Atlas SEO/GEO traffic forecast model","description":"Auditable cohort-level planning model for the Visa Atlas 500k/month SEO/GEO target, with assumptions, measurement commands and falsification gates.","license":"CC BY 4.0","attribution":"Visa Atlas","sourceDatasets":["/api/public/visibility-metrics","/api/public/content-opportunities","/api/public/competitor-query-battlecards","/api/public/battlecard-search-experiments","/api/public/quarterly-market-share-summary","/api/public/authority-distribution-plan"],"methodology":{"planningTargetMonthlyVisits":500000,"planningWindow":"24 months","visibilityMetricsVersion":"2026-07-03","contentOpportunityVersion":"2026-07-03","competitorBattlecardsVersion":"2026-07-05","overlapPolicy":"Cohort ranges are planning ranges, not additive current analytics. The low/high totals are a portfolio target range after coarse overlap control, and authority lift is treated as a dependency rather than a separate traffic row.","currentTrafficClaim":"No current traffic, ranking, CTR, AI-citation or market-share claim is published by this forecast.","privateEvidencePolicy":"Actual sessions, Search Console rows, referrer exports and experiment outcomes stay local unless converted into separately reviewed aggregate evidence.","caveats":["The model is falsifiable planning evidence, not a guarantee of rankings, traffic, citations or market share.","The range must be rebased when reviewed GSC cohorts, AI-citation share, bot logs or authority-distribution evidence contradict an assumption.","New page production must remain subordinate to source freshness, liveness, index-quality and reviewer controls."]},"summary":{"cohortCount":5,"lowMonthlyVisits":390000,"highMonthlyVisits":600000,"planningTargetMonthlyVisits":500000,"targetWithinRange":true},"cohorts":[{"id":"calculators-tools","label":"Calculators and interactive tools","targetMonthlyVisits":{"low":90000,"high":140000},"role":"Profile-specific calculators and planning tools are the click-worthy surface that answer engines cannot fully replace with a static summary.","assumptions":["High-intent calculator pages retain click demand because users need personal inputs, dated thresholds and route-specific caveats.","Each flagship calculator keeps visible source provenance, deterministic logic and no approval prediction.","Calculator pages cross-link to source-backed cost, salary, settlement and route pages so the click creates a deeper crawl path."],"evidenceSurfaces":["/calculators","/calculators/canada-crs","/calculators/uk-total-migration-cost","/calculators/germany-chancenkarte","/api/public/calculator-verdict-contexts","/api/public/visibility-metrics"],"measurementCommands":["npm run audit:calculator-provenance","npm run audit:calculator-verdict-contexts","npm run seo:gsc-cohorts -- gsc-pages.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web"],"dependencies":["Current calculator source data remains fresh under source SLA.","Rendered WebApplication schema and visible provenance stay intact.","GSC stable-rank CTR improves after title, answer-capsule and internal-link tests."],"falsificationGates":["If flagship calculator/tool pages stay below 0.5% CTR at stable rank after the first reviewed GSC experiment window, rebase the cohort target.","If calculator audits fail or source freshness goes red, freeze new calculator launches until provenance is restored."]},{"id":"data-reference","label":"Fees, salary, processing, settlement and cost data pages","targetMonthlyVisits":{"low":110000,"high":160000},"role":"Reusable figure pages target high-intent how-much, how-long and minimum-salary queries while feeding answer capsules, citation packs and open-data reuse.","assumptions":["Each indexed data page exposes a unique source-backed figure or calculation, not a thin route permutation.","Answer engines may satisfy some clicks, so value is counted through both organic sessions and citation/share evidence.","The data layer scales only within source freshness and liveness capacity."],"evidenceSurfaces":["/fees","/processing-times","/salary-thresholds","/cost-to-complete","/settlement","/api/public/fees","/api/public/processing-times","/api/public/salary-thresholds","/api/public/cost-to-complete"],"measurementCommands":["npm run audit:data-citation","npm run audit:freshness","npm run audit:rendered-seo","npm run seo:gsc-cohorts -- gsc-pages.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web"],"dependencies":["Fee, salary, processing and cost records preserve primary source URLs and review dates.","The public data catalog, Dataset/DataDownload JSON-LD and citation blocks remain crawlable.","No stale or invalid high-risk figure record is published."],"falsificationGates":["If stale red-count rises for two consecutive monthly reviews, stop adding data-reference pages.","If GSC rows show impressions without citation or click lift after source-backed answer blocks, prioritise snippet and authority work over new page creation."]},{"id":"freshness-policy","label":"Freshness and policy-change pages","targetMonthlyVisits":{"low":50000,"high":80000},"role":"Dated rule-change, draw and figure-movement surfaces compete where stale blogs and model-training cutoffs are weakest.","assumptions":["Freshness-led pages can rank and be cited when they publish source-backed updates faster than evergreen guides can refresh.","Policy updates and figure-change rows remain linked to official sources and affected canonical pages.","Freshness pages avoid unsupported legal-advice or outcome-prediction language."],"evidenceSurfaces":["/policy-updates","/changelog","/research/immigration-rule-changes-2026","/research/monthly-immigration-figure-changes","/research/canada-express-entry-draw-tracker","/api/public/fact-changes","/api/public/monthly-figure-changes"],"measurementCommands":["npm run audit:policy-claims","npm run audit:monthly-figure-changes","npm run audit:express-entry-categories","npm run kpi:citation-share"],"dependencies":["Policy update and fact-change feeds retain old/new values, effective dates and source URLs.","Citation benchmark prompts continue to cover volatile high-risk facts.","Rendered policy and research pages keep canonical URLs and Article/Dataset schema."],"falsificationGates":["If fresh pages fail to enter citation-share evidence after two quarterly reviews, reduce the freshness traffic range.","If a high-risk stale claim escapes the answer-key audit, pause publication until the source and correction workflow is repaired."]},{"id":"longtail-navigation","label":"Compare, ranking, corridor and profession pages after pruning","targetMonthlyVisits":{"low":90000,"high":130000},"role":"Long-tail pages contribute only where each indexed URL has unique sourced value, source-basis blocks and a useful next action.","assumptions":["Noindex and sitemap gates continue to suppress sparse fallback permutations.","Surviving long-tail pages carry source-backed at-a-glance data, answer capsules or route-specific evidence.","Internal linking sends users and crawlers to the strongest data, route and calculator pages."],"evidenceSurfaces":["/compare","/professions/software-engineer/in/germany","/from/indian/to/uk","/routes/eu-blue-card-vs-chancenkarte-germany","/api/public/indexable-pages","/api/public/country-comparisons"],"measurementCommands":["npm run audit:thin","npm run audit:noindex","npm run audit:longtail-provenance","npm run audit:indexable-page-manifest","npm run seo:gsc-cohorts -- gsc-pages.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web"],"dependencies":["Indexability manifest stays aligned with sitemap and page-level noindex decisions.","Long-tail templates preserve source-basis and legal-scope blocks.","Expansion is earned by verified corridor, profession or comparison data."],"falsificationGates":["If indexed-thin count rises or long-tail source-basis audits fail, halt long-tail expansion.","If 50 thickened long-tail pages do not improve CTR at stable rank, deprioritise authoring until authority improves."]},{"id":"research-authority","label":"Research reports, open API, data reuse and authority distribution","targetMonthlyVisits":{"low":50000,"high":90000},"role":"Original research, open datasets, repository mirrors, publisher kits and authority distribution drive direct visits plus the off-site citations needed to lift every cohort.","assumptions":["Original computed datasets produce citable claims competitors cannot easily copy from ordinary advisory prose.","Off-site reuse preserves canonical backlinks, source URLs, license terms and reviewer evidence before any public success claim.","Traffic lift depends on earned authority; direct research visits are only part of the value."],"evidenceSurfaces":["/research","/data","/api/public","/research/authority-distribution-plan-2026","/research/publisher-citation-kits-2026","/research/external-data-repository-mirrors-2026","/api/public/authority-distribution-plan","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors"],"measurementCommands":["npm run audit:data-front-door","npm run audit:authority-distribution","npm run audit:publisher-citation-kits","npm run audit:repository-mirrors","npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:publisher-citation-kits -- outreach-log.jsonl --json"],"dependencies":["Publisher, repository and authority evidence rows require reviewed public evidence before claims are published.","Every report keeps CiteDataset blocks and Dataset/DataDownload schema.","External distribution avoids bought links, guaranteed-backlink language and unapproved launch claims."],"falsificationGates":["If two consecutive flagship reports earn no approved citation, repository or publisher evidence, reallocate effort to product and data-page quality.","If any approved authority row lacks source URLs, canonical backlink or reviewer fields, fail the local evidence command and do not publish the claim."]}]}