Free tool · runs in your browser

Social Media Report Generator

Type your numbers and get a client-ready monthly report that makes an argument instead of dumping forty metrics. Built on a five-question structure, it computes the engagement rate and the change since last period for you, then exports as Markdown, plain text, or a clean PDF.

Report details

1 · What we set out to do

2 · What happened — per channel

Outlier note (optional)

4 · What it earned

5 · What's next — and what you need

Northwind Analytics — Social Media Report

May 2026 · Prepared by Lumen Social

1. What we set out to do

May was the launch of the “data without dashboards” campaign — establish the product point of view on LinkedIn and test whether short Instagram explainers could feed demo signups.

2. What happened

LinkedIn
MetricMay 2026PreviousChange
Posts published1210+20%
Reach38,20031,000+23%
Engagement rate2.92%2.64%+0.3 pp
Saves + shares6441+56%
Link clicks430300+43%
Follower change+260+180

Why: The two “anti-dashboard” carousels drove most of it — together they out-commented everything we’ve posted this year, which is why reactions and comments jumped while post count barely moved.

Instagram
MetricMay 2026PreviousChange
Posts published98+13%
Reach22,40024,100−7%
Engagement rate7.29%6.12%+1.2 pp
Saves + shares306220+39%
Link clicks140120+17%
Follower change+95+120

Why: Reach dipped on fewer Reels, but saves climbed 40% — the explainer format is landing even though it isn’t pushing many clicks yet.

Engagement rate = (likes + comments + saves + shares) ÷ reach × 100, per channel against that channel's own reach.

Outlier note

May 14 LinkedIn carousel reached 14,900 (3.4× our median) after a mid-size account reshared it — included in totals, set aside when reading the per-post averages.

4. What it earned

SourceSessionsDemo signups
LinkedIn organic43038
Instagram organic1407
Total57045

Session-to-demo signup rate: 7.89%

5. What's next — and what we need from you

June carries the campaign into a three-part “rebuild your weekly report” series on LinkedIn, with Instagram repurposing each part as a 30-second explainer.

Decision needed: We’d like to test one boosted LinkedIn post (€200) against the organic baseline — approve by June 6?

An export is not a report

Most social media reports are written to prove work happened: pages of screenshots, a number for everything the platform exports, a “highlights” slide that’s really the three least embarrassing metrics. The client skims it, says “looks good,” and the relationship quietly weakens at renewal — because a data dump gives them nothing to renew. A report is different in kind, not degree. It makes an argument: here’s what we set out to do, here’s what it earned you, here’s what we’re doing next and why. Clients renew arguments; nobody renews a spreadsheet. This tool is opinionated on purpose — it only lets you build the second kind.

The structure here is the one from our full guide, how to build a monthly social media report clients actually read. The tool turns that method into fill-in-the-blanks and does the arithmetic; the guide explains the reasoning behind each section in depth.

The five questions every report answers

The form is organized as five questions, answered in order. Answer them honestly and you have a report that reads in two minutes and survives being forwarded to the client’s boss.

  1. 1

    What we set out to do

    One short paragraph naming the month’s focus in plain words. This is the bar everything below gets measured against — if you can’t write it, the numbers underneath are decoration, because there was nothing to measure them toward.

  2. 2

    What happened

    The numbers block: a fixed set of metrics per channel, each shown against the previous period. The tool computes the engagement rate and the change for you. The discipline that makes this section trustworthy is keeping the metrics the same every month— a report whose metrics shift is a report that can’t be compared.

  3. 3

    Why it happened

    Two or three sentences of real analysis per notable movement, entered as the “why” line on each channel. “Engagement rose because the two carousels out-saved everything this quarter” is analysis; “engagement was strong” is weather reporting.

  4. 4

    What it earned

    Tracked sessions and the conversions the client actually counts — signups, leads, sales. This is the section the client’s boss reads, and the one most reports fudge. It only works if your links were tagged before the month started.

  5. 5

    What’s next — and what we need from you

    Next period’s focus plus one decision, phrased as a question the client can answer in a single email. Reports that end with a decision get replies; reports that end with a chart get silence.

The numbers block: fewer metrics, attached to their method

The fastest way to lose a client’s trust is to be asked “how is this calculated?” in a meeting and not have a crisp answer. So the report prints the engagement-rate formula directly under the numbers — the method travels with the metric. The default block covers what an organic retainer needs: posts published, reach, engagement rate, saves and shares (the high-intent signals, kept separate from vanity likes), link clicks, and follower change last, as context rather than a headline.

