*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;color:#e8dcc0;font-family:Georgia,'Times New Roman',serif;line-height:1.7;font-size:17px;background:#2b1d12;background-image:radial-gradient(ellipse at 20% 0%,#3a2818 0%,transparent 60%),radial-gradient(ellipse at 80% 100%,#241610 0%,transparent 55%)} h1,h2,h3{line-height:1.25;font-weight:700} a{color:#e8c874;text-decoration:none} a:hover{text-decoration:underline;color:#f4df9e} .wrap{max-width:1120px;margin:0 auto;padding:0 24px} .brass-text{background:linear-gradient(135deg,#b08d3e,#e8c874 60%,#b08d3e);-webkit-background-clip:text;background-clip:text;color:transparent} .site-header{background:#1d120a;border-bottom:2px solid #b08d3e;position:sticky;top:0;z-index:50} .site-header .wrap{display:flex;align-items:center;gap:20px;padding:12px 24px;flex-wrap:wrap} .brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#e8dcc0;font-size:23px;font-weight:700;letter-spacing:.5px} .brand:hover{text-decoration:none;color:#e8c874} .brand svg{width:40px;height:40px} .nav{display:flex;gap:2px;flex-wrap:wrap;margin-left:auto;align-items:center} .nav a{text-decoration:none;color:#d8c9a3;font-size:15px;padding:9px 14px;border:1px solid transparent} .nav a:hover{color:#e8c874;border-color:#6b5326;background:#241708;text-decoration:none} .nav a.cta{background:linear-gradient(135deg,#b08d3e,#e8c874);color:#2b1d12;font-weight:700;border:1px solid #e8c874} .nav a.cta:hover{background:linear-gradient(135deg,#c49a48,#f0d284);color:#2b1d12} .rivets{height:16px;background-color:#1d120a;background-image:radial-gradient(circle,#e8c874 2.6px,rgba(232,200,116,0) 3.2px);background-size:26px 16px;background-repeat:repeat-x;background-position:center} .hero{padding:56px 0 10px;position:relative;overflow:hidden} .hero-gears{position:absolute;right:-30px;top:20px;opacity:.28;pointer-events:none} .hero-gears svg{width:220px;height:220px;animation:spin 40s linear infinite} .hero-gears svg.small{width:130px;height:130px;animation-direction:reverse;animation-duration:28s;margin-left:-40px;vertical-align:top} @keyframes spin{to{transform:rotate(360deg)}} @media(prefers-reduced-motion:reduce){.hero-gears svg{animation:none}} .hero-inner{position:relative;max-width:70ch} .eyebrow{display:inline-block;border:1px solid #b08d3e;color:#e8c874;font-size:13px;letter-spacing:2.5px;text-transform:uppercase;padding:7px 18px;margin-bottom:18px;background:#241708} .hero h1{font-size:clamp(36px,5.4vw,58px);margin:0 0 16px;color:#f4ead2} .lede{color:#c9b891;font-size:18px} .tool-frame{background:#1d120a;border:2px solid #b08d3e;margin:32px 0 12px;box-shadow:0 0 0 6px #241708,0 0 0 7px #6b5326,0 24px 60px rgba(0,0,0,.5)} .tool-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 26px;background:linear-gradient(135deg,#3a2818,#2b1d12);border-bottom:1px solid #6b5326} .tool-head h2{margin:0;font-size:25px;color:#f4ead2} .privacy-chip{margin-left:auto;display:inline-flex;align-items:center;gap:8px;border:1px solid #e8c874;color:#e8c874;font-size:13px;letter-spacing:1px;padding:8px 16px;background:#241708;font-family:inherit} .privacy-chip svg{width:16px;height:16px} .tool-body{padding:28px 26px;background:linear-gradient(180deg,#f1e6cc,#e9d9b8);color:#2b1d12} .opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin-bottom:24px} .opt{background:rgba(255,255,255,.35);border:1px solid #b08d3e;padding:18px} .opt-label{display:block;font-weight:700;font-size:14px;letter-spacing:1.5px;text-transform:uppercase;color:#7a5c22;margin-bottom:12px;font-family:Georgia,serif} .opt-hint{font-size:13.5px;color:#6b5a3e;margin:10px 0 0} .seg{display:flex;flex-wrap:wrap;gap:8px} .seg button{border:1px solid #a8873f;background:#fbf6e9;color:#2b1d12;padding:8px 15px;font-size:13.5px;cursor:pointer;font-family:Georgia,serif} .seg button:hover{border-color:#7a5c22} .seg button[aria-pressed="true"]{background:linear-gradient(135deg,#b08d3e,#e8c874);color:#2b1d12;border-color:#7a5c22;font-weight:700} .num-row{display:flex;align-items:center;gap:12px} .num-row input[type=range]{flex:1;accent-color:#b08d3e} .num-row input[type=number]{width:70px;border:1px solid #a8873f;padding:8px 10px;font-size:15px;font-family:Georgia,serif;background:#fbf6e9;color:#2b1d12} .count-val{font-weight:700;color:#7a5c22;font-size:20px;min-width:40px;text-align:center} .actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:8px} .btn{border:2px solid #7a5c22;background:transparent;color:#5c4419;padding:12px 26px;font-weight:700;font-size:15px;cursor:pointer;font-family:Georgia,serif;display:inline-flex;align-items:center;gap:9px;text-decoration:none} .btn:hover{background:#e9d9b8;text-decoration:none} .btn.primary{background:linear-gradient(135deg,#b08d3e,#e8c874);color:#2b1d12;border-color:#7a5c22} .btn.primary:hover{filter:brightness(1.06)} .btn svg{width:17px;height:17px} .btn:disabled{opacity:.4;cursor:not-allowed} .copy-note{font-size:14px;font-weight:700;color:#5c6e1f} .output{margin-top:20px;background:#fbf6e9;border:1px solid #b08d3e;min-height:130px;padding:20px} .output ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px} .output li{background:#fffdf6;border:1px solid #d8c9a3;border-left:5px solid #b08d3e;padding:13px 18px;cursor:pointer;display:flex;gap:14px;align-items:flex-start;box-shadow:2px 2px 0 rgba(122,92,34,.15)} .output li:hover{background:#fdf8ea} .output li .idx{flex:none;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#b08d3e,#e8c874);color:#2b1d12;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:15px} .output li .txt{min-width:0} .output li .nm{display:block;font-weight:700;font-size:18px;color:#2b1d12} .output li .ds{display:block;font-size:14px;color:#5c4f38} .output li .rl{display:block;font-size:13px;color:#7a5c22;font-style:italic;margin-top:3px} .output li .mini-copy{margin-left:auto;flex:none;font-size:12px;font-weight:700;color:#7a5c22;border:1px dashed #a8873f;padding:5px 12px;align-self:center;letter-spacing:1px} .output .placeholder{color:#a08c62;text-align:center;margin:32px 0;font-size:15px;font-style:italic} .output-meta{margin-top:12px;font-size:13.5px;color:#6b5a3e} .limits{margin-top:22px;background:#fbf6e9;border:2px dashed #a8873f;padding:20px 22px;color:#2b1d12} .limits h3{margin:0 0 10px;font-size:20px;color:#7a5c22;display:flex;align-items:center;gap:10px} .limits h3 svg{width:22px;height:22px;flex:none} .limits ul{margin:0;padding-left:20px;font-size:15px;color:#5c4f38} .limits li{margin-bottom:7px} .section{padding:52px 0 8px} .section h2{font-size:clamp(28px,3.6vw,40px);margin:0 0 14px;color:#f4ead2} .sub{color:#c9b891;max-width:68ch;margin:0 0 24px} .cards3{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px} .card{background:linear-gradient(180deg,#f1e6cc,#e9d9b8);color:#2b1d12;padding:24px;display:flex;flex-direction:column;border:1px solid #a8873f;box-shadow:4px 4px 0 rgba(0,0,0,.35)} .card h3{margin:0 0 10px;font-size:20px;color:#3a2a12} .card p{margin:0 0 14px;color:#5c4f38;font-size:15px;flex:1} .card .icon{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#b08d3e,#e8c874);display:flex;align-items:center;justify-content:center;margin-bottom:14px} .card .icon svg{width:24px;height:24px} .card a.more{font-weight:700;font-size:15px;color:#7a5c22} .prose{max-width:74ch} .prose p{margin:0 0 16px;color:#d8c9a3} .prose h2{margin:36px 0 12px;font-size:27px;color:#f4ead2} .prose h3{margin:28px 0 10px;font-size:20px;color:#e8c874} .prose ul,.prose ol{margin:0 0 18px;padding-left:22px;color:#d8c9a3} .prose li{margin-bottom:8px} .prose table{width:100%;border-collapse:collapse;margin:18px 0;font-size:15.5px} .prose th{background:#3a2818;color:#e8c874;text-align:left;padding:10px 14px;border:1px solid #6b5326} .prose td{padding:10px 14px;border:1px solid #6b5326;color:#d8c9a3} .prose strong{color:#f4ead2} .callout{background:#3a2818;border-left:5px solid #e8c874;padding:18px 22px;margin:20px 0;color:#d8c9a3} .callout p{margin:0} .faq-item{background:#241708;border:1px solid #6b5326;padding:18px 22px;margin-bottom:14px} .faq-item h3{margin:0 0 8px;font-size:19px;color:#e8c874} .faq-item p{margin:0;color:#c9b891;font-size:15.5px} .site-footer{background:#1d120a;border-top:2px solid #b08d3e;margin-top:70px;padding:44px 0 30px} .site-footer .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:26px} .site-footer h4{color:#e8c874;margin:0 0 12px;font-size:16px;letter-spacing:1px} .site-footer a{color:#a8935f;font-size:14.5px;display:block;margin-bottom:8px} .site-footer a:hover{color:#e8c874} .site-footer .fine{grid-column:1/-1;font-size:13px;color:#7a6647;border-top:1px solid #3a2818;padding-top:18px;margin-top:6px} .breadcrumb{font-size:13.5px;color:#a8935f;margin:22px 0 0} .breadcrumb a{color:#e8c874} .page-hero{padding:44px 0 6px} .page-hero h1{font-size:clamp(32px,4.6vw,48px);margin:0 0 14px;color:#f4ead2} .gear-deco{width:64px;height:64px} @media(max-width:700px){.tool-body{padding:20px 16px}.output li{flex-wrap:wrap}.nav{margin-left:0}.hero-gears{display:none}}

