How to Measure DM Campaign Performance: The Metrics That Matter
Most people running DM campaigns track exactly one number — how many messages they sent — which is like judging a restaurant by how much food it cooked. We defined the standard outreach metrics in our metrics glossary; this guide is about the practice: which numbers to actually pull each week, how to read them together, and how to tell the difference between a campaign that needs a tweak and one that needs a funeral.
The good news is that DM measurement is small. Five numbers, checked weekly, will tell you everything a dashboard would — the skill is in the diagnosis, not the collection.
The weekly scorecard: five numbers
Once a week, on the same day, record these for each active campaign:
- Sends — new first messages that went out this week (not follow-ups), so you know your true top of funnel.
- Reply rate — replies of any kind divided by sends. In cold DMs, 8–15% is solid, under 5% is a problem, and over 20% usually means a warm or well-targeted list.
- Positive reply rate — replies showing genuine interest divided by sends. This is the number that predicts revenue; a campaign can have a healthy reply rate made entirely of "no thanks."
- Outcomes — the campaign's one goal (calls booked, links clicked, sign-ups) actually achieved this week.
- Negative signals — blocks, reports, "stop messaging me" replies, and any platform warnings. This is your early-warning system for both list quality and account health.
Diagnosing low reply: is it delivery or is it the message?
A near-zero reply rate has two very different causes, and they need opposite treatments. The first is a delivery problem: your messages are landing in hidden request folders, being filtered, or your account is quietly restricted — the message is fine, but almost nobody sees it. The second is a relevance problem: people see the message and choose not to answer.
DMs don't give you open rates, so you diagnose by proxy. Suspect delivery when replies fall off a cliff suddenly on a previously working campaign, when even your warmest segments go silent, and when it coincides with a volume increase or a platform warning. Suspect the message or list when replies were never good to begin with, when you do get replies but they are confused or annoyed ("who is this?"), or when one audience segment replies fine and another doesn't. A practical test: send ten fully manual messages to fresh, well-matched prospects — if those get normal replies, your copy isn't the problem; your sending is.
Reading the funnel: where good campaigns leak
Each ratio between your five numbers points at a different fix. Decent reply rate but few positive replies means the list is wrong or the offer is mismatched — people answer, but you are talking to the wrong crowd. Strong positive replies but few outcomes means the leak is in your conversations: slow responses, weak asks, or too much friction in the next step. Rising negative signals with normal replies means your targeting is drifting toward people who never gave a relevance signal.
Resist the urge to change everything at once. One campaign, one variable per iteration — a new opener on the same list, or the same opener on a new segment — is the only way next week's scorecard tells you anything.
When to iterate and when to kill it
Give any new campaign at least 50–100 sends before judging it; below that, the percentages are noise. Iterate when the campaign shows a pulse somewhere — replies are happening but skewing negative, or positives aren't converting — because those are fixable single-variable problems. Kill the campaign when reply rate stays under roughly 3–5% after a hundred sends and a copy revision, when negative signals keep climbing, or when positive replies consistently fail to become outcomes after you have fixed your own response speed.
And kill it immediately, regardless of metrics, if the platform starts warning you. No reply rate is worth an account. Killing a campaign is not failure — it is the measurement system working. The list, the lessons, and the reply transcripts all carry forward into the next one.