Why Hooks Get IDs
A hook is the only part of a video that most people ever see. It is also the cheapest thing to change: re-cutting three seconds costs minutes, re-shooting an episode costs a production slot. So we treat the hook as a separately tracked variable. Every hook in this library has an ID. Every script names the hook IDs it uses. Every row in the performance log records which hook ID ran. After thirty or forty videos we stop guessing which hook family works for cannabis education on TikTok and start knowing.This page is the TikTok-specific, ID’d, testable version of the broader hook patterns in
social-content/references/trending-hooks.md. That file holds the writing theory. This page holds the tracked inventory.The Rules
1.5 seconds
A complete idea must land, spoken and on screen, before the 1.5 second mark. No greeting, no logo, no wind-up.
Spoken and written
The hook appears as burned-in text and voiceover. Sound-off viewers are a large share of the feed and they decide just as fast.
Nine words or fewer
Longer hooks measurably underperform. If it does not fit in nine words, it is a setup, not a hook.
One idea
A hook that promises two things delivers neither. Pick the sharper one.
Hook Families
Eight families, each with an ID prefix. Scripts cite the ID; the log tracks the ID; the family is the unit we actually learn about.Outcome-Led (OL)
This is the highest-performing hook category in the research — showing the result, transformation, or finished thing first averages the most views per clip. It was also our biggest gap: almost every hook we originally wrote was a claim or a question, and very few opened on the payoff.
The pattern: state the ending, then earn it. “Fewer than 1 in 200 strains hits 30%” is a data drop. “This man paid ninety dollars to feel exactly the same” is the same fact as an outcome — and it opens a loop the viewer needs closed.
Pattern Interrupt (PI)
Open on something visually or audibly unexpected — a cold open mid-scene, an unusual angle, a frozen frame, an object doing something it should not. Cheap for an animated character and almost entirely unused in our first draft.
Bold Claim (BC)
Knowledge Gap (KG)
Problem Agitation (PA)
Data Drop (DD)
Story (ST)
Contrarian (CT)
Question (QN)
Comedy (CM)
Comedy hooks only work if Professor High plays them completely straight. The absurdity is the situation — a pineapple running a courtroom — not the delivery. He never acknowledges the bit.
Registry — The 100
The hooks below were written for The 100 and are registered here because the library is the registry, not an archive. They extend the same ten families above; nothing new was invented at the family level.This section is generated from every script pack in the library by
docs-site/scripts/sync-hook-library.py. Add a hook to a script, re-run the
script, and it appears here. Hand-edits are overwritten.The script fails if one ID is used for two different hooks — including
against the curated tables above — because that silently corrupts
hook-level attribution in the performance log.Outcome-Led (OL) — 87 added
Pattern Interrupt (PI) — 25 added
Comedy (CM) — 42 added
Contrarian (CT) — 15 added
Question (QN) — 19 added
Problem Agitation (PA) — 11 added
Knowledge Gap (KG) — 7 added
Story (ST) — 8 added
Bold Claim (BC) — 6 added
How Hooks Get Assigned
Every script carries three hooks: A, B, and C, drawn from different families.
Testing across families rather than across wordings is what makes results generalize. Two Bold Claims that differ by three words teach nothing; a Bold Claim against a Data Drop teaches which register this audience responds to.
Reading Hook Results
Hook performance is measured almost entirely by 3-second hold rate — the share of viewers still watching at 3 seconds.A high hold rate with a low completion rate means the hook wrote a check the body did not cash. That is a script problem, not a hook problem — and it is the most common failure mode for data-led content.
Adding A Hook
- Write it in nine words or fewer.
- Assign the next ID in its family.
- If it contains a number, verify against the Verified Data Sheet and note the source.
- Add it here before it appears in a script — the library is the registry, not an archive.
Related
Testing Framework
How hook IDs become decisions.
Verified Data
The source for every
DD hook.Script Room
The packs where these hooks run.
