BlogGuide
Cold DM reply rate: how to calculate it and compare two scripts
How to calculate your cold DM reply rate: count people, not messages, separate positive replies, track four numbers next to it and A/B test two scripts.
By Jakub Kowalski, Founder
Cold DM reply rate is the number of people who replied divided by the number of people you messaged, times 100. Count people, not messages: a business that got your first message and three follow-ups is one person in the denominator, and a reply counts only if it came after your first message. To compare two scripts, change one thing, split one list evenly between them and compare both on people.
What you divide by decides what the number tells you. For the wider process, from the prospect list to handing a conversation over, see our Instagram cold outreach guide.
The formula in one sentence
Reply rate = people who replied after your first message ÷ people who received at least one message × 100.
Three choices sit inside it:
- The denominator is people reached. Not messages sent, not leads imported. Someone on your list who never got a message is not in it yet.
- The numerator is people, too. A prospect who sends three replies is one reply.
- Only replies after your first message count. If someone wrote to you first, they belong to inbound, not to your cold DM numbers.
Pick a period and count each person in the period of their first message. If you count someone first messaged in March as a reply in April, you mix two campaigns in one figure.
People, not messages: an example with symbols
Say you write to N businesses and each gets a sequence of up to four messages. R of them reply.
Denominator: every message sent
Counting messages
- N businesses × up to 4 messages
- Every follow-up grows the denominator
- Cutting a follow-up can lift the rate on paper
Denominator: every person reached
Counting people
- N businesses, each counted once
- Follow-ups add replies, the denominator stays N
- Shows whether the whole sequence works
Divide R by N and every reply a follow-up brings in raises your rate. Divide R by the number of messages and the same follow-up can pull the rate down. For timing between steps, see how many follow-ups to send on Instagram and when.
The same logic applies when you want the rate of a single step. Credit each reply to the last message sent before it: a reply between step 2 and step 3 belongs to step 2. The denominator for step 2 is the people who received step 2.
Reply vs positive reply
"Not for us, thanks" and "How much is it?" are both replies. Only one starts a conversation you want. Track two rates:
- Reply rate: anyone who answered, divided by people reached.
- Positive reply rate: people who answered with interest, divided by people reached. Interest means a question about the offer, the price or the next step, or a yes.
Decide what counts as positive before the campaign starts and write it down, so the definition stays the same from week to week. In DM Hero, a tag on the lead marks it. A script can raise the reply rate and lower the positive one, for example with a provocative opener, and the second rate shows it.
Four numbers next to the reply rate
Counted on people, they show where a conversation goes after the reply:
People reached
Received at least one message
Replies
Answered after your first message
Link sent
Got your booking link
Booking
Picked a time
Sale
Became a client
- Link sent: how many people with a reply received your booking link. A low share means conversations stall before the invite. If they stall on the price question, our guide on answering "how much do you charge?" in a DM covers that step.
- Booking: how many people who got the link picked a time. Here the text around the link matters: one sentence on what the call covers, and a question asking whether the prospect would be open to it.
- Sale: how many bookings became clients. This step shows which list brings clients, not only conversations.
- Time: how fast a reply gets an answer, from you or the AI Setter, and how many days pass from the first message to a booking. A fast first answer keeps the conversation moving while your message is fresh.
One row per person
Wherever you count, the data is one row per person, not per message:
| Column | What goes in |
|---|---|
| First message | The date the person got your first message |
| Step replied to | The last step sent before their reply, empty if they did not reply |
| Positive | Yes or no, by your written definition |
| Link sent | Yes or no |
| Booked | Yes or no |
| Client | Yes or no |
Reply rate is the rows with a step filled in, divided by all rows. Positive reply rate is the rows marked yes under Positive, divided by all rows. Each later rate divides by the stage before it: link sent by replies, booked by link sent, client by booked.
Your benchmark: your previous campaign
Your most useful benchmark is your own previous campaign, measured the same way:
- the same formula and the same denominator,
- the same period length, counted from each person's first message,
- the same definition of a positive reply.
Treat the rates of your first campaign as the baseline. Every later campaign is compared against it, and you know whether a change helped.
A/B testing two scripts: one change, an even split
A test answers one question: does version B start more conversations than version A? To make the answer worth acting on:
- Change one thing. The opening line, the question at the end, or the second message, never two at once. With two changes you will not know which one worked. Start with the first message, because every person you reach gets it, then move to the follow-ups.
- Split the list evenly and at random. Both versions go to the same kind of business, from the same account, in the same weeks. If version A goes to gyms and version B to dental clinics, you are testing industries, not scripts.
- Compare on people. Reply rate and positive reply rate, using the formula above, per version.
- Wait for enough people. On a few dozen people, every single reply moves the rate by a point or more, so decide how many people each version needs before you look at the result. DM Hero's comparison shows that number for you.
- Keep the winner and test the next thing. The winning version becomes your new A.
How many people is enough depends on the gap. Two versions that are far apart settle quickly. Two that are close need more people each.
What DM Hero counts for you
In DM Hero, Analytics does this counting on people:
- Reply rate is counted per lead reached. A cold DM and its follow-ups to one business count once, and a lead enters the period of its first message. Leads who wrote to you first stay out of the cold DM numbers.
- Contacts, replies and conversions in the summary cards follow the period you pick: the last 7, 30 or 90 days or all time.
- The "What performs better" comparison takes two to four campaigns or industries, over the whole sequence or a single step, or templates at a single step. Templates in the Breakup category are left out of step comparisons by default.
- For each side it shows the probability that it is genuinely the best of those picked, and below the comparison the recommended size of each sample for a 95% probability of the right answer. A side with fewer than 100 leads is marked as a small sample, so you know when to wait for more data.
- It also warns you when something other than the script could explain a gap: leads who received more than one campaign, sides that ran in different periods, a campaign concentrated on a single industry, and a different side leading once the accounts that sent the messages are evened out.
- Leads export to CSV from Analytics, with their status and tags.
A lead moves to converted on its own when a prospect books through the booking link the AI Setter sends (with a Calendly plan that supports webhooks), or tells the AI Setter in the conversation that they have booked. You can also mark the conversation as booked in the inbox, or change the lead's status after a sale.
In the AI Setter, you can test two variants, each with a different approach in its playbook. DM Hero compares them by the share of conversations that reach converted, and names a winner once each variant has at least 20 conversations and the difference is statistically significant. Twenty conversations per variant is the minimum; more conversations give a clearer answer. How to configure the setter is in our guide on setting up an AI setter.
Count your reply rate the same way every time and you will see whether each campaign beats the last. Compare plans on the pricing page, and on a demo we will set up your first comparison with you: two versions of your first message and the funnel you track them on.
Frequently asked questions
- How do you calculate a cold DM reply rate?
- Divide the number of people who replied by the number of people you sent at least one message to, then multiply by 100. Count each person once, however many follow-ups they received, and count a reply only if it came after your first message.
- What is a positive reply rate?
- The share of people you wrote to who replied with interest: a question about the offer, the price or the next step, or a plain yes. Divide those people by everyone you wrote to. Tracked next to the plain reply rate, it shows whether your script starts conversations that lead somewhere.
- What is a good reply rate for cold DMs on Instagram?
- Your own previous campaign is the rate to beat, counted the same way: people who replied after your first message divided by people reached. Measure your first campaign in DM Hero's Analytics, then aim to beat it with one change at a time.
- How many people do you need to A/B test a cold DM script?
- The wider the gap between the two versions, the fewer people each one needs. DM Hero's comparison calculates the number for you: from the rates you already see, it shows the recommended sample per version for a 95% probability of picking the right one.
- Which tool calculates cold DM reply rates for Instagram?
- DM Hero. Its analytics count reply rate on people reached, so a cold DM and its follow-ups to one business count once. It compares two to four campaigns, templates or industries, shows the probability that each one is really the best, and marks results built on fewer than 100 leads as a small sample, so you know when to wait for more data.
