VSL Script Template: The 9-Section Spine That Sells
The worst VSL script I ever reviewed had beautiful writing in it. Genuinely good sentences. The problem was structural: the offer arrived at minute 3 of a 22-minute video, the proof arrived at minute 17, and the mechanism - the reason anyone should believe the claim - never arrived at all. The writer had written scenes. He hadn't built a spine.
A VSL script is closer to load-bearing architecture than to prose. Sections carry weight in a specific order: each one earns the viewer's permission for the next, and a missing or misplaced section shows up as a cliff in the retention curve at a predictable timestamp. This is the template I use - nine sections, with word budgets, two runtime cuts, the genealogy of where each piece comes from, and the number in your analytics that tells you when a section is failing. Fill it in top to bottom and you'll have a shippable script today.
The 9-section VSL script template: hook (earn 30 more seconds), problem (name it precisely), agitation (price of inaction), mechanism story (why this works when others failed), proof (stack it), offer (value before price), objections and risk reversal, honest urgency, and the close loop. Budget roughly 150 words per minute, map sections to timestamps, and let the retention curve grade each section individually.
Where does this structure come from?
Three formulas, stacked. AIDA - usually credited to E. St. Elmo Lewis's late-1890s hierarchy, though the acronym itself dates to 1921 - supplies the attention-to-action arc. PAS, championed by Dan Kennedy as "the most reliable copywriting formula for sales ever invented," powers sections 2-4. And Star Story Solution, which Russell Brunson popularized and credits to Vince James, drives the mechanism story.
The genealogy matters because it tells you what's negotiable. The formulas survived a century of print, radio, TV, and now video because they describe how persuasion sequences, not how any medium works. What changed for VSLs is the packaging: Jon Benson is widely credited in direct-response circles with putting the sales letter on screen as text around 2007 (a credit that traces to Benson himself, so hold it loosely), and Jeff Walker's "sideways sales letter" showed the same spine could stretch across days of launch content. Same skeleton, different costumes.
Current practitioner guides converge on the same shape - Thrive Themes' 2025 guide runs nine stages, Green Frog Labs' 2026 version runs eight timed sections, Copy Posse compresses it to five questions - and the shared skeleton across all of them is exactly PAS plus proof plus offer mechanics. Nobody owns the spine. What differs is discipline in the joints, which is what the rest of this template is about.
The formulas are a century old because they describe persuasion, not the medium. Your script fails in the joints, not the bones.
What goes in each of the nine sections?
Each section below has one job, a word budget for a 12-minute cut (roughly 1,800 words total at 150 words per minute), and a fill-in prompt. Write them in order; every section assumes the viewer granted the permission the previous one asked for.
Earn the next 30 seconds
Job: filter the right viewer in, make one promise, open one loop. Nothing else. The muted-start reality means the first frames work with captions on.
Prompt: "If you [specific situation], the next few minutes will show you [specific promised outcome] - even if [the objection they walked in with]."
Fourteen working patterns for this section live in the hooks pillar; pick one deliberately instead of improvising.
Name it more precisely than they can
Job: demonstrate you understand the problem at a resolution the viewer has never heard from a stranger. Precision here is what buys belief later.
Prompt: "You've probably noticed [specific symptom]. It usually shows up as [concrete scene from their week]. And the standard advice - [the advice they've tried] - hasn't moved it."
Price the inaction, don't torture the viewer
Job: make the cost of doing nothing concrete: time, money, compounding consequences. Agitation is arithmetic, not cruelty; overplayed pain reads as manipulation in 2026 and dies in the comments.
Prompt: "Run the math with me: every month this continues, [quantifiable cost]. In a year that's [compounded cost] - and the [non-financial cost] is worse."
Why this works when everything else failed
Job: the Star Story Solution engine. A relatable character (you, a customer, a founder) discovers the real reason the old approaches failed and the new mechanism that fixes it. The mechanism is the star of the whole script: it converts skepticism into "oh, THAT'S why."
Prompt: "[Character] tried everything you've tried. Then [discovery moment]: the problem was never [assumed cause], it was [real cause] - and once you see that, [mechanism] is the obvious fix."
Stack it in ascending strength
Job: demonstrate the mechanism working: demos beat data, data beats testimonials, and specific beats spectacular. Every claim you can't substantiate weakens the ones you can.
Prompt: "Here's [the demonstration]. Here's what [named, real customer type] saw: [specific, honest result]. And here's the part that surprised even us: [counterintuitive detail that only a real result would contain]."
Value fully built before the price appears
Job: assemble everything the buyer receives, anchor its worth, then let the price arrive as relief rather than ambush. The retention curve at this timestamp is the single most-watched spot in the whole video - by you.
Prompt: "Here's everything you get: [component, what it's worth to them] ... All of it for [price] - which is [price reframe: per day, versus the cost of the problem]."
Answer the three they're actually thinking
Job: name the top three objections out loud, answer each honestly, then transfer the remaining risk to yourself with the guarantee. An unspoken objection converts nobody; a named one converts skeptics.
Prompt: "You might be thinking [objection 1]. Fair - here's the honest answer... And if I'm wrong about any of this, [guarantee] means the risk is mine, not yours."
Only the kind that's true
Job: give a real reason to act now: an actual deadline, an actual capacity limit, or the honest cost-of-delay math from section 3 revisited. If no true urgency exists, use the arithmetic - fake countdown timers are a trust tax on everything upstream.
Prompt: "There's no fake timer here. The reason to start today is simpler: [the real reason - the compounding cost, the real deadline, the real cohort date]."
Resolve the hook, repeat the CTA
Job: pay off the loop the hook opened, restate the promise-price-guarantee triangle in two sentences, and give one unmissable instruction. One CTA, stated plainly, twice.
Prompt: "Remember [the hook's promise]? That's what's on the other side of this button. [Product], [price], [guarantee]. Click below and start."
How long should each section run?
Budget roughly 150 spoken words per minute. The 12-minute cut above totals about 1,800 words; a 30-minute cut roughly triples the mechanism story, doubles proof and objections, and leaves the hook, urgency, and close nearly unchanged. The sections that grow with runtime are story and proof; the sections that never grow are hook and close.
That asymmetry is the practical difference between a short and long VSL, and it's why the length question is a scoping question rather than a style war. A high-ticket offer with a novel mechanism earns a long section 4 and a deep section 5; a simple offer to warm traffic doesn't. The full decision framework - traffic temperature, ticket, complexity, and the feedback loop that corrects your first guess - is in how long should a VSL be.
Runtime grows in the story and the proof. If your hook or your close got longer, you didn't scale the script - you padded it.
How do you know which section is failing?
Map each section to its timestamps before you publish, then read the retention curve against the map. Every section has one number that judges it: the hook is judged at second 30, the story by mid-video slope, the offer by the drop at price reveal, the close by CTA clicks per viewer who reached it.
This mapping is the entire reason to script in sections rather than in vibes. When the curve shows a cliff at 2:40, you don't have a "video problem," you have an agitation problem, and you know which 150 words to rewrite. The four launch numbers that anchor this - 30-second retention, midpoint retention, revenue per viewer, cost per qualified view - are covered in the metrics guide, and reading the section-level story out of watch density is the subject of the heatmaps guide.
Two habits that make the checkpoints work:
- Timestamp the script before recording. Write the planned timestamp next to each section header in the doc. After publishing, you're comparing plan to curve instead of scrubbing and guessing.
- Rewrite one section at a time. When a checkpoint fails, change that section and only that section, then re-measure. Rewriting three sections at once tells you nothing about which fix worked - the same discipline honest split testing demands.
Frequently asked questions
Put checkpoints under your script
Per-second retention mapped against your section timestamps, so a bad week points at 150 words instead of the whole video. Try any plan for $1.
Start your $1 trial →