Analytics

Know what your last send actually did.

Every message you send is counted on its own — delivered, bounced, opened, clicked, unsubscribed. The report is a sum of what happened, over the dates you pick, for email, SMS and WhatsApp together.

Email, SMS and WhatsApp in one reportCounted per messageDownload as CSV, Excel, Word or PDF
The email engagement chart in QuickGrow: sent, opened and clicked plotted per day across the reporting window, with a legend naming each series.

A send without a report is a guess.

You paid for those messages. If the only thing that comes back is the word “sent”, you cannot tell a campaign that earned its keep from one that quietly burnt down your list. Three questions decide it, and the reports answer all three.

Question one

Did it arrive?

Sent, delivered, bounced and failed are counted separately, and every single message keeps its own state — when it was sent, when it was delivered, when it failed, and the reason and code the channel gave for the failure.

Question two

Did anyone read it?

Opens and clicks are recorded against the exact message they came from, then rolled up into the campaign. You get open rate, click rate and click-to-open rate, plus the links people actually clicked, ranked.

Question three

Is the list getting better or worse?

Unsubscribes, complaints and bounces are tracked alongside a list-health score out of 100 and an A to F grade, so you can see the cost of a send that pushed too hard.

Four steps between a send and a number.

Nothing here is modelled, sampled or projected. Each figure is a count of rows that a real event wrote.

  1. You send

    Every recipient gets their own message record, carrying the campaign it belongs to, the channel, the contact, and a status that starts at sent.

  2. The channel reports back

    Delivery callbacks from the email, SMS and WhatsApp providers move that record to delivered, bounced or failed — and a failure keeps the reason and the code it came with.

  3. The reader acts

    An email open or a link click is written against that message and against the contact. An open adds 1 to the contact engagement score; a click adds 5, because a click is worth more.

  4. The report adds it up

    For the dates you choose, the totals are summed and the rates computed: opens and clicks over delivered, bounces over sent. A campaign counts a contact’s first open and first click once; the message keeps the full count of every reopen.

The email delivery funnel in QuickGrow reports: bars for sent, delivered, opened and clicked, each labelled with a count and its percentage of messages sent.
Delivery funnel

See exactly where people drop out.

Sent, delivered, opened, clicked — each stage with its count and its share of what you sent. The gap between two bars is the problem worth fixing, and it tells you which one: a delivery gap is a list or sender problem, an open gap is a subject-line problem, a click gap is a content problem.

  • Bounces, failures, unsubscribes and complaints counted separately from the funnel, so a bad list cannot hide inside a delivery number
  • Pick last 7 days, 30 days, 90 days or 12 months, and see the change against the equal-length period before it
  • Filter the campaign table underneath by name or status — the headline figures still cover the whole period, because filtering a table should not silently redefine your reporting window
Open rate by campaign in QuickGrow analytics: a ranked list of named campaigns, each with a bar and its open rate as a percentage.
Campaign performance

Which campaign earned its send.

Every campaign in the window, ranked by the rate you care about, with the raw counts beside it. This is where you find the message worth repeating and the one worth retiring.

  • Rank by open rate, click rate or delivery rate — the ranking only considers campaigns that finished sending and actually delivered to someone
  • Put named campaigns side by side and compare their counts and rates directly
  • Click-to-open rate separates “nobody opened it” from “they opened it and it did not land”
The send-time engagement heatmap in QuickGrow: a seven-day by twenty-four-hour grid where each cell is shaded by how much email engagement landed in that hour.
Send-time heatmap

When your list is actually reading.

A seven-day by twenty-four-hour grid, built from the opens and clicks your own email earned. Darker cells are the hours your people were paying attention. A separate best-time analysis ranks all twenty-four hours and flags the strongest three, counting a click as worth two opens.

  • The grid is bucketed by day of week and hour of day in the timezone set on your account, not in whatever timezone a server happens to be in
  • A device split across desktop, mobile and tablet, so you know what your template has to look good on
  • The links your readers clicked, ranked by how many clicks each one pulled
Channel comparison in QuickGrow reports: email, WhatsApp and SMS side by side with campaign counts, messages sent and an engagement figure for each.
Channel comparison

Email, SMS and WhatsApp on the same table.

Most tools make you open three dashboards and do the arithmetic yourself. Here the three channels sit in one table for the same date range, with the same columns, so the comparison is a glance rather than a spreadsheet.

  • Sent, delivered, opened, clicked, bounced and failed per channel, with delivery, open and click rates alongside
  • Total spend per channel for the date range — the number you check your invoice against
  • Change against the previous equal-length period, so a bad month is visible as a fall and not just a figure

Each report answers one question.

Pick the question you have, and this is where the answer lives and how you get it out.

