MeasureAugust 27, 20268 min read

How to Analyze Your Newsletter Data With an AI Agent

Five prompts that turn ChatGPT or Claude into a newsletter analyst, what to export from beehiiv or Kit first, and the four questions an AI cannot answer no matter how you word them.

You can turn ChatGPT or Claude into a competent newsletter analyst in about fifteen minutes. Export your sends, upload the file, and ask better questions than "how am I doing."

The setup is the easy part. The part worth your attention is knowing which questions the data can answer and which ones it will cheerfully answer wrong.

The short answer

  • Export send-level data, not subscriber-level data. Aggregates answer these questions and carry no personal information.
  • Add a topic column yourself. It is the most useful dimension in the analysis and no platform records it.
  • Anchor on your own median, not published benchmarks, which describe other people's lists.
  • Demand a split between observation and inference, or the model will hand you one confident paragraph containing both.

Step one: get the data out

Both major platforms export what you need.

In beehiiv, post analytics cover opens, clicks, and engagement per edition, with CSV export available. In Kit, broadcast reports carry the same shape, with per-broadcast performance and link click data.

The file you want has one row per send and these columns:

Column Why it matters
Subject line The variable with the most room to move
Send date and time Lets you check day and hour patterns against your own history
Recipients delivered Your denominator, and the one most people get wrong
Unique opens Useful with heavy caveats, see below
Unique clicks The signal that required a human decision
Unsubscribes The cost side of every send, usually ignored

Do not export your subscriber list. A subscriber-level file contains email addresses belonging to people who trusted you with them, and a general purpose chat tool is not where that belongs. Every question in this post is answerable from aggregates.

Step two: add the column your platform is missing

Neither beehiiv nor Kit knows what your newsletter was about. They record that edition 47 went out Tuesday and got a 38% open rate. They have no idea it was a teardown of a pricing page.

Topic is the dimension you actually want to compare on, and adding it takes ten minutes. Two extra columns:

  • Topic: the subject matter, in your own words
  • Format: essay, tutorial, roundup, interview, offer, personal

This single addition is the difference between "your Tuesday sends do slightly better" and "your teardowns outperform your roundups by a wide margin, and you have published four teardowns this year."

The second finding changes what you write next week. The first one does not change anything.

Step three: the five prompts

Each of these is written to be pasted after uploading your CSV.

1. Establish the baseline

This CSV is my newsletter send history. Before analyzing anything:

1. Confirm how many sends are in the file and the date range covered.
2. Calculate my MEDIAN open rate and MEDIAN click rate across the
   last 20 sends. Use median, not mean.
3. Flag any rows with missing or obviously broken data.

Do not compare me to industry benchmarks at any point in this
session. My own median is the only baseline. Report the three
numbers and stop.

Ending with "and stop" matters more than it looks. Without it you get a baseline plus four paragraphs of unrequested advice built on assumptions you have not agreed to yet.

2. Find the outliers

Using the median click rate you just calculated, list:

- Every send that beat the median click rate by 50% or more
- Every send that came in at half the median or worse

Show subject line, date, topic, and click rate for each. Sort by
click rate descending. Do not explain the results yet.

Facts first, story second. Reversing that order lets the model form a narrative and then select evidence for it, which is the failure mode that makes AI analysis feel insightful and be wrong.

3. Compare topics

Group my sends by the Topic and Format columns. For each group
with at least 3 sends, show: number of sends, median open rate,
median click rate, median unsubscribes.

Sort by median click rate. Then name which groups have too few
sends to draw any conclusion from.

That last instruction is the important one. A model will happily rank a topic on a single data point. Asking it to name its own weak samples surfaces the difference between a pattern and a coincidence.

4. Read the subject lines

Look only at the top 10 and bottom 10 sends by click rate.

Describe concrete structural differences in the subject lines:
length, question vs statement, specificity, numbers, personal
pronouns, curiosity gap.

Only report a pattern if it holds across most of the group. If
the two groups look structurally similar, say so plainly.

The explicit permission to find nothing is doing real work. Asked to find patterns, a language model finds patterns, whether or not they exist.

5. Separate fact from guess

Summarize what you have found in exactly two labeled sections:

OBSERVED: statements true by arithmetic from this file alone.

INFERRED: your interpretations, each with a confidence level and
the specific additional data that would confirm or refute it.

Nothing causal belongs in OBSERVED. If you cannot support a claim
from the columns present, it goes in INFERRED or gets cut.

This is the prompt worth keeping. It is the one that makes AI analysis trustworthy, because it forces the model to mark its own boundary rather than blending both sides into fluent prose.

What this cannot tell you

Four questions survive every prompt you can write.

Why anyone subscribed. The export records that 43 people joined that week. It does not record what convinced them, and that reason lives in the post that sent them, not in your newsletter data.

