SEO Performance Brief

Turn five synthetic SEO CSVs into a connected path from report scope and search performance to conversions, opportunity scores, and owned actions—then publish it as a public read-only dashboard.

5 tables45 synthetic rows4 dashboard views
See how it was built
Real workflow

From five CSVs to one owned priority action

The agent does more than upload files. It connects search evidence, page outcomes, opportunity judgment, and execution planning in a reusable reporting model.

From five CSVs to one owned priority action

I have five CSV files for an SEO client report. Please upload them to GoalfyData and create a new dataset named SEO-Template.

The files contain synthetic sample data only:

  1. 01_report_setup.csv
  2. 02_executive_summary.csv
  3. 03_queries_and_pages.csv
  4. 04_conversions_and_opportunities.csv
  5. 05_action_backlog.csv

I want the dataset to be reusable for reporting, dashboard examples, and future Agent analysis.

I checked the five files. They form one connected SEO reporting workflow rather than five unrelated spreadsheets:

report scope → executive metrics → queries and pages → opportunities → actions

I recommend creating one dataset with five tables:

TableRowsPurposePrimary key
seo_template_report_setup1Defines the site, reporting period, comparison period, timezone, currency, and data statusreport_id
seo_template_executive_summary8Stores current and previous KPI values with changes and interpretationreport_id + metric_id
seo_template_queries_and_pages18Stores query and landing-page clicks, impressions, CTR, and average positionreport_id + query_id
seo_template_conversions_and_opportunities10Stores page-level organic sessions, conversions, evidence, and opportunity scoresreport_id + opportunity_id
seo_template_action_backlog8Stores prioritized actions, owners, deadlines, baselines, targets, and review resultsreport_id + action_id

The tables will share stable identifiers:

  • report_id connects every record to the same reporting period.
  • query_id and page_id connect search performance to a target page.
  • opportunity_id connects an evidence-backed opportunity to its action.

I will also preserve these rules:

  • CTR equals clicks divided by impressions.
  • Conversion rate equals conversions divided by organic sessions.
  • A lower average position is better.
  • Opportunity scores run from 0 to 100; higher means earlier evaluation.
  • Every row must remain marked as synthetic sample data.
  • GSC query data and GA4 page outcomes remain separate where the source dimensions cannot be safely joined row by row.

Please confirm that I should create this five-table structure and import all five files.


Confirmed. Create the dataset and upload all five files.

Done. I created the dataset and imported all five files.

Dataset
Name: SEO-Template
Source: five manually imported CSV files
Data: fully synthetic
Update mode: full replacement
Validation: all five tables imported successfully

Dataset structure

  • SEO Report Setup — report scope and data readiness
  • SEO Executive Summary — current-versus-previous KPI summary
  • SEO Queries and Pages — GSC-style search demand and landing-page performance
  • SEO Conversions and Opportunities — GA4-style page outcomes and prioritized opportunities
  • SEO Action Backlog — owners, due dates, status, baselines, targets, and review fields

The reusable analysis path is now:

report_id → page/query evidence → opportunity_id → action_id

This means another Agent can inspect the same governed structure later without reopening and reinterpreting five separate CSV files.


Create a clean English dashboard from this dataset. Use a light-blue theme, keep it read-only, and make it suitable for an article example.

I also want the production version to refresh every morning at 09:00.

I will create a public, read-only data app with four views:

  1. Overview — the reporting narrative and headline KPIs
  2. Search performance — leading queries and landing pages
  3. Opportunities — evidence and opportunity scores
  4. Action plan — priority, owner, due date, status, and review metric

For the daily 09:00 refresh, GoalfyData needs a reproducible source script and the required source credentials. The production flow will be:

GSC and GA4 source extraction → refresh the five dataset tables → dashboard reads the latest dataset state

The refresh should use the report timezone and run only after the upstream reporting period is ready. It should not imply that GSC query rows are directly attributed to GA4 conversions.

For this public demo, I will keep the synthetic CSV import and the scheduling example clearly labeled so readers do not mistake it for live customer data.


Proceed and publish the dashboard for public access.

