# Retention Audit

> Use when diagnosing why a published video underperformed — reading a YouTube retention graph, comparing a weak video against a winner, or mapping audience drop-off points to script beats. For writing the next script, use storytelling-hooks or long-form-youtube.

- Skill: `yaxeen/retention-audit` (Agent Skill)
- Install (CLI): `npx skillmds@latest add yaxeen/retention-audit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yaxeen/retention-audit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: yaxeen (https://skillmd.com/u/yaxeen)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/yaxeen/retention-audit

---


# Retention Audit

- A retention graph is the story's autopsy: every drop is a moment the script broke a promise, every spike is a beat viewers rewound to see again.
- Audit by **zones**, not by staring at the whole line — each zone has its own failure causes and its own fix.
- Always diagnose **against a baseline**: the same channel's best comparable video (same length/format). Absolute numbers mislead; the gap between winner and loser is the finding.
- Built on the six levers — see **storytelling-hooks**. Recap: 1. Curiosity gap · 2. Emotional mirror · 3. Conflict engine · 4. Relatability · 5. Pattern + surprise · 6. Three-act.

## When to Use

- A video got clicks but died (decent CTR, low average view duration).
- YouTube stopped recommending a video after its first test batch.
- Comparing a flop against the channel's winners to find what broke.
- Any niche; needs the retention graph (screenshot is fine), the script or beat outline, and ideally one winner's graph.

## Intake (Before Auditing)

- Get: this video's retention graph + length, the script or beat list with rough timestamps, CTR and impressions if available, and a winner's graph from the same channel/format.
- Also get the **thumbnail + title + the video's first frame** — the #1 retention killer lives in that triangle, not in the script.
- Missing the winner baseline? Use the gray "typical retention" band as a weak substitute and say so.
- **No graph, no audit.** Never estimate or invent retention numbers — ask for the screenshot; offer only hypothesis-level guesses clearly labeled as such.

## The Five Zones (Quick Reference)

| Zone | Where | Healthy sign | Failure means |
|------|-------|--------------|---------------|
| Cliff | 0:00–0:30 | ≥65–70% still watching | packaging↔opening mismatch (confirm-the-click failure) |
| Intro | 0:30–2:00 | slope flattening | throat-clearing, promise not restated, stakes missing |
| Body | 2:00–sag | tracks/above typical band; small spikes | a loop closed without opening the next; pacing monotone |
| Sag | ~40–60% of runtime | a visible re-hook bump or held line | no planned re-hook; mid-video drift |
| End | last 10% | gentle taper | fine unless a cliff — outro started too early |

- Timestamp boundaries assume ~10–12 min videos; scale the intro/body boundaries proportionally for other lengths — the 0:00–0:30 cliff stays fixed regardless of runtime.
- **Spikes = rewatch beats.** Mark them: those are the moments that worked — reuse their structure in future scripts.
- **The most common pattern:** steep cliff + healthy body = the *video* was fine, the *first minute* betrayed the click. Fix packaging/opening, not the story.

## Audit Workflow

1. **Overlay the comparison.** Note the winner-vs-loser gap at 0:30, 1:00, 2:00. If the gap is born in the first minute, the diagnosis is almost never "bad content."
2. **Check the click triangle.** Thumbnail promise vs title promise vs actual first frame/line. Any mismatch = the cliff's cause. (Winner channels show the *same world* in thumbnail and frame one.)
3. **Map drops to beats.** Put the script's beats on the timeline; for each visible dip, name the beat that was playing. Ask: did this beat close a loop without opening one? Sag without a re-hook? Tension the audience didn't come for?
4. **Check the channel formula.** Compare the flop's premise against the winners' shared pattern (subject type, resolution type, emotional promise) — use **channel-formula** to extract it if it isn't written down yet. A technically good story that breaks the channel's core promise still dies — audience expectation beats craft.
5. **Mark the spikes.** List rewatched moments and what structural move each used.
6. **Deliver findings** — for each: timestamp zone, what the graph shows, the script beat responsible, the cause, the fix. End with the single highest-leverage change for the next video, and feed the result back into the channel's profile (**channel-formula**) if one exists.

## Common Mistakes

| Mistake | Fix |
|---------|-----|
| Judging by end-retention or AVD alone | Zone-by-zone against a winner — the cliff decides distribution |
| Blaming the script for a 0:30 cliff | Check the click triangle first; the body may be healthy |
| Ignoring spikes | Spikes are free R&D — codify what those beats did |
| Auditing without a baseline | Same-channel winner first; typical band only as fallback |
| One flop = change everything | Change the diagnosed zone only; keep what the graph says worked |
| Findings without next-video actions | Every finding ends in a concrete instruction for the next script |

## Audit Checklist

- [ ] Winner baseline (or typical band) overlaid?
- [ ] 0:30 / 1:00 / 2:00 gaps measured?
- [ ] Click triangle (thumbnail–title–first frame) checked for mismatch?
- [ ] Every visible dip mapped to a named script beat?
- [ ] Premise checked against the channel's winning formula?
- [ ] Rewatch spikes catalogued?
- [ ] One highest-leverage fix named for the next video?

## Related

- **channel-formula** — extracts the winning pattern the flop is checked against; each audit feeds the profile back.
- **long-form-youtube** — the structure this audits ("confirm the click", sag-point re-hook).
- **titles-and-thumbnails** — fixes for click-triangle mismatches.
- **storytelling-hooks** — the levers behind every beat.

