Skip to content
Glassjaw
Lifecycle & retention 7 min read

Frequency capping when every team wants a send

Five teams, one inbox. How to build a contact policy that survives peak trading: counting per person, setting precedence, and reading the effect on complaints and revenue.

Abstract cover art: paths branching between waypoints on a dark blue field

The calendar meeting is where this becomes visible. Trading wants three sends this week because stock needs to move. Brand has a campaign that has been signed off for a month. Loyalty wants a points-expiry reminder. Product has a feature announcement. CRM has a reactivation flight that has been postponed twice already.

Everybody is reasonable. Every request has a business case. Nobody in the room is looking at the only number that matters, which is how many of these messages will land on the same person.

We usually ask a simple question at that point: how many emails did your most engaged customer get last week? In most programmes nobody knows, and the answer, when we pull it, is higher than anyone in the room guessed. Contact pressure is not a campaign problem. It is a counting problem that nobody owns.

Count what one person receives, not what each team sends

Start with the count, before any policy discussion. Pull ninety days of send logs, group by contact rather than by campaign, and produce a distribution: how many messages the median contact received per week, the ninetieth percentile, and the maximum.

Do it across every channel at once. Email, SMS, push, in-app, direct mail and the message a customer service tool sends when a ticket closes. A person does not experience your channels separately, and a cap that only counts email is a cap on the cheapest channel, which is rarely the most intrusive one.

Two things almost always fall out of that first pull.

  • The heaviest recipients are your best customers. They qualify for more segments, so they trigger more journeys, so they get more messages. The programme is hardest on the people it can least afford to lose.
  • A meaningful share of the volume comes from triggered messages nobody counted, because they were built once and never appear on the campaign calendar.

Put the distribution on one page and take it to the calendar meeting. The argument about frequency stops being about taste as soon as there is a number attached to it.

Cap the person, not the channel

A contact policy is a set of rules about a person, applied at the moment of send. The useful version has three layers.

The first is a hard ceiling: the maximum number of marketing messages a person can receive in a rolling period, counted across channels. A rolling window is important. A weekly counter that resets on Monday allows five messages on Sunday and five on Monday.

The second is a minimum gap: the shortest interval allowed between two marketing messages to the same person. This catches the case where a broadcast and a triggered journey fire within an hour of each other, which is the pattern that generates complaints.

The third is a set of exemptions, written down and short. Service and transactional messages sit outside the cap entirely: password resets, order confirmations, delivery updates, payment failures. If you are ever tempted to add a promotional block to one of those to get around the ceiling, that is the moment the policy is being gamed rather than applied.

Set the numbers by looking at your own distribution rather than at a published benchmark. A sensible first cap is close to what your reasonably engaged contacts already receive, not a dramatic cut. You are aiming to remove the tail, not to halve the programme in one step.

Decide precedence before peak, not during it

A cap without precedence rules is just a race. Whichever journey evaluates first wins the slot, and that is usually an accident of how the platform schedules its queries.

Rank your message types once, in a document, and get it signed off outside the pressure of a trading week. A ranking we have used as a starting point, highest first:

  1. Service and operational messages, which are exempt and always go.
  2. Time-critical triggered messages tied to an action the person took, such as a basket or browse follow-up.
  3. Lifecycle journeys with a defined window, including onboarding and the second-purchase programme.
  4. Targeted campaigns with a genuine segment behind them.
  5. Broadcast sends to the whole file.

The fifth category is the one that loses its slot, and that is the right outcome. A message that was going to everyone anyway costs the least when one person misses it.

Two rules make the ranking work in practice. Higher-priority messages suppress lower-priority ones, rather than the other way round, and a suppressed broadcast is simply not sent to that person rather than queued for tomorrow. Queued messages accumulate and then all arrive at once, which is the problem you started with.

New-customer journeys deserve their own protection inside this. Somebody in their first thirty days should not be pulled into a full trading calendar. The reasoning is the same one behind the second-purchase programme: the early sequence has one job, and general promotion competes with it directly.

What the cap actually does to the numbers

Expect three effects, and measure all three, because the first one is the one that gets the policy reversed.

Total sends fall, so total revenue attributed to email usually falls with them in the first month. Revenue per recipient rises. If your reporting is built on programme totals rather than per-person value, the policy will look like a loss on the day the board reads it. Fix the reporting before you launch the cap.

The complaint rate and the unsubscribe rate fall, typically fastest among your highest-frequency recipients. That is the mechanism you are actually buying: list preservation. Every unsubscribe is a customer you can no longer reach in the channel with your best margin.

The slow effect is on churn, and you will not see it for a couple of quarters. Track it by cohort, comparing the people who were over the cap before it was introduced with a similar group who were not.

If you want a clean read rather than a directional one, hold back a group from the new policy for a fixed period and compare. It costs a little complexity and it settles the argument for two years.

Run the calendar as a booking system

The governance is the part that fails, not the technology. Most platforms can enforce a cap. Very few organisations can hold the line on one in November.

Treat calendar slots as finite. Each week has a fixed number of promotional slots per segment, teams book against them, and a booking that is taken is taken. Exceptions are allowed and should be written down with a named approver and an expiry date, because an exception that is never reviewed becomes the new policy.

Review the distribution monthly with the same chart you used at the start. If the ninetieth percentile has crept back up, something is being sent outside the system, and it is usually a journey that was rebuilt in a hurry.

The hardest part is the first refusal. Say no to one send that a senior person wanted, show the per-person numbers that justified it, and the policy becomes real. Skip that moment and you have a document rather than a contact policy.

Earlier on this topic · 1

Ready to transform your marketing?

Let's build something great.

By sending this form you agree to our privacy policy.