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

Offer Headline Formulas: 7 Structures Marketers Reuse

Behind every effective offer headline is a structure — a skeleton that has worked so often it became a formula. This guide collects seven of them, explains the psychology each one leans on, and shows when to reach for which.

Why formulas work

Formulas are not creativity killers; they are creativity scaffolding. A blank page asks you to invent persuasion from scratch. A formula asks you to fill in the blanks — your product, your audience, your proof — which is a much easier and more reliable task. Every headline below is a pattern you can reuse indefinitely by changing the specifics.

1. The Numbered Promise

Structure: [Number] [things] to [outcome] — "7 Email Templates That Book More Calls."

Why it works: numbers make abstract value concrete and scannable. Odd numbers tend to outperform round ones in testing lore, but the real power is specificity: "7" promises a defined, finishable thing.

Use when: the offer is educational or a toolkit — anything countable.

2. The Time-Boxed Result

Structure: [Outcome] in [timeframe] — "A Cleaner Inbox in 20 Minutes a Day."

Why it works: it answers the buyer's hidden question — "how much of my life does this cost?" — before they ask it. Time-boxing shrinks perceived effort.

Use when: the offer saves time or the result is fast. Never use a timeframe you can't stand behind.

3. The Without

Structure: [Outcome] without [pain] — "Launch Your Store Without Writing Code."

Why it works: it names the objection and removes it in the same breath. The "without" clause should be the specific thing your audience dreads most.

Use when: your audience has a known fear or past bad experience with the category.

4. The Mistake Reversal

Structure: The [number] [mistakes] [audience] makes with [thing] — "The 5 Pricing Mistakes New Freelancers Make."

Why it works: loss aversion — people work harder to avoid mistakes than to gain advantages. It also flatters the reader: they're about to become someone who doesn't make these mistakes.

Use when: your audience is beginners or improvers in the category.

5. The Comparison

Structure: [Your thing] vs. [the alternative] — "Hiring a Designer vs. Our Template Pack: The Real Cost."

Why it works: it borrows the alternative's credibility while reframing the comparison on your terms. Comparisons feel objective even when they're curated.

Use when: buyers are actively comparing options — late-stage, high-intent traffic.

6. The Secret/Insider

Structure: What [insiders] know about [thing] — "What Top Agencies Know About Client Onboarding."

Why it works: information-gap curiosity. The headline promises knowledge the reader lacks and implies a shortcut to insider status.

Use when: you genuinely have non-obvious expertise to share. This formula punishes thin content — the "secret" must be real.

7. The Guarantee

Structure: [Outcome], or [consequence] — "Double Your Open Rates in 30 Days or Your Money Back."

Why it works: it reverses the risk — the seller, not the buyer, carries it. Few formulas convert skeptics faster.

Use when: you can actually guarantee the outcome. An empty guarantee destroys trust faster than no guarantee at all.

Choosing the right formula

Match the formula to the buyer's state: early-stage browsers respond to curiosity formulas (Secret, Mistake Reversal); late-stage comparers respond to risk formulas (Comparison, Guarantee); everyone responds to specificity (Numbered Promise, Time-Boxed). When in doubt, write three headlines using three different formulas and test them — the formula is a starting point, not a verdict. For seasonal campaigns, pair the formula with a seasonal angle; see seasonal sale names mapped to the retail calendar. Once the headline ships, measure which channel carried it; UTM parameters explained shows how to attribute clicks to the winning variant.

Frequently asked questions

Can I combine formulas?

Yes — "7 Pricing Mistakes Freelancers Make (and How to Fix Them in a Weekend)" blends three. Just keep the headline readable; combined formulas that run past fifteen words lose their punch.

Do these work for B2B?

They do, with adjusted vocabulary. B2B buyers respond to the same psychology — specificity, risk reversal, curiosity — but prefer professional framing over hype. "Reduce" beats "crush" in B2B.

How long should an offer headline be?

Aim for under twelve words for ads and landing page heroes. Longer headlines can work in email subject lines and sales pages where you have more attention to spend.

Should the headline mention the price?

Only if the price is the selling point — a strikingly low price, a free tier, a bold discount. Otherwise let the headline sell the outcome and let the price appear nearby.

What if none of the formulas fit my offer?

Describe the offer's single biggest benefit in plain words first, then see which formula it resembles. The formulas cover most cases; a genuinely unusual offer may need a custom headline — write ten variants and pick the clearest. If the offer itself still needs a name, nail that first; product offer naming covers bundles, tiers and subscription boxes.

Have the headline but need the offer itself? OfferOrb builds complete marketing offer ideas — discounts, bundles, bonuses and guarantees — free in your browser, ready to pair with your new headline.