← Back to Journal
6 March 2026
CSV Data Claude Code Client Reporting Supermetrics Guides

Using CSV Exports for Client Reporting in Claude Code

Spreadsheet tabs flowing into a Claude Code project folder with CSV files and a performance report

🎙️ Listen to this article

Using CSV Exports for Client Reporting in Claude Code

What this guide covers: The complete workflow for downloading CSV data from client spreadsheets, organising it in a Claude Code project, and prompting your agent to build performance reports.

Estimated time: 10 minutes to read, same session to get your first report

Prerequisites: Claude Code set up and running (see: How to Install and Set Up Claude Code on Your Mac). A client data spreadsheet with exportable tabs — the Google Sheets that Supermetrics populates with channel data.


Why CSVs, Not MCPs (Yet)

MCPs are the endgame. Live connections to Google Ads, Meta, Shopify — no exports, no downloads, just live data piped straight into your agent. We’re building towards that.

But the data already exists. Every client has a Google Sheet updated monthly by Supermetrics, with tabs for each channel. You don’t need live connections to get value from that data. A CSV export and a clear prompt gets you 80% of the way there today. The spreadsheets are already current. The MCPs can wait until they’re properly configured. This workflow works right now.


What You Need

Before you start, make sure you have:

One thing to know upfront: each tab in the spreadsheet becomes one CSV export. Google Sheets doesn’t export the whole workbook as CSVs — you download each tab individually.


Step 1 — Download Your Data

Open the client’s data spreadsheet in Google Sheets. Navigate to the first tab you need — Google Ads, Meta Ads, Shopify, whatever channels are active.

For each tab:

  1. Click the tab to make it active
  2. Go to File → Download → Comma-separated values (.csv)
  3. The file downloads to your Downloads folder

Do this for every tab you need. One CSV per channel.

Rename immediately. The default filename is the tab name, which might be something useful like “Google Ads” or something useless like “Sheet3”. Rename each file to include the channel and time period:

Not Sheet1.csv. Not Download (3).csv. Not Copy of Google Ads.csv.

The filename is the first thing Claude sees when it scans the data folder. A clear filename means Claude immediately knows what it’s looking at. A messy filename means it has to guess — and guessing wastes time and sometimes gets it wrong.


Step 2 — Set Up Your Project Folder

If you already have a Claude Code project for this client, skip to the next step. If not, create one.

Create a /data folder inside your project and drop all the CSVs into it:

client-reporting/
├── CLAUDE.md
└── data/
    ├── google-ads-monthly-2026-03.csv
    ├── meta-ads-monthly-2026-03.csv
    ├── shopify-monthly-2026-03.csv
    └── email-monthly-2026-03.csv

That’s the minimum structure. CLAUDE.md at the root, data in /data.

If you’re tracking multiple months (which you should be, once this becomes routine), use month subfolders:

client-reporting/
├── CLAUDE.md
└── data/
    ├── 2026-03/
    │   ├── google-ads-monthly-2026-03.csv
    │   ├── meta-ads-monthly-2026-03.csv
    │   └── shopify-monthly-2026-03.csv
    └── 2026-02/
        ├── google-ads-monthly-2026-02.csv
        ├── meta-ads-monthly-2026-02.csv
        └── shopify-monthly-2026-02.csv

This gives Claude the ability to compare months automatically. It can see February and March side by side and calculate trends without you having to explain the time periods.


Step 3 — Brief Your Agent

Your CLAUDE.md file is the agent’s briefing. For a reporting project, it needs to know three things: what data exists, what to do with it, and what standards to follow.

Here’s a real example:

# Monthly Client Reporting Agent

You are a reporting agent for client monthly performance reviews.

## What You Do
- Analyse channel performance data from CSV exports
- Identify trends, anomalies, and key changes month-over-month
- Build visual reports with clear data tables and commentary
- Flag anything that needs strategic attention

## Data Sources
- CSV exports in /data folder (one file per channel per month)
- Files are named: channel-type-YYYY-MM.csv
- Each file contains one channel’s performance data exported from Google Sheets

## Standards
- Use Australian English
- Always cite which CSV file a number comes from
- Include date ranges in every section header
- If data looks wrong or incomplete, flag it — don’t guess
- Round percentages to one decimal place
- Format currency with dollar signs and commas

The key lines: tell Claude where the data lives, what the naming convention is, and what to do when something looks off. That last point — “flag it, don’t guess” — catches more issues than you’d expect. CSVs from Supermetrics sometimes have blank rows, shifted columns, or date format inconsistencies. You want Claude to tell you about those, not silently work around them.


Step 4 — Prompt for Your Report

Open the project in Claude Code. Before you ask for the full report, run a data review prompt first. This is the step most people skip, and it’s the one that saves the most time.

