CSV Export Schema
Column-level reference for every CSV export produced by SurfacedBy.
This page documents the column names and meanings for each CSV export. Columns are stable within v1: new optional columns may be appended, but existing columns will not be renamed or reordered.
Every export filename follows the shape surfacedby-{workspace_slug}-{section}-{domain}-{YYYY-MM-DD}.csv so a downloaded file is self-describing when you belong to multiple workspaces.
Cited URLs
One row per URL cited in the active analytics window.
| Column | Type | Meaning |
|---|---|---|
URL | string | Full URL of the cited page. |
Page Type | string | Page-type classifier (article, product, category, other). |
Current Citations | integer | Citations in the active window. |
Lifetime Citations | integer | Citations since the domain was first scanned, or N/A. |
Citation Rate | string | Percentage of prompts that cited this URL, e.g. 12.5%. |
Trend | string | up, down, flat, or N/A. |
Platforms | string | Pipe-separated list of platforms that cited the URL (for example `chatgpt |
Opportunity Score | integer | Internal 0 to 100 score; higher means a bigger lift if the URL is improved. |
Cited Prompts | integer | Number of tracked prompts where this URL was cited. |
Missed Prompts | integer | Number of tracked prompts where a competitor URL was cited instead. |
Co-Mentioned Brands | string | Pipe-separated domain(count) pairs. |
Health Status | string | green, yellow, red, or N/A. |
Content Score | integer | Content Checker score (0 to 100), or N/A. |
First Cited | ISO 8601 | First scan in which the URL was cited. |
Last Cited | ISO 8601 | Most recent scan in which the URL was cited. |
Sparkline Scope Coverage | string | Per-day measurement scope breakdown for the row's trend, e.g. FB:5 DM:2. |
The per-platform citation columns are derived from the platform registry. When a new platform ships (for example Grok or DeepSeek), it appears in the Platforms cell automatically; existing columns stay in place.
Tracked prompts
One row per (prompt, platform) tuple that was actually tested in this scan. Prompts the scanner did not ask, and platforms that did not run for a prompt, do not appear. The Engine State column disambiguates the rows that are present.
| Column | Type | Meaning |
|---|---|---|
Prompt | string | The prompt as it was sent to AI platforms. |
Country | string | ISO 3166-1 alpha-2 country code the prompt was scoped to. |
Platform | string | Display name of the AI platform (for example ChatGPT). |
Geo Confidence | string | strong, medium, or weak. |
Engine State | string | cited if the platform cited you, not surfaced if it did not. |
Position | string | Citation Rank in the response, prefixed with #, or N/A. |
Citation URL | string | URL the platform cited, or N/A. |
Engine Coverage % | string | Share of asked platforms that cited the brand for this prompt. |
Status | string | Tracked prompt status (active, paused, etc.). |
Priority Score | integer | Risk and value-weighted score used to rank prompts. |
Priority Level | string | High, Medium, or Low. |
Relevance | string | High, Medium, Low, or N/A. |
Historical Citation Rate | string | Trailing brand-coverage percentage for the prompt. |
Pinned | string | Yes if you pinned the prompt to your core set. |
CPC (USD) | string | Cost per click on this prompt, where known. |
ETV (USD) | string | Estimated traffic value. |
Monthly Value (USD) | string | Combined monthly value of the prompt. |
Sentiment Score | integer | 0 to 100, where higher is more positive. |
Sentiment Label | string | positive, neutral, negative. |
Measurement Scope | string | Daily Monitoring or Full Benchmark. See below. |
Competitors
One row per competitor in your tracked set.
| Column | Type | Meaning |
|---|---|---|
Competitor Domain | string | Root domain of the competitor. |
Display Name | string | Human-readable name, or the domain when no override is set. |
Market Position | string | Market Position, prefixed with # (for example #3), or N/A. |
Market Position Change | string | Position change versus the previous comparable scan, or N/A. |
Visibility (Position Strength) | integer | 0 to 100 strength score, or N/A. |
Trend | string | up, down, flat, or N/A. |
AI Mentions | integer | Total mentions across all platforms in the scan. |
Mentions Change | string | Delta versus the previous comparable scan. |
SoV (%) | float | Share of Voice across your tracked set. |
SoV Change | string | Delta versus the previous comparable scan. |
Coverage (%) | float | Brand Coverage for the competitor. |
{Platform} Citations | integer | One column per platform in the registry. |
Source | string | Discovery source label (for example Auto-discovered, Manual). |
Measurement Scope | string | Daily Monitoring or Full Benchmark. |
Measurement scope
Most analytics exports carry a Measurement Scope column. The two values that ship are:
Daily Monitoring: a focused daily check that picks up recent movement quickly.Full Benchmark: the complete tracked prompt and platform set used for rank, official reports, and durable competitor comparisons.
The backend stores the raw internal scan_type (pulse, paid_initial, paid_scheduled, console_on_demand, free_audit) on every scan. pulse maps to Daily Monitoring; all other values map to Full Benchmark. The export emits the public scope label so a spreadsheet filter matches the dashboard chip.
Plans
One row per action item across every plan on a domain.
| Column | Type | Meaning |
|---|---|---|
Title | string | Action item title. |
Plan | string | Plan title the item belongs to. |
Section | string | Public section label (for example Content, Technical). |
Priority | string | Public impact label. |
Effort | string | Effort label. |
Effort Hours | integer | Estimated effort in hours, when set. |
Status | string | Public status label. |
Source | string | Where the item came from (opportunity, manual, plan template). |
Source Scope | string | Daily Monitoring, Full Benchmark, or empty for manual items. |
Owner | string | Owner email. |
Country | string | Country code from the originating evidence. |
Step Progress | string | {checked}/{total} recommended-step progress. |
Due Date | string | ISO date or empty. |
Notes | string | Free-form notes. |
Started | string | ISO 8601 timestamp or empty. |
Completed | string | ISO 8601 timestamp or empty. |
Reason | string | Reason for the item (used by Citation gap and Improve rank items). |
AI response feed
One row per AI response captured for a domain.
| Column | Type | Meaning |
|---|---|---|
Platform | string | Display name of the AI platform. |
Query | string | The prompt sent to the platform. |
Country | string | ISO country code. |
Geo confidence | string | strong, medium, weak. |
Cited | string | Yes if the platform cited your domain. |
Position | string | Citation Rank prefixed with #, or empty. |
Sentiment | string | Sentiment label. |
Score | integer | Sentiment score (0 to 100). |
Tone | string | Sentiment tone descriptor. |
Hedging | string | Hedged if the model hedged its answer. |
Answer Preview | string | First 200 characters of the answer. |
Sources | integer | Number of source URLs the platform attached. |
Top co-mention | string | Top co-mentioned competitor domain. |
Competitors Mentioned | string | Comma-separated list of competitor domains in the answer. |
Measurement Scope | string | Daily Monitoring or Full Benchmark. |
Date | ISO 8601 | When the response was captured. |
Encoding
All exports are UTF-8 with a BOM so Excel opens them correctly. Field values containing commas, quotes, or newlines are quoted per RFC 4180. Values that begin with =, +, -, @, tab, or carriage return are prefixed with a single quote to defuse CSV-formula injection in spreadsheet apps.