Journals / Case study

How Wayfair decides how often to email each customer

In 2022 Wayfair described Nightingale, a family of models that puts a net value on each daily sales email and turns it into one to seven sends a week. A four-week test cut the cost of unsubscribes by 7%.

24 OCT 20267 min readMarketing automation · Decision models · Email and WhatsApp Based on: Wayfair, 2022
Wayfair's two-step diagram. Step 1 predicts what a customer will do after an email, with example chances of 0.2 for a purchase, 0.1 for an unsubscribe and 0.7 for neither. Step 2 computes net value as the chance of an attributed purchase times expected revenue, minus the chance of an unsubscribe times the expected unsubscribe cost.
Image: Wayfair

Wayfair and its brands "send out millions of marketing emails every day". Each one can earn a sale or lose a subscriber for good. In May 2022 Tony Cheng of Wayfair's tech team described Nightingale, the family of models that decides how often each customer gets the daily sales email. The idea worth copying is simple: put a price on both outcomes, then let the difference decide.

The problem: every email can earn or cost

The older model targeted customers by past behaviour, but it priced only one side: "Our previous model could not estimate the potential revenue and benefits from our daily sales emails and the opportunity costs if customers unsubscribed from our emails." It was also trained in notebooks, retrained by hand and fed with random data collected in 2019. Fresh data alone, the post says, gave "at least a 4% performance lift".

The question here is cadence, how many emails a week. Timing is a separate system: "However, Send Time Optimization will not be covered in this article".

How they built it

Predict three outcomes. For every subscribed customer, Nightingale estimates the chance that they buy, unsubscribe or do nothing after a daily sales email. There are separate models per region and brand, built on "more than 500 customer features" such as page views, items added to cart, email clicks and orders. The post describes the current models as random forest classifiers in PySpark.

Put money on each outcome. Two companion models estimate each customer's expected revenue if they buy (Horus) and the cost if they unsubscribe (Osiris). Net value is the chance of a purchase times its expected revenue, minus the chance of an unsubscribe times its expected cost, as the diagram above shows.

Turn the score into a schedule. Customers are ranked by net value and cut into bins, and "customers in the highest bins (highest Nightingale net score) receive 7 sends per week", middle bins five or three, the lowest one. Where to cut is a business choice: the "applicability cadence is decided by historical Marketing analysis and previous A/B tests". A weekly table then maps each group to days, for example Monday, Wednesday and Saturday for the three-email group.

Wayfair's diagram: a distribution of net value scores for active customers, the same scores turned into percentile ranks, thresholds that cut the ranks into groups of 1, 3 and 7 sends a week, and a table mapping group 7 to every day, group 3 to Monday, Wednesday and Saturday, and group 1 to Saturday
From score to schedule: rank, cut into groups, map each group to weekdays. Image: Wayfair

Retrain on random data. Dashboards watch for decay, which comes roughly every six months. Before each retrain the team will "Send out emails by random frequency to a random holdout group of customers for 4 weeks to collect unbiased retraining data." Without that holdout, the model would only learn from the schedule it set itself.

What it delivered

Offline, Nightingale scores "AUCs ~0.8+ for the attributed revenue and null class, and ~0.7+ for the unsubscribe class", which Wayfair puts at about 4% better than the previous version. Online, a four-week A/B test against the old model found that "the new model reduced unsubscribe (opportunity) cost by 7% without impacting our revenue and main customer engagement metrics."

Read the result with care. The post gives no sample size, no confidence interval and no revenue figure, so "without impacting" means no change was reported. The score values purchases attributed to an email, not sales the email caused; uplift is not mentioned. And the cut-offs are set by hand: Wayfair itself lists the cost of testing "bespoke sending decision thresholds" as a problem to solve.

What has changed since

Wayfair moved to reinforcement learning. In 2023 Tony Cheng described Griffin, which uses contextual bandits, a method that tries options and learns from the response. "Previously, we built four separate machine learning models to make separate send decisions - one for each combination of channel and type of notification." Griffin learns from what can be seen quickly: its "reward function uses email engagement metrics (metrics that can be observed in an email/push session, like clicks and unsubscribes)".

Marketing tools now sell the idea. Braze's Decisioning Studio aims to "find the best message, product, incentive, channel, timing, and frequency for each individual customer". Klaviyo says its Personalized Send Time "uses reinforcement learning", for email, SMS, push and WhatsApp.

Opens stopped being a signal. Apple's Mail Privacy Protection, announced in 2021, "helps users prevent senders from knowing when they open an email" (Apple). Nightingale learns from purchases and unsubscribes, not opens, so its design holds up.

Mailboxes put a price on annoyance. Since February 2024 Gmail requires bulk senders' marketing messages to "support one-click unsubscribe" and to keep reported spam "below 0.10%" (Google); Yahoo tells senders to "Honor unsubscribes within 2 days" (Yahoo). Send too often and the cost is no longer just one lost subscriber.

Why it matters for your business

In Indonesia the channel is often WhatsApp, and there the arithmetic changes. Since July 2025 Meta has charged per message, and "Businesses are only charged when a message is delivered" (Meta). It also "may limit the number of marketing template messages a WhatsApp user receives from any business", and "The per-user marketing limit adapts automatically over time based on a person's recent engagement levels" (Meta). So the net value of a send gets a third term, its price, and a customer who tunes out marketing messages may receive fewer of them, yours included. WhatsApp's policy adds that businesses "must respect all requests (either on or off WhatsApp) by a person to block, discontinue, or otherwise opt out".

The law points the same way. UU No. 27 of 2022 lets people withdraw consent (Article 9) and gives the business "paling lambat 3 x 24 (tiga kali dua puluh empat) jam", three days at most, to stop processing after a withdrawal (Article 40(2)) (JDIH). Its implementing regulation, Government Regulation No. 33 of 2026, takes effect on 16 January 2027 and asks consent-based offers to explain "the mechanism for withdrawing consent and for reporting continued solicitations after withdrawal", according to Hogan Lovells Cadwalader. We are engineers, not lawyers.

How we would build it today

  1. Score two outcomes. The chance a customer buys within a few days of a message, and the chance they opt out or block.
  2. Price each send. Net value = chance to buy x margin, minus chance to stop x future value lost, minus the cost of the message. On WhatsApp that last term is real money; on email it is close to zero.
  3. Start with three or four tiers per channel. Set the cut-offs with simple A/B tests; let a bandit tune them once you trust the scores.
  4. Keep a random holdout running. Five to ten percent of customers on a random schedule keeps the training data honest and lets you measure the margin your messages add, not just the purchases they touch.
  5. Learn from clicks, replies and orders, not opens.
  6. Make stopping easy and fast. One-tap opt-out, honoured at once, consent by channel and topic, proof of consent kept. Treat Meta's per-user cap as a ceiling, and respect quiet hours in WIB, WITA and WIT.

The lasting lesson from Wayfair: an unsubscribe is a cost, so give it a number. Once both sides of a send are priced, how often to send stops being a matter of taste.