Published. The dashboard is online and available through a public, read-only link:

Open the SEO Performance Brief

The dashboard presents the same five-table reporting model through four reader-friendly views:

  • Overview: 16,905 organic clicks, 444,000 impressions, 3.81% CTR, and 587 organic conversions
  • Search performance: current-versus-previous clicks for leading queries
  • Opportunities: scored recommendations linked to page-level evidence
  • Action plan: owners, deadlines, statuses, baselines, and targets

All visible content is in English, and the report is identified as synthetic sample data.

For a real production deployment, the 09:00 Managed Refresh must be enabled only after the source script and credentials are connected and one test refresh succeeds. The public demo itself remains based on manually imported synthetic data.


Analyze the dashboard. What is the highest-priority problem, and what should the team do first?

The highest-priority item is the SEO report template page:

/templates/seo-report

It is recorded as opportunity O002 with an opportunity score of 91, the highest score in the dataset.

Why it ranks first

The page is not the worst-performing page. It is the clearest near-term leverage point because search demand and on-site outcomes are both improving, while the current presentation may still be limiting downloads.

Search evidence for seo report template

MetricPrevious periodCurrent periodChange
Clicks1,9002,500+31.58%
Impressions47,50050,000+5.26%
CTR4.00%5.00%+1.00 percentage point
Average position8.17.2Improved by 0.9 positions

Page outcome evidence

MetricPrevious periodCurrent periodChange
Organic sessions3,5004,100+17.14%
Template downloads160205+28.13%
Conversion rate4.57%5.00%+0.43 percentage points

Recommended first action

Move the template preview and download CTA above the fold, and explain the five included sheets before asking the reader to continue through the article.

The corresponding action is already recorded as A001:

  • Priority: High
  • Owner: Growth PM
  • Status: In progress
  • Review metric: template_download_rate
  • Baseline: 5.00%
  • Planning target: 6.00%

The 6.00% value is a test target, not a forecast or completed result. The team should review the actual download rate after the change and compare it with the 5.00% baseline before deciding whether the layout caused an improvement.

Why this should come before the other high-priority items

  • O009 scores 88 but requires a broader content refresh to recover ranking.
  • O006 scores 86 and targets CTR improvement on the GSC integration page.
  • O002 scores 91 and already combines rising demand, improving rankings, growing sessions, and a measurable conversion action.

The practical conclusion is:

Do not start by rebuilding the entire SEO report. Start by making the existing template and download action easier to understand and reach, then measure the result.


Can I reuse this workflow with my own SEO data?

Yes. Keep the five-table structure and replace the synthetic rows with your own approved exports or source scripts:

  1. Define the reporting period in report_setup.
  2. Load executive metrics into executive_summary.
  3. Load GSC query and page data into queries_and_pages.
  4. Load page-level GA4 outcomes and documented opportunities into conversions_and_opportunities.
  5. Turn approved opportunities into owned actions in action_backlog.

Then connect a daily refresh only when the source extraction, credentials, timezone, and replacement logic have been tested. The dashboard will continue reading from the governed dataset, so the public or internal app does not need to be rebuilt for every reporting period.


Governed data asset

Let evidence flow into an action backlog

report_id anchors the reporting period, query_id and page_id connect search to pages, and opportunity_id hands evidence to an accountable owner.

DatasetSEO-Template
Ready

Review core tables, grain, and keys. Hover over another tab to switch views.

seo_template_report_setupScope, period, timezone, currency and data status
1 row · primary key: report_id
seo_template_queries_and_pagesClicks, impressions, CTR and average position
18 rows · report_id + query_id
seo_template_action_backlogPriority, owner, due date, baseline and target
8 rows · report_id + action_id
Generated app

Open the live SEO Performance Brief

The public app uses synthetic data to show search performance, opportunity scores, and an action plan. This is the current public read-only version.

Take the result with you

Add “SEO Performance Brief” to your account

Enter your email and we’ll send invitations for this dataset and app. Opening an email verifies your address; a new account is created automatically, or you’re signed in to an existing one.

Accepting the dataset uses 1 dataset slot. Your existing account limit still applies.