- Sales
- v1.0.0
- revops
Campaign benchmarking
Use this skill when someone needs to know whether a campaign's numbers are actually good — before setting targets for a launch, when reporting performance to someone who needs context rather than raw figures, or when comparing across clients, segments, and time periods. Produces a verdict with the comparison layer named, plus what to do about it. Trigger phrasings: "is this reply rate good", "what should we expect", "set targets for this campaign", "how do we compare", "benchmark this", "our numbers dropped", "is 3% good", "what's a normal reply rate".
SKILL.md
Applies when a number needs a verdict. Produces the verdict, the layer it was judged against, and the action it implies.
A number without a comparison is not a result
A 5% reply rate is exceptional cold to enterprise executives and poor for warm re-engagement with existing users. The number alone tells you nothing. Benchmarking supplies the missing half — whether to celebrate, optimise, or stop.
Three layers, in order of usefulness
Layer 1 — external averages. Published figures aggregated across platforms and agencies. Use these as a sanity check only: they average across wildly different offers, segments, and levels of competence, so they're a floor for "is something catastrophically wrong", never a target.
Layer 2 — your own history. What the same motion produced for you before. This is the layer that actually drives decisions, and it's the one most teams don't keep. Building it costs nothing but the discipline of recording every campaign's outcome next to its offer, segment, and volume.
Layer 3 — like-for-like within your own book. The same offer to a different segment, or the same segment with a different offer. This is the only layer that isolates a variable well enough to be causal.
Always name which layer you judged against. "Below benchmark" means nothing until you say whose.
Compare like with like, or don't compare
A comparison is only valid when the offer, the segment, the channel, and the relationship temperature are held roughly constant. Campaign A beating campaign B tells you nothing if A went to a warmer list — which is how most internal "winning variant" conclusions get made.
Volume matters as much as the rate. A 12% reply rate on 40 sends is not a result, it's noise wearing a percentage sign. State the denominator every time; a rate quoted without its sample size should be treated as unreported.
Set targets from your own floor
For a new campaign, take your own median for the closest comparable motion as the expected case, your own best as the ceiling, and set the kill threshold below the floor — not from a published industry figure. Decide the kill threshold before launch, in writing. Deciding it afterwards is how a campaign gets kept alive on hope.
What good looks like
The tell of a good operator: they keep their own history, and they trust it over any published figure — because their median across their own campaigns is the only benchmark that already accounts for their offer, their market, and their execution.
The mediocre version quotes an industry average from a vendor's blog post to justify a result that's actually mediocre for that team. It's the most common way a declining campaign gets defended for another month.
Good output states the number, the layer it was compared against, the sample size, the verdict in one word, and the single action it implies. A benchmark that doesn't change what you do next was a decoration.
Rules
- MUST state the sample size alongside every rate.
- MUST name which layer a comparison was made against.
- MUST set the kill threshold before launch, not after the numbers arrive.
- NEVER compare campaigns that differ in offer, segment, channel, or temperature.
- NEVER present an external average as a target.
Files
1 file ship with this skill. They are installed beside the SKILL.md.
Campaign benchmarking
Imported from the GTM Skills library by Swan (https://www.gtmskills.com), skills/tanyo-gochev/campaign-benchmarking
at https://github.com/swan-gtm/gtm-skills/commit/5d786aad0c7b2ca59b1abf1f601f9407ca261996. Written by Tanyo Gochev (https://www.linkedin.com/in/tanyo/).
The skill is shared under the MIT License below; this notice must stay with any copy.
MIT License
Copyright (c) 2026 Swan
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.