*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;color:#3d3654;font-family:ui-rounded,'SF Pro Rounded','Segoe UI',system-ui,-apple-system,Arial,sans-serif;line-height:1.7;font-size:17px;background:linear-gradient(180deg,#ede9fe 0%,#f7f4ff 340px,#fff9f3 900px,#f2fbf6 100%)} h1,h2,h3{color:#2c2545;line-height:1.25;font-weight:800} a{color:#6d28d9;text-decoration:none} a:hover{text-decoration:underline} .wrap{max-width:1120px;margin:0 auto;padding:0 24px} .site-header{background:rgba(255,255,255,.85);backdrop-filter:blur(10px);position:sticky;top:0;z-index:50;border-bottom:3px solid #ede9fe} .site-header .wrap{display:flex;align-items:center;gap:20px;padding:12px 24px;flex-wrap:wrap} .brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#2c2545;font-weight:800;font-size:22px} .brand:hover{text-decoration:none} .brand svg{width:38px;height:38px} .nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto;align-items:center} .nav a{text-decoration:none;color:#3d3654;font-weight:700;font-size:14.5px;padding:9px 14px;border-radius:999px} .nav a:hover{background:#ede9fe;text-decoration:none;color:#6d28d9} .nav a.cta{background:#6d28d9;color:#fff;box-shadow:0 6px 18px rgba(109,40,217,.28)} .nav a.cta:hover{background:#5b21b6;color:#fff} .dots{position:absolute;inset:0;background-image:radial-gradient(#c4b5fd 2.2px,transparent 2.3px);background-size:22px 22px;opacity:.35;pointer-events:none} .hero{padding:58px 0 12px;position:relative;overflow:hidden} .hero-inner{position:relative} .eyebrow{display:inline-block;background:#ffedd5;color:#9a3412;font-weight:800;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;padding:8px 18px;border-radius:999px;margin-bottom:16px;box-shadow:0 6px 16px rgba(251,146,60,.25)} .hero h1{font-size:clamp(36px,5.6vw,60px);margin:0 0 16px;letter-spacing:-.5px} .hero h1 .hl{color:#6d28d9} .lede{max-width:66ch;color:#5b5478;font-size:18px} .tool-card{background:#fff;border-radius:24px;margin:30px 0 12px;box-shadow:0 18px 48px rgba(139,92,246,.16);border:1px solid #ede9fe;overflow:hidden} .tool-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:20px 26px;background:linear-gradient(135deg,#ede9fe,#ffedd5);border-bottom:1px solid #f1eafd} .tool-head h2{margin:0;font-size:24px} .privacy-chip{margin-left:auto;display:inline-flex;align-items:center;gap:8px;background:#fff;border:2px solid #6d28d9;color:#6d28d9;font-weight:800;font-size:13px;padding:8px 16px;border-radius:999px} .privacy-chip svg{width:16px;height:16px} .tool-body{padding:28px 26px} .opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin-bottom:24px} .opt{background:#faf9ff;border:2px solid #ede9fe;padding:18px;border-radius:18px} .opt.mint{background:#f2fbf6;border-color:#d1fae5} .opt.peach{background:#fffaf3;border-color:#ffedd5} .opt-label{display:block;font-weight:800;font-size:14px;letter-spacing:.6px;text-transform:uppercase;color:#6d28d9;margin-bottom:12px} .opt.mint .opt-label{color:#047857} .opt.peach .opt-label{color:#c2410c} .opt-hint{font-size:13.5px;color:#8a84a3;margin:10px 0 0} .seg{display:flex;flex-wrap:wrap;gap:8px} .seg button{border:2px solid #ddd6fe;background:#fff;color:#3d3654;padding:8px 15px;font-weight:700;font-size:13.5px;cursor:pointer;font-family:inherit;border-radius:999px;transition:all .15s} .seg button:hover{border-color:#a78bfa} .seg button[aria-pressed="true"]{background:#6d28d9;color:#fff;border-color:#6d28d9;box-shadow:0 4px 12px rgba(109,40,217,.3)} .opt.mint .seg button[aria-pressed="true"]{background:#059669;border-color:#059669;box-shadow:0 4px 12px rgba(5,150,105,.3)} .opt.peach .seg button[aria-pressed="true"]{background:#ea580c;border-color:#ea580c;box-shadow:0 4px 12px rgba(234,88,12,.3)} .num-row{display:flex;align-items:center;gap:12px} .num-row input[type=range]{flex:1;accent-color:#6d28d9} .num-row input[type=number]{width:70px;border:2px solid #ddd6fe;border-radius:12px;padding:8px 10px;font-size:15px;font-family:inherit;background:#fff;color:#3d3654} .count-val{font-weight:800;color:#6d28d9;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 #6d28d9;background:transparent;color:#6d28d9;padding:12px 26px;font-weight:800;font-size:15px;cursor:pointer;font-family:inherit;border-radius:999px;display:inline-flex;align-items:center;gap:9px;text-decoration:none;transition:all .15s} .btn:hover{background:#ede9fe;text-decoration:none} .btn.primary{background:#6d28d9;color:#fff;box-shadow:0 8px 22px rgba(109,40,217,.32)} .btn.primary:hover{background:#5b21b6} .btn svg{width:17px;height:17px} .btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none} .copy-note{font-size:14px;font-weight:700;color:#059669} .output{margin-top:20px;background:#faf9ff;border:2px solid #ede9fe;min-height:130px;padding:20px;border-radius:18px} .output ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px} .output li{background:#fff;border:1px solid #ede9fe;border-radius:16px;padding:14px 18px;cursor:pointer;box-shadow:0 6px 18px rgba(139,92,246,.08);display:flex;gap:14px;align-items:flex-start} .output li:hover{box-shadow:0 10px 24px rgba(139,92,246,.16)} .output li .idx{flex:none;width:38px;height:38px;border-radius:50%;background:#ede9fe;color:#6d28d9;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:15px} .output li .txt{min-width:0} .output li .nm{display:block;font-weight:800;font-size:16.5px;color:#2c2545} .output li .ds{display:block;font-size:14px;color:#5b5478} .output li .rl{display:block;font-size:13px;color:#047857;margin-top:3px} .output li .mini-copy{margin-left:auto;flex:none;font-size:12px;font-weight:800;color:#6d28d9;border:2px dashed #c4b5fd;padding:5px 12px;border-radius:999px;align-self:center} .output .placeholder{color:#a5a0bd;text-align:center;margin:32px 0;font-size:15px} .output-meta{margin-top:12px;font-size:13.5px;color:#8a84a3} .limits{margin-top:22px;background:#fffaf3;border:2px dashed #fb923c;padding:20px 22px;border-radius:18px} .limits h3{margin:0 0 10px;font-size:19px;color:#9a3412;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:#5b5478} .limits li{margin-bottom:7px} .section{padding:52px 0 8px} .section h2{font-size:clamp(28px,3.6vw,40px);margin:0 0 14px} .section h2 .hl{color:#6d28d9} .sub{color:#5b5478;max-width:68ch;margin:0 0 24px} .cards3{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px} .card{background:#fff;border:1px solid #ede9fe;border-radius:24px;padding:24px;box-shadow:0 12px 30px rgba(139,92,246,.10);display:flex;flex-direction:column} .card.peach{border-color:#ffedd5;box-shadow:0 12px 30px rgba(251,146,60,.10)} .card.mint{border-color:#d1fae5;box-shadow:0 12px 30px rgba(16,185,129,.10)} .card h3{margin:0 0 10px;font-size:19px} .card p{margin:0 0 14px;color:#5b5478;font-size:15px;flex:1} .card .icon{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:14px} .card .icon svg{width:24px;height:24px} .card a.more{font-weight:800;font-size:14.5px} .prose{max-width:74ch} .prose p{margin:0 0 16px} .prose h2{margin:36px 0 12px;font-size:27px} .prose h3{margin:28px 0 10px;font-size:20px} .prose ul,.prose ol{margin:0 0 18px;padding-left:22px} .prose li{margin-bottom:8px} .prose table{width:100%;border-collapse:collapse;margin:18px 0;font-size:15.5px} .prose th{background:#ede9fe;color:#2c2545;text-align:left;padding:10px 14px} .prose td{padding:10px 14px;border-bottom:1px solid #ede9fe} .callout{background:#ede9fe;border-radius:18px;padding:18px 22px;margin:20px 0} .callout.peach{background:#ffedd5} .callout.mint{background:#d1fae5} .faq-item{background:#fff;border:1px solid #ede9fe;border-radius:18px;padding:18px 22px;margin-bottom:14px;box-shadow:0 8px 22px rgba(139,92,246,.08)} .faq-item h3{margin:0 0 8px;font-size:18px} .faq-item p{margin:0;color:#5b5478;font-size:15.5px} .site-footer{background:#2c2545;color:#cfc9e8;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:#fff;margin:0 0 12px;font-size:16px} .site-footer a{color:#cfc9e8;font-size:14.5px;display:block;margin-bottom:8px} .site-footer a:hover{color:#fff} .site-footer .fine{grid-column:1/-1;font-size:13px;color:#9d95c4;border-top:1px solid #453d68;padding-top:18px;margin-top:6px} .breadcrumb{font-size:13.5px;color:#8a84a3;margin:22px 0 0} .breadcrumb a{color:#6d28d9} .page-hero{padding:44px 0 6px} .page-hero h1{font-size:clamp(32px,4.6vw,48px);margin:0 0 14px} @media(max-width:700px){.tool-body{padding:20px 16px}.output li{flex-wrap:wrap}.nav{margin-left:0}}

