Month-end audit checklist for WhatsApp support: which metrics to compare and which deviations justify review
What this checklist is for
Month-end closing is not an accounting formality: it is the only moment when you can compare two complete periods using the same criteria. During the month you look at the day, the peak, the complaint of the moment. At closing, you look at the series. And the series is what tells you whether what changed was the volume, the team's workload, or the quality of the responses.
This checklist is designed so you can print it or copy it into a spreadsheet and check off items as you go. Each item says what to compare and how to know the number is reliable. It does not include universal thresholds: the ones listed below are reasonable starting points, and each business adjusts them with its own history. If a deviation cannot be explained by anything that happened that month, then there is something to review.
The Wando data mentioned on this page comes from the product's fact sheet. Any current price or plan can be checked at wando.online/pricing.
Before comparing: set the period and the source
The most common month-end closing mistake is comparing two periods that are not comparable. A 30-day month against a 31-day month, a month with a long holiday in the middle, a month when you had just started running campaigns. Before looking at a single number, lock down the framework.
- Define the exact cutoff: whether the month closes on the last day at 23:59 or on the next business day. What matters is that it is the same criterion every month.
- Note the actual business days in each period. A month with three holidays is not compared in gross volume against one without holidays.
- Record the events that break the series: a campaign, a promotion, a schedule change, a service outage, a person who left the team.
- Verify that both ends of the comparison come from the same source. If last month you measured with a spreadsheet and this month with the inbox, you are not comparing the same thing.
- Confirm that the date you use for grouping is the message date, not the date it was loaded into the system. If you imported history, the load date piles everything onto the import day and ruins any analysis of schedules or trends.
That last point is the one that most often invalidates an entire month-end closing. If your source has one column for the event date and another for the insertion date, always use the event date. The insertion date is useful for auditing the load, not for measuring the business.
The metrics that get compared every month
You don't need to measure twenty things. Seven or eight well-defined numbers are enough to know what happened. The key is that each one has a written definition, because 'messages answered' means different things depending on who measures it.
| Metric | How it's calculated | What it tells you | Watch out for |
|---|---|---|---|
| Conversation volume | Unique conversations started in the period | Whether more or fewer people came to talk | Counting messages instead of conversations inflates the number with long chats |
| First response time | Average between the customer's first message and the team's first response | How long someone waits before being attended to | Messages outside business hours distort the average; separate them |
| Response rate | Conversations with at least one response divided by the total | What portion of demand went unattended | An automatic response counts as a response and can hide the problem |
| Closed conversations | Conversations that ended with a recorded closure | Whether the work gets completed or left hanging | Without a written closure criterion, each agent closes differently |
| Reopenings | Conversations that were reopened after a closure | Whether the previous closure resolved the issue or was only apparent | A reopening for a new topic is not the same as one for the same topic |
| Messages per conversation | Total messages divided by conversations | Whether responses are direct or go around in circles | It goes up when the team asks too much or the customer doesn't understand |
| Outside business hours | Conversations started outside the published hours | Whether the published hours match real demand | It's measured against the declared hours, not the ones you think you have |
| Template usage | Templates sent divided by conversations started by the business | Whether the team uses the shortcuts or writes everything by hand | A poorly used template generates more back-and-forth, not less |
The formulas are yours: the table defines the criterion, you plug in the numbers with your own system. What matters is that the definition doesn't change from one month to the next.
How to read a deviation: the signals table
A deviation isn't automatically a problem. A 40% jump in volume can be a campaign that worked. What does justify a review is a deviation that has no explanation in the month's events, or a deviation that moves in the opposite direction to what you expected.
| If this moved | Reference threshold | And a month's event doesn't explain it | What to check first |
|---|---|---|---|
| Conversation volume | ±20% against the previous month | It may be seasonality, or it may be that a channel stopped referring | Compare by channel and by day of the week before assuming demand |
| First response time | +30% or more | It's almost always team workload or a shift with fewer people | Check the distribution by hour: if the peak shifted, the problem is coverage |
| Response rate | Drops 5 points or more | There are conversations that went unanswered and nobody noticed | List the unanswered conversations and see if they share a time slot or agent |
| Reopenings | Rises 50% or more | Closure is happening before resolving | Read ten reopenings at random and classify the reason |
| Messages per conversation | +25% or more | Responses go around in circles more than before | Check whether the team, the script, or the type of inquiry changed |
| Outside business hours | +10 points over the previous month | The published hours no longer cover real demand | Compare the declared hours against the real distribution of messages |
| Template usage | Drops 30% or more | The team stopped using the shortcuts | See whether the templates became outdated or the team doesn't know about them |
The thresholds are starting points for small businesses with steady volumes. If your operation has fewer than a hundred conversations per month, any percentage variation is noise: look at absolute values before percentages.
The order in which deviations are reviewed
When several numbers move at the same time, the order matters. A volume deviation drags almost all the others along: if more people came in, response time goes up, the response rate goes down and messages per conversation change. Reviewing from the bottom up makes you chase consequences instead of causes.
- 1Start with volume and the distribution by channel and by hour. It is the most frequent cause of the other movements.
- 2Continue with coverage: how many conversations went unanswered and in which time slots. If coverage broke down at a specific time, the rest of the numbers are already explained.
- 3Then look at first response time within the slots where there was coverage. There you see whether the problem is the number of people or their speed.
- 4Only then review quality: reopenings, messages per conversation and template usage. These are the indicators that change most slowly and are least explained by volume.
- 5Close with a written hypothesis for each deviation you could not explain. A hypothesis without an owner and without a date never gets resolved.
What to record before closing the month
The close is useful if next month you can compare against something. If this month's record stays in the head of whoever did it, next month you start from scratch. What gets recorded is short: the numbers, the events and the open hypotheses.
- The eight numbers in the table, with the definition you used to calculate them.
- The month's events that break the series: campaigns, holidays, schedule changes, team changes, technical incidents.
- The open hypotheses, each with an owner and a review date.
- The decisions made based on the close, even small ones. Next month you will want to know whether they worked.
- The exact date of the close and who did it. If next month the number does not add up, you will need to ask someone.
If you use a tool with message and campaign statistics, export the month's summary on the same day as the close. Data exported on time can be compared; data that has to be reconstructed three weeks later cannot.
When something does not add up: what to do
There are three different situations and it's best not to mix them up. The first is a number that moved and has an explanation: the event is logged and you move on. The second is a number that moved without explanation: a review is opened with an owner and a due date. The third is a number you can't calculate because the source doesn't have it or it changed shape: that's a measurement problem, not a service problem, and it gets fixed before the next close.
For the second situation, the review is not a long meeting. It's reading a small sample and classifying it. Ten well-chosen conversations are usually enough to tell whether the problem is about schedule, script, workload or type of inquiry. If after reading the sample you still don't know, the problem is that the sample wasn't representative: pick another time slot.
For the third, the rule is simple: if a number can't be calculated two months in a row using the same criteria, take it out of the close until the source allows it. A dashboard with an unreliable number contaminates the reading of all the others, because nobody knows whether the movement is real or a measurement issue.
And if the deviation points to something that depends on a third party — for example, a template that isn't approved or a channel that stopped delivering — you don't control the resolution time. Meta does not guarantee approval timeframes beyond what its official documentation states, and review times vary case by case. What you can do is log the date you detected it and the date it got unblocked, so you have your own average next time.
Mistakes that ruin the monthly close
These are the ones that come up again and again when someone compares two months and draws the wrong conclusion.
- Comparing months with a different number of business days without normalizing. Always normalize by business day before drawing conclusions.
- Mixing the message date with the date it was loaded into the system. If there was a history import, the second one piles everything into a single day.
- Measuring messages instead of conversations. A long conversation inflates the volume and makes it look like more people came in.
- Counting automatic replies as human responses. If the schedule is misconfigured, the response rate looks good and the service is worse.
- Changing the definition of a metric without writing it down. Next month the number will look like it moved when in fact the formula changed.
- Closing the month without logging the events. Without the events, any deviation looks like a mystery.
- Chasing the percentage when the volume is small. With few conversations, an isolated case moves the whole average.
How to know if the close was useful
A month-end close served its purpose if by the end you have three things: the numbers compared, the events logged, and a short list of hypotheses with an owner. If you also made a concrete decision — changing a schedule, adjusting a template, adding a person to a time slot — even better. But the decision is not the requirement: the requirement is that next month you can compare against something and that the comparison is honest.
The sign that the close did not serve its purpose is easy to recognize: you end up with twenty numbers, none of them explained, and the feeling that the month was strange. When that happens, the problem almost always was not the month: it was that you measured differently than the previous time, or that you measured with a source that does not distinguish the date of the event from the date it was logged.
Wando, for example, shows message and campaign statistics inside the inbox, and the AI suggests replies that the team approves. That helps keep the record in the same place where support happens, but it does not replace the close: the comparison against the previous month is something you have to do yourself, with the same criteria every month.
Frequently asked questions
How often should I do this close?+
Once per calendar month, always with the same cutoff. If the business has very marked peaks, you can add a quarterly close that averages the three months and smooths out seasonality.
What do I do if I have fewer than one hundred conversations per month?+
Work with absolute values instead of percentages. With small volumes, an isolated case moves the whole average and any percentage variation is noise. Compare against the same month of the previous year if you have the data.
Can I compare against the previous month if I changed tools in between?+
Only if the definitions of each metric are the same. If the criterion for what counts as a closed conversation or as a first response changed, the comparison is not valid. In that case, mark the month as a baseline and start comparing from the next one.
What do I do with a deviation that is explained by a campaign?+
Log the event next to the number and don't open a review. What matters is that next month, when you compare, the event is noted: if not, the jump will look like a problem.
How long does the close take if I do it properly?+
It depends on how many metrics you have defined and whether the source allows you to export them. What you shouldn't do is leave the close for three weeks later: events get forgotten and hypotheses lose context.
What do I do if I can't calculate a number two months in a row?+
Take it out of the close until the source allows it. An unreliable number contaminates the reading of the others, because you don't know if the movement is real or comes from measurement.
Answer WhatsApp with AI
Try Wando free. No credit card required.