Every report is scoped to a start and end date you choose.
The question it answersBroken down byYou can take it away as
Campaign performanceDid this send land, and did anyone read it?Campaign, brand, channelCSV or JSON from the API; PDF, Word or Excel on screen
Delivery funnelAt which stage do recipients fall away?Stage, as a share of what you sentPDF, Word or Excel
Send-time heatmapWhen is my list actually reading?Day of week and hour, your timezonePDF, Word or Excel
Channel comparisonWhich channel is worth the money?Email, SMS, WhatsAppPDF, Word or Excel
Contact and list healthIs my audience growing or decaying?Status, source, tags, engagement scoreCSV or JSON
Engagement activity logWho opened or clicked, and when?Contact, activity type, campaign, timestampCSV or JSON

It tells you when to look.

You should not have to read a dashboard every morning to find out something went wrong. Fixed thresholds are checked for you, and each warning names the number that tripped it and links straight to the list or the campaign involved.

Bounces above 5%

High bounce rate

Too many addresses are dead. Left alone this damages how the receiving mail servers treat everything else you send.

Complaints above 0.1%

Spam complaints

People are marking you as spam rather than unsubscribing. The warning points you at the campaigns that caused it.

Unsubscribes above 2%

Elevated unsubscribes

Usually a frequency problem before it is a content problem. You get told before the list is meaningfully smaller.

Health below 60 of 100

List health warning

One score built from your active-contact rate, bounce rate, unsubscribe rate and average engagement, graded A to F.

Two quieter notices sit alongside them: contacts who have not engaged in thirty days or more, and drafts you started and never finished.

What you can reconcile, and what you cannot.

One thing on this page is worth knowing before you buy rather than after. Counts are reported per campaign. Money is not — cost is totalled per channel over a date range, and there is no cost column on a campaign anywhere in the product or in the export.

Cost is aggregated from the messages sent on a channel inside the window you pick. It is not attributed back to the campaign that sent them.
Per campaignPer channel, per date range
Recipients, sent, deliveredYesYes
Opens, clicks, click-to-openYesYes
Bounces, failures, unsubscribes, complaintsYesYes
Delivery, open and click ratesYesYes
Money spentNoYes
What this gets you

Spend you can check line by line

Channel spend for a period is the same figure your invoice is built from, so the two reconcile. WhatsApp isn't part of that invoice at all: Meta bills you directly for it, at Meta's own rate, so there's no QuickGrow wallet and no transaction list behind it here. If you want an approximate cost for one campaign, divide the channel total by the messages that channel sent in the same window.

What it does not get you

A return-on-spend figure per campaign

There is no revenue field on a campaign and no cost field either, so the product will not hand you a per-campaign return. Two other gaps worth knowing: the contact export identifies people by their contact record and their tags rather than by their email address, and the reports carry no location data at all.

On the screen, in a file, or into your own systems.

The same numbers, three ways out, depending on whether you are looking, sending them to someone, or feeding them into something else.

On the screen

  • Last 7 days, 30 days, 90 days or 12 months, with the change against the period before
  • Overview, by brand, and by campaign views of the same window
  • Search or filter the campaign rows without re-scoping the totals above them

As a file

  • Download the report you are looking at as PDF, Word or Excel
  • Export campaign performance as CSV or JSON: recipients, sent, delivered, opened, clicked, bounced, unsubscribed, complaints, and the delivery, open and click rates
  • Export your contact list, or the engagement activity log, over the same dates

Into your own systems

  • Read any message state over the API: status, sent, delivered and failed times, plus the failure reason and code
  • Subscribe to message sent, delivered, failed and bounced events and get them pushed to you
  • Filter and list messages by state to build your own view

Before you sign up.

Where do the numbers come from?

From your own sends. Each message is a record; delivery callbacks from the channel and the tracking on your email update it; the report sums those records for the dates you pick. Nothing is estimated, sampled or filled in with a placeholder.

Can I see what one campaign cost me?

No, and it is better that you know now. Per-campaign figures are counts and rates only. Spend is totalled per channel over the date range you choose, which is the figure that reconciles against your invoice — WhatsApp isn't in that invoice at all, since Meta bills you directly for it. To approximate one campaign, divide the channel total by the messages that channel sent in the same window.

How exactly is open rate calculated?

Opens divided by delivered, clicks divided by delivered, and click-to-open is clicks divided by opens. Bounce rate is measured against sent. A campaign counts a contact once, on their first open and first click; the individual message keeps the full count of every reopen and every repeat click, so you can tell one enthusiastic reader from a thousand.

Report on what really happened.

Send on email, SMS and WhatsApp, and read one set of numbers across all three.