Most outbound advice arrives without a denominator. Someone reports a 40% reply rate and leaves out that it came from twelve messages to warm contacts. So here are the numbers we run on, each one with the sample it came from, and the four changes that moved them on a live pipeline.
The three numbers that matter, in order
Cold LinkedIn has exactly three gates, and they fail in a fixed order.
Accept rate. The share of connection invites that turn into a connection. This is a judgment made in two seconds on your photo, your headline and the mutual context. Anything below 20% on a cold audience means the profile is doing the wrong job, and no message rewrite will rescue it. Our fleet reading, recomputed on 30 August 2026, is 21.5%: 158 accepts on the 734 invitations sent between 10 and 23 August, each with at least seven days to be answered. Individual senders sit between 14% and 22% depending on how well the profile matches the audience it writes to.
Reply rate. The share of connected people who write something back. This is where copy lives. The published benchmark for cold LinkedIn sits at 14.1%. Our own reading, recomputed on 30 August 2026, is 20.3%: 38 replies from the 187 people whose first direct message went out between 30 July and 22 August. One number without the other is marketing; the pair is a measurement.
Meeting rate. The share of replies that turn into a booked call. This is the one that pays rent, and it is decided by what you do in the two messages after the first reply, not by the opener.
A pipeline that reports only the last number is hiding where it leaks. A pipeline that reports only the first is measuring how likable the profile is.
What moved ours
1. A reason to write, not a list to write to
The difference between 5% and 25% replies is rarely the sentence structure. It is whether the person has a live reason to hear from you this week. We queue people on signals: a role opened three days ago on the company's own job board, a funding filing that named the executives, a post where someone described the exact problem out loud, a technology detection showing what they run.
The test is simple. If the first line of the message would still be true a year from now, it is not a signal, it is a description.
2. One checkable fact per message
Every message we send carries a fact with a source behind it: a specific job posting, a specific post, a specific product change. A lead without a fact is dropped from the batch rather than written to with a generic opener. This rule costs volume and buys the only thing that matters at the top of the funnel, which is the reader believing the message was written for them.
The cost is real: on some signals a third of a sourced list does not survive the fact check. That third would have produced the replies that make people say outbound is dead.
3. Saying what you sell in the first message
We spent a week measuring a four-message thread that asked four thoughtful questions and never once said what we do. The person answered the first two, shortened the third answer to three words, and went quiet. Five days of a stranger's attention spent, and they still could not have told a colleague what we sell.
Now the first touch says the product in one line, the message stays under 400 characters, and by the third message from us there is a proposed time. Diagnostic questions are excellent in a conversation with a buyer who knows what you sell. They are expensive with someone who does not.
4. Pacing that looks like a person
Volume is not the bottleneck people think it is. The account is. Sends spread across the whole working window, one cold touch per profile per minute at most, a warm-up ramp for a new sender, and a hard stop for the day when the platform pushes back once. A profile that fires its entire daily quota inside the first hour reads as automation to the platform and as a burst of notifications to the recipient.
We learned the last part the expensive way: eight profiles out of thirteen spent five days retrying invites into a temporary limit, three times a day. Now a refusal stops invitations from that profile until the next working day, and three refused days in a row pause it for a week. Fewer invites, and the accounts stay alive.
What the numbers look like on a normal week
A single warmed sender on a well-matched audience produces roughly this: 50 to 70 invites a week, 10 to 15 accepts, 2 to 4 replies, and 1 meeting every week or two. Multiply by senders, not by hope. The engine is linear in profiles, and the growth curve people expect from outbound comes from adding good senders and better signals, not from turning up the volume knob on one account.
Two things distort this shape. A tight signal can double the accept rate, and a bad list can halve it while everything else stays identical. Both are visible in a week if every batch carries its signal into the database, which is the entire reason we tag batches at all.
How to read your own numbers honestly
Three rules we hold ourselves to.
These two rates are recomputed from the engine database and kept current on the benchmarks page, which carries the date of its last recompute at the top. This article is the reasoning; that page is the live reading.
- No decision on noise. Under 30 sends or under 3 replies, a difference between two variants is not a difference. Wait for the sample.
- One change at a time. Two changes in the same week make the week unreadable. It feels slow and it is the only thing that compounds.
- Every number carries its denominator. In reports, in dashboards, in the sentence you say on a call. "27% on 186 sends" and "27%" are two different claims, and only one of them can be checked.
The part nobody writes down
The work that produces these numbers is mostly not writing. It is sourcing lists that deserve to be written to, checking a fact per person, watching a sender's health, answering the replies within a day, and closing the loop between what was sent and what came back. That loop is the product we sell, and it is why the numbers above hold on a boring Tuesday and not only in a case study.
If you want to see the same loop running on your own pipeline, the MCP access puts it inside your own Claude: ask who is queued for next week, read what went out in your name, cross out anyone before a message goes.