How to Name a Sale: The 5 Principles of Promotion Naming

A promotion name can lift engagement or sink it. Here is a practical method for naming any sale, offer, or campaign.

Customers notice and remember promotions with enticing names far more than generic ones. A good name sets the tone for the entire campaign: it creates excitement, signals what is on offer, and gives people words to repeat to friends. Five principles decide whether a name does that work.

1. Clarity: say what it is

The name should tell shoppers what kind of event this is. "Summer Clearance" is clear; "The Big Thing" is not. Clarity does not mean boring: "Tide Pool Sale" still communicates a sale, it just does it with a metaphor. If a stranger cannot guess the event type from the name, add a descriptor word like Sale, Event, or Days.

2. Relevance: match the objective

Align the name with what the promotion must achieve. A sale meant to create urgency wants words like Flash, Final, or Last Chance ("Doorbuster Deals"). A loyalty event wants words that honor the customer ("Loyalty Rewards Extravaganza"). A name that fights its own objective confuses the audience and wastes the creative effort.

3. Creativity: earn the attention

Every retailer runs a "Big Sale," so the name has to compete for the customer's eye. Seasonal metaphors beat literal descriptions: "Summer Clearance" tells customers what it is, while "Golden Hour Deals" tells them what it feels like, and feeling sells better than description. Anchor the metaphor to a specific seasonal moment: a beach, a sunset, the last week of July.