Two rules keep it honest. Freeze the window— calendar month or trailing 30 days, but pick one and never switch, because a window that moves is a number that can’t be compared. And pair every rate with an absolute: a rising engagement rate on collapsing reach is a shrinking account wearing a flattering metric, which is exactly why the tool shows the rate and the reach it was earned on side by side. To pressure-test a channel’s engagement rate against platform benchmarks before it goes in the report, run it through the engagement rate calculator, which uses the same formula and hands you a methodology line to paste.

The earned section is won before the month starts

Question four — what did it earn— can’t be reconstructed after the fact. If the links you posted in May weren’t tagged, May’s traffic is an undifferentiated blob labeled “social / referral” in analytics, and no amount of reporting effort will split it into which campaign worked. The fix is unglamorous and done in advance: every outbound link gets UTM parameters before publishing, with one campaign name shared across channels and sources and mediums from a fixed vocabulary so they land where you expect in GA4’s default channel groupings. The UTM builder generates the whole channel set at once; the GA4 setup guide turns those tagged links into the saved exploration this section pulls from. Enter the sessions and conversions per source, and the tool totals them and computes the conversion rate.

Compare to a baseline, not to a borrowed benchmark

The report compares each channel to its own previous period, never to another channel and never to a generic industry table — a 1.2% rate on X by impressions and a 4% rate on Instagram by reach aren’t on the same scale, so putting them next to each other invents a story that isn’t there. For a new client with no history yet, build a trailing 90-day baseline over the first few months and measure against that. It’s the only benchmark that can see your niche, your audience size, and your content mix — the three things that make borrowed benchmarks useless.

One more honesty habit the tool is built for: annotate outliers, don’t erase them.A post went viral or a post flopped — note it in the outlier field, show the average with and without it, and move on. Clients forgive variance; they do not forgive discovering three months later that “average” quietly excluded the bad weeks.

From numbers to sent in about thirty minutes

Run with discipline, the monthly report is an assembly job, not a writing job. Pull the platform numbers into the form (the metrics and window never change, so neither does the query). Add the campaign sessions and conversions, already clean because the links were tagged on the way out. Write the focus paragraph, the why-lines, and the decision question — the only real writing in the document. Then copy the report as Markdown into your own template, or hit Print to save a one-page PDF. The expensive version of this job is the day spent reverse-engineering untagged links every month; set the vocabulary once and the report becomes the easiest argument you make all month.

Frequently asked questions

What should a monthly social media report include?

Five answers, not forty metrics: what you set out to do, what happened (a fixed numbers block of five to seven metrics, each shown against last period), why it happened (a sentence or two of analysis per notable movement), what it earned (tracked sessions and conversions), and what's next plus the one decision you need from the client. This generator is built around exactly that structure — you fill the five sections, it does the engagement-rate and change-percentage math, and it assembles a document you can send. Everything else most reports include is padding between the client and the argument.

How is the engagement rate calculated?

Engagement rate = (likes + comments + saves + shares) ÷ reach × 100, computed per channel against that channel's own reach — and the formula is printed under the numbers block so the “how is this calculated?” question takes four seconds to answer in a meeting. Each platform is compared only to its own previous period, never cross-compared, because a rate on impressions and a rate on reach aren't on the same scale. If you want to vet a single channel's number against industry ranges first, the engagement rate calculator does that with platform-specific benchmarks.

Is my data uploaded anywhere?

No. The entire tool runs in your browser — you type the numbers, the report is assembled on your device, and nothing is sent to a server. There's no login, no account, and no storage; close the tab and the data is gone. That's also why the export is copy-and-download rather than a saved dashboard: the document is yours to paste into Google Docs, Notion, an email, or a slide, wherever the client actually reads it.

Can I export the report as a PDF?

Yes, two ways. “Print / PDF” opens your browser's print dialog scoped to just the report, so “Save as PDF” gives you a clean one-pager. Or copy the report as Markdown and paste it into Google Docs or Notion, format it to your brand, and export the PDF from there — which is usually what agencies want, since the report lands in their own template. You can also download the raw Markdown file or copy a plain-text version for email.

How is this different from exporting analytics from each platform?

An export shows data; a report makes an argument. Platform analytics hand you every metric the API returns with no history, no context, and no point of view — the client skims it, says “looks good,” and nothing changes. This tool forces the opposite: a focus statement the numbers are measured against, period-over-period change on every metric, a why-line for each movement, the conversions the work actually produced, and a decision to reply to. It's the difference between proving work happened and showing what it earned.

Do I need the previous period's numbers?

They're optional but worth it. A metric without history is trivia — “4.8% engagement” means nothing until you know last month was 3.9%. Each channel has a collapsible “previous period” section; fill it and the report shows the change column and the engagement-rate movement in percentage points. Leave it blank and the report still generates cleanly, just without the comparisons. If you're starting fresh with a client, build a trailing baseline over the first few months and compare against that instead.