{"version":"2026-07-06","name":"Visa Atlas SEO/GEO measurement run queue","description":"Battlecard-level measurement run queue that turns the SEO/GEO dominance gap ledger into private GSC, SERP/AI, reviewer, authority, AI-visibility, market-share and traffic-outcome evidence runs without publishing raw private evidence.","license":"CC BY 4.0","attribution":"Visa Atlas","datasetUrl":"/api/public/seo-geo-measurement-run-queue","humanUrl":"/research/seo-geo-measurement-run-queue-2026","sourceDatasets":["/api/public/seo-geo-measurement-run-queue","/api/public/seo-geo-dominance-gap-ledger","/api/public/battlecard-search-experiments","/api/public/serp-answer-surface-snapshots","/api/public/quarterly-market-share-summary","/api/public/market-share-capture-plan","/api/public/battlecard-retrieval-coverage","/api/public/ai-retrieval-task-index","/api/public/ai-retrieval-readiness","/api/public/visibility-metrics","/api/public/competitor-query-battlecards","/api/public/source-transparency-benchmark","/api/public/authority-distribution-plan","/api/public/expert-reviewer-entities","/api/public/salary-thresholds","/api/public/policy-claims","/api/public/cost-to-complete","/api/public/fees","/api/public/visas","/api/public/citation-benchmark","/api/public/content-opportunities","/api/public/answer-capsules","/api/public/citation-packs","/api/public/calculator-verdict-contexts","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors","/api/public/search-demand-actions","/api/public/execution-readiness","/api/public/traffic-forecast","/api/public/technical-seo-controls","/api/public/seo-geo-page-action-map","/api/public/seo-geo-production-queue","/api/public/indexable-pages","/api/public/search-index","/api/public/topical-authority-map","/api/public/seo-geo-audit-evidence","/api/public/destinations","/api/public/freshness","/api/public/processing-times","/api/public/fact-changes","/api/public/ai-answer-accuracy-audit","/api/public/express-entry-draws","/api/public/express-entry-categories","/api/public/widgets","/api/public/policy-updates","/api/public/monthly-figure-changes"],"methodology":{"sourceOfTruth":"Rows are derived from the SEO/GEO dominance gap ledger, battlecard search experiments, SERP/AI answer-surface snapshot protocols, quarterly market-share baselines, AI visibility proof workflow and traffic outcome proof workflow.","runOrderRules":["Run order follows the market-share capture-plan order inherited by the dominance gap ledger.","Public control checks run before private measurement for every battlecard.","Reviewer-blocked rows run reviewer proof first; external-evidence rows run snapshot, GSC and authority evidence collection first.","Traffic outcome proof remains the final gate and is never inferred from partial measurement runs."],"statusRules":["ready-for-private-measurement means public controls are ready for GSC, SERP/AI, AI visibility and traffic proof workflows.","reviewer-evidence-blocked means high-risk page review evidence must be resolved before trust or reviewedBy claims.","external-evidence-blocked means public assets exist but third-party, SERP/AI, GSC or authority evidence must be collected before share claims.","public-asset-blocked means measurement should wait for public retrieval coverage remediation."],"privateEvidencePolicy":"Raw analytics, Search Console exports, query rows, SERP screenshots, AI transcripts, browser profiles, referrer logs, reviewer notes and unapproved external evidence stay local unless reviewed, redacted and aggregated.","publicationGates":["Market-share claims require npm run seo:market-share-proof with approvedForMarketShareClaim=true.","AI visibility claims require npm run seo:ai-visibility-proof with approvedForAiVisibilityClaim=true.","Reviewer trust claims require npm run seo:reviewer-proof with approvedForReviewerTrustClaim=true.","500k/month outcome claims require npm run seo:traffic-outcome-proof with approvedForOutcomeClaim=true.","Public outcome-claim boundaries must continue to pass npm run audit:public-outcome-claims."],"caveats":["This queue is execution metadata, not proof that rankings, traffic, AI citations, backlinks, reviewer trust, market share or the 500k/month target have been achieved.","Rows can be ready for private measurement while still being blocked from public outcome claims.","Commands require user-supplied private exports or reviewed aggregate proof files; those files should not be committed."]},"summary":{"runCount":13,"highPriorityRunCount":10,"readyForPrivateMeasurementCount":3,"reviewerEvidenceBlockedCount":8,"externalEvidenceBlockedCount":2,"publicAssetBlockedCount":0,"runNowPhaseCount":39,"finalOutcomeGateCount":26,"contentPieceCount":55,"pageChangeCount":112,"technicalChangeCount":84,"commandCount":52,"sourceDatasetCount":46,"planningTargetMonthlyVisits":500000,"publicTrafficOutcomeClaimAllowed":false,"publicMarketShareClaimAllowed":false},"rows":[{"id":"uk-skilled-worker-cost-salary-measurement-run","battlecardId":"uk-skilled-worker-cost-salary","title":"UK Skilled Worker cost, IHS and salary floors measurement run","url":"https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#uk-skilled-worker-cost-salary","runOrder":1,"priority":"high","measurementStatus":"reviewer-evidence-blocked","dominanceGapStatus":"reviewer-evidence-needed","firstRunnablePhaseIds":["public-control-check","reviewer-proof"],"blockedBy":["reviewer queue: uk-skilled-worker-yml-review"],"queryCluster":["UK Skilled Worker visa cost including IHS","UK Skilled Worker minimum salary 2026","Health and Care Worker IHS exemption"],"targetPages":["/salary-thresholds/uk","/visas/uk/skilled-worker","/calculators/uk-skilled-worker","/cost-to-complete/uk-skilled-worker","/fees/uk/skilled-worker","/calculators/visa-fees","/cost-to-complete/uk-health-and-care-worker","/fees/uk/health-and-care-worker","/visas/uk/health-and-care-worker","/calculators/uk-ilr","/settlement/uk"],"contentPiecesNeeded":["Battlecard answer shape: Table answer: application fee, IHS, maintenance/proof-of-funds, salary floor, ILR timing, source dates and calculator links.","Single first-answer block separating application fee, IHS, maintenance, salary floor and settlement timing.","Worked family-cost example that distinguishes money paid away from refundable or show-only funds.","Citation-pack row for the UK Skilled Worker cost and salary answer used by AI retrievers."],"pageChangesNeeded":["Tighten /calculators/uk-total-migration-cost, /cost-to-complete/uk-skilled-worker and /salary-thresholds/uk around the same short answer.","Add above-the-fold links from UK Skilled Worker route pages to the total-cost builder, fee page and salary page.","Keep Health and Care Worker IHS exemption context visible where the query intent would otherwise collapse routes.","Add or verify contextual internal link to /salary-thresholds/uk.","Add or verify contextual internal link to /visas/uk/skilled-worker.","Add or verify contextual internal link to /calculators/uk-skilled-worker.","Add or verify contextual internal link to /cost-to-complete/uk-skilled-worker.","Add or verify contextual internal link to /fees/uk/skilled-worker.","Add or verify contextual internal link to /calculators/visa-fees."],"technicalChangesNeeded":["Render calculator verdict context, cost line items and Dataset/DataDownload metadata in static HTML.","Verify canonical URLs and noindex state for every UK cost and salary target page.","Run the battlecard GSC experiment mapper before treating a title or answer-capsule change as scalable.","Keep cost-to-complete, fee, salary and UK total migration cost builder mutually linked.","Surface Health and Care Worker as a distinct route where IHS and salary rules differ.","Use rendered audits to verify cost, salary and source dataset snippets in static HTML."],"experimentIds":["uk-skilled-worker-cost-salary-gsc-experiment"],"snapshotProtocolIds":["uk-skilled-worker-cost-salary-surface-snapshot"],"marketShareBaselineIds":["uk-skilled-worker-cost-salary-market-share-baseline"],"reviewerQueueIds":["uk-skilled-worker-yml-review"],"authorityChannelIds":["official-mcp-registry","community-mcp-directories","hugging-face-dataset","github-data-mirror","zenodo-cost-index-doi","show-hn-open-data-launch"],"requiredPrivateEvidence":["GSC query rows for UK cost, IHS and salary variants with declared date range.","Reviewed post-change GSC outcome row before claiming CTR or ranking movement.","Approved AI citation-share output before claiming answer-engine displacement."],"phases":[{"id":"public-control-check","title":"Confirm public retrieval controls before measurement","runClass":"run-now","purpose":"Make sure public pages, JSON endpoints, rendered SEO output and battlecard coverage still pass before private evidence is collected.","localOnlyInputs":[],"commands":["npm run audit:battlecard-retrieval-coverage","npm run audit:seo-geo-dominance-gap-ledger","npm run audit:rendered-seo","npm run audit:seo-geo"],"approvalGate":"All public-control audits pass with no asset-gap rows for this battlecard.","publicOutputAllowed":"Audit pass/fail status only; do not publish private evidence or outcome claims.","doneWhen":"The battlecard remains covered by public answer, citation, page-action, experiment and snapshot protocol surfaces."},{"id":"reviewer-proof","title":"Resolve high-risk reviewer evidence","runClass":"run-now","purpose":"Collect and review credentialed reviewer evidence for high-risk YMYL page targets before reviewedBy or trust claims are emitted.","localOnlyInputs":["reviewer evidence JSONL","credential verification notes","reviewed content diff notes"],"commands":["npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh"],"approvalGate":"approvedForReviewerTrustClaim=true and reviewedAt/reviewedBy are present in the reviewed aggregate proof.","publicOutputAllowed":"Only reviewed aggregate reviewer status and approved reviewedBy fragments; no private candidate notes or unapproved reviewer contact data.","doneWhen":"Reviewer queues resolved for uk-skilled-worker-yml-review."},{"id":"authority-proof","title":"Collect off-site authority and distribution evidence","runClass":"run-after-reviewer-evidence","purpose":"Convert publisher, repository, widget, MCP directory and citation-kit distribution into reviewed backlink/source-preservation evidence.","localOnlyInputs":["authority distribution JSONL","publisher/repository URLs after review","source-preservation checks"],"commands":["npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof"],"approvalGate":"approved authority proof with reviewedAt/reviewedBy and canonical backlinks/source URLs preserved.","publicOutputAllowed":"Reviewed aggregate authority counts and approved public URLs only; account credentials, unpublished URLs and rejection notes stay local.","doneWhen":"6 high-priority authority channels have reviewed evidence or an explicit blocked status."},{"id":"gsc-experiment","title":"Run Search Console battlecard experiment export","runClass":"run-after-reviewer-evidence","purpose":"Map private Search Console query/page rows to the battlecard experiment contract and decide title, snippet, answer-capsule or internal-link actions from reviewed aggregates.","localOnlyInputs":["Search Console CSV export","redacted property label","baseline and comparison windows"],"commands":["npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:gsc-experiment-outcomes","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Reviewed aggregate GSC experiment outcome row with scopeMatched=true and query rows redacted.","publicOutputAllowed":"Reviewed aggregate experiment decision only; raw queries, clicks, impressions, CTR and positions stay local.","doneWhen":"The battlecard has a reviewed GSC action decision or a documented no-change decision."},{"id":"serp-ai-snapshot","title":"Capture SERP and AI answer-surface snapshots","runClass":"run-after-reviewer-evidence","purpose":"Collect dated Google SERP and AI answer-surface evidence for source-class pressure, Visa Atlas visibility, stale claims and citation gaps.","localOnlyInputs":["SERP/AI snapshot JSONL","browser profile metadata","AI answer captures after redaction review"],"commands":["npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run audit:serp-answer-surface-snapshots","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Snapshot rows pass local schema checks and are reviewed before any public rollup is generated.","publicOutputAllowed":"Battlecard counts, source-class counts and reviewed URLs only; raw screenshots, long AI transcripts and private browser data stay local.","doneWhen":"The battlecard has at least one reviewed Google SERP row and one reviewed AI answer row for the agreed query/locale set."},{"id":"quarterly-market-share-rollup","title":"Summarise quarterly market-share evidence","runClass":"run-after-reviewer-evidence","purpose":"Turn reviewed SERP/AI snapshots into a redacted quarterly market-share rollup and run the local market-share proof gate.","localOnlyInputs":["reviewed surface-summary JSON","approved rollup metadata","reviewed market-share proof JSON"],"commands":["npm run seo:market-share-summary -- surface-summary.json --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:rendered-seo"],"approvalGate":"approvedForMarketShareClaim=true with complete battlecard coverage, reviewedAt and reviewedBy.","publicOutputAllowed":"Approved aggregate rollup only; no raw screenshots, answer text, snippets, query rows, browser profiles or private reviewer notes.","doneWhen":"The battlecard is covered by a complete approved quarterly rollup or explicitly disclosed as missing from a partial rollup."},{"id":"ai-visibility-proof","title":"Run AI visibility proof gate","runClass":"final-outcome-gate","purpose":"Prove AI citation, answer accuracy and AI-referral evidence from reviewed aggregate files before any GEO visibility claim.","localOnlyInputs":["AI visibility proof JSON","graded benchmark output","bot-filtered AI referral aggregate"],"commands":["npm run kpi:citation-share","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof"],"approvalGate":"approvedForAiVisibilityClaim=true with full fixed-basket benchmark coverage and reviewedAt/reviewedBy.","publicOutputAllowed":"Reviewed aggregate citation-share, answer-accuracy and AI-referral metrics only; raw model outputs and analytics rows stay local.","doneWhen":"The fixed benchmark has reviewed citation and accuracy evidence across the declared engines."},{"id":"traffic-outcome-proof","title":"Run 500k/month traffic outcome proof gate","runClass":"final-outcome-gate","purpose":"Reconcile bot-filtered analytics, GSC cohorts, AI visibility and market-share proof before any public 500k/month outcome claim.","localOnlyInputs":["reviewed traffic outcome proof JSON","bot-filtered analytics aggregate","GSC cohort aggregate"],"commands":["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","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:public-outcome-claims"],"approvalGate":"approvedForOutcomeClaim=true, reviewedAt/reviewedBy present, SEO/GEO visits meet the target and market-share proof is complete.","publicOutputAllowed":"Reviewed aggregate monthly outcome proof only; raw analytics, GSC exports, screenshots and AI transcripts stay local.","doneWhen":"Reviewed aggregate evidence proves at least 500,000 qualified monthly visits from SEO/GEO-attributable channels."}],"localCommands":["npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run audit:market-share-capture-plan","npm run audit:rendered-seo","npm run audit:seo-geo","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:market-share-summary -- surface-summary.json --json","npm run audit:content-opportunities","npm run audit:topical-authority-map","npm run audit:indexable-page-manifest","npm run audit:longtail-provenance","npm run audit:technical-seo-controls","npm run audit:data-citation","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:sources","npm run audit:thin","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:seo-geo-audit-evidence","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:seo-geo-dominance-gap-ledger","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:battlecard-retrieval-coverage","npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh","npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof","npm run audit:gsc-experiment-outcomes","npm run audit:serp-answer-surface-snapshots","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof","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","npm run audit:public-outcome-claims"],"sourceDatasets":["/api/public/seo-geo-measurement-run-queue","/api/public/seo-geo-dominance-gap-ledger","/api/public/battlecard-search-experiments","/api/public/serp-answer-surface-snapshots","/api/public/quarterly-market-share-summary","/api/public/market-share-capture-plan","/api/public/battlecard-retrieval-coverage","/api/public/ai-retrieval-task-index","/api/public/ai-retrieval-readiness","/api/public/visibility-metrics","/api/public/competitor-query-battlecards","/api/public/source-transparency-benchmark","/api/public/authority-distribution-plan","/api/public/expert-reviewer-entities","/api/public/salary-thresholds","/api/public/policy-claims","/api/public/cost-to-complete","/api/public/fees","/api/public/visas","/api/public/citation-benchmark","/api/public/content-opportunities","/api/public/answer-capsules","/api/public/citation-packs","/api/public/calculator-verdict-contexts","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors","/api/public/search-demand-actions","/api/public/execution-readiness","/api/public/traffic-forecast","/api/public/technical-seo-controls","/api/public/seo-geo-page-action-map","/api/public/seo-geo-production-queue","/api/public/indexable-pages","/api/public/search-index","/api/public/topical-authority-map","/api/public/seo-geo-audit-evidence","/api/public/destinations","/api/public/freshness","/api/public/processing-times"],"noGoBoundaries":["Do not merge IHS-exempt and non-exempt routes into one cost claim.","Do not publish a cost winner claim without source-linked current figures.","Do not call the sprint successful from impressions alone.","Do not publish current market-share, ranking, traffic or AI-citation claims from this planning row alone.","Do not expose raw screenshots, private Search Console exports, long AI transcripts or reviewer notes.","Blocked until an approved redacted snapshot rollup supplies dated counts, approvedForPublication=true, reviewedAt and reviewedBy.","Do not publish current market-share, ranking, traffic, AI-citation, backlink or 500k/month progress claims without approved reviewed aggregate evidence.","Do not imply endorsement or eligible-prize status guarantees a visa.","Do not describe Global Talent as employer-sponsored or salary-threshold dependent.","Do not claim UK Global Talent query-share gains without reviewed GSC or SERP/AI snapshot evidence.","Do not claim rankings, traffic, AI citation share or market-share gains from this handoff without approved aggregate evidence.","This row is a Q3 2026 baseline contract, not a live rank or traffic-share claim.","Approved market-share rollups must publish counts and dates, not raw screenshots, long AI transcripts or private reviewer notes.","Competitor source-class labels must stay aligned with the source-transparency benchmark and snapshot protocol.","Do not publish rankings, traffic, backlinks, AI-citation, market-share or 500k/month progress claims without reviewed aggregate outcome proof.","Do not publish traffic, ranking, AI-citation, backlink, reviewer-trust or market-share claims from this queue alone."],"privateEvidenceBoundary":"Raw analytics, Search Console exports, SERP screenshots, AI transcripts, referrer logs, browser profiles, reviewer notes and unapproved rollups stay local unless reviewed, redacted and aggregated.","suggestedCitation":"Visa Atlas, \"Visa Atlas SEO/GEO measurement run queue: UK Skilled Worker cost, IHS and salary floors\", https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#uk-skilled-worker-cost-salary. Last modified 2026-07-06."},{"id":"uk-global-talent-eligibility-measurement-run","battlecardId":"uk-global-talent-eligibility","title":"UK Global Talent eligibility, endorsement and settlement measurement run","url":"https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#uk-global-talent-eligibility","runOrder":2,"priority":"medium","measurementStatus":"ready-for-private-measurement","dominanceGapStatus":"ready-for-private-measurement","firstRunnablePhaseIds":["public-control-check","authority-proof","gsc-experiment","serp-ai-snapshot","quarterly-market-share-rollup"],"blockedBy":[],"queryCluster":["UK Global Talent visa eligibility","Global Talent endorsement UK tech arts research","UK Global Talent visa settlement 3 years"],"targetPages":["/visas/uk/global-talent","/processing-times/uk/global-talent","/settlement/uk"],"contentPiecesNeeded":["Battlecard answer shape: Eligibility table: endorsement or eligible prize, no sponsor requirement, evidence examples, processing window, 3-or-5-year settlement caveat, source dates and route links.","Eligibility answer table separating endorsement, eligible prize, evidence examples and no-sponsor status.","Processing and settlement bridge explaining endorsement timing, visa-stage timing and 3-or-5-year settlement caveat.","Citation-ready Global Talent source pack for AI retrievers covering route, endorsement and application sources."],"pageChangesNeeded":["Cross-link /visas/uk/global-talent, /processing-times/uk/global-talent and /settlement/uk above the fold.","Add Global Talent as an unsponsored alternative from relevant UK Skilled Worker and profession pages where source-backed.","Place endorsement-body and settlement caveats next to the first-screen eligibility answer.","Add or verify contextual internal link to /visas/uk/global-talent.","Add or verify contextual internal link to /processing-times/uk/global-talent.","Add or verify contextual internal link to /settlement/uk."],"technicalChangesNeeded":["Keep route facts, processing-time facts and settlement-clock caveats aligned across public JSON and rendered HTML.","Verify canonical URLs, noindex state, DataDownload metadata and citation-pack joins for every Global Talent target.","Run rendered SEO and freshness checks before treating a title, route or answer-capsule change as publishable.","Keep /visas/uk/global-talent, /processing-times/uk/global-talent and /settlement/uk linked as one eligibility-to-settlement path.","Expose Global Talent route facts through answer capsules, citation packs and Dataset/DataDownload markup.","Monitor stale endorsement-body and settlement-timing claims before publishing any AI citation or visibility claim."],"experimentIds":["uk-global-talent-eligibility-gsc-experiment"],"snapshotProtocolIds":["uk-global-talent-eligibility-surface-snapshot"],"marketShareBaselineIds":["uk-global-talent-eligibility-market-share-baseline"],"reviewerQueueIds":[],"authorityChannelIds":["official-mcp-registry","community-mcp-directories","hugging-face-dataset","github-data-mirror","zenodo-cost-index-doi","show-hn-open-data-launch"],"requiredPrivateEvidence":["GSC rows for Global Talent eligibility, endorsement, processing and settlement variants.","Reviewed AI answer outputs for stale endorsement-body, sponsor or settlement claims.","Post-change experiment outcome row before any visibility improvement is claimed."],"phases":[{"id":"public-control-check","title":"Confirm public retrieval controls before measurement","runClass":"run-now","purpose":"Make sure public pages, JSON endpoints, rendered SEO output and battlecard coverage still pass before private evidence is collected.","localOnlyInputs":[],"commands":["npm run audit:battlecard-retrieval-coverage","npm run audit:seo-geo-dominance-gap-ledger","npm run audit:rendered-seo","npm run audit:seo-geo"],"approvalGate":"All public-control audits pass with no asset-gap rows for this battlecard.","publicOutputAllowed":"Audit pass/fail status only; do not publish private evidence or outcome claims.","doneWhen":"The battlecard remains covered by public answer, citation, page-action, experiment and snapshot protocol surfaces."},{"id":"authority-proof","title":"Collect off-site authority and distribution evidence","runClass":"run-now","purpose":"Convert publisher, repository, widget, MCP directory and citation-kit distribution into reviewed backlink/source-preservation evidence.","localOnlyInputs":["authority distribution JSONL","publisher/repository URLs after review","source-preservation checks"],"commands":["npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof"],"approvalGate":"approved authority proof with reviewedAt/reviewedBy and canonical backlinks/source URLs preserved.","publicOutputAllowed":"Reviewed aggregate authority counts and approved public URLs only; account credentials, unpublished URLs and rejection notes stay local.","doneWhen":"6 high-priority authority channels have reviewed evidence or an explicit blocked status."},{"id":"gsc-experiment","title":"Run Search Console battlecard experiment export","runClass":"run-now","purpose":"Map private Search Console query/page rows to the battlecard experiment contract and decide title, snippet, answer-capsule or internal-link actions from reviewed aggregates.","localOnlyInputs":["Search Console CSV export","redacted property label","baseline and comparison windows"],"commands":["npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:gsc-experiment-outcomes","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Reviewed aggregate GSC experiment outcome row with scopeMatched=true and query rows redacted.","publicOutputAllowed":"Reviewed aggregate experiment decision only; raw queries, clicks, impressions, CTR and positions stay local.","doneWhen":"The battlecard has a reviewed GSC action decision or a documented no-change decision."},{"id":"serp-ai-snapshot","title":"Capture SERP and AI answer-surface snapshots","runClass":"run-now","purpose":"Collect dated Google SERP and AI answer-surface evidence for source-class pressure, Visa Atlas visibility, stale claims and citation gaps.","localOnlyInputs":["SERP/AI snapshot JSONL","browser profile metadata","AI answer captures after redaction review"],"commands":["npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run audit:serp-answer-surface-snapshots","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Snapshot rows pass local schema checks and are reviewed before any public rollup is generated.","publicOutputAllowed":"Battlecard counts, source-class counts and reviewed URLs only; raw screenshots, long AI transcripts and private browser data stay local.","doneWhen":"The battlecard has at least one reviewed Google SERP row and one reviewed AI answer row for the agreed query/locale set."},{"id":"quarterly-market-share-rollup","title":"Summarise quarterly market-share evidence","runClass":"run-now","purpose":"Turn reviewed SERP/AI snapshots into a redacted quarterly market-share rollup and run the local market-share proof gate.","localOnlyInputs":["reviewed surface-summary JSON","approved rollup metadata","reviewed market-share proof JSON"],"commands":["npm run seo:market-share-summary -- surface-summary.json --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:rendered-seo"],"approvalGate":"approvedForMarketShareClaim=true with complete battlecard coverage, reviewedAt and reviewedBy.","publicOutputAllowed":"Approved aggregate rollup only; no raw screenshots, answer text, snippets, query rows, browser profiles or private reviewer notes.","doneWhen":"The battlecard is covered by a complete approved quarterly rollup or explicitly disclosed as missing from a partial rollup."},{"id":"ai-visibility-proof","title":"Run AI visibility proof gate","runClass":"final-outcome-gate","purpose":"Prove AI citation, answer accuracy and AI-referral evidence from reviewed aggregate files before any GEO visibility claim.","localOnlyInputs":["AI visibility proof JSON","graded benchmark output","bot-filtered AI referral aggregate"],"commands":["npm run kpi:citation-share","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof"],"approvalGate":"approvedForAiVisibilityClaim=true with full fixed-basket benchmark coverage and reviewedAt/reviewedBy.","publicOutputAllowed":"Reviewed aggregate citation-share, answer-accuracy and AI-referral metrics only; raw model outputs and analytics rows stay local.","doneWhen":"The fixed benchmark has reviewed citation and accuracy evidence across the declared engines."},{"id":"traffic-outcome-proof","title":"Run 500k/month traffic outcome proof gate","runClass":"final-outcome-gate","purpose":"Reconcile bot-filtered analytics, GSC cohorts, AI visibility and market-share proof before any public 500k/month outcome claim.","localOnlyInputs":["reviewed traffic outcome proof JSON","bot-filtered analytics aggregate","GSC cohort aggregate"],"commands":["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","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:public-outcome-claims"],"approvalGate":"approvedForOutcomeClaim=true, reviewedAt/reviewedBy present, SEO/GEO visits meet the target and market-share proof is complete.","publicOutputAllowed":"Reviewed aggregate monthly outcome proof only; raw analytics, GSC exports, screenshots and AI transcripts stay local.","doneWhen":"Reviewed aggregate evidence proves at least 500,000 qualified monthly visits from SEO/GEO-attributable channels."}],"localCommands":["npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run audit:market-share-capture-plan","npm run audit:rendered-seo","npm run audit:seo-geo","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:market-share-summary -- surface-summary.json --json","npm run audit:content-opportunities","npm run audit:topical-authority-map","npm run audit:indexable-page-manifest","npm run audit:longtail-provenance","npm run audit:technical-seo-controls","npm run audit:data-citation","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:sources","npm run audit:thin","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:seo-geo-audit-evidence","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:seo-geo-dominance-gap-ledger","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:battlecard-retrieval-coverage","npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof","npm run audit:gsc-experiment-outcomes","npm run audit:serp-answer-surface-snapshots","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof","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","npm run audit:public-outcome-claims"],"sourceDatasets":["/api/public/seo-geo-measurement-run-queue","/api/public/seo-geo-dominance-gap-ledger","/api/public/battlecard-search-experiments","/api/public/serp-answer-surface-snapshots","/api/public/quarterly-market-share-summary","/api/public/market-share-capture-plan","/api/public/battlecard-retrieval-coverage","/api/public/ai-retrieval-task-index","/api/public/ai-retrieval-readiness","/api/public/visibility-metrics","/api/public/competitor-query-battlecards","/api/public/source-transparency-benchmark","/api/public/authority-distribution-plan","/api/public/expert-reviewer-entities","/api/public/visas","/api/public/processing-times","/api/public/citation-benchmark","/api/public/content-opportunities","/api/public/answer-capsules","/api/public/citation-packs","/api/public/calculator-verdict-contexts","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors","/api/public/search-demand-actions","/api/public/execution-readiness","/api/public/traffic-forecast","/api/public/technical-seo-controls","/api/public/seo-geo-page-action-map","/api/public/seo-geo-production-queue","/api/public/indexable-pages","/api/public/search-index","/api/public/destinations","/api/public/salary-thresholds","/api/public/policy-claims","/api/public/cost-to-complete","/api/public/fees","/api/public/topical-authority-map","/api/public/seo-geo-audit-evidence"],"noGoBoundaries":["Do not imply endorsement or eligible-prize status guarantees a visa.","Do not describe Global Talent as employer-sponsored or salary-threshold dependent.","Do not claim UK Global Talent query-share gains without reviewed GSC or SERP/AI snapshot evidence.","Do not publish current market-share, ranking, traffic or AI-citation claims from this planning row alone.","Do not expose raw screenshots, private Search Console exports, long AI transcripts or reviewer notes.","Blocked until an approved redacted snapshot rollup supplies dated counts, approvedForPublication=true, reviewedAt and reviewedBy.","Do not merge IHS-exempt and non-exempt routes into one cost claim.","Do not publish a cost winner claim without source-linked current figures.","Do not call the sprint successful from impressions alone.","Do not publish current market-share, ranking, traffic, AI-citation, backlink or 500k/month progress claims without approved reviewed aggregate evidence.","Do not claim rankings, traffic, AI citation share or market-share gains from this handoff without approved aggregate evidence.","This row is a Q3 2026 baseline contract, not a live rank or traffic-share claim.","Approved market-share rollups must publish counts and dates, not raw screenshots, long AI transcripts or private reviewer notes.","Competitor source-class labels must stay aligned with the source-transparency benchmark and snapshot protocol.","Do not publish rankings, traffic, backlinks, AI-citation, market-share or 500k/month progress claims without reviewed aggregate outcome proof.","Do not publish traffic, ranking, AI-citation, backlink, reviewer-trust or market-share claims from this queue alone."],"privateEvidenceBoundary":"Raw analytics, Search Console exports, SERP screenshots, AI transcripts, referrer logs, browser profiles, reviewer notes and unapproved rollups stay local unless reviewed, redacted and aggregated.","suggestedCitation":"Visa Atlas, \"Visa Atlas SEO/GEO measurement run queue: UK Global Talent eligibility, endorsement and settlement\", https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#uk-global-talent-eligibility. Last modified 2026-07-06."},{"id":"germany-blue-card-salary-recognition-measurement-run","battlecardId":"germany-blue-card-salary-recognition","title":"Germany EU Blue Card salary and recognition measurement run","url":"https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#germany-blue-card-salary-recognition","runOrder":3,"priority":"high","measurementStatus":"reviewer-evidence-blocked","dominanceGapStatus":"reviewer-evidence-needed","firstRunnablePhaseIds":["public-control-check","reviewer-proof"],"blockedBy":["reviewer queue: germany-recognition-yml-review"],"queryCluster":["Germany EU Blue Card minimum salary 2026","EU Blue Card Germany shortage occupation salary","Anabin ZAB Germany skilled worker visa"],"targetPages":["/salary-thresholds/germany","/cost-to-complete/germany-eu-blue-card","/routes/eu-blue-card-vs-chancenkarte-germany","/germany-qualification-recognition","/visas/germany/eu-blue-card","/visas/germany/chancenkarte","/settlement/germany","/calculators/germany-settlement"],"contentPiecesNeeded":["Battlecard answer shape: Short answer first: current salary floor, shortage/non-shortage split, recognition branch, source date and links to salary, recognition and cost datasets.","Short answer pairing salary floor, shortage/non-shortage split and recognition branch.","Recognition decision-tree explainer that routes users through Anabin, ZAB and DAB evidence.","Answer capsule for the salary plus recognition branch, with source dates retained."],"pageChangesNeeded":["Cross-link /salary-thresholds/germany, /germany-qualification-recognition and /calculators/germany-chancenkarte above the fold.","Add a recognition-before-route-choice block to Germany Blue Card versus Chancenkarte pages.","Surface cost-to-complete evidence next to recognition outcomes where the route requires paid checks.","Add or verify contextual internal link to /salary-thresholds/germany.","Add or verify contextual internal link to /cost-to-complete/germany-eu-blue-card.","Add or verify contextual internal link to /routes/eu-blue-card-vs-chancenkarte-germany.","Add or verify contextual internal link to /germany-qualification-recognition.","Add or verify contextual internal link to /visas/germany/eu-blue-card.","Add or verify contextual internal link to /visas/germany/chancenkarte."],"technicalChangesNeeded":["Keep recognition branch logic server-rendered and auditable by static source snippets.","Ensure source-freshness checks cover salary, recognition and cost inputs before publication.","Keep answer capsule, citation pack and route page facts aligned to the same dataset rows.","Keep /salary-thresholds/germany and /germany-qualification-recognition interlinked above the fold.","Expose salary, ZAB/Anabin and cost records through Dataset JSON-LD and citation packs.","Monitor stale salary and recognition claims in AI answers with the citation accuracy key."],"experimentIds":["germany-blue-card-salary-recognition-gsc-experiment"],"snapshotProtocolIds":["germany-blue-card-salary-recognition-surface-snapshot"],"marketShareBaselineIds":["germany-blue-card-salary-recognition-market-share-baseline"],"reviewerQueueIds":["germany-recognition-yml-review"],"authorityChannelIds":["official-mcp-registry","community-mcp-directories","hugging-face-dataset","github-data-mirror","zenodo-cost-index-doi","show-hn-open-data-launch"],"requiredPrivateEvidence":["GSC rows for Blue Card salary and recognition queries.","Reviewed AI-answer outputs for stale salary or recognition-branch claims.","Post-change outcome row for the linked battlecard experiment."],"phases":[{"id":"public-control-check","title":"Confirm public retrieval controls before measurement","runClass":"run-now","purpose":"Make sure public pages, JSON endpoints, rendered SEO output and battlecard coverage still pass before private evidence is collected.","localOnlyInputs":[],"commands":["npm run audit:battlecard-retrieval-coverage","npm run audit:seo-geo-dominance-gap-ledger","npm run audit:rendered-seo","npm run audit:seo-geo"],"approvalGate":"All public-control audits pass with no asset-gap rows for this battlecard.","publicOutputAllowed":"Audit pass/fail status only; do not publish private evidence or outcome claims.","doneWhen":"The battlecard remains covered by public answer, citation, page-action, experiment and snapshot protocol surfaces."},{"id":"reviewer-proof","title":"Resolve high-risk reviewer evidence","runClass":"run-now","purpose":"Collect and review credentialed reviewer evidence for high-risk YMYL page targets before reviewedBy or trust claims are emitted.","localOnlyInputs":["reviewer evidence JSONL","credential verification notes","reviewed content diff notes"],"commands":["npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh"],"approvalGate":"approvedForReviewerTrustClaim=true and reviewedAt/reviewedBy are present in the reviewed aggregate proof.","publicOutputAllowed":"Only reviewed aggregate reviewer status and approved reviewedBy fragments; no private candidate notes or unapproved reviewer contact data.","doneWhen":"Reviewer queues resolved for germany-recognition-yml-review."},{"id":"authority-proof","title":"Collect off-site authority and distribution evidence","runClass":"run-after-reviewer-evidence","purpose":"Convert publisher, repository, widget, MCP directory and citation-kit distribution into reviewed backlink/source-preservation evidence.","localOnlyInputs":["authority distribution JSONL","publisher/repository URLs after review","source-preservation checks"],"commands":["npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof"],"approvalGate":"approved authority proof with reviewedAt/reviewedBy and canonical backlinks/source URLs preserved.","publicOutputAllowed":"Reviewed aggregate authority counts and approved public URLs only; account credentials, unpublished URLs and rejection notes stay local.","doneWhen":"6 high-priority authority channels have reviewed evidence or an explicit blocked status."},{"id":"gsc-experiment","title":"Run Search Console battlecard experiment export","runClass":"run-after-reviewer-evidence","purpose":"Map private Search Console query/page rows to the battlecard experiment contract and decide title, snippet, answer-capsule or internal-link actions from reviewed aggregates.","localOnlyInputs":["Search Console CSV export","redacted property label","baseline and comparison windows"],"commands":["npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:gsc-experiment-outcomes","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Reviewed aggregate GSC experiment outcome row with scopeMatched=true and query rows redacted.","publicOutputAllowed":"Reviewed aggregate experiment decision only; raw queries, clicks, impressions, CTR and positions stay local.","doneWhen":"The battlecard has a reviewed GSC action decision or a documented no-change decision."},{"id":"serp-ai-snapshot","title":"Capture SERP and AI answer-surface snapshots","runClass":"run-after-reviewer-evidence","purpose":"Collect dated Google SERP and AI answer-surface evidence for source-class pressure, Visa Atlas visibility, stale claims and citation gaps.","localOnlyInputs":["SERP/AI snapshot JSONL","browser profile metadata","AI answer captures after redaction review"],"commands":["npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run audit:serp-answer-surface-snapshots","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Snapshot rows pass local schema checks and are reviewed before any public rollup is generated.","publicOutputAllowed":"Battlecard counts, source-class counts and reviewed URLs only; raw screenshots, long AI transcripts and private browser data stay local.","doneWhen":"The battlecard has at least one reviewed Google SERP row and one reviewed AI answer row for the agreed query/locale set."},{"id":"quarterly-market-share-rollup","title":"Summarise quarterly market-share evidence","runClass":"run-after-reviewer-evidence","purpose":"Turn reviewed SERP/AI snapshots into a redacted quarterly market-share rollup and run the local market-share proof gate.","localOnlyInputs":["reviewed surface-summary JSON","approved rollup metadata","reviewed market-share proof JSON"],"commands":["npm run seo:market-share-summary -- surface-summary.json --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:rendered-seo"],"approvalGate":"approvedForMarketShareClaim=true with complete battlecard coverage, reviewedAt and reviewedBy.","publicOutputAllowed":"Approved aggregate rollup only; no raw screenshots, answer text, snippets, query rows, browser profiles or private reviewer notes.","doneWhen":"The battlecard is covered by a complete approved quarterly rollup or explicitly disclosed as missing from a partial rollup."},{"id":"ai-visibility-proof","title":"Run AI visibility proof gate","runClass":"final-outcome-gate","purpose":"Prove AI citation, answer accuracy and AI-referral evidence from reviewed aggregate files before any GEO visibility claim.","localOnlyInputs":["AI visibility proof JSON","graded benchmark output","bot-filtered AI referral aggregate"],"commands":["npm run kpi:citation-share","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof"],"approvalGate":"approvedForAiVisibilityClaim=true with full fixed-basket benchmark coverage and reviewedAt/reviewedBy.","publicOutputAllowed":"Reviewed aggregate citation-share, answer-accuracy and AI-referral metrics only; raw model outputs and analytics rows stay local.","doneWhen":"The fixed benchmark has reviewed citation and accuracy evidence across the declared engines."},{"id":"traffic-outcome-proof","title":"Run 500k/month traffic outcome proof gate","runClass":"final-outcome-gate","purpose":"Reconcile bot-filtered analytics, GSC cohorts, AI visibility and market-share proof before any public 500k/month outcome claim.","localOnlyInputs":["reviewed traffic outcome proof JSON","bot-filtered analytics aggregate","GSC cohort aggregate"],"commands":["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","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:public-outcome-claims"],"approvalGate":"approvedForOutcomeClaim=true, reviewedAt/reviewedBy present, SEO/GEO visits meet the target and market-share proof is complete.","publicOutputAllowed":"Reviewed aggregate monthly outcome proof only; raw analytics, GSC exports, screenshots and AI transcripts stay local.","doneWhen":"Reviewed aggregate evidence proves at least 500,000 qualified monthly visits from SEO/GEO-attributable channels."}],"localCommands":["npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run audit:market-share-capture-plan","npm run audit:rendered-seo","npm run audit:seo-geo","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:market-share-summary -- surface-summary.json --json","npm run audit:content-opportunities","npm run audit:topical-authority-map","npm run audit:indexable-page-manifest","npm run audit:longtail-provenance","npm run audit:technical-seo-controls","npm run audit:data-citation","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:sources","npm run audit:thin","npm run audit:stale","npm run audit:freshness","npm run audit:policy-claims","npm run audit:seo-geo -- --include-liveness","npm run audit:noindex","npm run audit:publisher-citation-kits","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:seo-geo-dominance-gap-ledger","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:battlecard-retrieval-coverage","npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh","npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof","npm run audit:gsc-experiment-outcomes","npm run audit:serp-answer-surface-snapshots","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof","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","npm run audit:public-outcome-claims"],"sourceDatasets":["/api/public/seo-geo-measurement-run-queue","/api/public/seo-geo-dominance-gap-ledger","/api/public/battlecard-search-experiments","/api/public/serp-answer-surface-snapshots","/api/public/quarterly-market-share-summary","/api/public/market-share-capture-plan","/api/public/battlecard-retrieval-coverage","/api/public/ai-retrieval-task-index","/api/public/ai-retrieval-readiness","/api/public/visibility-metrics","/api/public/competitor-query-battlecards","/api/public/source-transparency-benchmark","/api/public/authority-distribution-plan","/api/public/expert-reviewer-entities","/api/public/salary-thresholds","/api/public/cost-to-complete","/api/public/visas","/api/public/citation-packs","/api/public/citation-benchmark","/api/public/content-opportunities","/api/public/answer-capsules","/api/public/calculator-verdict-contexts","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors","/api/public/search-demand-actions","/api/public/execution-readiness","/api/public/traffic-forecast","/api/public/technical-seo-controls","/api/public/seo-geo-page-action-map","/api/public/seo-geo-production-queue","/api/public/indexable-pages","/api/public/search-index","/api/public/topical-authority-map","/api/public/seo-geo-audit-evidence","/api/public/freshness","/api/public/fact-changes","/api/public/ai-answer-accuracy-audit","/api/public/destinations","/api/public/processing-times"],"noGoBoundaries":["Do not reduce Germany recognition to a generic checklist when route choice depends on recognition status.","Do not cite stale salary thresholds or omit the effective date.","Do not publish recognition advice as a legal determination.","Do not publish current market-share, ranking, traffic or AI-citation claims from this planning row alone.","Do not expose raw screenshots, private Search Console exports, long AI transcripts or reviewer notes.","Blocked until an approved redacted snapshot rollup supplies dated counts, approvedForPublication=true, reviewedAt and reviewedBy.","Do not publish current market-share, ranking, traffic, AI-citation, backlink or 500k/month progress claims without approved reviewed aggregate evidence.","Do not imply a points pass guarantees a visa or job offer.","Do not mix money paid away with blocked-account funds without labeling the difference.","Do not claim Germany query-share gains without reviewed GSC or SERP/AI snapshot evidence.","Do not call any route the best without visible criteria and caveats.","Do not create a ranking page from one emerging query row.","Do not publish market-share claims without approved redacted snapshot rollups.","Do not claim rankings, traffic, AI citation share or market-share gains from this handoff without approved aggregate evidence.","This row is a Q3 2026 baseline contract, not a live rank or traffic-share claim.","Approved market-share rollups must publish counts and dates, not raw screenshots, long AI transcripts or private reviewer notes.","Competitor source-class labels must stay aligned with the source-transparency benchmark and snapshot protocol.","Do not publish rankings, traffic, backlinks, AI-citation, market-share or 500k/month progress claims without reviewed aggregate outcome proof.","Do not publish traffic, ranking, AI-citation, backlink, reviewer-trust or market-share claims from this queue alone."],"privateEvidenceBoundary":"Raw analytics, Search Console exports, SERP screenshots, AI transcripts, referrer logs, browser profiles, reviewer notes and unapproved rollups stay local unless reviewed, redacted and aggregated.","suggestedCitation":"Visa Atlas, \"Visa Atlas SEO/GEO measurement run queue: Germany EU Blue Card salary and recognition\", https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#germany-blue-card-salary-recognition. Last modified 2026-07-06."},{"id":"germany-chancenkarte-points-cost-measurement-run","battlecardId":"germany-chancenkarte-points-cost","title":"Germany Chancenkarte points, proof of funds and cost measurement run","url":"https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#germany-chancenkarte-points-cost","runOrder":4,"priority":"high","measurementStatus":"reviewer-evidence-blocked","dominanceGapStatus":"reviewer-evidence-needed","firstRunnablePhaseIds":["public-control-check","reviewer-proof"],"blockedBy":["reviewer queue: germany-recognition-yml-review"],"queryCluster":["Germany Chancenkarte points calculator 2026","Germany Opportunity Card blocked account amount","Germany Chancenkarte cost proof of funds"],"targetPages":["/calculators/germany-chancenkarte","/visas/germany/chancenkarte","/routes/eu-blue-card-vs-chancenkarte-germany","/cost-to-complete/germany-chancenkarte"],"contentPiecesNeeded":["Battlecard answer shape: Decision answer: points threshold, points categories, blocked-account funding, paid fees, conversion caveat, source dates, calculator link and cost-to-complete link.","Short answer pairing Chancenkarte points threshold, points categories and blocked-account funding.","Cost bridge explaining paid fees versus blocked-account cash exposure and conversion-path caveats.","Citation-ready Chancenkarte answer that links calculator verdict context, cost-to-complete and route source records."],"pageChangesNeeded":["Cross-link /calculators/germany-chancenkarte, /cost-to-complete/germany-chancenkarte and /visas/germany/chancenkarte above the fold.","Add Chancenkarte points and cost anchors from the EU Blue Card comparison route page.","Place blocked-account caveats beside any first-screen cost or points answer.","Add or verify contextual internal link to /calculators/germany-chancenkarte.","Add or verify contextual internal link to /visas/germany/chancenkarte.","Add or verify contextual internal link to /routes/eu-blue-card-vs-chancenkarte-germany.","Add or verify contextual internal link to /cost-to-complete/germany-chancenkarte."],"technicalChangesNeeded":["Keep calculator verdict context, cost line items and route source facts aligned across public JSON and rendered HTML.","Verify canonical URLs, noindex state, DataDownload metadata and citation-pack joins for each Chancenkarte target.","Run rendered SEO and freshness checks before treating a title, calculator or answer change as publishable.","Keep /calculators/germany-chancenkarte, /cost-to-complete/germany-chancenkarte and /visas/germany/chancenkarte mutually linked.","Expose calculator verdict context, cost-to-complete facts and route source links through answer capsules, citation packs and Dataset/DataDownload markup.","Use rendered audits to verify blocked-account and points caveats are visible in static HTML before publishing visibility claims."],"experimentIds":["germany-chancenkarte-points-cost-gsc-experiment"],"snapshotProtocolIds":["germany-chancenkarte-points-cost-surface-snapshot"],"marketShareBaselineIds":["germany-chancenkarte-points-cost-market-share-baseline"],"reviewerQueueIds":["germany-recognition-yml-review"],"authorityChannelIds":["official-mcp-registry","community-mcp-directories","hugging-face-dataset","github-data-mirror","zenodo-cost-index-doi","show-hn-open-data-launch"],"requiredPrivateEvidence":["GSC rows for Chancenkarte points, calculator, cost and blocked-account query variants.","Reviewed AI answer outputs for stale points or blocked-account claims.","Post-change experiment outcome row before any visibility improvement is claimed."],"phases":[{"id":"public-control-check","title":"Confirm public retrieval controls before measurement","runClass":"run-now","purpose":"Make sure public pages, JSON endpoints, rendered SEO output and battlecard coverage still pass before private evidence is collected.","localOnlyInputs":[],"commands":["npm run audit:battlecard-retrieval-coverage","npm run audit:seo-geo-dominance-gap-ledger","npm run audit:rendered-seo","npm run audit:seo-geo"],"approvalGate":"All public-control audits pass with no asset-gap rows for this battlecard.","publicOutputAllowed":"Audit pass/fail status only; do not publish private evidence or outcome claims.","doneWhen":"The battlecard remains covered by public answer, citation, page-action, experiment and snapshot protocol surfaces."},{"id":"reviewer-proof","title":"Resolve high-risk reviewer evidence","runClass":"run-now","purpose":"Collect and review credentialed reviewer evidence for high-risk YMYL page targets before reviewedBy or trust claims are emitted.","localOnlyInputs":["reviewer evidence JSONL","credential verification notes","reviewed content diff notes"],"commands":["npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh"],"approvalGate":"approvedForReviewerTrustClaim=true and reviewedAt/reviewedBy are present in the reviewed aggregate proof.","publicOutputAllowed":"Only reviewed aggregate reviewer status and approved reviewedBy fragments; no private candidate notes or unapproved reviewer contact data.","doneWhen":"Reviewer queues resolved for germany-recognition-yml-review."},{"id":"authority-proof","title":"Collect off-site authority and distribution evidence","runClass":"run-after-reviewer-evidence","purpose":"Convert publisher, repository, widget, MCP directory and citation-kit distribution into reviewed backlink/source-preservation evidence.","localOnlyInputs":["authority distribution JSONL","publisher/repository URLs after review","source-preservation checks"],"commands":["npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof"],"approvalGate":"approved authority proof with reviewedAt/reviewedBy and canonical backlinks/source URLs preserved.","publicOutputAllowed":"Reviewed aggregate authority counts and approved public URLs only; account credentials, unpublished URLs and rejection notes stay local.","doneWhen":"6 high-priority authority channels have reviewed evidence or an explicit blocked status."},{"id":"gsc-experiment","title":"Run Search Console battlecard experiment export","runClass":"run-after-reviewer-evidence","purpose":"Map private Search Console query/page rows to the battlecard experiment contract and decide title, snippet, answer-capsule or internal-link actions from reviewed aggregates.","localOnlyInputs":["Search Console CSV export","redacted property label","baseline and comparison windows"],"commands":["npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:gsc-experiment-outcomes","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Reviewed aggregate GSC experiment outcome row with scopeMatched=true and query rows redacted.","publicOutputAllowed":"Reviewed aggregate experiment decision only; raw queries, clicks, impressions, CTR and positions stay local.","doneWhen":"The battlecard has a reviewed GSC action decision or a documented no-change decision."},{"id":"serp-ai-snapshot","title":"Capture SERP and AI answer-surface snapshots","runClass":"run-after-reviewer-evidence","purpose":"Collect dated Google SERP and AI answer-surface evidence for source-class pressure, Visa Atlas visibility, stale claims and citation gaps.","localOnlyInputs":["SERP/AI snapshot JSONL","browser profile metadata","AI answer captures after redaction review"],"commands":["npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run audit:serp-answer-surface-snapshots","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Snapshot rows pass local schema checks and are reviewed before any public rollup is generated.","publicOutputAllowed":"Battlecard counts, source-class counts and reviewed URLs only; raw screenshots, long AI transcripts and private browser data stay local.","doneWhen":"The battlecard has at least one reviewed Google SERP row and one reviewed AI answer row for the agreed query/locale set."},{"id":"quarterly-market-share-rollup","title":"Summarise quarterly market-share evidence","runClass":"run-after-reviewer-evidence","purpose":"Turn reviewed SERP/AI snapshots into a redacted quarterly market-share rollup and run the local market-share proof gate.","localOnlyInputs":["reviewed surface-summary JSON","approved rollup metadata","reviewed market-share proof JSON"],"commands":["npm run seo:market-share-summary -- surface-summary.json --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:rendered-seo"],"approvalGate":"approvedForMarketShareClaim=true with complete battlecard coverage, reviewedAt and reviewedBy.","publicOutputAllowed":"Approved aggregate rollup only; no raw screenshots, answer text, snippets, query rows, browser profiles or private reviewer notes.","doneWhen":"The battlecard is covered by a complete approved quarterly rollup or explicitly disclosed as missing from a partial rollup."},{"id":"ai-visibility-proof","title":"Run AI visibility proof gate","runClass":"final-outcome-gate","purpose":"Prove AI citation, answer accuracy and AI-referral evidence from reviewed aggregate files before any GEO visibility claim.","localOnlyInputs":["AI visibility proof JSON","graded benchmark output","bot-filtered AI referral aggregate"],"commands":["npm run kpi:citation-share","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof"],"approvalGate":"approvedForAiVisibilityClaim=true with full fixed-basket benchmark coverage and reviewedAt/reviewedBy.","publicOutputAllowed":"Reviewed aggregate citation-share, answer-accuracy and AI-referral metrics only; raw model outputs and analytics rows stay local.","doneWhen":"The fixed benchmark has reviewed citation and accuracy evidence across the declared engines."},{"id":"traffic-outcome-proof","title":"Run 500k/month traffic outcome proof gate","runClass":"final-outcome-gate","purpose":"Reconcile bot-filtered analytics, GSC cohorts, AI visibility and market-share proof before any public 500k/month outcome claim.","localOnlyInputs":["reviewed traffic outcome proof JSON","bot-filtered analytics aggregate","GSC cohort aggregate"],"commands":["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","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:public-outcome-claims"],"approvalGate":"approvedForOutcomeClaim=true, reviewedAt/reviewedBy present, SEO/GEO visits meet the target and market-share proof is complete.","publicOutputAllowed":"Reviewed aggregate monthly outcome proof only; raw analytics, GSC exports, screenshots and AI transcripts stay local.","doneWhen":"Reviewed aggregate evidence proves at least 500,000 qualified monthly visits from SEO/GEO-attributable channels."}],"localCommands":["npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run audit:market-share-capture-plan","npm run audit:rendered-seo","npm run audit:seo-geo","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:market-share-summary -- surface-summary.json --json","npm run audit:content-opportunities","npm run audit:topical-authority-map","npm run audit:indexable-page-manifest","npm run audit:longtail-provenance","npm run audit:technical-seo-controls","npm run audit:data-citation","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:sources","npm run audit:thin","npm run audit:stale","npm run audit:freshness","npm run audit:policy-claims","npm run audit:seo-geo -- --include-liveness","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:seo-geo-dominance-gap-ledger","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:battlecard-retrieval-coverage","npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh","npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof","npm run audit:gsc-experiment-outcomes","npm run audit:serp-answer-surface-snapshots","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof","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","npm run audit:public-outcome-claims"],"sourceDatasets":["/api/public/seo-geo-measurement-run-queue","/api/public/seo-geo-dominance-gap-ledger","/api/public/battlecard-search-experiments","/api/public/serp-answer-surface-snapshots","/api/public/quarterly-market-share-summary","/api/public/market-share-capture-plan","/api/public/battlecard-retrieval-coverage","/api/public/ai-retrieval-task-index","/api/public/ai-retrieval-readiness","/api/public/visibility-metrics","/api/public/competitor-query-battlecards","/api/public/source-transparency-benchmark","/api/public/authority-distribution-plan","/api/public/expert-reviewer-entities","/api/public/visas","/api/public/cost-to-complete","/api/public/citation-benchmark","/api/public/content-opportunities","/api/public/answer-capsules","/api/public/citation-packs","/api/public/calculator-verdict-contexts","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors","/api/public/search-demand-actions","/api/public/execution-readiness","/api/public/traffic-forecast","/api/public/technical-seo-controls","/api/public/seo-geo-page-action-map","/api/public/seo-geo-production-queue","/api/public/indexable-pages","/api/public/search-index","/api/public/destinations","/api/public/salary-thresholds","/api/public/topical-authority-map","/api/public/seo-geo-audit-evidence","/api/public/freshness","/api/public/fact-changes","/api/public/ai-answer-accuracy-audit"],"noGoBoundaries":["Do not imply a points pass guarantees a visa or job offer.","Do not mix money paid away with blocked-account funds without labeling the difference.","Do not claim Germany query-share gains without reviewed GSC or SERP/AI snapshot evidence.","Do not publish current market-share, ranking, traffic or AI-citation claims from this planning row alone.","Do not expose raw screenshots, private Search Console exports, long AI transcripts or reviewer notes.","Blocked until an approved redacted snapshot rollup supplies dated counts, approvedForPublication=true, reviewedAt and reviewedBy.","Do not reduce Germany recognition to a generic checklist when route choice depends on recognition status.","Do not cite stale salary thresholds or omit the effective date.","Do not publish recognition advice as a legal determination.","Do not publish current market-share, ranking, traffic, AI-citation, backlink or 500k/month progress claims without approved reviewed aggregate evidence.","Do not claim rankings, traffic, AI citation share or market-share gains from this handoff without approved aggregate evidence.","This row is a Q3 2026 baseline contract, not a live rank or traffic-share claim.","Approved market-share rollups must publish counts and dates, not raw screenshots, long AI transcripts or private reviewer notes.","Competitor source-class labels must stay aligned with the source-transparency benchmark and snapshot protocol.","Do not publish rankings, traffic, backlinks, AI-citation, market-share or 500k/month progress claims without reviewed aggregate outcome proof.","Do not publish traffic, ranking, AI-citation, backlink, reviewer-trust or market-share claims from this queue alone."],"privateEvidenceBoundary":"Raw analytics, Search Console exports, SERP screenshots, AI transcripts, referrer logs, browser profiles, reviewer notes and unapproved rollups stay local unless reviewed, redacted and aggregated.","suggestedCitation":"Visa Atlas, \"Visa Atlas SEO/GEO measurement run queue: Germany Chancenkarte points, proof of funds and cost\", https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#germany-chancenkarte-points-cost. Last modified 2026-07-06."},{"id":"ireland-critical-skills-salary-cost-measurement-run","battlecardId":"ireland-critical-skills-salary-cost","title":"Ireland Critical Skills salary, cost and Stamp 4 path measurement run","url":"https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#ireland-critical-skills-salary-cost","runOrder":5,"priority":"high","measurementStatus":"reviewer-evidence-blocked","dominanceGapStatus":"reviewer-evidence-needed","firstRunnablePhaseIds":["public-control-check","reviewer-proof"],"blockedBy":["reviewer queue: ireland-critical-skills-yml-review"],"queryCluster":["Ireland Critical Skills salary threshold 2026","Critical Skills Employment Permit cost Ireland","Ireland Critical Skills Stamp 4 timeline"],"targetPages":["/salary-thresholds/ireland","/cost-to-complete/ireland-critical-skills-employment-permit","/visas/ireland/critical-skills-employment-permit","/calculators/ireland-citizenship","/settlement/ireland"],"contentPiecesNeeded":["Battlecard answer shape: Short answer: current Critical Skills salary floor, permit cost, Stamp 4 timing, citizenship clock caveat, source date and links to salary, cost and settlement datasets.","Short answer pairing Ireland Critical Skills salary floor, permit cost and Stamp 4 pathway.","Cost and settlement bridge explaining what is paid, what is source-backed and when citizenship timing starts.","Citation-ready Irish salary and settlement answer that keeps Enterprise Ireland and immigration-source dates visible."],"pageChangesNeeded":["Cross-link /salary-thresholds/ireland, /cost-to-complete/ireland-critical-skills-employment-permit and /settlement/ireland above the fold.","Add Critical Skills salary and Stamp 4 anchors from the visa page to the salary and settlement pages.","Keep Ireland salary-floor answers visible on relevant profession and route pages only where route mapping is source-backed.","Add or verify contextual internal link to /salary-thresholds/ireland.","Add or verify contextual internal link to /cost-to-complete/ireland-critical-skills-employment-permit.","Add or verify contextual internal link to /visas/ireland/critical-skills-employment-permit.","Add or verify contextual internal link to /calculators/ireland-citizenship.","Add or verify contextual internal link to /settlement/ireland."],"technicalChangesNeeded":["Keep Ireland salary, cost and settlement facts aligned across answer capsules, citation packs and public datasets.","Run freshness checks over Enterprise Ireland salary and permit-cost sources before publication.","Verify static artifacts expose canonical URLs, DataDownload schema and no legal-advice scope caveats.","Keep /salary-thresholds/ireland, Critical Skills cost-to-complete and Ireland settlement pages linked as one answer path.","Expose salary-floor, cost and settlement facts through answer capsules, citation packs and Dataset/DataDownload markup.","Monitor stale salary and Stamp 4 timing claims in AI answer reviews before publishing any visibility claim."],"experimentIds":["ireland-critical-skills-salary-cost-gsc-experiment"],"snapshotProtocolIds":["ireland-critical-skills-salary-cost-surface-snapshot"],"marketShareBaselineIds":["ireland-critical-skills-salary-cost-market-share-baseline"],"reviewerQueueIds":["ireland-critical-skills-yml-review"],"authorityChannelIds":["official-mcp-registry","community-mcp-directories","hugging-face-dataset","github-data-mirror","zenodo-cost-index-doi","show-hn-open-data-launch"],"requiredPrivateEvidence":["GSC rows for Ireland Critical Skills salary, cost, Stamp 4 and citizenship variants.","Reviewed AI answer outputs for stale salary-floor or Stamp 4 timing claims.","Post-change experiment outcome row before any visibility improvement is claimed."],"phases":[{"id":"public-control-check","title":"Confirm public retrieval controls before measurement","runClass":"run-now","purpose":"Make sure public pages, JSON endpoints, rendered SEO output and battlecard coverage still pass before private evidence is collected.","localOnlyInputs":[],"commands":["npm run audit:battlecard-retrieval-coverage","npm run audit:seo-geo-dominance-gap-ledger","npm run audit:rendered-seo","npm run audit:seo-geo"],"approvalGate":"All public-control audits pass with no asset-gap rows for this battlecard.","publicOutputAllowed":"Audit pass/fail status only; do not publish private evidence or outcome claims.","doneWhen":"The battlecard remains covered by public answer, citation, page-action, experiment and snapshot protocol surfaces."},{"id":"reviewer-proof","title":"Resolve high-risk reviewer evidence","runClass":"run-now","purpose":"Collect and review credentialed reviewer evidence for high-risk YMYL page targets before reviewedBy or trust claims are emitted.","localOnlyInputs":["reviewer evidence JSONL","credential verification notes","reviewed content diff notes"],"commands":["npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh"],"approvalGate":"approvedForReviewerTrustClaim=true and reviewedAt/reviewedBy are present in the reviewed aggregate proof.","publicOutputAllowed":"Only reviewed aggregate reviewer status and approved reviewedBy fragments; no private candidate notes or unapproved reviewer contact data.","doneWhen":"Reviewer queues resolved for ireland-critical-skills-yml-review."},{"id":"authority-proof","title":"Collect off-site authority and distribution evidence","runClass":"run-after-reviewer-evidence","purpose":"Convert publisher, repository, widget, MCP directory and citation-kit distribution into reviewed backlink/source-preservation evidence.","localOnlyInputs":["authority distribution JSONL","publisher/repository URLs after review","source-preservation checks"],"commands":["npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof"],"approvalGate":"approved authority proof with reviewedAt/reviewedBy and canonical backlinks/source URLs preserved.","publicOutputAllowed":"Reviewed aggregate authority counts and approved public URLs only; account credentials, unpublished URLs and rejection notes stay local.","doneWhen":"6 high-priority authority channels have reviewed evidence or an explicit blocked status."},{"id":"gsc-experiment","title":"Run Search Console battlecard experiment export","runClass":"run-after-reviewer-evidence","purpose":"Map private Search Console query/page rows to the battlecard experiment contract and decide title, snippet, answer-capsule or internal-link actions from reviewed aggregates.","localOnlyInputs":["Search Console CSV export","redacted property label","baseline and comparison windows"],"commands":["npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:gsc-experiment-outcomes","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Reviewed aggregate GSC experiment outcome row with scopeMatched=true and query rows redacted.","publicOutputAllowed":"Reviewed aggregate experiment decision only; raw queries, clicks, impressions, CTR and positions stay local.","doneWhen":"The battlecard has a reviewed GSC action decision or a documented no-change decision."},{"id":"serp-ai-snapshot","title":"Capture SERP and AI answer-surface snapshots","runClass":"run-after-reviewer-evidence","purpose":"Collect dated Google SERP and AI answer-surface evidence for source-class pressure, Visa Atlas visibility, stale claims and citation gaps.","localOnlyInputs":["SERP/AI snapshot JSONL","browser profile metadata","AI answer captures after redaction review"],"commands":["npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run audit:serp-answer-surface-snapshots","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Snapshot rows pass local schema checks and are reviewed before any public rollup is generated.","publicOutputAllowed":"Battlecard counts, source-class counts and reviewed URLs only; raw screenshots, long AI transcripts and private browser data stay local.","doneWhen":"The battlecard has at least one reviewed Google SERP row and one reviewed AI answer row for the agreed query/locale set."},{"id":"quarterly-market-share-rollup","title":"Summarise quarterly market-share evidence","runClass":"run-after-reviewer-evidence","purpose":"Turn reviewed SERP/AI snapshots into a redacted quarterly market-share rollup and run the local market-share proof gate.","localOnlyInputs":["reviewed surface-summary JSON","approved rollup metadata","reviewed market-share proof JSON"],"commands":["npm run seo:market-share-summary -- surface-summary.json --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:rendered-seo"],"approvalGate":"approvedForMarketShareClaim=true with complete battlecard coverage, reviewedAt and reviewedBy.","publicOutputAllowed":"Approved aggregate rollup only; no raw screenshots, answer text, snippets, query rows, browser profiles or private reviewer notes.","doneWhen":"The battlecard is covered by a complete approved quarterly rollup or explicitly disclosed as missing from a partial rollup."},{"id":"ai-visibility-proof","title":"Run AI visibility proof gate","runClass":"final-outcome-gate","purpose":"Prove AI citation, answer accuracy and AI-referral evidence from reviewed aggregate files before any GEO visibility claim.","localOnlyInputs":["AI visibility proof JSON","graded benchmark output","bot-filtered AI referral aggregate"],"commands":["npm run kpi:citation-share","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof"],"approvalGate":"approvedForAiVisibilityClaim=true with full fixed-basket benchmark coverage and reviewedAt/reviewedBy.","publicOutputAllowed":"Reviewed aggregate citation-share, answer-accuracy and AI-referral metrics only; raw model outputs and analytics rows stay local.","doneWhen":"The fixed benchmark has reviewed citation and accuracy evidence across the declared engines."},{"id":"traffic-outcome-proof","title":"Run 500k/month traffic outcome proof gate","runClass":"final-outcome-gate","purpose":"Reconcile bot-filtered analytics, GSC cohorts, AI visibility and market-share proof before any public 500k/month outcome claim.","localOnlyInputs":["reviewed traffic outcome proof JSON","bot-filtered analytics aggregate","GSC cohort aggregate"],"commands":["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","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:public-outcome-claims"],"approvalGate":"approvedForOutcomeClaim=true, reviewedAt/reviewedBy present, SEO/GEO visits meet the target and market-share proof is complete.","publicOutputAllowed":"Reviewed aggregate monthly outcome proof only; raw analytics, GSC exports, screenshots and AI transcripts stay local.","doneWhen":"Reviewed aggregate evidence proves at least 500,000 qualified monthly visits from SEO/GEO-attributable channels."}],"localCommands":["npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run audit:market-share-capture-plan","npm run audit:rendered-seo","npm run audit:seo-geo","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:market-share-summary -- surface-summary.json --json","npm run audit:content-opportunities","npm run audit:topical-authority-map","npm run audit:indexable-page-manifest","npm run audit:longtail-provenance","npm run audit:technical-seo-controls","npm run audit:data-citation","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:sources","npm run audit:thin","npm run audit:stale","npm run audit:freshness","npm run audit:policy-claims","npm run audit:seo-geo -- --include-liveness","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:seo-geo-dominance-gap-ledger","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:battlecard-retrieval-coverage","npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh","npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof","npm run audit:gsc-experiment-outcomes","npm run audit:serp-answer-surface-snapshots","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof","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","npm run audit:public-outcome-claims"],"sourceDatasets":["/api/public/seo-geo-measurement-run-queue","/api/public/seo-geo-dominance-gap-ledger","/api/public/battlecard-search-experiments","/api/public/serp-answer-surface-snapshots","/api/public/quarterly-market-share-summary","/api/public/market-share-capture-plan","/api/public/battlecard-retrieval-coverage","/api/public/ai-retrieval-task-index","/api/public/ai-retrieval-readiness","/api/public/visibility-metrics","/api/public/competitor-query-battlecards","/api/public/source-transparency-benchmark","/api/public/authority-distribution-plan","/api/public/expert-reviewer-entities","/api/public/salary-thresholds","/api/public/cost-to-complete","/api/public/visas","/api/public/citation-benchmark","/api/public/content-opportunities","/api/public/answer-capsules","/api/public/citation-packs","/api/public/calculator-verdict-contexts","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors","/api/public/search-demand-actions","/api/public/execution-readiness","/api/public/traffic-forecast","/api/public/technical-seo-controls","/api/public/seo-geo-page-action-map","/api/public/seo-geo-production-queue","/api/public/indexable-pages","/api/public/search-index","/api/public/topical-authority-map","/api/public/seo-geo-audit-evidence","/api/public/freshness","/api/public/fact-changes","/api/public/ai-answer-accuracy-audit","/api/public/destinations"],"noGoBoundaries":["Do not publish a Critical Skills salary answer without occupation/general threshold split and source date.","Do not imply Stamp 4 or citizenship eligibility is automatic from salary alone.","Do not claim Ireland query-share gains without reviewed GSC or SERP/AI snapshot evidence.","Do not publish current market-share, ranking, traffic or AI-citation claims from this planning row alone.","Do not expose raw screenshots, private Search Console exports, long AI transcripts or reviewer notes.","Blocked until an approved redacted snapshot rollup supplies dated counts, approvedForPublication=true, reviewedAt and reviewedBy.","Do not publish current market-share, ranking, traffic, AI-citation, backlink or 500k/month progress claims without approved reviewed aggregate evidence.","Do not claim rankings, traffic, AI citation share or market-share gains from this handoff without approved aggregate evidence.","This row is a Q3 2026 baseline contract, not a live rank or traffic-share claim.","Approved market-share rollups must publish counts and dates, not raw screenshots, long AI transcripts or private reviewer notes.","Competitor source-class labels must stay aligned with the source-transparency benchmark and snapshot protocol.","Do not publish rankings, traffic, backlinks, AI-citation, market-share or 500k/month progress claims without reviewed aggregate outcome proof.","Do not publish traffic, ranking, AI-citation, backlink, reviewer-trust or market-share claims from this queue alone."],"privateEvidenceBoundary":"Raw analytics, Search Console exports, SERP screenshots, AI transcripts, referrer logs, browser profiles, reviewer notes and unapproved rollups stay local unless reviewed, redacted and aggregated.","suggestedCitation":"Visa Atlas, \"Visa Atlas SEO/GEO measurement run queue: Ireland Critical Skills salary, cost and Stamp 4 path\", https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#ireland-critical-skills-salary-cost. Last modified 2026-07-06."},{"id":"canada-express-entry-freshness-measurement-run","battlecardId":"canada-express-entry-freshness","title":"Canada Express Entry latest draw and category freshness measurement run","url":"https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#canada-express-entry-freshness","runOrder":6,"priority":"high","measurementStatus":"reviewer-evidence-blocked","dominanceGapStatus":"reviewer-evidence-needed","firstRunnablePhaseIds":["public-control-check","reviewer-proof"],"blockedBy":["reviewer queue: canada-express-entry-yml-review"],"queryCluster":["latest Express Entry draw CRS cutoff","Express Entry category based draws 2026","how many CRS points do I need"],"targetPages":["/research/canada-express-entry-draw-tracker","/citation-packs#express-entry-latest-draw","/widgets","/research/canada-express-entry-category-tracker","/citation-packs#express-entry-categories-2026","/calculators/canada-crs","/visas/canada/express-entry-fsw"],"contentPiecesNeeded":["Battlecard answer shape: Latest-draw block: date, program/category, invitations, CRS, category status, source feed and stale-answer caveat.","Latest-draw block with date, program or category, invitations, CRS and source feed.","Category tracker note separating category rounds from general, CEC and PNP rounds.","CRS calculator verdict context tied to latest draw and stale-answer caveat."],"pageChangesNeeded":["Link CRS calculator, draw tracker, category tracker and latest-draw widget as one crawlable cluster.","Expose no-draw category states so answer engines do not invent current category rounds.","Place stale-answer caveats near the short answer and citation pack.","Add or verify contextual internal link to /research/canada-express-entry-draw-tracker.","Add or verify contextual internal link to /citation-packs#express-entry-latest-draw.","Add or verify contextual internal link to /widgets.","Add or verify contextual internal link to /research/canada-express-entry-category-tracker.","Add or verify contextual internal link to /citation-packs#express-entry-categories-2026.","Add or verify contextual internal link to /calculators/canada-crs."],"technicalChangesNeeded":["Reconcile Express Entry draw imports before refreshing current-answer pages.","Keep latest-draw widget and JSON feed sourced from the same Express Entry dataset.","Run citation-share after each material draw import before claiming AI answer correction.","Keep the draw tracker, category tracker, CRS calculator and latest-draw widget linked as one cluster.","Use citation packs for the current draw and category status so AI systems can cite compact facts.","Refresh the local citation-share run after each IRCC draw import."],"experimentIds":["canada-express-entry-freshness-gsc-experiment"],"snapshotProtocolIds":["canada-express-entry-freshness-surface-snapshot"],"marketShareBaselineIds":["canada-express-entry-freshness-market-share-baseline"],"reviewerQueueIds":["canada-express-entry-yml-review"],"authorityChannelIds":["official-mcp-registry","community-mcp-directories","hugging-face-dataset","github-data-mirror","zenodo-cost-index-doi","show-hn-open-data-launch"],"requiredPrivateEvidence":["Timestamped citation-share output after the draw import.","GSC rows for latest-draw and CRS cutoff queries.","Reviewed AI answer outputs for stale Express Entry claims."],"phases":[{"id":"public-control-check","title":"Confirm public retrieval controls before measurement","runClass":"run-now","purpose":"Make sure public pages, JSON endpoints, rendered SEO output and battlecard coverage still pass before private evidence is collected.","localOnlyInputs":[],"commands":["npm run audit:battlecard-retrieval-coverage","npm run audit:seo-geo-dominance-gap-ledger","npm run audit:rendered-seo","npm run audit:seo-geo"],"approvalGate":"All public-control audits pass with no asset-gap rows for this battlecard.","publicOutputAllowed":"Audit pass/fail status only; do not publish private evidence or outcome claims.","doneWhen":"The battlecard remains covered by public answer, citation, page-action, experiment and snapshot protocol surfaces."},{"id":"reviewer-proof","title":"Resolve high-risk reviewer evidence","runClass":"run-now","purpose":"Collect and review credentialed reviewer evidence for high-risk YMYL page targets before reviewedBy or trust claims are emitted.","localOnlyInputs":["reviewer evidence JSONL","credential verification notes","reviewed content diff notes"],"commands":["npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh"],"approvalGate":"approvedForReviewerTrustClaim=true and reviewedAt/reviewedBy are present in the reviewed aggregate proof.","publicOutputAllowed":"Only reviewed aggregate reviewer status and approved reviewedBy fragments; no private candidate notes or unapproved reviewer contact data.","doneWhen":"Reviewer queues resolved for canada-express-entry-yml-review."},{"id":"authority-proof","title":"Collect off-site authority and distribution evidence","runClass":"run-after-reviewer-evidence","purpose":"Convert publisher, repository, widget, MCP directory and citation-kit distribution into reviewed backlink/source-preservation evidence.","localOnlyInputs":["authority distribution JSONL","publisher/repository URLs after review","source-preservation checks"],"commands":["npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof"],"approvalGate":"approved authority proof with reviewedAt/reviewedBy and canonical backlinks/source URLs preserved.","publicOutputAllowed":"Reviewed aggregate authority counts and approved public URLs only; account credentials, unpublished URLs and rejection notes stay local.","doneWhen":"6 high-priority authority channels have reviewed evidence or an explicit blocked status."},{"id":"gsc-experiment","title":"Run Search Console battlecard experiment export","runClass":"run-after-reviewer-evidence","purpose":"Map private Search Console query/page rows to the battlecard experiment contract and decide title, snippet, answer-capsule or internal-link actions from reviewed aggregates.","localOnlyInputs":["Search Console CSV export","redacted property label","baseline and comparison windows"],"commands":["npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:gsc-experiment-outcomes","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run fetch:ee-draws"],"approvalGate":"Reviewed aggregate GSC experiment outcome row with scopeMatched=true and query rows redacted.","publicOutputAllowed":"Reviewed aggregate experiment decision only; raw queries, clicks, impressions, CTR and positions stay local.","doneWhen":"The battlecard has a reviewed GSC action decision or a documented no-change decision."},{"id":"serp-ai-snapshot","title":"Capture SERP and AI answer-surface snapshots","runClass":"run-after-reviewer-evidence","purpose":"Collect dated Google SERP and AI answer-surface evidence for source-class pressure, Visa Atlas visibility, stale claims and citation gaps.","localOnlyInputs":["SERP/AI snapshot JSONL","browser profile metadata","AI answer captures after redaction review"],"commands":["npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run audit:serp-answer-surface-snapshots","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run fetch:ee-draws"],"approvalGate":"Snapshot rows pass local schema checks and are reviewed before any public rollup is generated.","publicOutputAllowed":"Battlecard counts, source-class counts and reviewed URLs only; raw screenshots, long AI transcripts and private browser data stay local.","doneWhen":"The battlecard has at least one reviewed Google SERP row and one reviewed AI answer row for the agreed query/locale set."},{"id":"quarterly-market-share-rollup","title":"Summarise quarterly market-share evidence","runClass":"run-after-reviewer-evidence","purpose":"Turn reviewed SERP/AI snapshots into a redacted quarterly market-share rollup and run the local market-share proof gate.","localOnlyInputs":["reviewed surface-summary JSON","approved rollup metadata","reviewed market-share proof JSON"],"commands":["npm run seo:market-share-summary -- surface-summary.json --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:rendered-seo"],"approvalGate":"approvedForMarketShareClaim=true with complete battlecard coverage, reviewedAt and reviewedBy.","publicOutputAllowed":"Approved aggregate rollup only; no raw screenshots, answer text, snippets, query rows, browser profiles or private reviewer notes.","doneWhen":"The battlecard is covered by a complete approved quarterly rollup or explicitly disclosed as missing from a partial rollup."},{"id":"ai-visibility-proof","title":"Run AI visibility proof gate","runClass":"final-outcome-gate","purpose":"Prove AI citation, answer accuracy and AI-referral evidence from reviewed aggregate files before any GEO visibility claim.","localOnlyInputs":["AI visibility proof JSON","graded benchmark output","bot-filtered AI referral aggregate"],"commands":["npm run kpi:citation-share","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof"],"approvalGate":"approvedForAiVisibilityClaim=true with full fixed-basket benchmark coverage and reviewedAt/reviewedBy.","publicOutputAllowed":"Reviewed aggregate citation-share, answer-accuracy and AI-referral metrics only; raw model outputs and analytics rows stay local.","doneWhen":"The fixed benchmark has reviewed citation and accuracy evidence across the declared engines."},{"id":"traffic-outcome-proof","title":"Run 500k/month traffic outcome proof gate","runClass":"final-outcome-gate","purpose":"Reconcile bot-filtered analytics, GSC cohorts, AI visibility and market-share proof before any public 500k/month outcome claim.","localOnlyInputs":["reviewed traffic outcome proof JSON","bot-filtered analytics aggregate","GSC cohort aggregate"],"commands":["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","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:public-outcome-claims"],"approvalGate":"approvedForOutcomeClaim=true, reviewedAt/reviewedBy present, SEO/GEO visits meet the target and market-share proof is complete.","publicOutputAllowed":"Reviewed aggregate monthly outcome proof only; raw analytics, GSC exports, screenshots and AI transcripts stay local.","doneWhen":"Reviewed aggregate evidence proves at least 500,000 qualified monthly visits from SEO/GEO-attributable channels."}],"localCommands":["npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run fetch:ee-draws","npm run audit:market-share-capture-plan","npm run audit:rendered-seo","npm run audit:seo-geo","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:market-share-summary -- surface-summary.json --json","npm run audit:content-opportunities","npm run audit:topical-authority-map","npm run audit:indexable-page-manifest","npm run audit:longtail-provenance","npm run audit:technical-seo-controls","npm run audit:data-citation","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:publisher-citation-kits","npm run audit:sources","npm run audit:stale","npm run audit:freshness","npm run audit:policy-claims","npm run audit:seo-geo -- --include-liveness","npm run audit:thin","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:seo-geo-dominance-gap-ledger","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:battlecard-retrieval-coverage","npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh","npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof","npm run audit:gsc-experiment-outcomes","npm run audit:serp-answer-surface-snapshots","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof","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","npm run audit:public-outcome-claims"],"sourceDatasets":["/api/public/seo-geo-measurement-run-queue","/api/public/seo-geo-dominance-gap-ledger","/api/public/battlecard-search-experiments","/api/public/serp-answer-surface-snapshots","/api/public/quarterly-market-share-summary","/api/public/market-share-capture-plan","/api/public/battlecard-retrieval-coverage","/api/public/ai-retrieval-task-index","/api/public/ai-retrieval-readiness","/api/public/visibility-metrics","/api/public/competitor-query-battlecards","/api/public/source-transparency-benchmark","/api/public/authority-distribution-plan","/api/public/expert-reviewer-entities","/api/public/express-entry-draws","/api/public/citation-packs","/api/public/express-entry-categories","/api/public/visas","/api/public/citation-benchmark","/api/public/content-opportunities","/api/public/answer-capsules","/api/public/calculator-verdict-contexts","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors","/api/public/search-demand-actions","/api/public/execution-readiness","/api/public/traffic-forecast","/api/public/technical-seo-controls","/api/public/seo-geo-page-action-map","/api/public/seo-geo-production-queue","/api/public/indexable-pages","/api/public/search-index","/api/public/topical-authority-map","/api/public/seo-geo-audit-evidence","/api/public/freshness","/api/public/fact-changes","/api/public/ai-answer-accuracy-audit","/api/public/widgets","/api/public/cost-to-complete","/api/public/salary-thresholds","/api/public/destinations","/api/public/fees"],"noGoBoundaries":["Do not publish a latest-draw answer before source reconciliation.","Do not imply a CRS cutoff is a future target score.","Do not merge category-specific and program-wide draw interpretations.","Do not publish current market-share, ranking, traffic or AI-citation claims from this planning row alone.","Do not expose raw screenshots, private Search Console exports, long AI transcripts or reviewer notes.","Blocked until an approved redacted snapshot rollup supplies dated counts, approvedForPublication=true, reviewedAt and reviewedBy.","Do not publish current market-share, ranking, traffic, AI-citation, backlink or 500k/month progress claims without approved reviewed aggregate evidence.","Do not present refundable settlement funds as fees paid away.","Do not imply CEC, FSW and PNP have identical proof-of-funds rules.","Do not claim Canada cost query-share gains without reviewed GSC or SERP/AI snapshot evidence.","Do not claim rankings, traffic, AI citation share or market-share gains from this handoff without approved aggregate evidence.","This row is a Q3 2026 baseline contract, not a live rank or traffic-share claim.","Approved market-share rollups must publish counts and dates, not raw screenshots, long AI transcripts or private reviewer notes.","Competitor source-class labels must stay aligned with the source-transparency benchmark and snapshot protocol.","Do not publish rankings, traffic, backlinks, AI-citation, market-share or 500k/month progress claims without reviewed aggregate outcome proof.","Do not publish traffic, ranking, AI-citation, backlink, reviewer-trust or market-share claims from this queue alone."],"privateEvidenceBoundary":"Raw analytics, Search Console exports, SERP screenshots, AI transcripts, referrer logs, browser profiles, reviewer notes and unapproved rollups stay local unless reviewed, redacted and aggregated.","suggestedCitation":"Visa Atlas, \"Visa Atlas SEO/GEO measurement run queue: Canada Express Entry latest draw and category freshness\", https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#canada-express-entry-freshness. Last modified 2026-07-06."},{"id":"canada-skilled-cost-proof-funds-measurement-run","battlecardId":"canada-skilled-cost-proof-funds","title":"Canada FSW, CEC and PNP cost and proof-of-funds measurement run","url":"https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#canada-skilled-cost-proof-funds","runOrder":7,"priority":"high","measurementStatus":"reviewer-evidence-blocked","dominanceGapStatus":"reviewer-evidence-needed","firstRunnablePhaseIds":["public-control-check","reviewer-proof"],"blockedBy":["reviewer queue: canada-express-entry-yml-review"],"queryCluster":["Canada Express Entry FSW proof of funds cost","CEC vs FSW proof of funds","Canada PNP application cost"],"targetPages":["/cost-to-complete/canada-express-entry-fsw","/fees/canada/express-entry-fsw","/visas/canada/express-entry-fsw","/cost-to-complete/canada-express-entry-cec","/visas/canada/express-entry-cec","/cost-to-complete/canada-express-entry-pnp","/fees/canada/pnp","/visas/canada/pnp"],"contentPiecesNeeded":["Battlecard answer shape: Route table: FSW, CEC and PNP path; mandatory paid fees; proof-of-funds rule; province fee caveat; permanent-residence result; source dates and dataset links.","Route table separating Canada FSW, CEC and PNP paid fees from refundable settlement funds.","Proof-of-funds explainer that states when CEC differs from FSW and where PNP province fees can add cost.","Citation-ready Canada economic-migration cost answer with IRCC and province-source dates retained."],"pageChangesNeeded":["Cross-link FSW cost-to-complete, CEC versus FSW, PNP cost and Express Entry visa pages as one cost/proof-of-funds path.","Add proof-of-funds anchors from Canada CRS and Express Entry pages to the FSW cost page.","Keep province-fee caveats visible where PNP pages summarize cost.","Add or verify contextual internal link to /cost-to-complete/canada-express-entry-fsw.","Add or verify contextual internal link to /fees/canada/express-entry-fsw.","Add or verify contextual internal link to /visas/canada/express-entry-fsw.","Add or verify contextual internal link to /cost-to-complete/canada-express-entry-cec.","Add or verify contextual internal link to /visas/canada/express-entry-cec.","Add or verify contextual internal link to /cost-to-complete/canada-express-entry-pnp."],"technicalChangesNeeded":["Keep Canada fee rows, cost-to-complete rows and citation-pack facts aligned to the same route identifiers.","Verify static artifacts expose canonical URLs, DataDownload schema, source dates and no legal-advice scope caveats.","Run freshness and rendered SEO audits before treating Canada cost snippets as current.","Keep FSW cost-to-complete, CEC comparison, PNP cost and Express Entry route pages linked as one Canada economic-migration cost cluster.","Expose proof-of-funds and paid-fee distinctions in answer capsules, citation packs and cost-to-complete DataDownload markup.","Run freshness and citation-pack audits before publishing Canada cost snippets or experiment outcomes."],"experimentIds":["canada-skilled-cost-proof-funds-gsc-experiment"],"snapshotProtocolIds":["canada-skilled-cost-proof-funds-surface-snapshot"],"marketShareBaselineIds":["canada-skilled-cost-proof-funds-market-share-baseline"],"reviewerQueueIds":["canada-express-entry-yml-review"],"authorityChannelIds":["official-mcp-registry","community-mcp-directories","hugging-face-dataset","github-data-mirror","zenodo-cost-index-doi","show-hn-open-data-launch"],"requiredPrivateEvidence":["GSC rows for Canada FSW cost, Express Entry proof of funds, CEC versus FSW and PNP cost variants.","Reviewed AI answer outputs for stale settlement-funds or province-fee claims.","Post-change experiment outcome row before any visibility improvement is claimed."],"phases":[{"id":"public-control-check","title":"Confirm public retrieval controls before measurement","runClass":"run-now","purpose":"Make sure public pages, JSON endpoints, rendered SEO output and battlecard coverage still pass before private evidence is collected.","localOnlyInputs":[],"commands":["npm run audit:battlecard-retrieval-coverage","npm run audit:seo-geo-dominance-gap-ledger","npm run audit:rendered-seo","npm run audit:seo-geo"],"approvalGate":"All public-control audits pass with no asset-gap rows for this battlecard.","publicOutputAllowed":"Audit pass/fail status only; do not publish private evidence or outcome claims.","doneWhen":"The battlecard remains covered by public answer, citation, page-action, experiment and snapshot protocol surfaces."},{"id":"reviewer-proof","title":"Resolve high-risk reviewer evidence","runClass":"run-now","purpose":"Collect and review credentialed reviewer evidence for high-risk YMYL page targets before reviewedBy or trust claims are emitted.","localOnlyInputs":["reviewer evidence JSONL","credential verification notes","reviewed content diff notes"],"commands":["npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh"],"approvalGate":"approvedForReviewerTrustClaim=true and reviewedAt/reviewedBy are present in the reviewed aggregate proof.","publicOutputAllowed":"Only reviewed aggregate reviewer status and approved reviewedBy fragments; no private candidate notes or unapproved reviewer contact data.","doneWhen":"Reviewer queues resolved for canada-express-entry-yml-review."},{"id":"authority-proof","title":"Collect off-site authority and distribution evidence","runClass":"run-after-reviewer-evidence","purpose":"Convert publisher, repository, widget, MCP directory and citation-kit distribution into reviewed backlink/source-preservation evidence.","localOnlyInputs":["authority distribution JSONL","publisher/repository URLs after review","source-preservation checks"],"commands":["npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof"],"approvalGate":"approved authority proof with reviewedAt/reviewedBy and canonical backlinks/source URLs preserved.","publicOutputAllowed":"Reviewed aggregate authority counts and approved public URLs only; account credentials, unpublished URLs and rejection notes stay local.","doneWhen":"6 high-priority authority channels have reviewed evidence or an explicit blocked status."},{"id":"gsc-experiment","title":"Run Search Console battlecard experiment export","runClass":"run-after-reviewer-evidence","purpose":"Map private Search Console query/page rows to the battlecard experiment contract and decide title, snippet, answer-capsule or internal-link actions from reviewed aggregates.","localOnlyInputs":["Search Console CSV export","redacted property label","baseline and comparison windows"],"commands":["npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:gsc-experiment-outcomes","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Reviewed aggregate GSC experiment outcome row with scopeMatched=true and query rows redacted.","publicOutputAllowed":"Reviewed aggregate experiment decision only; raw queries, clicks, impressions, CTR and positions stay local.","doneWhen":"The battlecard has a reviewed GSC action decision or a documented no-change decision."},{"id":"serp-ai-snapshot","title":"Capture SERP and AI answer-surface snapshots","runClass":"run-after-reviewer-evidence","purpose":"Collect dated Google SERP and AI answer-surface evidence for source-class pressure, Visa Atlas visibility, stale claims and citation gaps.","localOnlyInputs":["SERP/AI snapshot JSONL","browser profile metadata","AI answer captures after redaction review"],"commands":["npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run audit:serp-answer-surface-snapshots","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Snapshot rows pass local schema checks and are reviewed before any public rollup is generated.","publicOutputAllowed":"Battlecard counts, source-class counts and reviewed URLs only; raw screenshots, long AI transcripts and private browser data stay local.","doneWhen":"The battlecard has at least one reviewed Google SERP row and one reviewed AI answer row for the agreed query/locale set."},{"id":"quarterly-market-share-rollup","title":"Summarise quarterly market-share evidence","runClass":"run-after-reviewer-evidence","purpose":"Turn reviewed SERP/AI snapshots into a redacted quarterly market-share rollup and run the local market-share proof gate.","localOnlyInputs":["reviewed surface-summary JSON","approved rollup metadata","reviewed market-share proof JSON"],"commands":["npm run seo:market-share-summary -- surface-summary.json --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:rendered-seo"],"approvalGate":"approvedForMarketShareClaim=true with complete battlecard coverage, reviewedAt and reviewedBy.","publicOutputAllowed":"Approved aggregate rollup only; no raw screenshots, answer text, snippets, query rows, browser profiles or private reviewer notes.","doneWhen":"The battlecard is covered by a complete approved quarterly rollup or explicitly disclosed as missing from a partial rollup."},{"id":"ai-visibility-proof","title":"Run AI visibility proof gate","runClass":"final-outcome-gate","purpose":"Prove AI citation, answer accuracy and AI-referral evidence from reviewed aggregate files before any GEO visibility claim.","localOnlyInputs":["AI visibility proof JSON","graded benchmark output","bot-filtered AI referral aggregate"],"commands":["npm run kpi:citation-share","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof"],"approvalGate":"approvedForAiVisibilityClaim=true with full fixed-basket benchmark coverage and reviewedAt/reviewedBy.","publicOutputAllowed":"Reviewed aggregate citation-share, answer-accuracy and AI-referral metrics only; raw model outputs and analytics rows stay local.","doneWhen":"The fixed benchmark has reviewed citation and accuracy evidence across the declared engines."},{"id":"traffic-outcome-proof","title":"Run 500k/month traffic outcome proof gate","runClass":"final-outcome-gate","purpose":"Reconcile bot-filtered analytics, GSC cohorts, AI visibility and market-share proof before any public 500k/month outcome claim.","localOnlyInputs":["reviewed traffic outcome proof JSON","bot-filtered analytics aggregate","GSC cohort aggregate"],"commands":["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","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:public-outcome-claims"],"approvalGate":"approvedForOutcomeClaim=true, reviewedAt/reviewedBy present, SEO/GEO visits meet the target and market-share proof is complete.","publicOutputAllowed":"Reviewed aggregate monthly outcome proof only; raw analytics, GSC exports, screenshots and AI transcripts stay local.","doneWhen":"Reviewed aggregate evidence proves at least 500,000 qualified monthly visits from SEO/GEO-attributable channels."}],"localCommands":["npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run audit:market-share-capture-plan","npm run audit:rendered-seo","npm run audit:seo-geo","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:market-share-summary -- surface-summary.json --json","npm run audit:content-opportunities","npm run audit:topical-authority-map","npm run audit:indexable-page-manifest","npm run audit:longtail-provenance","npm run audit:technical-seo-controls","npm run audit:data-citation","npm run fetch:ee-draws","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:sources","npm run audit:thin","npm run audit:publisher-citation-kits","npm run audit:stale","npm run audit:freshness","npm run audit:policy-claims","npm run audit:seo-geo -- --include-liveness","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:seo-geo-dominance-gap-ledger","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:battlecard-retrieval-coverage","npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh","npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof","npm run audit:gsc-experiment-outcomes","npm run audit:serp-answer-surface-snapshots","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof","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","npm run audit:public-outcome-claims"],"sourceDatasets":["/api/public/seo-geo-measurement-run-queue","/api/public/seo-geo-dominance-gap-ledger","/api/public/battlecard-search-experiments","/api/public/serp-answer-surface-snapshots","/api/public/quarterly-market-share-summary","/api/public/market-share-capture-plan","/api/public/battlecard-retrieval-coverage","/api/public/ai-retrieval-task-index","/api/public/ai-retrieval-readiness","/api/public/visibility-metrics","/api/public/competitor-query-battlecards","/api/public/source-transparency-benchmark","/api/public/authority-distribution-plan","/api/public/expert-reviewer-entities","/api/public/cost-to-complete","/api/public/fees","/api/public/visas","/api/public/citation-benchmark","/api/public/content-opportunities","/api/public/answer-capsules","/api/public/citation-packs","/api/public/calculator-verdict-contexts","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors","/api/public/search-demand-actions","/api/public/execution-readiness","/api/public/traffic-forecast","/api/public/technical-seo-controls","/api/public/seo-geo-page-action-map","/api/public/seo-geo-production-queue","/api/public/indexable-pages","/api/public/search-index","/api/public/destinations","/api/public/express-entry-draws","/api/public/express-entry-categories","/api/public/topical-authority-map","/api/public/seo-geo-audit-evidence","/api/public/freshness","/api/public/fact-changes","/api/public/ai-answer-accuracy-audit"],"noGoBoundaries":["Do not present refundable settlement funds as fees paid away.","Do not imply CEC, FSW and PNP have identical proof-of-funds rules.","Do not claim Canada cost query-share gains without reviewed GSC or SERP/AI snapshot evidence.","Do not publish current market-share, ranking, traffic or AI-citation claims from this planning row alone.","Do not expose raw screenshots, private Search Console exports, long AI transcripts or reviewer notes.","Blocked until an approved redacted snapshot rollup supplies dated counts, approvedForPublication=true, reviewedAt and reviewedBy.","Do not publish a latest-draw answer before source reconciliation.","Do not imply a CRS cutoff is a future target score.","Do not merge category-specific and program-wide draw interpretations.","Do not publish current market-share, ranking, traffic, AI-citation, backlink or 500k/month progress claims without approved reviewed aggregate evidence.","Do not claim rankings, traffic, AI citation share or market-share gains from this handoff without approved aggregate evidence.","This row is a Q3 2026 baseline contract, not a live rank or traffic-share claim.","Approved market-share rollups must publish counts and dates, not raw screenshots, long AI transcripts or private reviewer notes.","Competitor source-class labels must stay aligned with the source-transparency benchmark and snapshot protocol.","Do not publish rankings, traffic, backlinks, AI-citation, market-share or 500k/month progress claims without reviewed aggregate outcome proof.","Do not publish traffic, ranking, AI-citation, backlink, reviewer-trust or market-share claims from this queue alone."],"privateEvidenceBoundary":"Raw analytics, Search Console exports, SERP screenshots, AI transcripts, referrer logs, browser profiles, reviewer notes and unapproved rollups stay local unless reviewed, redacted and aggregated.","suggestedCitation":"Visa Atlas, \"Visa Atlas SEO/GEO measurement run queue: Canada FSW, CEC and PNP cost and proof-of-funds\", https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#canada-skilled-cost-proof-funds. Last modified 2026-07-06."},{"id":"policy-change-freshness-control-measurement-run","battlecardId":"policy-change-freshness-control","title":"Immigration rule-change and source-freshness control measurement run","url":"https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#policy-change-freshness-control","runOrder":8,"priority":"high","measurementStatus":"reviewer-evidence-blocked","dominanceGapStatus":"reviewer-evidence-needed","firstRunnablePhaseIds":["public-control-check","reviewer-proof"],"blockedBy":["reviewer queue: us-h1b-yml-review"],"queryCluster":["major immigration rule changes 2026 skilled migrants","immigration source freshness visa data","visa rule changes current source dates"],"targetPages":["/research/immigration-rule-changes-2026","/policy-updates","/changelog","/freshness","/methodology"],"contentPiecesNeeded":["Battlecard answer shape: Freshness-led answer: latest significant rule changes, in-force or scheduled status, checked source count, stale-record count, source URLs and no-legal-advice caveat.","Rule-change answer block that separates in-force, scheduled and significant skilled-migration changes.","Freshness SLA summary showing checked records, due-soon records and stale records with source classes.","Citation-ready policy-change packet tying policy updates, fact changes, policy claims and freshness sources together."],"pageChangesNeeded":["Cross-link /research/immigration-rule-changes-2026, /policy-updates, /changelog and /freshness as one volatile-policy cluster.","Add freshness and last-reviewed anchors near rule-change summaries so AI retrievers can cite current source state.","Keep methodology and freshness pages linked from policy-change research without implying legal advice.","Add or verify contextual internal link to /research/immigration-rule-changes-2026.","Add or verify contextual internal link to /policy-updates.","Add or verify contextual internal link to /changelog.","Add or verify contextual internal link to /freshness.","Add or verify contextual internal link to /methodology."],"technicalChangesNeeded":["Keep policy-update, fact-change, policy-claim and freshness datasets aligned in public JSON and rendered HTML.","Run freshness, policy-claim and rendered SEO audits before publishing material rule-change updates.","Block live market-share claims until reviewed redacted SERP and AI answer-surface rollups exist.","Keep rule-change research, policy updates, changelog and freshness dashboard mutually linked.","Expose fact-change, policy-claim and freshness datasets together so answer engines can distinguish changed facts from stale facts.","Run freshness, policy-claim and rendered SEO audits before treating a policy-change answer as publishable."],"experimentIds":["policy-change-freshness-control-gsc-experiment"],"snapshotProtocolIds":["policy-change-freshness-control-surface-snapshot"],"marketShareBaselineIds":["policy-change-freshness-control-market-share-baseline"],"reviewerQueueIds":["us-h1b-yml-review"],"authorityChannelIds":["official-mcp-registry","community-mcp-directories","hugging-face-dataset","github-data-mirror","zenodo-cost-index-doi","show-hn-open-data-launch"],"requiredPrivateEvidence":["GSC rows for rule-change, immigration update and source-freshness queries.","Reviewed AI answer outputs for stale policy or unsupported legal-scope claims.","Approved snapshot summary before any public claim of policy-change visibility gains."],"phases":[{"id":"public-control-check","title":"Confirm public retrieval controls before measurement","runClass":"run-now","purpose":"Make sure public pages, JSON endpoints, rendered SEO output and battlecard coverage still pass before private evidence is collected.","localOnlyInputs":[],"commands":["npm run audit:battlecard-retrieval-coverage","npm run audit:seo-geo-dominance-gap-ledger","npm run audit:rendered-seo","npm run audit:seo-geo"],"approvalGate":"All public-control audits pass with no asset-gap rows for this battlecard.","publicOutputAllowed":"Audit pass/fail status only; do not publish private evidence or outcome claims.","doneWhen":"The battlecard remains covered by public answer, citation, page-action, experiment and snapshot protocol surfaces."},{"id":"reviewer-proof","title":"Resolve high-risk reviewer evidence","runClass":"run-now","purpose":"Collect and review credentialed reviewer evidence for high-risk YMYL page targets before reviewedBy or trust claims are emitted.","localOnlyInputs":["reviewer evidence JSONL","credential verification notes","reviewed content diff notes"],"commands":["npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh"],"approvalGate":"approvedForReviewerTrustClaim=true and reviewedAt/reviewedBy are present in the reviewed aggregate proof.","publicOutputAllowed":"Only reviewed aggregate reviewer status and approved reviewedBy fragments; no private candidate notes or unapproved reviewer contact data.","doneWhen":"Reviewer queues resolved for us-h1b-yml-review."},{"id":"authority-proof","title":"Collect off-site authority and distribution evidence","runClass":"run-after-reviewer-evidence","purpose":"Convert publisher, repository, widget, MCP directory and citation-kit distribution into reviewed backlink/source-preservation evidence.","localOnlyInputs":["authority distribution JSONL","publisher/repository URLs after review","source-preservation checks"],"commands":["npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof"],"approvalGate":"approved authority proof with reviewedAt/reviewedBy and canonical backlinks/source URLs preserved.","publicOutputAllowed":"Reviewed aggregate authority counts and approved public URLs only; account credentials, unpublished URLs and rejection notes stay local.","doneWhen":"6 high-priority authority channels have reviewed evidence or an explicit blocked status."},{"id":"gsc-experiment","title":"Run Search Console battlecard experiment export","runClass":"run-after-reviewer-evidence","purpose":"Map private Search Console query/page rows to the battlecard experiment contract and decide title, snippet, answer-capsule or internal-link actions from reviewed aggregates.","localOnlyInputs":["Search Console CSV export","redacted property label","baseline and comparison windows"],"commands":["npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:gsc-experiment-outcomes","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Reviewed aggregate GSC experiment outcome row with scopeMatched=true and query rows redacted.","publicOutputAllowed":"Reviewed aggregate experiment decision only; raw queries, clicks, impressions, CTR and positions stay local.","doneWhen":"The battlecard has a reviewed GSC action decision or a documented no-change decision."},{"id":"serp-ai-snapshot","title":"Capture SERP and AI answer-surface snapshots","runClass":"run-after-reviewer-evidence","purpose":"Collect dated Google SERP and AI answer-surface evidence for source-class pressure, Visa Atlas visibility, stale claims and citation gaps.","localOnlyInputs":["SERP/AI snapshot JSONL","browser profile metadata","AI answer captures after redaction review"],"commands":["npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run audit:serp-answer-surface-snapshots","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Snapshot rows pass local schema checks and are reviewed before any public rollup is generated.","publicOutputAllowed":"Battlecard counts, source-class counts and reviewed URLs only; raw screenshots, long AI transcripts and private browser data stay local.","doneWhen":"The battlecard has at least one reviewed Google SERP row and one reviewed AI answer row for the agreed query/locale set."},{"id":"quarterly-market-share-rollup","title":"Summarise quarterly market-share evidence","runClass":"run-after-reviewer-evidence","purpose":"Turn reviewed SERP/AI snapshots into a redacted quarterly market-share rollup and run the local market-share proof gate.","localOnlyInputs":["reviewed surface-summary JSON","approved rollup metadata","reviewed market-share proof JSON"],"commands":["npm run seo:market-share-summary -- surface-summary.json --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:rendered-seo"],"approvalGate":"approvedForMarketShareClaim=true with complete battlecard coverage, reviewedAt and reviewedBy.","publicOutputAllowed":"Approved aggregate rollup only; no raw screenshots, answer text, snippets, query rows, browser profiles or private reviewer notes.","doneWhen":"The battlecard is covered by a complete approved quarterly rollup or explicitly disclosed as missing from a partial rollup."},{"id":"ai-visibility-proof","title":"Run AI visibility proof gate","runClass":"final-outcome-gate","purpose":"Prove AI citation, answer accuracy and AI-referral evidence from reviewed aggregate files before any GEO visibility claim.","localOnlyInputs":["AI visibility proof JSON","graded benchmark output","bot-filtered AI referral aggregate"],"commands":["npm run kpi:citation-share","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof"],"approvalGate":"approvedForAiVisibilityClaim=true with full fixed-basket benchmark coverage and reviewedAt/reviewedBy.","publicOutputAllowed":"Reviewed aggregate citation-share, answer-accuracy and AI-referral metrics only; raw model outputs and analytics rows stay local.","doneWhen":"The fixed benchmark has reviewed citation and accuracy evidence across the declared engines."},{"id":"traffic-outcome-proof","title":"Run 500k/month traffic outcome proof gate","runClass":"final-outcome-gate","purpose":"Reconcile bot-filtered analytics, GSC cohorts, AI visibility and market-share proof before any public 500k/month outcome claim.","localOnlyInputs":["reviewed traffic outcome proof JSON","bot-filtered analytics aggregate","GSC cohort aggregate"],"commands":["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","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:public-outcome-claims"],"approvalGate":"approvedForOutcomeClaim=true, reviewedAt/reviewedBy present, SEO/GEO visits meet the target and market-share proof is complete.","publicOutputAllowed":"Reviewed aggregate monthly outcome proof only; raw analytics, GSC exports, screenshots and AI transcripts stay local.","doneWhen":"Reviewed aggregate evidence proves at least 500,000 qualified monthly visits from SEO/GEO-attributable channels."}],"localCommands":["npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run audit:market-share-capture-plan","npm run audit:rendered-seo","npm run audit:seo-geo","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:market-share-summary -- surface-summary.json --json","npm run audit:content-opportunities","npm run audit:topical-authority-map","npm run audit:indexable-page-manifest","npm run audit:longtail-provenance","npm run audit:technical-seo-controls","npm run audit:data-citation","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:publisher-citation-kits","npm run audit:sources","npm run audit:stale","npm run audit:freshness","npm run audit:policy-claims","npm run audit:seo-geo -- --include-liveness","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:seo-geo-dominance-gap-ledger","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:battlecard-retrieval-coverage","npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh","npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof","npm run audit:gsc-experiment-outcomes","npm run audit:serp-answer-surface-snapshots","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof","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","npm run audit:public-outcome-claims"],"sourceDatasets":["/api/public/seo-geo-measurement-run-queue","/api/public/seo-geo-dominance-gap-ledger","/api/public/battlecard-search-experiments","/api/public/serp-answer-surface-snapshots","/api/public/quarterly-market-share-summary","/api/public/market-share-capture-plan","/api/public/battlecard-retrieval-coverage","/api/public/ai-retrieval-task-index","/api/public/ai-retrieval-readiness","/api/public/visibility-metrics","/api/public/competitor-query-battlecards","/api/public/source-transparency-benchmark","/api/public/authority-distribution-plan","/api/public/expert-reviewer-entities","/api/public/policy-updates","/api/public/fact-changes","/api/public/policy-claims","/api/public/freshness","/api/public/citation-benchmark","/api/public/content-opportunities","/api/public/answer-capsules","/api/public/citation-packs","/api/public/calculator-verdict-contexts","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors","/api/public/search-demand-actions","/api/public/execution-readiness","/api/public/traffic-forecast","/api/public/technical-seo-controls","/api/public/seo-geo-page-action-map","/api/public/seo-geo-production-queue","/api/public/indexable-pages","/api/public/search-index","/api/public/topical-authority-map","/api/public/seo-geo-audit-evidence","/api/public/ai-answer-accuracy-audit"],"noGoBoundaries":["Do not present scheduled policy changes as in force.","Do not hide stale or due-soon source records when freshness is part of the answer.","Do not publish current traffic, ranking or AI-citation share from the public planning row alone.","Do not publish current market-share, ranking, traffic or AI-citation claims from this planning row alone.","Do not expose raw screenshots, private Search Console exports, long AI transcripts or reviewer notes.","Blocked until an approved redacted snapshot rollup supplies dated counts, approvedForPublication=true, reviewedAt and reviewedBy.","Do not publish current market-share, ranking, traffic, AI-citation, backlink or 500k/month progress claims without approved reviewed aggregate evidence.","Do not claim rankings, traffic, AI citation share or market-share gains from this handoff without approved aggregate evidence.","This row is a Q3 2026 baseline contract, not a live rank or traffic-share claim.","Approved market-share rollups must publish counts and dates, not raw screenshots, long AI transcripts or private reviewer notes.","Competitor source-class labels must stay aligned with the source-transparency benchmark and snapshot protocol.","Do not publish rankings, traffic, backlinks, AI-citation, market-share or 500k/month progress claims without reviewed aggregate outcome proof.","Do not publish traffic, ranking, AI-citation, backlink, reviewer-trust or market-share claims from this queue alone."],"privateEvidenceBoundary":"Raw analytics, Search Console exports, SERP screenshots, AI transcripts, referrer logs, browser profiles, reviewer notes and unapproved rollups stay local unless reviewed, redacted and aggregated.","suggestedCitation":"Visa Atlas, \"Visa Atlas SEO/GEO measurement run queue: Immigration rule-change and source-freshness control\", https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#policy-change-freshness-control. Last modified 2026-07-06."},{"id":"australia-skilled-points-costs-measurement-run","battlecardId":"australia-skilled-points-costs","title":"Points-tested and sponsored skilled route costs measurement run","url":"https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#australia-skilled-points-costs","runOrder":9,"priority":"high","measurementStatus":"reviewer-evidence-blocked","dominanceGapStatus":"reviewer-evidence-needed","firstRunnablePhaseIds":["public-control-check","reviewer-proof"],"blockedBy":["reviewer queue: australia-skilled-migration-yml-review"],"queryCluster":["Australia subclass 189 points test","Australia Skills in Demand visa cost 2026","Australia 190 vs 491 skilled visa difference","Singapore S Pass levy medical insurance cost","New Zealand Accredited Employer Work Visa cost","Austria Red-White-Red Card points cost"],"targetPages":["/calculators/australia-189","/cost-to-complete/australia-189-skilled-independent","/visas/australia/subclass-189-skilled-independent","/cost-to-complete/australia-subclass-482-skills-in-demand","/fees/australia/subclass-482-tss","/salary-thresholds/australia","/cost-to-complete/australia-subclass-186-employer-nomination-scheme","/fees/australia/subclass-186-ens","/cost-to-complete/australia-190-skilled-nominated","/cost-to-complete/australia-491-skilled-work-regional-provisional","/cost-to-complete/singapore-s-pass","/fees/singapore/s-pass","/visas/singapore/s-pass","/cost-to-complete/new-zealand-accredited-employer-work-visa","/fees/new-zealand/accredited-employer-work-visa","/visas/new-zealand/accredited-employer-work-visa","/cost-to-complete/new-zealand-skilled-migrant-category","/visas/new-zealand/skilled-migrant-category","/salary-thresholds/new-zealand","/calculators/austria-rwr","/cost-to-complete/austria-red-white-red-card","/visas/austria/red-white-red-card","/fees/austria/red-white-red-card","/salary-thresholds/austria"],"contentPiecesNeeded":["Battlecard answer shape: Decision table: route, country, points or sponsorship trigger, employer/levy exposure, mandatory paid fees, salary threshold dependency, sunk cost range and source datasets.","Decision table comparing points routes with employer routes and nomination exposure.","Skills-assessment and route-cost explainer for 189, 190, 491 and Skills in Demand paths.","Sponsored and points-route cost matrix covering Singapore S Pass, New Zealand AEWV, New Zealand SMC and Austria Red-White-Red Card routes.","Calculator-context block that explains what a points result does and does not prove."],"pageChangesNeeded":["Link Australia calculator outputs to 189, 190, 491 and Skills in Demand cost-to-complete pages.","Cross-link Singapore S Pass, New Zealand AEWV, New Zealand SMC and Austria RWR cost, fee, calculator and route pages from the same skilled-route cost path.","Add skills-assessment line items to relevant cost and profession pages.","Route outdated 482/TSS naming references to current Skills in Demand context.","Add or verify contextual internal link to /calculators/australia-189.","Add or verify contextual internal link to /cost-to-complete/australia-189-skilled-independent.","Add or verify contextual internal link to /visas/australia/subclass-189-skilled-independent.","Add or verify contextual internal link to /cost-to-complete/australia-subclass-482-skills-in-demand.","Add or verify contextual internal link to /fees/australia/subclass-482-tss.","Add or verify contextual internal link to /salary-thresholds/australia."],"technicalChangesNeeded":["Ensure points calculator and route pages share current route identifiers and source datasets.","Keep sponsorship, nomination, levy, insurance, invitation-stage and Red-White-Red points fields separate in answer capsules, citation packs and cost-to-complete data.","Run source-depth and rendered checks after adding skills-assessment content.","Keep thin generated Australia long-tail pages out of the sitemap unless source-backed value is present.","Link Australia, Austria, Singapore and New Zealand calculator, cost-to-complete, fee, salary-threshold and route pages as one skilled-route cost layer.","Keep skills-assessment, nomination, levy, medical-insurance and invitation-stage fee lines visible in cost models and profession timelines.","Watch answer-engine drift around obsolete 482/TSS naming, Singapore levy treatment and Austria Red-White-Red points pass marks."],"experimentIds":["australia-skilled-points-costs-gsc-experiment"],"snapshotProtocolIds":["australia-skilled-points-costs-surface-snapshot"],"marketShareBaselineIds":["australia-skilled-points-costs-market-share-baseline"],"reviewerQueueIds":["australia-skilled-migration-yml-review"],"authorityChannelIds":["official-mcp-registry","community-mcp-directories","hugging-face-dataset","github-data-mirror","zenodo-cost-index-doi","show-hn-open-data-launch"],"requiredPrivateEvidence":["GSC rows for Australia points, cost and nomination queries.","Outcome evidence for internal-link and page-depth changes.","Reviewed AI answer outputs checking obsolete route naming."],"phases":[{"id":"public-control-check","title":"Confirm public retrieval controls before measurement","runClass":"run-now","purpose":"Make sure public pages, JSON endpoints, rendered SEO output and battlecard coverage still pass before private evidence is collected.","localOnlyInputs":[],"commands":["npm run audit:battlecard-retrieval-coverage","npm run audit:seo-geo-dominance-gap-ledger","npm run audit:rendered-seo","npm run audit:seo-geo"],"approvalGate":"All public-control audits pass with no asset-gap rows for this battlecard.","publicOutputAllowed":"Audit pass/fail status only; do not publish private evidence or outcome claims.","doneWhen":"The battlecard remains covered by public answer, citation, page-action, experiment and snapshot protocol surfaces."},{"id":"reviewer-proof","title":"Resolve high-risk reviewer evidence","runClass":"run-now","purpose":"Collect and review credentialed reviewer evidence for high-risk YMYL page targets before reviewedBy or trust claims are emitted.","localOnlyInputs":["reviewer evidence JSONL","credential verification notes","reviewed content diff notes"],"commands":["npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh"],"approvalGate":"approvedForReviewerTrustClaim=true and reviewedAt/reviewedBy are present in the reviewed aggregate proof.","publicOutputAllowed":"Only reviewed aggregate reviewer status and approved reviewedBy fragments; no private candidate notes or unapproved reviewer contact data.","doneWhen":"Reviewer queues resolved for australia-skilled-migration-yml-review."},{"id":"authority-proof","title":"Collect off-site authority and distribution evidence","runClass":"run-after-reviewer-evidence","purpose":"Convert publisher, repository, widget, MCP directory and citation-kit distribution into reviewed backlink/source-preservation evidence.","localOnlyInputs":["authority distribution JSONL","publisher/repository URLs after review","source-preservation checks"],"commands":["npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof"],"approvalGate":"approved authority proof with reviewedAt/reviewedBy and canonical backlinks/source URLs preserved.","publicOutputAllowed":"Reviewed aggregate authority counts and approved public URLs only; account credentials, unpublished URLs and rejection notes stay local.","doneWhen":"6 high-priority authority channels have reviewed evidence or an explicit blocked status."},{"id":"gsc-experiment","title":"Run Search Console battlecard experiment export","runClass":"run-after-reviewer-evidence","purpose":"Map private Search Console query/page rows to the battlecard experiment contract and decide title, snippet, answer-capsule or internal-link actions from reviewed aggregates.","localOnlyInputs":["Search Console CSV export","redacted property label","baseline and comparison windows"],"commands":["npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:gsc-experiment-outcomes","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Reviewed aggregate GSC experiment outcome row with scopeMatched=true and query rows redacted.","publicOutputAllowed":"Reviewed aggregate experiment decision only; raw queries, clicks, impressions, CTR and positions stay local.","doneWhen":"The battlecard has a reviewed GSC action decision or a documented no-change decision."},{"id":"serp-ai-snapshot","title":"Capture SERP and AI answer-surface snapshots","runClass":"run-after-reviewer-evidence","purpose":"Collect dated Google SERP and AI answer-surface evidence for source-class pressure, Visa Atlas visibility, stale claims and citation gaps.","localOnlyInputs":["SERP/AI snapshot JSONL","browser profile metadata","AI answer captures after redaction review"],"commands":["npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run audit:serp-answer-surface-snapshots","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Snapshot rows pass local schema checks and are reviewed before any public rollup is generated.","publicOutputAllowed":"Battlecard counts, source-class counts and reviewed URLs only; raw screenshots, long AI transcripts and private browser data stay local.","doneWhen":"The battlecard has at least one reviewed Google SERP row and one reviewed AI answer row for the agreed query/locale set."},{"id":"quarterly-market-share-rollup","title":"Summarise quarterly market-share evidence","runClass":"run-after-reviewer-evidence","purpose":"Turn reviewed SERP/AI snapshots into a redacted quarterly market-share rollup and run the local market-share proof gate.","localOnlyInputs":["reviewed surface-summary JSON","approved rollup metadata","reviewed market-share proof JSON"],"commands":["npm run seo:market-share-summary -- surface-summary.json --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:rendered-seo"],"approvalGate":"approvedForMarketShareClaim=true with complete battlecard coverage, reviewedAt and reviewedBy.","publicOutputAllowed":"Approved aggregate rollup only; no raw screenshots, answer text, snippets, query rows, browser profiles or private reviewer notes.","doneWhen":"The battlecard is covered by a complete approved quarterly rollup or explicitly disclosed as missing from a partial rollup."},{"id":"ai-visibility-proof","title":"Run AI visibility proof gate","runClass":"final-outcome-gate","purpose":"Prove AI citation, answer accuracy and AI-referral evidence from reviewed aggregate files before any GEO visibility claim.","localOnlyInputs":["AI visibility proof JSON","graded benchmark output","bot-filtered AI referral aggregate"],"commands":["npm run kpi:citation-share","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof"],"approvalGate":"approvedForAiVisibilityClaim=true with full fixed-basket benchmark coverage and reviewedAt/reviewedBy.","publicOutputAllowed":"Reviewed aggregate citation-share, answer-accuracy and AI-referral metrics only; raw model outputs and analytics rows stay local.","doneWhen":"The fixed benchmark has reviewed citation and accuracy evidence across the declared engines."},{"id":"traffic-outcome-proof","title":"Run 500k/month traffic outcome proof gate","runClass":"final-outcome-gate","purpose":"Reconcile bot-filtered analytics, GSC cohorts, AI visibility and market-share proof before any public 500k/month outcome claim.","localOnlyInputs":["reviewed traffic outcome proof JSON","bot-filtered analytics aggregate","GSC cohort aggregate"],"commands":["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","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:public-outcome-claims"],"approvalGate":"approvedForOutcomeClaim=true, reviewedAt/reviewedBy present, SEO/GEO visits meet the target and market-share proof is complete.","publicOutputAllowed":"Reviewed aggregate monthly outcome proof only; raw analytics, GSC exports, screenshots and AI transcripts stay local.","doneWhen":"Reviewed aggregate evidence proves at least 500,000 qualified monthly visits from SEO/GEO-attributable channels."}],"localCommands":["npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run audit:market-share-capture-plan","npm run audit:rendered-seo","npm run audit:seo-geo","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:market-share-summary -- surface-summary.json --json","npm run audit:content-opportunities","npm run audit:topical-authority-map","npm run audit:indexable-page-manifest","npm run audit:longtail-provenance","npm run audit:technical-seo-controls","npm run audit:data-citation","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:sources","npm run audit:thin","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:seo-geo-audit-evidence","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:seo-geo-dominance-gap-ledger","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:battlecard-retrieval-coverage","npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh","npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof","npm run audit:gsc-experiment-outcomes","npm run audit:serp-answer-surface-snapshots","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof","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","npm run audit:public-outcome-claims"],"sourceDatasets":["/api/public/seo-geo-measurement-run-queue","/api/public/seo-geo-dominance-gap-ledger","/api/public/battlecard-search-experiments","/api/public/serp-answer-surface-snapshots","/api/public/quarterly-market-share-summary","/api/public/market-share-capture-plan","/api/public/battlecard-retrieval-coverage","/api/public/ai-retrieval-task-index","/api/public/ai-retrieval-readiness","/api/public/visibility-metrics","/api/public/competitor-query-battlecards","/api/public/source-transparency-benchmark","/api/public/authority-distribution-plan","/api/public/expert-reviewer-entities","/api/public/visas","/api/public/cost-to-complete","/api/public/fees","/api/public/salary-thresholds","/api/public/citation-benchmark","/api/public/content-opportunities","/api/public/answer-capsules","/api/public/citation-packs","/api/public/calculator-verdict-contexts","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors","/api/public/search-demand-actions","/api/public/execution-readiness","/api/public/traffic-forecast","/api/public/technical-seo-controls","/api/public/seo-geo-page-action-map","/api/public/seo-geo-production-queue","/api/public/indexable-pages","/api/public/search-index","/api/public/topical-authority-map","/api/public/seo-geo-audit-evidence","/api/public/destinations"],"noGoBoundaries":["Do not imply points alone guarantee invitation or nomination.","Do not merge Singapore levy exposure, New Zealand invitation-stage residence fees and Austria points pass marks into one generic visa-fee claim.","Do not create Australia page variants without unique source-backed sections.","Do not mix employer-payer and applicant-payer costs without explicit source support.","Do not publish current market-share, ranking, traffic or AI-citation claims from this planning row alone.","Do not expose raw screenshots, private Search Console exports, long AI transcripts or reviewer notes.","Blocked until an approved redacted snapshot rollup supplies dated counts, approvedForPublication=true, reviewedAt and reviewedBy.","Do not publish current market-share, ranking, traffic, AI-citation, backlink or 500k/month progress claims without approved reviewed aggregate evidence.","Do not claim rankings, traffic, AI citation share or market-share gains from this handoff without approved aggregate evidence.","This row is a Q3 2026 baseline contract, not a live rank or traffic-share claim.","Approved market-share rollups must publish counts and dates, not raw screenshots, long AI transcripts or private reviewer notes.","Competitor source-class labels must stay aligned with the source-transparency benchmark and snapshot protocol.","Do not publish rankings, traffic, backlinks, AI-citation, market-share or 500k/month progress claims without reviewed aggregate outcome proof.","Do not publish traffic, ranking, AI-citation, backlink, reviewer-trust or market-share claims from this queue alone."],"privateEvidenceBoundary":"Raw analytics, Search Console exports, SERP screenshots, AI transcripts, referrer logs, browser profiles, reviewer notes and unapproved rollups stay local unless reviewed, redacted and aggregated.","suggestedCitation":"Visa Atlas, \"Visa Atlas SEO/GEO measurement run queue: Points-tested and sponsored skilled route costs\", https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#australia-skilled-points-costs. Last modified 2026-07-06."},{"id":"global-cheapest-fastest-no-sponsor-measurement-run","battlecardId":"global-cheapest-fastest-no-sponsor","title":"Global cheapest, fastest and no-sponsor skilled migration rankings measurement run","url":"https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#global-cheapest-fastest-no-sponsor","runOrder":10,"priority":"high","measurementStatus":"ready-for-private-measurement","dominanceGapStatus":"ready-for-private-measurement","firstRunnablePhaseIds":["public-control-check","authority-proof","gsc-experiment","serp-ai-snapshot","quarterly-market-share-rollup"],"blockedBy":[],"queryCluster":["cheapest skilled work visas","skilled migration processing times 2026","fastest countries for permanent residence","work visas without employer sponsor"],"targetPages":["/research/skilled-migration-cost-index-2026","/figures","/rankings/cheapest-work-visas","/research/how-long-skilled-migration-takes-2026","/processing-times","/rankings/fastest-to-settlement","/settlement","/calculators/germany-settlement","/rankings/no-sponsor-needed","/best/best-work-visas-no-sponsor","/visas/category/work-unsponsored"],"contentPiecesNeeded":["Battlecard answer shape: Ranked list with methodology: route, destination, sponsor flag, processing window, settlement clock, mandatory sunk cost, caveat and dataset links.","Ranked methodology block explaining cheapest, processing-time, settlement-speed and no-sponsor criteria.","Route cards that expose sponsor requirement, processing window, settlement clock, sunk cost and caveat.","Reusable citation kit for rankings, processing-time and answer-engine journalists."],"pageChangesNeeded":["Keep rankings tied to cost, processing, settlement and salary datasets instead of subjective list copy.","Link ranking pages to processing-time, route detail, comparison and cost-to-complete pages.","Add method and caveat anchors so AI retrievers can cite the ranking basis.","Add or verify contextual internal link to /research/skilled-migration-cost-index-2026.","Add or verify contextual internal link to /figures.","Add or verify contextual internal link to /rankings/cheapest-work-visas.","Add or verify contextual internal link to /research/how-long-skilled-migration-takes-2026.","Add or verify contextual internal link to /processing-times.","Add or verify contextual internal link to /rankings/fastest-to-settlement."],"technicalChangesNeeded":["Render ranking methodology, processing-time methodology, data source links and no-best-route caveats in static HTML.","Keep ranking rows backed by public JSON and exclude unsupported route permutations.","Run rendered SEO and long-tail provenance checks before expanding ranking variants.","Keep rankings tied to research reports and public JSON rather than editorial-only listicles.","Add source dates and calculation caveats to every ranked page.","Join processing-time research, /processing-times and /figures so ranking answers do not collapse speed-to-decision with speed-to-settlement.","Use /figures and DataDownload schema as the machine-readable backing layer."],"experimentIds":["global-cheapest-fastest-no-sponsor-gsc-experiment"],"snapshotProtocolIds":["global-cheapest-fastest-no-sponsor-surface-snapshot"],"marketShareBaselineIds":["global-cheapest-fastest-no-sponsor-market-share-baseline"],"reviewerQueueIds":[],"authorityChannelIds":["official-mcp-registry","community-mcp-directories","hugging-face-dataset","github-data-mirror","zenodo-cost-index-doi","show-hn-open-data-launch"],"requiredPrivateEvidence":["Reviewed query evidence before creating additional ranking pages.","SERP and AI snapshot evidence before claiming market-share displacement.","Approved publisher or AI-citation evidence before claiming off-site authority gains."],"phases":[{"id":"public-control-check","title":"Confirm public retrieval controls before measurement","runClass":"run-now","purpose":"Make sure public pages, JSON endpoints, rendered SEO output and battlecard coverage still pass before private evidence is collected.","localOnlyInputs":[],"commands":["npm run audit:battlecard-retrieval-coverage","npm run audit:seo-geo-dominance-gap-ledger","npm run audit:rendered-seo","npm run audit:seo-geo"],"approvalGate":"All public-control audits pass with no asset-gap rows for this battlecard.","publicOutputAllowed":"Audit pass/fail status only; do not publish private evidence or outcome claims.","doneWhen":"The battlecard remains covered by public answer, citation, page-action, experiment and snapshot protocol surfaces."},{"id":"authority-proof","title":"Collect off-site authority and distribution evidence","runClass":"run-now","purpose":"Convert publisher, repository, widget, MCP directory and citation-kit distribution into reviewed backlink/source-preservation evidence.","localOnlyInputs":["authority distribution JSONL","publisher/repository URLs after review","source-preservation checks"],"commands":["npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof"],"approvalGate":"approved authority proof with reviewedAt/reviewedBy and canonical backlinks/source URLs preserved.","publicOutputAllowed":"Reviewed aggregate authority counts and approved public URLs only; account credentials, unpublished URLs and rejection notes stay local.","doneWhen":"6 high-priority authority channels have reviewed evidence or an explicit blocked status."},{"id":"gsc-experiment","title":"Run Search Console battlecard experiment export","runClass":"run-now","purpose":"Map private Search Console query/page rows to the battlecard experiment contract and decide title, snippet, answer-capsule or internal-link actions from reviewed aggregates.","localOnlyInputs":["Search Console CSV export","redacted property label","baseline and comparison windows"],"commands":["npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:gsc-experiment-outcomes","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Reviewed aggregate GSC experiment outcome row with scopeMatched=true and query rows redacted.","publicOutputAllowed":"Reviewed aggregate experiment decision only; raw queries, clicks, impressions, CTR and positions stay local.","doneWhen":"The battlecard has a reviewed GSC action decision or a documented no-change decision."},{"id":"serp-ai-snapshot","title":"Capture SERP and AI answer-surface snapshots","runClass":"run-now","purpose":"Collect dated Google SERP and AI answer-surface evidence for source-class pressure, Visa Atlas visibility, stale claims and citation gaps.","localOnlyInputs":["SERP/AI snapshot JSONL","browser profile metadata","AI answer captures after redaction review"],"commands":["npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run audit:serp-answer-surface-snapshots","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Snapshot rows pass local schema checks and are reviewed before any public rollup is generated.","publicOutputAllowed":"Battlecard counts, source-class counts and reviewed URLs only; raw screenshots, long AI transcripts and private browser data stay local.","doneWhen":"The battlecard has at least one reviewed Google SERP row and one reviewed AI answer row for the agreed query/locale set."},{"id":"quarterly-market-share-rollup","title":"Summarise quarterly market-share evidence","runClass":"run-now","purpose":"Turn reviewed SERP/AI snapshots into a redacted quarterly market-share rollup and run the local market-share proof gate.","localOnlyInputs":["reviewed surface-summary JSON","approved rollup metadata","reviewed market-share proof JSON"],"commands":["npm run seo:market-share-summary -- surface-summary.json --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:rendered-seo"],"approvalGate":"approvedForMarketShareClaim=true with complete battlecard coverage, reviewedAt and reviewedBy.","publicOutputAllowed":"Approved aggregate rollup only; no raw screenshots, answer text, snippets, query rows, browser profiles or private reviewer notes.","doneWhen":"The battlecard is covered by a complete approved quarterly rollup or explicitly disclosed as missing from a partial rollup."},{"id":"ai-visibility-proof","title":"Run AI visibility proof gate","runClass":"final-outcome-gate","purpose":"Prove AI citation, answer accuracy and AI-referral evidence from reviewed aggregate files before any GEO visibility claim.","localOnlyInputs":["AI visibility proof JSON","graded benchmark output","bot-filtered AI referral aggregate"],"commands":["npm run kpi:citation-share","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof"],"approvalGate":"approvedForAiVisibilityClaim=true with full fixed-basket benchmark coverage and reviewedAt/reviewedBy.","publicOutputAllowed":"Reviewed aggregate citation-share, answer-accuracy and AI-referral metrics only; raw model outputs and analytics rows stay local.","doneWhen":"The fixed benchmark has reviewed citation and accuracy evidence across the declared engines."},{"id":"traffic-outcome-proof","title":"Run 500k/month traffic outcome proof gate","runClass":"final-outcome-gate","purpose":"Reconcile bot-filtered analytics, GSC cohorts, AI visibility and market-share proof before any public 500k/month outcome claim.","localOnlyInputs":["reviewed traffic outcome proof JSON","bot-filtered analytics aggregate","GSC cohort aggregate"],"commands":["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","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:public-outcome-claims"],"approvalGate":"approvedForOutcomeClaim=true, reviewedAt/reviewedBy present, SEO/GEO visits meet the target and market-share proof is complete.","publicOutputAllowed":"Reviewed aggregate monthly outcome proof only; raw analytics, GSC exports, screenshots and AI transcripts stay local.","doneWhen":"Reviewed aggregate evidence proves at least 500,000 qualified monthly visits from SEO/GEO-attributable channels."}],"localCommands":["npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run audit:market-share-capture-plan","npm run audit:rendered-seo","npm run audit:seo-geo","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:market-share-summary -- surface-summary.json --json","npm run audit:content-opportunities","npm run audit:topical-authority-map","npm run audit:indexable-page-manifest","npm run audit:longtail-provenance","npm run audit:technical-seo-controls","npm run audit:data-citation","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:sources","npm run audit:thin","npm run audit:noindex","npm run audit:publisher-citation-kits","npm run audit:stale","npm run audit:freshness","npm run audit:policy-claims","npm run audit:seo-geo -- --include-liveness","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:seo-geo-dominance-gap-ledger","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:battlecard-retrieval-coverage","npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof","npm run audit:gsc-experiment-outcomes","npm run audit:serp-answer-surface-snapshots","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof","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","npm run audit:public-outcome-claims"],"sourceDatasets":["/api/public/seo-geo-measurement-run-queue","/api/public/seo-geo-dominance-gap-ledger","/api/public/battlecard-search-experiments","/api/public/serp-answer-surface-snapshots","/api/public/quarterly-market-share-summary","/api/public/market-share-capture-plan","/api/public/battlecard-retrieval-coverage","/api/public/ai-retrieval-task-index","/api/public/ai-retrieval-readiness","/api/public/visibility-metrics","/api/public/competitor-query-battlecards","/api/public/source-transparency-benchmark","/api/public/authority-distribution-plan","/api/public/expert-reviewer-entities","/api/public/cost-to-complete","/api/public/citation-packs","/api/public/processing-times","/api/public/freshness","/api/public/visas","/api/public/citation-benchmark","/api/public/content-opportunities","/api/public/answer-capsules","/api/public/calculator-verdict-contexts","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors","/api/public/search-demand-actions","/api/public/execution-readiness","/api/public/traffic-forecast","/api/public/technical-seo-controls","/api/public/seo-geo-page-action-map","/api/public/seo-geo-production-queue","/api/public/indexable-pages","/api/public/search-index","/api/public/salary-thresholds","/api/public/topical-authority-map","/api/public/seo-geo-audit-evidence","/api/public/fact-changes","/api/public/ai-answer-accuracy-audit","/api/public/monthly-figure-changes","/api/public/destinations"],"noGoBoundaries":["Do not call any route the best without visible criteria and caveats.","Do not create a ranking page from one emerging query row.","Do not publish market-share claims without approved redacted snapshot rollups.","Do not publish current market-share, ranking, traffic or AI-citation claims from this planning row alone.","Do not expose raw screenshots, private Search Console exports, long AI transcripts or reviewer notes.","Blocked until an approved redacted snapshot rollup supplies dated counts, approvedForPublication=true, reviewedAt and reviewedBy.","Do not reduce Germany recognition to a generic checklist when route choice depends on recognition status.","Do not cite stale salary thresholds or omit the effective date.","Do not publish recognition advice as a legal determination.","Do not publish current market-share, ranking, traffic, AI-citation, backlink or 500k/month progress claims without approved reviewed aggregate evidence.","Do not convert salary floors into USD rankings without caveats.","Do not describe the Netherlands HSM salary requirement as an applicant fee or sunk cost.","Do not flatten France, Norway or Finland salary basis rules into an undated Europe-wide minimum.","Do not claim rankings, traffic, AI citation share or market-share gains from this handoff without approved aggregate evidence.","This row is a Q3 2026 baseline contract, not a live rank or traffic-share claim.","Approved market-share rollups must publish counts and dates, not raw screenshots, long AI transcripts or private reviewer notes.","Competitor source-class labels must stay aligned with the source-transparency benchmark and snapshot protocol.","Do not publish rankings, traffic, backlinks, AI-citation, market-share or 500k/month progress claims without reviewed aggregate outcome proof.","Do not publish traffic, ranking, AI-citation, backlink, reviewer-trust or market-share claims from this queue alone."],"privateEvidenceBoundary":"Raw analytics, Search Console exports, SERP screenshots, AI transcripts, referrer logs, browser profiles, reviewer notes and unapproved rollups stay local unless reviewed, redacted and aggregated.","suggestedCitation":"Visa Atlas, \"Visa Atlas SEO/GEO measurement run queue: Global cheapest, fastest and no-sponsor skilled migration rankings\", https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#global-cheapest-fastest-no-sponsor. Last modified 2026-07-06."},{"id":"salary-floors-cross-country-measurement-run","battlecardId":"salary-floors-cross-country","title":"Cross-country skilled salary floor comparisons measurement run","url":"https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#salary-floors-cross-country","runOrder":11,"priority":"medium","measurementStatus":"ready-for-private-measurement","dominanceGapStatus":"ready-for-private-measurement","firstRunnablePhaseIds":["public-control-check","authority-proof","gsc-experiment","serp-ai-snapshot","quarterly-market-share-rollup"],"blockedBy":[],"queryCluster":["highest skilled migration salary floors 2026","Singapore Employment Pass salary","Netherlands highly skilled migrant salary 2026","Netherlands highly skilled migrant cost 2026","France Talent Passport salary requirement 2026","Norway skilled worker salary requirement","Finland specialist permit salary threshold"],"targetPages":["/research/skilled-migration-salary-floors-2026","/salary-thresholds","/figures","/salary-thresholds/singapore","/cost-to-complete/singapore-employment-pass","/visas/singapore/employment-pass","/salary-thresholds/netherlands","/cost-to-complete/netherlands-highly-skilled-migrant","/visas/netherlands/highly-skilled-migrant","/salary-thresholds/denmark","/cost-to-complete/denmark-pay-limit-scheme","/visas/denmark/pay-limit-scheme","/salary-thresholds/sweden","/cost-to-complete/sweden-work-permit","/visas/sweden/work-permit-sweden","/salary-thresholds/france","/cost-to-complete/france-talent-passport-salaried","/visas/france/talent-passport-salaried","/salary-thresholds/norway","/cost-to-complete/norway-skilled-worker-permit","/visas/norway/skilled-worker-permit","/salary-thresholds/finland","/cost-to-complete/finland-residence-permit-specialist","/visas/finland/residence-permit-specialist"],"contentPiecesNeeded":["Battlecard answer shape: Comparison table: country, route, local salary floor, mandatory paid costs, basis, effective date, source, and caveats for occupation, age-tier or collective-agreement rules.","Cross-country salary-floor table retaining local currency, basis and effective date.","Netherlands Highly Skilled Migrant cost note separating salary requirement from mandatory paid route costs.","France Talent Passport, Norway Skilled Worker and Finland Specialist salary-floor notes with route-specific basis and caveats.","Occupation salary-floor answer for priority profession pages.","Monthly change note for any moved salary threshold."],"pageChangesNeeded":["Connect /salary-thresholds, profession pages and salary-floor research pages with consistent anchor text.","Cross-link /salary-thresholds/netherlands, /cost-to-complete/netherlands-highly-skilled-migrant and /visas/netherlands/highly-skilled-migrant as one HSM answer path.","Cross-link France, Norway and Finland salary-threshold pages to their matching cost-to-complete and route pages.","Render occupation checker answers where destination and route mapping is source-backed.","Place local-currency caveats above any approximate comparison ordering.","Add or verify contextual internal link to /research/skilled-migration-salary-floors-2026.","Add or verify contextual internal link to /salary-thresholds.","Add or verify contextual internal link to /figures.","Add or verify contextual internal link to /salary-thresholds/singapore.","Add or verify contextual internal link to /cost-to-complete/singapore-employment-pass.","Add or verify contextual internal link to /visas/singapore/employment-pass."],"technicalChangesNeeded":["Keep salary fact IDs stable across salary pages, profession pages and figure-change feeds.","Preserve separate fields for salary floor, employer recognition context and applicant paid cost in Netherlands HSM answer capsules and citation packs.","Preserve route-specific salary basis fields for France Talent Passport, Norway Skilled Worker and Finland Specialist pages.","Run freshness and stale-claim audits before publishing salary-led pages.","Ensure answer capsules carry source URLs and current review dates.","Keep /salary-thresholds, /cost-to-complete route pages, /figures and salary-floor research mutually discoverable.","Render occupation salary-floor answers on profession pages where route mapping is clear.","Join Netherlands HSM salary and cost-to-complete pages so answer engines do not treat income thresholds as paid fees.","Join France Talent Passport, Norway Skilled Worker and Finland Specialist salary pages so answer engines can cite country-specific basis and route caveats.","Expose both human tables and JSON endpoints to answer engines."],"experimentIds":["salary-floors-cross-country-gsc-experiment"],"snapshotProtocolIds":["salary-floors-cross-country-surface-snapshot"],"marketShareBaselineIds":["salary-floors-cross-country-market-share-baseline"],"reviewerQueueIds":[],"authorityChannelIds":["official-mcp-registry","community-mcp-directories","hugging-face-dataset","github-data-mirror","zenodo-cost-index-doi","show-hn-open-data-launch"],"requiredPrivateEvidence":["GSC rows for cross-country salary and destination salary queries.","Reviewed AI answer outputs for stale salary floors.","Outcome rows for internal-link pushes into profession pages."],"phases":[{"id":"public-control-check","title":"Confirm public retrieval controls before measurement","runClass":"run-now","purpose":"Make sure public pages, JSON endpoints, rendered SEO output and battlecard coverage still pass before private evidence is collected.","localOnlyInputs":[],"commands":["npm run audit:battlecard-retrieval-coverage","npm run audit:seo-geo-dominance-gap-ledger","npm run audit:rendered-seo","npm run audit:seo-geo"],"approvalGate":"All public-control audits pass with no asset-gap rows for this battlecard.","publicOutputAllowed":"Audit pass/fail status only; do not publish private evidence or outcome claims.","doneWhen":"The battlecard remains covered by public answer, citation, page-action, experiment and snapshot protocol surfaces."},{"id":"authority-proof","title":"Collect off-site authority and distribution evidence","runClass":"run-now","purpose":"Convert publisher, repository, widget, MCP directory and citation-kit distribution into reviewed backlink/source-preservation evidence.","localOnlyInputs":["authority distribution JSONL","publisher/repository URLs after review","source-preservation checks"],"commands":["npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof"],"approvalGate":"approved authority proof with reviewedAt/reviewedBy and canonical backlinks/source URLs preserved.","publicOutputAllowed":"Reviewed aggregate authority counts and approved public URLs only; account credentials, unpublished URLs and rejection notes stay local.","doneWhen":"6 high-priority authority channels have reviewed evidence or an explicit blocked status."},{"id":"gsc-experiment","title":"Run Search Console battlecard experiment export","runClass":"run-now","purpose":"Map private Search Console query/page rows to the battlecard experiment contract and decide title, snippet, answer-capsule or internal-link actions from reviewed aggregates.","localOnlyInputs":["Search Console CSV export","redacted property label","baseline and comparison windows"],"commands":["npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:gsc-experiment-outcomes","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Reviewed aggregate GSC experiment outcome row with scopeMatched=true and query rows redacted.","publicOutputAllowed":"Reviewed aggregate experiment decision only; raw queries, clicks, impressions, CTR and positions stay local.","doneWhen":"The battlecard has a reviewed GSC action decision or a documented no-change decision."},{"id":"serp-ai-snapshot","title":"Capture SERP and AI answer-surface snapshots","runClass":"run-now","purpose":"Collect dated Google SERP and AI answer-surface evidence for source-class pressure, Visa Atlas visibility, stale claims and citation gaps.","localOnlyInputs":["SERP/AI snapshot JSONL","browser profile metadata","AI answer captures after redaction review"],"commands":["npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run audit:serp-answer-surface-snapshots","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Snapshot rows pass local schema checks and are reviewed before any public rollup is generated.","publicOutputAllowed":"Battlecard counts, source-class counts and reviewed URLs only; raw screenshots, long AI transcripts and private browser data stay local.","doneWhen":"The battlecard has at least one reviewed Google SERP row and one reviewed AI answer row for the agreed query/locale set."},{"id":"quarterly-market-share-rollup","title":"Summarise quarterly market-share evidence","runClass":"run-now","purpose":"Turn reviewed SERP/AI snapshots into a redacted quarterly market-share rollup and run the local market-share proof gate.","localOnlyInputs":["reviewed surface-summary JSON","approved rollup metadata","reviewed market-share proof JSON"],"commands":["npm run seo:market-share-summary -- surface-summary.json --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:rendered-seo"],"approvalGate":"approvedForMarketShareClaim=true with complete battlecard coverage, reviewedAt and reviewedBy.","publicOutputAllowed":"Approved aggregate rollup only; no raw screenshots, answer text, snippets, query rows, browser profiles or private reviewer notes.","doneWhen":"The battlecard is covered by a complete approved quarterly rollup or explicitly disclosed as missing from a partial rollup."},{"id":"ai-visibility-proof","title":"Run AI visibility proof gate","runClass":"final-outcome-gate","purpose":"Prove AI citation, answer accuracy and AI-referral evidence from reviewed aggregate files before any GEO visibility claim.","localOnlyInputs":["AI visibility proof JSON","graded benchmark output","bot-filtered AI referral aggregate"],"commands":["npm run kpi:citation-share","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof"],"approvalGate":"approvedForAiVisibilityClaim=true with full fixed-basket benchmark coverage and reviewedAt/reviewedBy.","publicOutputAllowed":"Reviewed aggregate citation-share, answer-accuracy and AI-referral metrics only; raw model outputs and analytics rows stay local.","doneWhen":"The fixed benchmark has reviewed citation and accuracy evidence across the declared engines."},{"id":"traffic-outcome-proof","title":"Run 500k/month traffic outcome proof gate","runClass":"final-outcome-gate","purpose":"Reconcile bot-filtered analytics, GSC cohorts, AI visibility and market-share proof before any public 500k/month outcome claim.","localOnlyInputs":["reviewed traffic outcome proof JSON","bot-filtered analytics aggregate","GSC cohort aggregate"],"commands":["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","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:public-outcome-claims"],"approvalGate":"approvedForOutcomeClaim=true, reviewedAt/reviewedBy present, SEO/GEO visits meet the target and market-share proof is complete.","publicOutputAllowed":"Reviewed aggregate monthly outcome proof only; raw analytics, GSC exports, screenshots and AI transcripts stay local.","doneWhen":"Reviewed aggregate evidence proves at least 500,000 qualified monthly visits from SEO/GEO-attributable channels."}],"localCommands":["npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run audit:market-share-capture-plan","npm run audit:rendered-seo","npm run audit:seo-geo","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:market-share-summary -- surface-summary.json --json","npm run audit:content-opportunities","npm run audit:topical-authority-map","npm run audit:indexable-page-manifest","npm run audit:longtail-provenance","npm run audit:technical-seo-controls","npm run audit:data-citation","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:sources","npm run audit:thin","npm run audit:noindex","npm run audit:publisher-citation-kits","npm run audit:stale","npm run audit:freshness","npm run audit:policy-claims","npm run audit:seo-geo -- --include-liveness","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:seo-geo-dominance-gap-ledger","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:battlecard-retrieval-coverage","npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof","npm run audit:gsc-experiment-outcomes","npm run audit:serp-answer-surface-snapshots","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof","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","npm run audit:public-outcome-claims"],"sourceDatasets":["/api/public/seo-geo-measurement-run-queue","/api/public/seo-geo-dominance-gap-ledger","/api/public/battlecard-search-experiments","/api/public/serp-answer-surface-snapshots","/api/public/quarterly-market-share-summary","/api/public/market-share-capture-plan","/api/public/battlecard-retrieval-coverage","/api/public/ai-retrieval-task-index","/api/public/ai-retrieval-readiness","/api/public/visibility-metrics","/api/public/competitor-query-battlecards","/api/public/source-transparency-benchmark","/api/public/authority-distribution-plan","/api/public/expert-reviewer-entities","/api/public/salary-thresholds","/api/public/freshness","/api/public/cost-to-complete","/api/public/citation-benchmark","/api/public/content-opportunities","/api/public/answer-capsules","/api/public/citation-packs","/api/public/calculator-verdict-contexts","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors","/api/public/search-demand-actions","/api/public/execution-readiness","/api/public/traffic-forecast","/api/public/technical-seo-controls","/api/public/seo-geo-page-action-map","/api/public/seo-geo-production-queue","/api/public/indexable-pages","/api/public/search-index","/api/public/fact-changes","/api/public/monthly-figure-changes","/api/public/processing-times","/api/public/visas","/api/public/topical-authority-map","/api/public/seo-geo-audit-evidence","/api/public/ai-answer-accuracy-audit","/api/public/destinations"],"noGoBoundaries":["Do not convert salary floors into USD rankings without caveats.","Do not describe the Netherlands HSM salary requirement as an applicant fee or sunk cost.","Do not flatten France, Norway or Finland salary basis rules into an undated Europe-wide minimum.","Do not publish a salary answer without basis, effective date and source URL.","Do not route unsupported occupation pages into the sitemap.","Do not publish current market-share, ranking, traffic or AI-citation claims from this planning row alone.","Do not expose raw screenshots, private Search Console exports, long AI transcripts or reviewer notes.","Blocked until an approved redacted snapshot rollup supplies dated counts, approvedForPublication=true, reviewedAt and reviewedBy.","Do not call any route the best without visible criteria and caveats.","Do not create a ranking page from one emerging query row.","Do not publish market-share claims without approved redacted snapshot rollups.","Do not publish current market-share, ranking, traffic, AI-citation, backlink or 500k/month progress claims without approved reviewed aggregate evidence.","Do not claim rankings, traffic, AI citation share or market-share gains from this handoff without approved aggregate evidence.","This row is a Q3 2026 baseline contract, not a live rank or traffic-share claim.","Approved market-share rollups must publish counts and dates, not raw screenshots, long AI transcripts or private reviewer notes.","Competitor source-class labels must stay aligned with the source-transparency benchmark and snapshot protocol.","Do not publish rankings, traffic, backlinks, AI-citation, market-share or 500k/month progress claims without reviewed aggregate outcome proof.","Do not publish traffic, ranking, AI-citation, backlink, reviewer-trust or market-share claims from this queue alone."],"privateEvidenceBoundary":"Raw analytics, Search Console exports, SERP screenshots, AI transcripts, referrer logs, browser profiles, reviewer notes and unapproved rollups stay local unless reviewed, redacted and aggregated.","suggestedCitation":"Visa Atlas, \"Visa Atlas SEO/GEO measurement run queue: Cross-country skilled salary floor comparisons\", https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#salary-floors-cross-country. Last modified 2026-07-06."},{"id":"digital-nomad-europe-costs-measurement-run","battlecardId":"digital-nomad-europe-costs","title":"Europe digital nomad route costs and income evidence measurement run","url":"https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#digital-nomad-europe-costs","runOrder":12,"priority":"medium","measurementStatus":"external-evidence-blocked","dominanceGapStatus":"external-evidence-needed","firstRunnablePhaseIds":["public-control-check","authority-proof","gsc-experiment","serp-ai-snapshot"],"blockedBy":["approved external or aggregate SERP/AI/GSC evidence needed before public displacement claims","approved authority or market-share evidence needed before share claims"],"queryCluster":["best European digital nomad visas 2026","Portugal D8 visa cost income requirement","Spain digital nomad visa cost income requirement"],"targetPages":["/best/best-digital-nomad-visas-2026","/routes/digital-nomad-visas-europe-2026","/rankings/digital-nomad-comparison","/cost-to-complete/portugal-d8-digital-nomad","/cost-to-complete/spain-digital-nomad-visa"],"contentPiecesNeeded":["Battlecard answer shape: Route comparison matrix: income requirement, first-year cost, family uplift, tax/settlement caveat and official source link.","Route comparison matrix for European digital nomad income, cost, family and renewal requirements.","Method note explaining ranking criteria and tax or settlement caveats.","Publisher-ready citation snippet for digital nomad route costs."],"pageChangesNeeded":["Ground best-of and route pages in cost-to-complete and visa route datasets.","Link Portugal, Spain and Europe digital nomad targets back to one canonical methodology.","Prune or noindex unsupported digital-nomad long-tail pages until unique source-backed value exists.","Add or verify contextual internal link to /best/best-digital-nomad-visas-2026.","Add or verify contextual internal link to /routes/digital-nomad-visas-europe-2026.","Add or verify contextual internal link to /rankings/digital-nomad-comparison.","Add or verify contextual internal link to /cost-to-complete/portugal-d8-digital-nomad.","Add or verify contextual internal link to /cost-to-complete/spain-digital-nomad-visa."],"technicalChangesNeeded":["Run thin-page and long-tail provenance audits before indexing new digital-nomad pages.","Keep comparison rows available through public JSON before outreach.","Use repository or publisher evidence before calling this an authority-distribution win.","Keep digital-nomad best-of pages grounded in cost-to-complete and visa route datasets.","Avoid subjective ranking claims without visible criteria and caveats.","Use citation benchmark rows to test whether AI answers cite the structured comparison."],"experimentIds":["digital-nomad-europe-costs-gsc-experiment"],"snapshotProtocolIds":["digital-nomad-europe-costs-surface-snapshot"],"marketShareBaselineIds":["digital-nomad-europe-costs-market-share-baseline"],"reviewerQueueIds":[],"authorityChannelIds":["official-mcp-registry","community-mcp-directories","hugging-face-dataset","github-data-mirror","zenodo-cost-index-doi","show-hn-open-data-launch"],"requiredPrivateEvidence":["Reviewed query evidence proving demand beyond generic listicle interest.","Approved publisher or repository evidence before claiming authority gains.","SERP and AI snapshot rollup before publishing market-share movement."],"phases":[{"id":"public-control-check","title":"Confirm public retrieval controls before measurement","runClass":"run-now","purpose":"Make sure public pages, JSON endpoints, rendered SEO output and battlecard coverage still pass before private evidence is collected.","localOnlyInputs":[],"commands":["npm run audit:battlecard-retrieval-coverage","npm run audit:seo-geo-dominance-gap-ledger","npm run audit:rendered-seo","npm run audit:seo-geo"],"approvalGate":"All public-control audits pass with no asset-gap rows for this battlecard.","publicOutputAllowed":"Audit pass/fail status only; do not publish private evidence or outcome claims.","doneWhen":"The battlecard remains covered by public answer, citation, page-action, experiment and snapshot protocol surfaces."},{"id":"authority-proof","title":"Collect off-site authority and distribution evidence","runClass":"run-now","purpose":"Convert publisher, repository, widget, MCP directory and citation-kit distribution into reviewed backlink/source-preservation evidence.","localOnlyInputs":["authority distribution JSONL","publisher/repository URLs after review","source-preservation checks"],"commands":["npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof"],"approvalGate":"approved authority proof with reviewedAt/reviewedBy and canonical backlinks/source URLs preserved.","publicOutputAllowed":"Reviewed aggregate authority counts and approved public URLs only; account credentials, unpublished URLs and rejection notes stay local.","doneWhen":"6 high-priority authority channels have reviewed evidence or an explicit blocked status."},{"id":"gsc-experiment","title":"Run Search Console battlecard experiment export","runClass":"run-now","purpose":"Map private Search Console query/page rows to the battlecard experiment contract and decide title, snippet, answer-capsule or internal-link actions from reviewed aggregates.","localOnlyInputs":["Search Console CSV export","redacted property label","baseline and comparison windows"],"commands":["npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:gsc-experiment-outcomes","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Reviewed aggregate GSC experiment outcome row with scopeMatched=true and query rows redacted.","publicOutputAllowed":"Reviewed aggregate experiment decision only; raw queries, clicks, impressions, CTR and positions stay local.","doneWhen":"The battlecard has a reviewed GSC action decision or a documented no-change decision."},{"id":"serp-ai-snapshot","title":"Capture SERP and AI answer-surface snapshots","runClass":"run-now","purpose":"Collect dated Google SERP and AI answer-surface evidence for source-class pressure, Visa Atlas visibility, stale claims and citation gaps.","localOnlyInputs":["SERP/AI snapshot JSONL","browser profile metadata","AI answer captures after redaction review"],"commands":["npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run audit:serp-answer-surface-snapshots","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Snapshot rows pass local schema checks and are reviewed before any public rollup is generated.","publicOutputAllowed":"Battlecard counts, source-class counts and reviewed URLs only; raw screenshots, long AI transcripts and private browser data stay local.","doneWhen":"The battlecard has at least one reviewed Google SERP row and one reviewed AI answer row for the agreed query/locale set."},{"id":"quarterly-market-share-rollup","title":"Summarise quarterly market-share evidence","runClass":"run-after-external-evidence","purpose":"Turn reviewed SERP/AI snapshots into a redacted quarterly market-share rollup and run the local market-share proof gate.","localOnlyInputs":["reviewed surface-summary JSON","approved rollup metadata","reviewed market-share proof JSON"],"commands":["npm run seo:market-share-summary -- surface-summary.json --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:rendered-seo"],"approvalGate":"approvedForMarketShareClaim=true with complete battlecard coverage, reviewedAt and reviewedBy.","publicOutputAllowed":"Approved aggregate rollup only; no raw screenshots, answer text, snippets, query rows, browser profiles or private reviewer notes.","doneWhen":"The battlecard is covered by a complete approved quarterly rollup or explicitly disclosed as missing from a partial rollup."},{"id":"ai-visibility-proof","title":"Run AI visibility proof gate","runClass":"final-outcome-gate","purpose":"Prove AI citation, answer accuracy and AI-referral evidence from reviewed aggregate files before any GEO visibility claim.","localOnlyInputs":["AI visibility proof JSON","graded benchmark output","bot-filtered AI referral aggregate"],"commands":["npm run kpi:citation-share","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof"],"approvalGate":"approvedForAiVisibilityClaim=true with full fixed-basket benchmark coverage and reviewedAt/reviewedBy.","publicOutputAllowed":"Reviewed aggregate citation-share, answer-accuracy and AI-referral metrics only; raw model outputs and analytics rows stay local.","doneWhen":"The fixed benchmark has reviewed citation and accuracy evidence across the declared engines."},{"id":"traffic-outcome-proof","title":"Run 500k/month traffic outcome proof gate","runClass":"final-outcome-gate","purpose":"Reconcile bot-filtered analytics, GSC cohorts, AI visibility and market-share proof before any public 500k/month outcome claim.","localOnlyInputs":["reviewed traffic outcome proof JSON","bot-filtered analytics aggregate","GSC cohort aggregate"],"commands":["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","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:public-outcome-claims"],"approvalGate":"approvedForOutcomeClaim=true, reviewedAt/reviewedBy present, SEO/GEO visits meet the target and market-share proof is complete.","publicOutputAllowed":"Reviewed aggregate monthly outcome proof only; raw analytics, GSC exports, screenshots and AI transcripts stay local.","doneWhen":"Reviewed aggregate evidence proves at least 500,000 qualified monthly visits from SEO/GEO-attributable channels."}],"localCommands":["npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run audit:market-share-capture-plan","npm run audit:rendered-seo","npm run audit:seo-geo","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:market-share-summary -- surface-summary.json --json","npm run audit:content-opportunities","npm run audit:topical-authority-map","npm run audit:indexable-page-manifest","npm run audit:longtail-provenance","npm run audit:technical-seo-controls","npm run audit:data-citation","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:sources","npm run audit:thin","npm run audit:noindex","npm run audit:publisher-citation-kits","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:seo-geo-dominance-gap-ledger","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:battlecard-retrieval-coverage","npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof","npm run audit:gsc-experiment-outcomes","npm run audit:serp-answer-surface-snapshots","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof","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","npm run audit:public-outcome-claims"],"sourceDatasets":["/api/public/seo-geo-measurement-run-queue","/api/public/seo-geo-dominance-gap-ledger","/api/public/battlecard-search-experiments","/api/public/serp-answer-surface-snapshots","/api/public/quarterly-market-share-summary","/api/public/market-share-capture-plan","/api/public/battlecard-retrieval-coverage","/api/public/ai-retrieval-task-index","/api/public/ai-retrieval-readiness","/api/public/visibility-metrics","/api/public/competitor-query-battlecards","/api/public/source-transparency-benchmark","/api/public/authority-distribution-plan","/api/public/expert-reviewer-entities","/api/public/visas","/api/public/cost-to-complete","/api/public/citation-benchmark","/api/public/content-opportunities","/api/public/answer-capsules","/api/public/citation-packs","/api/public/calculator-verdict-contexts","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors","/api/public/search-demand-actions","/api/public/execution-readiness","/api/public/traffic-forecast","/api/public/technical-seo-controls","/api/public/seo-geo-page-action-map","/api/public/seo-geo-production-queue","/api/public/indexable-pages","/api/public/search-index","/api/public/destinations","/api/public/topical-authority-map","/api/public/seo-geo-audit-evidence"],"noGoBoundaries":["Do not create a page for every country-route combination without source-backed uniqueness.","Do not rank routes as best without explicit criteria.","Do not claim off-site authority before approved external evidence exists.","Do not publish current market-share, ranking, traffic or AI-citation claims from this planning row alone.","Do not expose raw screenshots, private Search Console exports, long AI transcripts or reviewer notes.","Blocked until an approved redacted snapshot rollup supplies dated counts, approvedForPublication=true, reviewedAt and reviewedBy.","Do not publish current market-share, ranking, traffic, AI-citation, backlink or 500k/month progress claims without approved reviewed aggregate evidence.","Do not claim rankings, traffic, AI citation share or market-share gains from this handoff without approved aggregate evidence.","This row is a Q3 2026 baseline contract, not a live rank or traffic-share claim.","Approved market-share rollups must publish counts and dates, not raw screenshots, long AI transcripts or private reviewer notes.","Competitor source-class labels must stay aligned with the source-transparency benchmark and snapshot protocol.","Do not publish rankings, traffic, backlinks, AI-citation, market-share or 500k/month progress claims without reviewed aggregate outcome proof.","Do not publish traffic, ranking, AI-citation, backlink, reviewer-trust or market-share claims from this queue alone."],"privateEvidenceBoundary":"Raw analytics, Search Console exports, SERP screenshots, AI transcripts, referrer logs, browser profiles, reviewer notes and unapproved rollups stay local unless reviewed, redacted and aggregated.","suggestedCitation":"Visa Atlas, \"Visa Atlas SEO/GEO measurement run queue: Europe digital nomad route costs and income evidence\", https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#digital-nomad-europe-costs. Last modified 2026-07-06."},{"id":"us-employment-petition-costs-measurement-run","battlecardId":"us-employment-petition-costs","title":"US H-1B, O-1 and TN petition costs measurement run","url":"https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#us-employment-petition-costs","runOrder":13,"priority":"high","measurementStatus":"external-evidence-blocked","dominanceGapStatus":"external-evidence-needed","firstRunnablePhaseIds":["public-control-check","authority-proof","gsc-experiment","serp-ai-snapshot"],"blockedBy":["approved external or aggregate SERP/AI/GSC evidence needed before public displacement claims","approved authority or market-share evidence needed before share claims"],"queryCluster":["H-1B petition cost 2026 USCIS fees","O-1 visa premium processing cost","TN visa cost Canadian Mexican professionals"],"targetPages":["/cost-to-complete/us-h-1b","/fees/us/h-1b","/visas/us/h-1b","/cost-to-complete/us-o-1","/fees/us/o-1","/visas/us/o-1","/cost-to-complete/us-tn","/fees/us/tn","/visas/us/tn"],"contentPiecesNeeded":["Battlecard answer shape: Cost breakdown by payer and stage, with USCIS source link, optional premium processing flag and route comparison links.","US petition cost breakdown by payer, stage and optional premium processing.","Route comparison answer separating H-1B, O-1 and TN eligibility and cost responsibilities.","Stale-claim trap for USCIS fee movement and premium processing changes."],"pageChangesNeeded":["Keep H-1B, O-1 and TN cost pages linked from route, fee and comparison surfaces.","Make employer-side versus applicant-side responsibility visible only where source-backed.","Add answer-capsule and citation-pack coverage for each US petition cost route.","Add or verify contextual internal link to /cost-to-complete/us-h-1b.","Add or verify contextual internal link to /fees/us/h-1b.","Add or verify contextual internal link to /visas/us/h-1b.","Add or verify contextual internal link to /cost-to-complete/us-o-1.","Add or verify contextual internal link to /fees/us/o-1.","Add or verify contextual internal link to /visas/us/o-1."],"technicalChangesNeeded":["Run freshness checks after any USCIS fee table movement.","Keep cost rows, fee rows and citation packs aligned to the same source facts.","Block public share claims until the quarterly market-share rollup has approved snapshots.","Keep H-1B, O-1 and TN cost pages linked from route and fee pages.","Make employer-side vs applicant-side cost responsibility visible where source-backed.","Track stale USCIS fee claims in citation-share accuracy reviews."],"experimentIds":["us-employment-petition-costs-gsc-experiment"],"snapshotProtocolIds":["us-employment-petition-costs-surface-snapshot"],"marketShareBaselineIds":["us-employment-petition-costs-market-share-baseline"],"reviewerQueueIds":["us-h1b-yml-review"],"authorityChannelIds":["official-mcp-registry","community-mcp-directories","hugging-face-dataset","github-data-mirror","zenodo-cost-index-doi","show-hn-open-data-launch"],"requiredPrivateEvidence":["Reviewed GSC rows for H-1B, O-1 and TN cost variants.","AI answer accuracy output for stale USCIS fee claims.","Approved market-share rollup before public source-class displacement claims."],"phases":[{"id":"public-control-check","title":"Confirm public retrieval controls before measurement","runClass":"run-now","purpose":"Make sure public pages, JSON endpoints, rendered SEO output and battlecard coverage still pass before private evidence is collected.","localOnlyInputs":[],"commands":["npm run audit:battlecard-retrieval-coverage","npm run audit:seo-geo-dominance-gap-ledger","npm run audit:rendered-seo","npm run audit:seo-geo"],"approvalGate":"All public-control audits pass with no asset-gap rows for this battlecard.","publicOutputAllowed":"Audit pass/fail status only; do not publish private evidence or outcome claims.","doneWhen":"The battlecard remains covered by public answer, citation, page-action, experiment and snapshot protocol surfaces."},{"id":"reviewer-proof","title":"Resolve high-risk reviewer evidence","runClass":"run-after-external-evidence","purpose":"Collect and review credentialed reviewer evidence for high-risk YMYL page targets before reviewedBy or trust claims are emitted.","localOnlyInputs":["reviewer evidence JSONL","credential verification notes","reviewed content diff notes"],"commands":["npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh"],"approvalGate":"approvedForReviewerTrustClaim=true and reviewedAt/reviewedBy are present in the reviewed aggregate proof.","publicOutputAllowed":"Only reviewed aggregate reviewer status and approved reviewedBy fragments; no private candidate notes or unapproved reviewer contact data.","doneWhen":"Reviewer queues resolved for us-h1b-yml-review."},{"id":"authority-proof","title":"Collect off-site authority and distribution evidence","runClass":"run-now","purpose":"Convert publisher, repository, widget, MCP directory and citation-kit distribution into reviewed backlink/source-preservation evidence.","localOnlyInputs":["authority distribution JSONL","publisher/repository URLs after review","source-preservation checks"],"commands":["npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof"],"approvalGate":"approved authority proof with reviewedAt/reviewedBy and canonical backlinks/source URLs preserved.","publicOutputAllowed":"Reviewed aggregate authority counts and approved public URLs only; account credentials, unpublished URLs and rejection notes stay local.","doneWhen":"6 high-priority authority channels have reviewed evidence or an explicit blocked status."},{"id":"gsc-experiment","title":"Run Search Console battlecard experiment export","runClass":"run-now","purpose":"Map private Search Console query/page rows to the battlecard experiment contract and decide title, snippet, answer-capsule or internal-link actions from reviewed aggregates.","localOnlyInputs":["Search Console CSV export","redacted property label","baseline and comparison windows"],"commands":["npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:gsc-experiment-outcomes","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Reviewed aggregate GSC experiment outcome row with scopeMatched=true and query rows redacted.","publicOutputAllowed":"Reviewed aggregate experiment decision only; raw queries, clicks, impressions, CTR and positions stay local.","doneWhen":"The battlecard has a reviewed GSC action decision or a documented no-change decision."},{"id":"serp-ai-snapshot","title":"Capture SERP and AI answer-surface snapshots","runClass":"run-now","purpose":"Collect dated Google SERP and AI answer-surface evidence for source-class pressure, Visa Atlas visibility, stale claims and citation gaps.","localOnlyInputs":["SERP/AI snapshot JSONL","browser profile metadata","AI answer captures after redaction review"],"commands":["npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run audit:serp-answer-surface-snapshots","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:rendered-seo","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency"],"approvalGate":"Snapshot rows pass local schema checks and are reviewed before any public rollup is generated.","publicOutputAllowed":"Battlecard counts, source-class counts and reviewed URLs only; raw screenshots, long AI transcripts and private browser data stay local.","doneWhen":"The battlecard has at least one reviewed Google SERP row and one reviewed AI answer row for the agreed query/locale set."},{"id":"quarterly-market-share-rollup","title":"Summarise quarterly market-share evidence","runClass":"run-after-external-evidence","purpose":"Turn reviewed SERP/AI snapshots into a redacted quarterly market-share rollup and run the local market-share proof gate.","localOnlyInputs":["reviewed surface-summary JSON","approved rollup metadata","reviewed market-share proof JSON"],"commands":["npm run seo:market-share-summary -- surface-summary.json --json","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:rendered-seo"],"approvalGate":"approvedForMarketShareClaim=true with complete battlecard coverage, reviewedAt and reviewedBy.","publicOutputAllowed":"Approved aggregate rollup only; no raw screenshots, answer text, snippets, query rows, browser profiles or private reviewer notes.","doneWhen":"The battlecard is covered by a complete approved quarterly rollup or explicitly disclosed as missing from a partial rollup."},{"id":"ai-visibility-proof","title":"Run AI visibility proof gate","runClass":"final-outcome-gate","purpose":"Prove AI citation, answer accuracy and AI-referral evidence from reviewed aggregate files before any GEO visibility claim.","localOnlyInputs":["AI visibility proof JSON","graded benchmark output","bot-filtered AI referral aggregate"],"commands":["npm run kpi:citation-share","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof"],"approvalGate":"approvedForAiVisibilityClaim=true with full fixed-basket benchmark coverage and reviewedAt/reviewedBy.","publicOutputAllowed":"Reviewed aggregate citation-share, answer-accuracy and AI-referral metrics only; raw model outputs and analytics rows stay local.","doneWhen":"The fixed benchmark has reviewed citation and accuracy evidence across the declared engines."},{"id":"traffic-outcome-proof","title":"Run 500k/month traffic outcome proof gate","runClass":"final-outcome-gate","purpose":"Reconcile bot-filtered analytics, GSC cohorts, AI visibility and market-share proof before any public 500k/month outcome claim.","localOnlyInputs":["reviewed traffic outcome proof JSON","bot-filtered analytics aggregate","GSC cohort aggregate"],"commands":["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","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:public-outcome-claims"],"approvalGate":"approvedForOutcomeClaim=true, reviewedAt/reviewedBy present, SEO/GEO visits meet the target and market-share proof is complete.","publicOutputAllowed":"Reviewed aggregate monthly outcome proof only; raw analytics, GSC exports, screenshots and AI transcripts stay local.","doneWhen":"Reviewed aggregate evidence proves at least 500,000 qualified monthly visits from SEO/GEO-attributable channels."}],"localCommands":["npm run kpi:citation-share","npm run seo:gsc-opportunities -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:answer-capsules","npm run audit:mcp","npm run audit:source-transparency","npm run audit:market-share-capture-plan","npm run audit:rendered-seo","npm run audit:seo-geo","npm run seo:surface-snapshots -- snapshots.jsonl --json","npm run seo:market-share-summary -- surface-summary.json --json","npm run audit:content-opportunities","npm run audit:topical-authority-map","npm run audit:indexable-page-manifest","npm run audit:longtail-provenance","npm run audit:technical-seo-controls","npm run audit:data-citation","npm run seo:gsc-battlecard-experiments -- gsc-queries.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=gsc-domain-redacted --search-type=web","npm run audit:sources","npm run audit:thin","npm run audit:stale","npm run audit:freshness","npm run audit:policy-claims","npm run audit:seo-geo -- --include-liveness","npm run seo:gsc-experiment-outcomes -- gsc-experiment-outcomes.jsonl --json","npm run audit:seo-geo-audit-evidence","npm run seo:market-share-proof -- market-share-proof.json --json","npm run audit:seo-geo-dominance-gap-ledger","npm run seo:traffic-outcome-proof -- traffic-outcome-proof.json --json","npm run audit:traffic-outcome-proof","npm run audit:battlecard-retrieval-coverage","npm run seo:expert-reviewers -- reviewer-evidence-log.jsonl --json","npm run export:reviewedby-schema -- reviewer-evidence-log.jsonl","npm run seo:reviewer-proof -- reviewer-trust-proof.json --json","npm run audit:reviewer-proof","npm run audit:p0-page-refresh","npm run seo:authority-distribution -- authority-distribution-log.jsonl --json","npm run seo:authority-proof -- authority-proof.json --json","npm run audit:authority-distribution","npm run audit:authority-proof","npm run audit:gsc-experiment-outcomes","npm run audit:serp-answer-surface-snapshots","npm run audit:quarterly-market-share-summary","npm run audit:market-share-proof","npm run kpi:citation-accuracy","npm run seo:ai-referrals -- analytics-referrers.csv --json --period-start=YYYY-MM-DD --period-end=YYYY-MM-DD --property-label=ga4-redacted --bot-filtered","npm run seo:ai-visibility-proof -- ai-visibility-proof.json --json","npm run audit:ai-visibility-proof","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","npm run audit:public-outcome-claims"],"sourceDatasets":["/api/public/seo-geo-measurement-run-queue","/api/public/seo-geo-dominance-gap-ledger","/api/public/battlecard-search-experiments","/api/public/serp-answer-surface-snapshots","/api/public/quarterly-market-share-summary","/api/public/market-share-capture-plan","/api/public/battlecard-retrieval-coverage","/api/public/ai-retrieval-task-index","/api/public/ai-retrieval-readiness","/api/public/visibility-metrics","/api/public/competitor-query-battlecards","/api/public/source-transparency-benchmark","/api/public/authority-distribution-plan","/api/public/expert-reviewer-entities","/api/public/cost-to-complete","/api/public/fees","/api/public/citation-benchmark","/api/public/content-opportunities","/api/public/answer-capsules","/api/public/citation-packs","/api/public/calculator-verdict-contexts","/api/public/publisher-citation-kits","/api/public/external-repository-mirrors","/api/public/search-demand-actions","/api/public/execution-readiness","/api/public/traffic-forecast","/api/public/technical-seo-controls","/api/public/seo-geo-page-action-map","/api/public/seo-geo-production-queue","/api/public/indexable-pages","/api/public/search-index","/api/public/topical-authority-map","/api/public/seo-geo-audit-evidence","/api/public/freshness","/api/public/fact-changes","/api/public/ai-answer-accuracy-audit","/api/public/visas","/api/public/destinations"],"noGoBoundaries":["Do not merge employer-side and applicant-side fees without payer context.","Do not publish stale USCIS fee or premium-processing claims.","Do not claim US query market share without approved snapshot evidence.","Do not publish current market-share, ranking, traffic or AI-citation claims from this planning row alone.","Do not expose raw screenshots, private Search Console exports, long AI transcripts or reviewer notes.","Blocked until an approved redacted snapshot rollup supplies dated counts, approvedForPublication=true, reviewedAt and reviewedBy.","Do not publish current market-share, ranking, traffic, AI-citation, backlink or 500k/month progress claims without approved reviewed aggregate evidence.","Do not claim rankings, traffic, AI citation share or market-share gains from this handoff without approved aggregate evidence.","This row is a Q3 2026 baseline contract, not a live rank or traffic-share claim.","Approved market-share rollups must publish counts and dates, not raw screenshots, long AI transcripts or private reviewer notes.","Competitor source-class labels must stay aligned with the source-transparency benchmark and snapshot protocol.","Do not publish rankings, traffic, backlinks, AI-citation, market-share or 500k/month progress claims without reviewed aggregate outcome proof.","Do not publish traffic, ranking, AI-citation, backlink, reviewer-trust or market-share claims from this queue alone."],"privateEvidenceBoundary":"Raw analytics, Search Console exports, SERP screenshots, AI transcripts, referrer logs, browser profiles, reviewer notes and unapproved rollups stay local unless reviewed, redacted and aggregated.","suggestedCitation":"Visa Atlas, \"Visa Atlas SEO/GEO measurement run queue: US H-1B, O-1 and TN petition costs\", https://visaatlas.org/research/seo-geo-measurement-run-queue-2026#us-employment-petition-costs. Last modified 2026-07-06."}]}