Skip to main content
A promo calendar that protects full-price demand: blackout rules, cohort targeting and capacity-safe templates

A promo calendar that protects full-price demand: blackout rules, cohort targeting and capacity-safe templates

How to run discounts that fill dead hours without training your best clients to wait for a sale

Most salon promos don't fail because the offer is bad. They fail because the offer lands on the wrong day, hits the wrong people, and gets measured over the wrong window. You send "20% off color this week," your Saturday was already 90% booked, and now you've handed a discount to clients who were going to pay full price anyway. The chair fills either way — the only thing that changed is your margin dropped.

A salon promo calendar isn't a list of holidays with a discount attached. It's a set of rules that decide when you're allowed to discount, who gets to see the offer, and how long you watch the results before deciding if it worked. Get those three things right and promos become a tool for filling gaps instead of a slow leak in your pricing.

The rules layer comes first, then the math.

The core problem: promos default to your busiest days and your best clients

Here's the pattern almost every salon falls into without meaning to.

You decide to run a promo. You post it everywhere — Instagram, your email list, a window sign. The offer runs all week. Whoever books, books. Feels fair. Feels simple.

But think about who actually responds fastest. Your most engaged, highest-frequency clients see your posts first because they follow you and open your emails. They're also the ones who'd have booked anyway. So the discount flows straight to the people who least need convincing. Meanwhile your Saturday, which was going to fill regardless, now fills at 20% off.

The dead hours you actually wanted to fill — Tuesday 10am, Thursday 2pm, that weird gap between school pickup and evening rush — stay empty, because the promo wasn't pointed at them specifically.

This is the whole game. A promo that isn't fenced by day, by client group, and by a clear measurement period is just a general price cut in disguise.

Rule 1: Blackout rules protect the days that don't need help

Blackout rules are the dates and time slots where promos simply don't apply. This is the single most valuable piece of the calendar and the one most salons skip.

The logic is straightforward: if a slot has strong full-price demand, discounting it is pure margin loss. You only want promos active on capacity you'd otherwise waste.

