How to calculate cost per resolved conversation (not per message)
Why cost per message is useless for decision-making
Almost everyone measures the cost of service by dividing total spending by the number of messages. It's an easy number to get and almost useless for deciding. A message is a unit of traffic, not a unit of completed work: ten messages can be an inquiry resolved in two minutes, or they can be ten back-and-forths that end with no answer and an angry customer. If the goal is to know whether the service operation is doing well or poorly, you have to measure by resolved conversation: the complete exchange that ends with the customer having what they needed.
This framework is about method, not market: there is no "correct" cost and no benchmark that can be copied. What follows is the formula, the inputs that go into each term, and a table so each business can plug in its own numbers. If you're looking for a magic number, it's not here. If you're looking for the calculation that lets you compare two months, two shifts, or two ways of working, it is.
The four inputs of the calculation
The cost per resolved conversation has four components. None can be omitted without the number being wrong, and all can be measured with data the business already has or can gather in a week.
- Labor cost: the largest and most underestimated. It includes gross salary, social contributions, absenteeism, vacation, and the agent's non-productive time (meetings, training, waiting between messages).
- Technical input cost: what is paid for the channel and the tools. If the channel is Meta's official WhatsApp API, it includes the conversation cost Meta charges depending on country and category; if it's a management tool, its monthly fee.
- Automation cost: what it costs to maintain automatic replies, templates, and flows. It includes both the tool and the hours of the person who configures and reviews it.
- Volume of resolved conversations: the denominator. It is not the number of conversations started or messages sent: it is the number of conversations that ended with the customer served.
Meta's conversation prices vary by country and category, and are updated over time. There is no single value that can be published here: it must be taken from Meta's official documentation or the business's own invoice. Any number that appears in a blog without a verification date is useless as an input.
The formula, term by term
The calculation is done in two steps. First, the total cost of the period is calculated. Then it is divided by the number of resolved conversations. The result is a number in dollars or pesos per resolved conversation, comparable across periods, across shifts, and across channels.
| Term | What it includes | How it is obtained |
|---|---|---|
| Labor cost | Gross salary + social charges + absenteeism + non-productive time, for all agents who handle the channel | Agent cost per hour × hours dedicated to the channel in the period |
| Technical input cost | Management tool subscription + channel conversation cost (Meta, depending on country and category) | Period invoice, separating the channel from the rest of the tool |
| Automation cost | Automation tool subscription + hours of the person who configures and reviews | That person's cost per hour × hours in the period + subscription |
| Total cost of the period | Sum of the three previous terms | Direct sum |
| Resolved conversations | Conversations that ended with the customer served, not initiated conversations or messages | Count for the period, with the defined and documented criterion for "resolved" |
| Cost per resolved conversation | Total cost of the period ÷ resolved conversations | Division |
The most common mistake is to include only the tool subscription in the numerator and leave labor hours out. That gives an artificially low cost per conversation and makes any automation look like an unnecessary expense. The second mistake is to count all initiated conversations as resolved: if 20% of conversations go unanswered, that 20% still cost labor hours and you have to decide whether to count it in the denominator or not. What matters is not which criterion is chosen, but that it is the same in all the periods being compared.
How to estimate labor hours without timing anyone
Measuring labor hours accurately is expensive and annoying. For the calculation, a structured estimate is enough, as long as the same estimate is used in all periods. The procedure has three steps and can be done once, with a sample of conversations.
- 1Choose a sample of resolved conversations from the last week or the last month. 30 conversations are enough to have a stable average.
- 2For each conversation in the sample, note how many minutes of human work it took: reading, thinking, writing, looking up information, escalating to another person. Customer waiting time is not counted.
- 3Average the minutes and multiply by the number of conversations in the period. That total number of minutes, divided by 60, gives the labor hours dedicated to the channel.
- 4Multiply the hours by the agent's cost per hour, which already includes social charges and non-productive time if it was calculated correctly.
- 5Repeat the sample every quarter: the time per conversation changes when products, prices, or volume change.
The sample must be of real conversations, not the ones you remember. The conversations you remember are the difficult ones and the very easy ones, not the ones in the middle, and the average ends up biased. If the business has no way to export conversations for sampling, the estimate is still made but it is documented as an estimate, not as a measurement.
Where automation fits into the calculation
Automation does not lower the cost per conversation by itself: it only lowers it if it reduces minutes of human work per resolved conversation, and that saving has to be greater than the cost of the tool and the hours spent configuring it. The calculation is the same as above, applied to two scenarios, and the comparison is made conversation by conversation.
| Scenario | Labor hours per conversation | Cost of automation | Effect on the cost per resolved conversation |
|---|---|---|---|
| Without automation | High: every conversation is written from scratch | Low: there is no tool or configuration | The cost is driven by the numerator of labor hours |
| With suggested replies and templates | Lower: a reply is approved or edited instead of written | Medium: subscription plus hours of configuration and review | Low only if the minutes saved exceed the cost of the tool |
| With programmed flows | Very low in the conversations the flow covers, high in those that fall outside the flow | High: maintaining flows is ongoing work | Depends on what percentage of conversations fall within the flow |
| With AI that learns from real replies | Low as the tool improves, without reprogramming flows | Medium: subscription plus periodic review | The saving grows over time if the tool learns from the business |
A warning about automation that needs to be made explicit: if the channel is WhatsApp with Meta's official API, message templates sent outside the service window are approved with a timeframe of up to 48 hours. That timeframe is not a detail of the calculation, but it is an operating cost: every new template that has to be approved delays the launch of a campaign or a flow, and that time is also labor hours. The same goes for automatic replies: someone has to review them when prices or the catalog change, and those hours go into the automation term.
What counts as a resolved conversation
The denominator is the most debatable part of the formula and the one that changes the result the most. A resolved conversation is one that ends with the customer having what they needed: an answer, an appointment, an order, a quote, a referral to another area. It is not the same as a closed conversation, because a conversation can be closed without the customer having gotten anything. Nor is it the same as a conversation with a reply, because replying is not resolving.
- Resolved conversation: the customer got what they were looking for. It counts.
- Referred conversation: the customer was passed to another area that did resolve it. It counts as resolved if the referral worked, and it is noted separately so it can be reviewed.
- Abandoned conversation: the customer stopped replying without getting anything. It does not count as resolved, but its labor hours did go into the numerator.
- Unanswered conversation: no one attended to it. It does not count as resolved and is the clearest sign that capacity is lacking.
- Duplicate conversation: the same customer inquired through two channels. It counts only once, or the denominator ends up inflated.
The criterion chosen has to be written down somewhere and not change between periods. If in January referrals were counted as resolved and in February they were not, the comparison between January and February says nothing about the operation: it says the criterion changed. The simplest way to maintain the criterion is to note it alongside the number every time it is published.
Table to build the number with your own data
This table is the same formula as above, left blank, to be filled in with the business's data. The example column is intentionally blank: there are no reference values that can be published without making them up. It is filled in once per period and saved, so it can be compared.
| Component | How it is calculated | Value for the period |
|---|---|---|
| Agent cost per hour | Gross salary + payroll charges + absenteeism + non-productive time, divided by effective hours | |
| Human minutes per conversation | Average from the sample of resolved conversations | |
| Man-hours for the period | Minutes per conversation × resolved conversations ÷ 60 | |
| Cost of man-hours | Man-hours × agent cost per hour | |
| Cost of technical inputs | Channel bill + tool subscription | |
| Automation cost | Automation subscription + configuration hours × cost per hour | |
| Total cost for the period | Sum of the three previous costs | |
| Resolved conversations | Count for the period using the noted criterion | |
| Cost per resolved conversation | Total cost ÷ resolved conversations |
Without the first row, the fourth cannot be filled in. If the agent cost per hour is not calculated, that is the first step.
How to use the number (and how not to use it)
The cost per resolved conversation serves three concrete purposes: comparing the same business across periods, comparing two shifts or two teams within the same business, and deciding whether an automation pays for itself. It does not serve to compare different businesses, because the cost per hour, the volume, and the resolution criterion vary too much. Nor does it serve as a goal in itself: lowering it by cutting man-hours without the conversations being resolved is lowering the number and making the service worse.
The sign that the number is being used well is that it is possible to explain where each term comes from. The sign that it is being used badly is that it appears alone, without the man-hours and without the resolution criterion. A cost per resolved conversation that drops because conversations stopped being handled is not an improvement: it is a smaller number with a bigger problem. Wando enters this calculation as a term of the automation cost rather than as a promise of savings: the tool suggests replies and the team approves them, and the effect on the number depends on how many minutes per conversation each business saves, which is exactly what the formula allows measuring.
This method does not require any particular tool. It can be applied with a spreadsheet, with the channel's data, and with the team's cost per hour. What cannot be done is publishing the result without the date and without the resolution criterion: a cost per conversation without those two things is not a data point, it is a loose number.
Frequently asked questions
What is the difference between cost per message and cost per resolved conversation?+
Cost per message divides total spend by the number of messages sent or received. Cost per resolved conversation divides the same spend by the number of conversations that ended with the customer served. The first measures traffic; the second measures completed work. To decide whether the operation is doing well, the second is the useful number.
What goes into the labor hours cost?+
Gross salary, social charges, absenteeism, vacations, and the agent's non-productive time (meetings, training, waiting between messages). If only gross salary is used, the cost per conversation is underestimated, because non-productive time is also paid and also consumes channel hours.
How do you estimate human minutes per conversation if there is no measurement?+
With a sample of resolved conversations from the last month. Take 30 random conversations, note how many minutes of human work each one took, and average them. That average is multiplied by the number of conversations in the period. The sample should be repeated every quarter, because time per conversation changes when products or volume change.
Does automation always lower the cost per resolved conversation?+
No. Automation lowers the cost only if it reduces human work minutes per resolved conversation by more than what the tool and the hours to configure and review it cost. If the flow covers few conversations or must be reprogrammed often, the cost can go up. The formula allows comparing both scenarios with the same data.
How is a conversation transferred to another area counted?+
It is counted as resolved if the transfer worked and the customer got what they needed, and it is noted separately to be able to review how many transfers there are. If the transfer did not work and the customer was left without an answer, it is not counted as resolved. What matters is that the criterion is the same in all periods being compared.
Can cost per resolved conversation be compared between two different businesses?+
It does not work for that. The agent's hourly cost, conversation volume, and resolution criterion vary too much between businesses. The number works to compare the same business across periods, two shifts, or two teams within the same business, and to decide whether an automation pays for itself.
What should I do if the cost per resolved conversation goes down but complaints go up?+
Review the resolution criterion and the labor hours. A number that goes down because conversations stopped being answered or because time per conversation was cut without resolving them is not an improvement. The calculation is for comparing periods, not for setting a target: the goal is to resolve, and the number is the way to know at what cost.
Answer WhatsApp with AI
Try Wando free. No credit card required.