4. Simplicity: keep it short

Two to four words is the sweet spot. A name must survive a subject line, a banner, a hashtag, and a spoken recommendation. Long names get truncated everywhere that matters. If it does not fit comfortably in a hashtag, it is too long.

5. Emotional appeal: promise a feeling

Words like happiness, thrill, and treasure evoke the positive emotions people associate with getting a deal. Exclusivity words ("Private," "Members," "VIP") make customers feel special. Pick the emotion that matches the mechanic: excitement for flash sales, warmth for loyalty events, triumph for clearance hunts.

The naming method, step by step

  1. Write the objective in one sentence. "Clear summer inventory in two weeks."
  2. List ten words for the feeling. Heat, sunset, final, golden, rush.
  3. Generate twenty candidates with the free offer name generator, using the theme and style that fit your list.
  4. Cut to three. Drop anything that fails the clarity test or clashes with your brand voice.
  5. Test as a hashtag. Search it on social platforms; if it is heavily used for something unrelated, you will compete for attention in that feed.
  6. Say it out loud. If it is awkward to say, customers will not repeat it, and repetition is the point.

Match the name to your brand register

A formal clothing retailer should not run a "Splish Splash Sale," and an outdoor adventure brand should not run a "Refined Summer Edit." The name must sound like something your brand would say unprompted. A mismatch dilutes the promotion's credibility and makes the brand feel like it is wearing a costume. For finished examples across every style, see our sale name examples.