A practical blackout setup looks like this:

  1. Saturdays, all day — usually your highest-demand day, blackout by default
  2. Friday after 3pm — pre-weekend rush, rarely needs help
  3. The two weeks before major holidays (December, Mother's Day week, prom season) — demand is already peaking
  4. Any senior stylist's column running above ~80% booked on a 4-week rolling average

That last one matters. Blackouts shouldn't only be date-based — they should be capacity-based. A junior stylist sitting at 55% utilization on a Wednesday is exactly who your promo should point at. A senior booked solid three weeks out should never appear in a discounted slot.

If you've already built a capacity view for staffing, this connects directly to it. The same demand curve you use for seasonal forecasting and staffing tells you which weeks and which columns should be blacked out.

Rule 2: Cohort targeting decides who is even allowed to see the offer

Cohort targeting is where you stop blasting the whole list. Instead, you split clients into groups and send each group only the offer that makes sense for them.

The four cohorts that matter most for salons:

CohortDefinitionWhat they should getWhat they should NEVER get
Active regularsBooked within last 8 weeks, rebooks reliablyLoyalty perks, early access to booking, referral asksDiscounts on services they already pay full price for
LapsingLast visit 10–16 weeks ago, historically frequentA time-boxed win-back offerNothing — this is your prime promo target
Lost / dormantNo visit 4+ monthsAggressive reactivation, off-peak onlyWeekend slots
New / one-visit1 visit, no rebookSecond-visit incentive tied to a rebookDeep discounts that anchor them low

The rule of hand: discounts go to cohorts that are cold or at risk, never to your active regulars. The moment your regulars start receiving discount emails, you're teaching them to wait for the next one. That's how a healthy full-price base slowly erodes.

If you've read how memberships cannibalize full-price bookings when they're not fenced properly, this is the same failure wearing different clothes. Any offer — membership, promo, discount — that reaches people who'd pay full price is a leak.

For reactivation specifically, the lapsing and lost cohorts deserve different messaging and different urgency, but keep both pointed at off-peak capacity only.

Rule 3: Measurement windows tell you if it actually worked

This is where most owners get fooled. They run a promo, see 40 bookings come in, and call it a win — without ever asking how many of those would have booked anyway, or what happened to full-price bookings during the same window.

A measurement window is a fixed period — usually the promo duration plus a follow-on stretch — where you track three things:

  1. Incremental bookings — bookings above your normal baseline for that period
  2. Full-price displacement — did full-price bookings drop while the promo ran?
  3. Rebook rate of promo clients — did they come back at full price afterward?

That third one is the real prize. A promo that pulls in 30 lapsing clients and rebooks 12 of them at full price is a success even if the promo week itself broke even. A promo that fills chairs cheaply and converts nobody is just discounting your existing demand.

Set the follow-on window at 6–8 weeks so you can actually see rebook behavior before judging whether it worked.

The math: what "capacity-safe" actually means

Say a Wednesday column has 8 available appointment slots and normally fills 5 of them at full price. Average ticket is $85.

Baseline Wednesday: 5 × $85 = $425, with 3 slots wasted.

Now you run a promo targeting only the 3 empty slots, aimed at lapsing clients, at 25% off.

Discounted ticket: $85 × 0.75 = $63.75

If the promo fills all 3 empty slots and doesn't touch the 5 full-price ones: 5 × $85 + 3 × $63.75 = $425 + $191.25 = $616.25 That's roughly a 45% revenue lift on the day, and every discounted dollar came from capacity that was worth $0 before. This is capacity-safe.

Now the version most salons actually run — promo goes to everyone, all day: If just 2 of your 5 regulars use the discount because they saw it:

  1. 3 full-price × $85 = $255
  2. 2 discounted regulars × $63.75 = $127.50
  3. 3 promo fills × $63.75 = $191.25

Total = $573.75

You made less than the fenced version — $573.75 vs $616.25 — despite filling the same three empty slots, because you leaked $42.50 to regulars who'd have paid full freight.

The gap between those two numbers is the entire point of blackout rules and cohort targeting. Same offer, same fill rate, roughly $40 difference on a single quiet Wednesday. Multiply that across every promo you run in a year and it adds up fast.

A capacity-safe promo template you can copy

Here's the actual sequence for building one promo the right way.

  1. Pick the gap, not the calendar date. Identify the specific days and time blocks running under ~60% booked over the last 4 weeks. That's your promo capacity.
  2. Apply blackout rules. Remove any slot in a blackout window or in a stylist column above 80% booked.
  3. Set a slot cap. Decide the maximum number of discounted slots — never more than your actual wasted capacity. If Wednesday only has 3 empty slots, the promo cap is 3, not "unlimited."
  4. Choose the cohort. Lapsing or lost clients only. Suppress active regulars entirely.
  5. Set the offer floor. Discount deep enough to move a cold client but never below your variable cost plus a margin. Know your break-even per service before you set the percentage.
  6. Define the measurement window. Promo run plus a 6–8 week follow-on. Track incremental bookings, full-price displacement, and rebook rate.
  7. Set the stopping rule. Once the slot cap fills, the promo closes automatically. This is what stops it from bleeding into full-price demand.
Process diagram

This flow shows the step sequence and decision points for a single promo cycle.

Where this quietly breaks down in real salons

The rules are simple on paper. The failure is almost always in execution, and it's usually one of these:

  1. The offer can't be fenced at the booking level. If your booking system can't restrict a promo to specific slots or hide it from a cohort, you're relying on clients to self-select honestly. They won't.
  2. Front desk overrides. A regular asks "can I get that deal too?" and the receptionist says yes to be nice. One yes a day undoes the whole model.
  3. No slot cap. The promo fills the 3 empty Wednesday slots by Monday, but it's still live, so it keeps pulling bookings into displaced full-price time.
  4. Measuring too early. You judge the promo on booking-week volume and never see whether anyone rebooked.

The front-desk override problem is worth dwelling on. This is where most of the leakage actually happens — not from the offer design, but from ad-hoc kindness at the counter. A quick script fixes it: "That promo's for clients we haven't seen in a while — but you get first pick of appointment times, which honestly is the better deal on a busy week."

Train reception on a 15-second script and make overrides a documented exception that requires manager sign-off.

True, and it protects the price.

When capacity-safe promos actually make sense

Run this system when:

  1. You have consistent, identifiable dead hours (most salons do)
  2. You have a booking tool that can restrict offers by slot and hide them by client group
  3. You have enough lapsing or lost clients to fill the capped slots

Run this system when:

When this is a bad idea

Skip promos entirely — or run very few — if:

  1. You're already booked 85%+ across the week. You don't have a demand problem, you have a capacity problem, and discounting is the wrong tool.
  2. Your list is tiny and mostly active regulars. There's no cold cohort to point the offer at, so every discount hits full-price demand by definition.
  3. You can't measure rebook rate. If you can't see whether promo clients return, fix your tracking first.

Skip promos entirely — or run very few — if:

A quick real scenario

A two-stylist salon was running a monthly "15% off any service" email to their whole list of roughly 600 clients. Bookings looked fine, but their average ticket had been sliding for months and nobody could pinpoint why.

The fix was mechanical: they blacked out Fridays and Saturdays, capped the promo at the actual number of empty weekday slots (usually somewhere between 6 and 9 per week), and sent it only to clients who hadn't visited in 10 or more weeks — roughly 90 people. Active regulars stopped receiving discount emails entirely.

Over the next two months, weekday utilization on the quiet days climbed noticeably, average ticket stopped sliding, and about a third of the reactivated clients rebooked at full price. Total promo volume actually dropped — fewer discounted appointments overall — but revenue per available hour went up because the discounts finally landed on empty time instead of paid time.

Fewer promos, aimed better.

A promo calendar earns its keep by saying no more than it says yes. No to your busy Saturdays. No to your loyal regulars who'd pay full price. No to open-ended offers with no slot cap. What's left — a small, fenced discount pointed at cold clients filling genuinely wasted hours — is the only kind of promo that adds revenue instead of quietly subtracting it.

Build the three rules first: blackout windows, cohort targeting, and a measurement window with a stopping rule. Then run one promo through the template and actually watch the follow-on rebook numbers. You'll probably find you can run fewer promos, protect your pricing, and still fill more of the hours that were sitting empty.

Built for Salons Designed specifically for salon operations & workflows
Save Time Streamline bookings, staff scheduling & daily management
Delight Clients Faster booking experiences and smoother appointments
Grow Revenue Increase repeat visits and maximize chair utilization