Marketing Offer FAQ

Straight answers to the questions marketers ask before launching a promotion.

How deep should a discount be?

Deep enough to change behavior, shallow enough to protect margin. For most retail categories, 10 to 25% moves the needle; above that you start eroding margin and training customers to buy only on sale. Work backward from your contribution margin, not forward from what competitors are doing.

How often can I run a sale without cheapening my brand?

There is no universal number, but the pattern matters more than the count: predictable, always-on discounting trains shoppers to wait. Occasional, genuinely time-limited promotions with clear reasons (seasonal, inventory, milestones) preserve full-price credibility.

Should I use a coupon code or automatic discount?

Codes feel exclusive and are easy to share with segments; automatic discounts convert better because they remove a step at checkout. Use codes for targeted offers (email, partners, referrals) and automatic discounts for public sitewide sales.

What is the best offer for a new store with no customers yet?

A welcome offer tied to email signup: it converts first-time visitors and builds your list at the same time. Pair it with free-shipping thresholds once you have traffic data to set the threshold above your average order value.

How do I stop coupon codes from leaking onto deal sites?

Use single-use, unique codes for anything targeted (welcome, referral, partner offers). Keep public offers automatic or generic, and accept that generic codes will travel; price them accordingly.

Do flash sales actually work?

They work when the deadline is real and the discount is meaningful. They fail when "ending tonight" repeats weekly, because customers learn the urgency is theater. A hard end time plus a redemption cap keeps the mechanic honest.

Is free shipping better than a discount?

Often, yes, for online stores: shipping fees are a leading cause of cart abandonment, and removing them feels like removing a penalty rather than getting a deal. Test both; the winner depends on your category and average order value.

What should my offer terms include?

Valid dates, eligible products, any exclusions, whether it stacks with other offers, and redemption limits. Clear terms increase redemption and cut support tickets; hidden restrictions discovered at checkout destroy trust.

Still brainstorming? The free marketing offer generator produces fresh headline ideas for every mechanic above in one click.