River
Y CombinatorBacked by Y Combinator

Marketing & GrowthFree

Every Mailchimp Campaign Performance Report

The combined export joined back to what each campaign actually was, so the pattern in the subject lines and send hours becomes visible.

Start here

River takes whatever the platform gave you, the combined report, a folder of per-campaign files, or the whole account archive, and puts every send in one row. Then it does the part no export does: joins each row back to what that campaign actually was. The subject line, the hour it went, the segment it targeted, the offer it carried. A year of sends stops being sixty separate reports and becomes one dataset you can ask a question of.

Getting the file out is the easy half, and the platform documents it well. The hard half arrives the moment you open it. Metrics live in the report and attributes live in the campaign record, and they come out of the account in different files, so the column that would explain the result is never next to the result. Sorting a year of campaigns by open rate tells you which ones were opened. It does not tell you what they had in common.

Written for lifecycle and email marketers with a year of sends nobody has read across, ecommerce teams whose revenue column only exists on some rows, and agencies inheriting an account. Pair it with the lifecycle email program pack when the finding turns into a change to the flows, and with the cross-platform paid report pack when email has to sit beside the other channels in one report. It runs in the marketing workspace, so next quarter's read starts from this one.

Three things the combined export does not contain

Start with what is missing. Mailchimp's instructions for the combined spreadsheet say plainly that it covers all of your campaigns, except automations, and that subscriber-level opens and clicks are not in it either. Automation reports come out one flow at a time. So the welcome series and the cart reminders, which for most senders carry the highest engagement per email of anything they run, are absent from the file whose menu item reads Download All Reports. Nothing in the file says so.

Then the open column. Mailchimp counts an open by loading a hidden image, and its own guidance recommends excluding Apple privacy protection and other bot activity from your reports. Apple states the effect directly: Mail Privacy Protection prevents senders from seeing if you have opened the message. An open rate averaged across a mixed list is therefore two numbers added together, and sorting a year of campaigns by it ranks mail clients rather than campaigns.

The account archive is the richer source and the slower one. Mailchimp allows one export per twenty-four hours, with the resulting ZIP downloadable for ninety days, and it splits reporting into aggregate_activity, geo_data and granular_activity folders alongside a campaigns CSV and a campaigns_content folder of HTML and text. That content folder holds the subject lines and the offers, which is precisely what makes the join to the metrics possible at all, and it is the folder most people never open.

How it works

  1. Bring the exports

    The combined CSV, a folder of per-campaign files, or the whole account export archive.

  2. River builds the table

    One row per send, with the automations added back and duplicated rows reconciled.

  3. Read the patterns

    Subject line, send hour, segment and offer each ranked against clicks and revenue.

  4. Fix the calendar

    Repeat what earns, retire what does not, and diary the next read for a quarter.

What you get

  • Every send in one row, including the automation flows the combined export leaves out
  • Metrics joined back to subject line, send hour, segment and offer for each campaign
  • Opens reported separately from privacy-proxied loads, so the trend line stays honest
  • Ranking by clicks and revenue per thousand delivered rather than by open rate
  • Subject line patterns counted across the year, with the sends that break the pattern named
  • The sends worth repeating and the ones worth retiring, each with its number attached

Common questions

I use Klaviyo or HubSpot, not Mailchimp. Does this still work?

Yes. The shapes differ but the problem does not: every platform hands you metrics in one file and campaign attributes in another, and none of them join the two for you. Bring whatever exports you can pull, name the platform, and the table gets built to the same standard from whatever columns exist.

Where do I get the combined export in the first place?

In Mailchimp it is on the Campaigns page, under the View analytics menu, as Download All Reports. Automations are not in it, so pull each flow's report from its own step analysis as well. The account archive is the fuller source and takes longer to build. Bring whichever you have.

Why not just use the platform's custom reports?

Because they answer a different question. A custom report groups metrics by campaign, campaign type, audience or time frame, which is useful and is not the same as knowing what the winning campaigns had in common. Subject line wording, send hour, offer and creative are not groupings any built-in report offers.

Is the open rate worth reporting at all now?

It is worth reading within a single mail client segment, where the proxying is consistent and a move up or down means something. It is not worth ranking a year of campaigns by, and it is not worth putting in a board deck. Clicks and revenue per thousand delivered carry that job.

How far back can I actually go?

As far back as the files you can still pull. The account archive builds once every twenty-four hours and the resulting ZIP stays downloadable for ninety days, so a long history is worth exporting and keeping rather than re-requesting later. Older per-campaign CSVs you already have get folded in.

What comes out at the end of it?

One sheet with every send and every attribute, and a short document naming the patterns that held across the year, the sends that broke them, and what to change in the calendar. Where the pattern turns out to be a deliverability problem rather than a content one, take it to the list health and deliverability audit.

Every Mailchimp Campaign Performance Report

Fill in the form and your workspace opens with the work already underway.