*{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}}

Types of Marketing Offers: A Guide to the 10 Core Mechanics

Every promotion is built from a small set of mechanics. Learn what each type of marketing offer does best, which goal it serves, and the rule that keeps it profitable.

A marketing offer is a deal you make with your customer: act now, and you get something extra. The mechanic is the shape of that deal. Pick the wrong mechanic and even a generous offer falls flat; pick the right one and a modest incentive can move real volume. Below are the ten mechanics the OfferOrb generator works with, with plain-English guidance on when each one earns its keep.

1. Percentage discounts

"20% off" is the most recognized offer in retail because it is simple to understand and simple to calculate. Percentage discounts are versatile: they work sitewide, on categories, or on single items. They shine when you want broad appeal with one headline.

Best for: seasonal sales, clearance, and any campaign where the message has to land in under three seconds.

2. Fixed-amount discounts

"$10 off orders over $50" works well at specific price points, where a dollar figure can feel more tangible than a percentage. The key move is the threshold: set it just above your current average order value so the offer lifts basket size.

Best for: raising average order value and nudging hesitant first-time buyers over the line.

3. Buy one, get one (BOGO)

BOGO deals, including "buy 2, get 1 free" and half-price second items, push more units per order. They are a classic for clearing inventory and for encouraging trial of a new product: pair the new item with a bestseller and let the familiar product carry the unfamiliar one.

Best for: inventory clearance, product launches, and consumables people repurchase.

4. Free shipping offers

Shipping fees are one of the top reasons shoppers abandon carts, so removing them is often more persuasive than an equivalent discount. "Free shipping over $75" combines the incentive with a basket-size lift.

Best for: online stores with a cart-abandonment problem, especially where shipping costs are visible at checkout.

5. Gift with purchase

A free tote, sample set, or bonus item adds value without cutting price, which protects your price positioning. Tie the gift to a minimum spend or a product line so it rewards the baskets you actually want.

Best for: premium brands that cannot discount without cheapening the product, and for product discovery.

6. Bundle deals

Selling complementary products together at one price below the sum of the parts raises average order value without raising acquisition cost. The bundle also frames the purchase as one decision instead of several, which reduces hesitation.

Best for: stores with natural product groupings: skincare routines, tool kits, meal kits, starter sets.

7. Flash sales and limited-time offers

A 24- or 48-hour sale creates urgency that a standing discount never will. The catch: the deadline has to be real. Repeated "ending tonight" sales that never end train customers to wait for the next one.

Best for: generating a short burst of revenue, testing price sensitivity, and re-engaging a quiet list.

8. Welcome offers

A first-order incentive, often "10% off your first purchase," usually paired with an email signup. It converts a browsing visitor into a buyer and starts the relationship with a positive transaction.

Best for: growing an email list and converting first-time visitors.

9. Loyalty and repeat-buyer offers

Points, member pricing, and VIP early access reward the customers who already buy. Acquiring a new customer typically costs far more than keeping one, so keeping your best buyers happy is usually the highest-return promotion you can run.

Best for: subscription businesses, repeat-purchase categories, and any store with a meaningful share of returning customers.

10. Referral offers

"Give 20%, get 20%" turns customers into a distribution channel. The double-sided reward matters: people share more readily when their friend benefits too, not just them.

Best for: products people naturally talk about, and businesses with a strong base of happy customers.

The one rule for all of them

Whatever mechanic you choose, give it a guardrail: who can redeem it, on which products, how often, and for how long. A promotion without guardrails discounts the orders you would have won at full price. A promotion with them buys genuinely incremental sales. For concrete wording ideas, see our marketing offer examples, and for timing, the use-case map.

Try it: pick one mechanic above and generate a dozen headline ideas with the free marketing offer generator.