Send Time
Send scheduling for ecommerce teams: pick the window and the channel on revenue per recipient rather than open rate, so timing is set by what the send earns.
Send times get chosen by habit, by whatever an industry benchmark suggested once, or by the ESP's own optimizer, which schedules on predicted opens. Opens are the wrong target. The window that maximizes opens and the window that maximizes revenue per recipient are frequently hours apart, because the people most likely to open at 7am are not the people most likely to buy. The channel choice has the same problem: SMS wins on immediacy and loses on margin once you count the per-message cost. This skill ranks windows and channels on revenue per recipient and schedules each send accordingly.
What It Does
- Measures revenue per recipient by send window rather than open rate by window.
- Separates the window that gets attention from the window that gets orders.
- Compares email and SMS on net revenue after per-message cost.
- Adjusts per segment, because commuters and browsers buy at different hours.
- Accounts for time zone spread across your own list.
- Schedules the send window and channel for each campaign.
Use Cases
- Stop scheduling on a benchmark that was never measured on your list.
- Find the window where opens are lower and revenue per recipient is higher.
- Decide SMS against email on margin rather than on urgency.
- Schedule a multi time zone list without sending everyone at one local hour.
Example Session
When should Thursday's campaign go out, and on which channel?
Your best opening window and your best earning window are four hours apart.
- Window | Channel | Open rate | Rev per recipient | Net after cost
- 07:00 local | Email | 41% | $0.38 | $0.38
- 11:00 local | Email | 33% | $0.61 | $0.61
- 11:00 local | SMS | n/a | $0.74 | $0.29
- 19:00 local | Email | 36% | $0.44 | $0.44
Send at 11:00 local on email. The 07:00 slot opens best and earns a third less, because morning openers read and move on. SMS earns most per recipient and least after cost: at your per-message rate it nets $0.29, so keep it for time-sensitive sends where the immediacy is the point rather than as the default channel.
Why This Beats Prompting It Yourself
Open Rate vs Revenue Per Recipient: The Hidden Risk
A generic prompt schedules on open rate, because open rate is the number every guide optimizes. The window that maximizes opens is usually early morning, when people clear their inbox rather than shop. Recommending it is defensible on every metric the prompt can see and costs real revenue on the only one that matters.
When You Still Need The Cost Of The Channel
Channel choice is a margin decision that looks like a speed decision. This skill states $0.74 per recipient on SMS becoming $0.29 after the per-message cost, against $0.61 net on email, which reverses the obvious answer. The window recommendation comes from the same measurement, so timing and channel are decided together rather than in sequence.
Known Limitations
Revenue per recipient by window needs enough sends per window to be stable, so a list that has only ever sent at one hour will produce a wide first estimate and the output says so. Time zone handling depends on location being available on the contact record, and where it is missing those contacts are grouped into your primary zone. It schedules the send and does not build the campaign in your ESP.
Install It
- Download the ZIP.
It is free and there is no account to create. - Unzip it into your agent's skills folder.
Claude Code reads ~/.claude/skills/, which is hidden by default: the command in the folder block opens it. Other agents scan their own directory, so drop the same folder there instead. - Ask your agent to use it.
Restart the agent if it was already running, then it picks the skill up with no config.
skills folder
Copy
~/.claude/skills/send-time/
SKILL.md
references/window-model.md
schedules/
# one schedule per send, with the measurement
# macOS: create the folder and open it in Finder
mkdir -p ~/.claude/skills && open ~/.claude/skills
# Windows: paste in the Explorer address bar
%USERPROFILE%\.claude\skills\Frequently asked questions
How is this different from my ESP's send time optimization?
Most optimizers predict opens, because opens are what they can measure reliably. This measures revenue per recipient by window and by channel, net of per-message cost. Those two targets disagree often enough that the recommendation changes for most lists.
Which agents does the skill run in?
Any agent that supports the open SKILL.md format: Claude Code, Cursor, Codex CLI, GitHub Copilot, Gemini CLI, Manus, Grok and others load it unmodified. The format is portable, the location is not. Each agent scans its own skills directory, so you drop the same folder into whichever one yours uses. There is no config file to edit and no API key to provision.
What does it need connected to work?
Send history with timestamps, plus orders so revenue can be attributed per recipient. Without orders it falls back to engagement and labels the recommendation as an engagement optimum rather than a revenue one, which is the honest description of what it then is.
Why does it rarely recommend SMS as the default?
Because SMS usually earns more per recipient and costs enough per message to end up behind email on net. It stays the right channel for genuinely time-sensitive sends, and the output prices both so the choice is explicit rather than habitual.
How does it handle multiple time zones?
It schedules per zone rather than at one absolute hour, using location on the contact record. Contacts without a location are grouped into your primary zone and counted separately, so you can see how much of the list is being scheduled on an assumption.
What is included with the skill?
The skill itself, the window model reference, the schedule template, and the channel cost inputs. It is free and security scanned. We re-publish the ZIP when the window model changes, so download it again if your recommendations start shifting.
The best send time is the one that earns, not the one that opens.
Polar ties send windows to net revenue per recipient across 45+ sources, so timing is set on orders rather than on engagement proxies.
<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"How is this different from my ESP's send time optimization?","acceptedAnswer":{"@type":"Answer","text":"Most optimizers predict opens, because opens are what they can measure reliably. This measures revenue per recipient by window and by channel, net of per-message cost. Those two targets disagree often enough that the recommendation changes for most lists."}},{"@type":"Question","name":"Which agents does the skill run in?","acceptedAnswer":{"@type":"Answer","text":"Any agent that supports the open SKILL.md format: Claude Code, Cursor, Codex CLI, GitHub Copilot, Gemini CLI, Manus, Grok and others load it unmodified. The format is portable, the location is not. Each agent scans its own skills directory, so you drop the same folder into whichever one yours uses. There is no config file to edit and no API key to provision."}},{"@type":"Question","name":"What does it need connected to work?","acceptedAnswer":{"@type":"Answer","text":"Send history with timestamps, plus orders so revenue can be attributed per recipient. Without orders it falls back to engagement and labels the recommendation as an engagement optimum rather than a revenue one, which is the honest description of what it then is."}},{"@type":"Question","name":"Why does it rarely recommend SMS as the default?","acceptedAnswer":{"@type":"Answer","text":"Because SMS usually earns more per recipient and costs enough per message to end up behind email on net. It stays the right channel for genuinely time-sensitive sends, and the output prices both so the choice is explicit rather than habitual."}},{"@type":"Question","name":"How does it handle multiple time zones?","acceptedAnswer":{"@type":"Answer","text":"It schedules per zone rather than at one absolute hour, using location on the contact record. Contacts without a location are grouped into your primary zone and counted separately, so you can see how much of the list is being scheduled on an assumption."}},{"@type":"Question","name":"What is included with the skill?","acceptedAnswer":{"@type":"Answer","text":"The skill itself, the window model reference, the schedule template, and the channel cost inputs. It is free and security scanned. We re-publish the ZIP when the window model changes, so download it again if your recommendations start shifting."}}]}</script>