Why anyone left. Unsubscribes appear as counts attached to an edition. Whether they left because of that edition or finally acted on a decision made two months earlier is not in the file.

Which edition drove a sale. Asked to connect a revenue spike to a send, a model will produce a clean causal story with reasoning that sounds sound. It is reading two timelines that happen to overlap. We covered why that inference is structurally unavailable in tracking newsletter subscribers who purchase.

Whether opens mean anything. Apple Mail Privacy Protection pre-fetches images and registers opens no human performed. Kit's own guidance tells creators to judge on clicks and replies for this reason. Any conclusion built on your open column carries that noise, and an AI will not warn you about it unless you do.

A model asked to explain a number will explain it. That is the behavior, and it does not switch off when the evidence runs out.

On MCP and live connections

A growing number of tools now expose newsletter data to AI assistants through MCP, so the assistant queries your platform directly instead of waiting for a CSV.

It is a real convenience for repeat analysis. It also changes nothing about what your data can prove. A live connection to a send-level dataset produces the same class of answers as an uploaded export of the same dataset, plus the same causal overreach when you ask why.

Judge these connections on whether they widen the evidence, not on whether they remove a step. An assistant that can see your publishing history, your subscriber sources, and your offer activity together can answer questions that no newsletter-only connection can reach, regardless of how it connects.

The version that runs continuously

Everything above is a manual loop: export, tag, upload, prompt, verify. It works, and it is worth doing at least once because it teaches you what your data does and does not contain.

Its limit is that it starts over each time. Your tags live in a file you maintain, the model has no memory of last quarter's conclusions, and the analysis stops at the edge of your newsletter platform because that is the only export you gave it.

The questions that matter to a newsletter-run business tend to cross that edge. Which posts send subscribers who stay. Whether the readers clicking your offer links are the same cohort that arrived from a particular channel. What your list did the week a piece of content did unusually well.

Those need publishing, newsletter, and offer evidence sitting together, which is why reviewing your provider data side by side is a different exercise than analyzing one export. Chief works from that connected evidence and is built to explain what it can see without dressing partial data as a complete picture, which is the same discipline the fifth prompt above is trying to impose by hand.

Start with the manual loop. It is free, it takes an afternoon, and it will teach you exactly which questions your current setup cannot answer.

newsletter analyticsai for newsletterschatgpt data analysisbeehiiv exportentrepreneur
Share

What this cannot tell you

  • An AI reading your export can only see what you exported, so gaps in the file are invisible rather than flagged.
  • Language models produce confident causal explanations from correlational data, and the fluency of the answer is unrelated to whether it is supported.
  • Open-rate columns carry machine-generated activity from privacy features, so any analysis resting on opens inherits that noise.
  • Arithmetic and grouping errors on uploaded spreadsheets are common enough that at least one figure per session should be verified by hand.
  • Nothing in an export records why a reader subscribed, stayed, left, or bought.

Questions

Can ChatGPT or Claude analyze my newsletter data?

Yes, if you give it structured data. Export your sends as CSV from beehiiv or Kit, upload the file, and ask specific comparative questions. Both handle spreadsheet analysis well. What neither can do is see inside your newsletter platform on its own, so the export step is not optional and the quality of your answer is capped by the quality of what you upload.

What should I export before I start?

At minimum: one row per send with subject line, send date, recipients, unique opens, unique clicks, and unsubscribes. If your platform exports link-level clicks, take those too. Add a column for the topic or format of each edition, because that is the dimension you will actually want to compare on and no platform records it for you.

Is it safe to upload subscriber data to an AI tool?

Upload aggregates, not people. A send-level export with counts carries no personal data and is safe to share. A subscriber-level export with email addresses is personal data belonging to people who trusted you with it, and it should not go into a general purpose chat tool. Strip identifying columns before uploading anything.

Will an AI tell me which newsletter caused a sale?

No, and be suspicious when one does. An AI reading your export sees the order events occurred, not why anyone bought. Asked to explain a revenue spike, a language model will produce a fluent causal story from correlation because that is what the request rewards. The reasoning will sound sound and the conclusion will be unsupported.

What is an MCP server and do I need one?

MCP is a protocol that lets an AI assistant connect directly to a tool instead of waiting for you to paste files. It removes the export step and is genuinely convenient for repeat analysis. It does not change what your data can prove. A live connection to shallow data still yields shallow answers, so treat it as a workflow upgrade rather than an analytical one.

Why does the AI keep telling me my open rate is bad?

Because it is comparing you against training data full of published benchmarks that do not describe your list. Provider averages range from roughly 41% to nearly 50% depending on who is counting, and those numbers include machine-generated opens. Tell the model to compare each send against your own recent median instead of an external benchmark.

Ready to grow your brand?

Grow your newsletter like a professional. Distinctful helps you build an audience everywhere you post and turn readers into revenue.