Copy skill
Cold email copy fatigue and rotation
Give the assistant your live templates and their daily step-1 numbers, and it groups them into structural families, flags the tired ones against their own peak and returns a rotation plan with canary slices.
What it does
What the skill checks
- Groups templates by opener, structure, call to action and length, not wording
- Measures fatigue on the step-1 reply rate per family, not a blended rate
- Flags a family below 50% of its 7-day peak for two days in a row
- Plans 4 to 6 live families with daily volume caps and rest periods
- Sets up canary slices of identical leads to separate copy from list effects
- Lists non-copy causes to rule out first
Use it when
- When a template that worked for weeks gets fewer replies on the same list
- When you plan how many templates to run and how often to replace them
- When your variants differ only by synonyms or spintax
Example
What you paste and what you get back
3 templates, all "Quick question about {company}'s IT support" with synonym changes, 3,000 step-1 sends a day each. Step-1 reply rate fell from 1.2% to 0.5% over 3 weeks.The 3 templates are one family: same opener, structure, CTA and length.
Status: tired (below 50% of 7-day peak for 5 days). Rest 5 days.
Add 3 new families: condition-first fit question, trigger-event opener, two-sentence permission ask.
Cap each family at 2,500 step-1 sends a day.
Canary: 300 leads a day from one list, split at random across live families.Install
Install it in your assistant
The same file works everywhere. Claude and Claude Code load it as a skill; the other assistants follow it as instructions.
Claude Code
- Run the command below. It saves the skill to your personal skills folder, available in every project. For one project only, use .claude/skills in the project instead.
- Start a new Claude Code session. Claude uses the skill when your request matches its description, or when you name it.
mkdir -p ~/.claude/skills/copy-fatigue-rotation
curl -fsSL https://outreach2day.com/skills/copy-fatigue-rotation/SKILL.md -o ~/.claude/skills/copy-fatigue-rotation/SKILL.mdClaude (web and desktop)
- Download the ZIP file.
- In Claude, open Settings, find Skills under Capabilities and upload the ZIP. Skills need code execution to be turned on for your account.
- Ask for the task in any chat. Claude loads the skill when the request matches.
ChatGPT
- Download SKILL.md.
- Paste its text into a Project's instructions or a custom GPT's instructions. For a single chat, attach the file and write: follow the instructions in this file.
Gemini
- Download SKILL.md.
- Create a Gem and paste the file's text into its instructions, or attach the file to a chat and ask Gemini to follow it.
Grok
- Download SKILL.md.
- Paste its text into a Project's instructions, or attach the file to a chat and ask Grok to follow it.
Cursor and other coding agents
- Save the file as a project rule with the command below. Cursor reads the description to decide when to apply it.
- Agents that read AGENTS.md (Codex and others): paste the text into AGENTS.md or reference the file from it.
mkdir -p .cursor/rules
curl -fsSL https://outreach2day.com/skills/copy-fatigue-rotation/SKILL.md -o .cursor/rules/copy-fatigue-rotation.mdcSource
The full SKILL.md
Read it before you install it. Change the rules to match your own setup.
---
name: copy-fatigue-rotation
description: Plans rotation of cold email templates so no single template is sent until it wears out. Groups templates into structurally different families (opener device, structure, call-to-action type, length), caps daily volume per family, detects fatigue from the step-1 reply rate against the family's own recent peak, rests tired families and adds canary slices of identical leads to separate copy effects from list effects. Use when the user says reply rates are dropping on a template that used to work, asks how often to change copy, how many templates to run, or how to rotate spintax variants.
---
# Copy fatigue and rotation
You help keep cold email copy productive over time. Templates wear out after weeks of heavy sending: replies fall on the same list and the same mailboxes. The fix is structural rotation and rest, measured on a clean metric.
## Step 1. Inventory
Ask for every live template, the date it started, daily volume per template, and daily step-1 sends and replies per template for the last 2 to 4 weeks. Ask whether lists change between days.
## Step 2. Group into families
Two templates are in the same family if they share all four of:
1. Opener device (question, condition, observation, referral, trigger event).
2. Structure (order of offer, proof and ask).
3. Call-to-action type (fit question, interest check, permission to send info).
4. Length band (under 40 words, 40 to 70, over 70).
Synonym swaps and spintax variants do not make a new family. Filters and readers recognise the skeleton, not the words.
## Step 3. Measure fatigue correctly
- Use the **step-1 reply rate** (human replies to email 1 divided by email 1 sends), per family, per day.
- Compare a family only with itself, on a comparable list. A blended reply rate across all steps and lists moves when the mix of lists or steps changes, even if no template got worse.
- Ignore days with fewer than about 1,000 step-1 sends per family. The noise is larger than the effect.
- **Fatigue rule:** a family is tired when its step-1 reply rate is below 50% of its own 7-day peak for 2 days in a row.
## Step 4. Rotation plan
- Keep 4 to 6 families live at a time, with a pool of 10 or more written.
- Cap daily volume per family so no family carries most of the traffic. Spread volume roughly evenly.
- Rest a tired family for 4 to 6 days, then bring it back on a fresh list and watch whether it recovers. If it does not recover after rest, retire it.
- Replace retired families with structurally new ones (step 2), not with a reworded copy.
- New families start at a small daily volume and ramp over a week.
## Step 5. Canary slices
Every day, send a small slice of leads drawn from the same list, split at random, to every live family (for example a few hundred per family). The canary compares families on identical leads, so a drop that shows up in every family points to the list or the infrastructure, and a drop in one family points to that copy.
## Output format
1. Family table: family, templates, start date, daily volume, 7-day peak step-1 reply rate, latest, status (live / tired / resting / retired).
2. Actions for the next 7 days.
3. Canary setup: slice size, list, assignment rule.
## Rules
- Before blaming copy, rule out the bigger causes: bounces, spam placement, a new list source, a broken merge field, a paused mailbox group.
- Do not declare a winner or a fatigue on a handful of replies.
- Keep the family label in variant or campaign names so replies can be grouped.
## Example
Input: 3 templates, all "Quick question about {company}'s IT support" with synonym changes, 3,000 step-1 sends a day each, reply rate down from 1.2% to 0.5% over 3 weeks.
Output: the 3 templates are one family (same opener, structure, CTA and length). Tired: below 50% of peak for 5 days. Rest it for 5 days. Launch 3 new families: a condition-first fit question, a trigger-event opener, and a short two-sentence permission ask. Cap each at 2,500 a day. Canary: 300 leads a day from one list, split across all live families.
FAQ
Questions
How often should I change my cold email copy?
Change it when the data says so, not on a calendar. Track the step-1 reply rate per template family against its own recent peak, and rest or replace a family when it falls well below that peak for several days on a comparable list.
Does spintax stop a template from wearing out?
No. Spintax changes the words, but readers and filters recognise the structure. Rotating structurally different templates does more than adding synonyms.
Why is my reply rate dropping if the copy did not change?
Often it is not the copy. Check for a new list source, more follow-up volume in the mix, bounces, spam placement or a broken merge field before you rewrite anything.
Mailboxes, warm-up and sending in one place
$2.50 a mailbox a month. DNS records are set for you, and every mailbox shows its warm-up numbers from day one.