Start with a data review:

“Review all the CSV files in /data. Summarise what data we have, what date ranges it covers, and flag anything that looks incomplete or unusual.”

Claude will scan every file, show you what’s in each one, and catch problems before they compound. Maybe the Google Ads export only has data through the 28th. Maybe the Shopify export has an extra header row. Maybe one file is semicolon-delimited instead of comma-delimited. You want to know this now, not after you’ve built a report on bad data.

Then prompt for analysis:

“Using the data in /data, build a monthly performance summary. Compare this month to last month where data is available. Focus on spend, revenue, ROAS, and conversion trends by channel.”

Go deeper on specific channels:

“The Google Ads data has campaign-level rows. Group by campaign type and show which campaigns are improving vs declining.”

“Break the Meta data down by campaign objective. Which objectives are driving the best cost per acquisition?”

Key teaching: describe the output you want, not the method. Don’t tell Claude how to parse a CSV — it knows. Tell it what the report should look like and what metrics matter.


Step 5 — Review and Refine

Claude will write a parsing script, run it, and produce analysis. This usually takes 30 seconds to a couple of minutes depending on the data volume.

Check the numbers against your spreadsheet. Pick two or three data points from the report and verify them against the source. This isn’t about distrust — it’s about catching edge cases. Maybe Claude summed a column that had subtotal rows in it. Maybe it included a row that was actually a header.

Then iterate:

Once you’re happy with the analysis, ask Claude to produce the final format. An HTML report, a markdown summary, a set of tables you can paste into a deck — whatever fits your workflow.


Common Mistakes

Messy filenames. Sheet1.csv tells Claude nothing. google-ads-monthly-2026-03.csv tells it everything. Rename before you drop files in.

Asking too many things at once. “Analyse all channels, compare to last year, break down by campaign, and build a branded report” is four requests in one. Start with one channel or one question. Build up. Each prompt can build on the last because Claude remembers the context within the session.

Not checking the data first. The data review prompt takes 30 seconds and catches date range issues, empty columns, encoding problems, and malformed rows. Skipping it means you might build a report on incomplete data and not notice until a client meeting.

Naming convention confusion. If your CSV has campaign names with complex naming conventions — something like AU_Prospecting_StickyBath_Video_25-34 — tell Claude the naming convention structure in your prompt or CLAUDE.md. “Campaign names follow the format: Region_Funnel-Stage_Brand_Creative-Type_Age-Range.” Without that, Claude has to infer the structure, and it might split the name at the wrong underscore.

Stale data. The spreadsheets update monthly via Supermetrics. Make sure you’re downloading the current month’s data, not last month’s cached file. Check the date range in the spreadsheet before exporting.


Where This Goes Next

This CSV workflow is the starting point. Three natural progressions from here:

  1. MCP connections — pull data directly from Google Ads, Meta, Shopify without downloading anything. The Google Ads MCP guide covers the first step. Once MCPs are configured, your agent reads live data instead of exports.
  2. Database layer — load CSVs into Supabase or another database for persistent, queryable data. Instead of flat files, you get structured tables that Claude can query with SQL. Useful when you’re comparing more than two or three months.
  3. Automated reports — once your CLAUDE.md and prompts are dialled in, the same folder produces next month’s report with fresh CSVs. Download, drop, prompt. The structure’s already built. The standards are already defined. You’re just updating the data.

The CSV approach isn’t a workaround. It’s the foundation that everything else builds on. Even with MCPs and databases, you’ll still export CSVs for one-off analyses, client-specific data pulls, and channels that don’t have MCP support yet.


Quick Reference

Step What to Do Key Detail
Download Export each tab as CSV One file per channel per month
Name Rename with channel-type-date google-ads-monthly-2026-03.csv
Organise Drop into /data folder Keep structure flat or use month subfolders
Brief Update CLAUDE.md with data inventory List what’s in /data and what each file contains
Review Prompt Claude to summarise the data first Catches issues before analysis
Analyse Prompt for the specific report you need Describe the output, not the method
Verify Check numbers against the source spreadsheet Trust but verify
Ben Fitzpatrick

Ben Fitzpatrick

Chief Strategy Officer at Webprofits

3+ years of hands-on AI implementation across 40+ client accounts. Building agents, training teams, and navigating AI transformation daily — not advising from the sidelines. 150+ professionals trained, from first prompt to autonomous agents.

Follow on LinkedIn
Webprofits Academy

The systems behind these insights

Frameworks, AI execution playbooks, and weekly coaching from the team scaling 40+ ecommerce brands. Same systems. Applied to your business.

Founding member pricing — save 50% for life
Join Webprofits Academy →