data-reels
Principles for high-retention short-form data video (Instagram Reels, TikTok, Shorts) built from measured competitor research on data-viz and stats accounts.
Skill by Evan-Kim2028
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/evan-kim2028-data-reels
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data, research
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/data-reels
What's inside
- Skill name
data-reels- Description
- Principles for high-retention short-form data video (Instagram Reels, TikTok, Shorts) built from measured competitor research on data-viz and stats accounts. Use when making or reviewing data-driven short-form video, reels, TikToks, voiceover-timed data animations, retention/format questions for social video, or when a project's own reel playbook needs a philosophy layer to sit on top of. This is concepts, not commands — pair with your project's own reel playbook (operational scripts, render pipeline, asset paths) for execution.
- License
- MIT
- Instructions
- 391 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Data Reels
Principles for turning quantitative content into short-form video that holds attention, distilled from measured competitor research (view-to-follower ratios, outlier analysis, transcripts) across data-viz and stats Instagram accounts. This skill is the philosophy layer — the "why" and the invariants. Your project's own reel playbook (e.g. `digital_marketing/REEL_PLAYBOOK.md`) is the operational layer — the "how": render pipelines, asset-fetch scripts, exact CLI commands. Reference that project playbook for execution; use this skill for judgment calls.
## 1. The rejection-cascade / one-insight format
The best-measured format is not a countdown. It's:
- **0-2s — thesis claim.** State the plain-language claim or question immediately. No throat-clearing, no "hey guys," no title card that isn't the claim itself.
- **3-4 beats — assumption → correction, with visual proof each time.** Each beat states a plausible-but-wrong read, then shows the visual that rejects it ("X? No — [proof]"). Screen recording, animated chart, or overlay — never just narration.
- **Close — one crisp rule, no CTA.** A single quotable takeaway that could stand alone as a tweet. No "follow for more," no cliffhanger, no ask.
This beat structure measurably outperformed 5-item countdown formats in the same niche. The whole video *is* the payoff, delivered as a sequence of corrections — not a tease building to a reveal.
## 1.5 Format follows story shape
The rejection-cascade (section 1) is not the only valid format — it's the right format for one
specific story shape (a contradiction or anomaly being corrected in a sequence of beats). Match
the format to the story, don't force every insight through the same template:
- **Contradiction/anomaly** ("this looks like X, it's not") -> rejection-cascade: scene-swapped
beats, each stating a plausible-but-wrong read then rejecting it with proof.
- **Comparison/duel** (A vs B, "bigger than," "beats") -> **one composition evolving, not
scene-swaps.** Build a persistent split/scale layout that stays on screen the whole reel;
elements transform in place — a number ticks up, a bar or beam tips, one side visibly
overtakes the other — rather than cutting between two separate scenes for A and B. The reel's
entire job is showing one continuous transformation, not a sequence of discrete reveals.
- **Ranked list** (top N) -> countdown, frontloaded: put the strongest item first, not last —
short-form retention drops before a slow build to a big finish pays off.
The generalizable principle: a scene-swap format asks the viewer to remember beat 1 while
watching beat 3. A comparison story doesn't need that memory load — both sides can just stay
visible and change value/position in front of the viewer, which is both easier to follow and
better matches what a comparison *is* (a single relationship, not a sequence of separate facts).
When a story is fundamentally "A vs B, and here's the moment B overtakes A," resist the urge to
default to whatever format was used last — the composition-evolves shape will read as smoother
and better-paced than forcing it into cascading scene cuts, which read as rushed/rough for this
specific story shape (confirmed via user feedback on a rejection-cascade cut of a comparison
story that was rebuilt as a persistent-composition format afterward).
Pacing implication: a comparison/duel format needs room for a single climax to breathe (place it
around 60-70% through the runtime, give it the longest beat window) and strictly soft transitions
between beats (500-700ms crossfades/eases, never a hard cut) — since nothing ever leaves the
screen, an abrupt transition on any single element reads as jarring in a way it wouldn't in a
scene-swap format where cuts are the expected rhythm.
## 1.6 Format classes beyond rejection-cascade and head-to-head
Measured competitor research on out-of-niche data-story accounts (geography/history/map creators) surfaced additional format classes worth matching to story shape, beyond the two above:
- **Single-transformation reel.** One continuous, wordless, self-explanatory visual change (a map redraw, a silhouette shrink, a region wipe), 6-15s, with **no pacing scaffolding** — no chapter cards, no VO, sometimes not even a caption beyond a one-line title. The strongest measured example ran 6 seconds and hit 41x its account's own median view-to-follower ratio. **Key insight: duration is not the retention lever here — a single continuously-evolving self-explanatory visual is.** Don't assume every short-form idea needs beats, hooks, or narration scaffolding; if the transformation itself is legible and dramatic, let it carry the entire reel unassisted.
- **Timeline biography.** An era-scrub playhead traveling across a horizontal/vertical timeline with milestone markers popping in at key dates — the "life story of a subject" shape (a market, a product line, an institution). The persistent progress cue doubles as a completion-satisfaction driver.
- **True-size / nesting comparison.** A layered-silhouette overlay: a full-scale shape with a smaller shape shrinking/nesting inside it to true relative scale. Fits any "X is bigger/rarer/smaller than you think" claim — population counts, print runs, market caps as overlapping silhouettes instead of plain bar charts.
- **Bar-chart race.** Ranked bars swap order and animate width/position continuously over a long time span. **Duration caps do not apply when the animation itself IS the story** — a measured 175-second bar-race reel (vs. a typical 15-30s target) still hit a strong outlier ratio, because viewers watch a long unbroken race for the rank-churn payoff itself, not despite its length. This format only works when the racing entities are already familiar to the viewer (well-known cities, countries, brands) — it's a poor fit for a single unfamiliar entity with no "cast" to recognize.
- **Chapter story.** Self-aware, comedic "oversimplified version" framing with numbered chapter cards and a "part 2" tease at the close — lowers perceived stakes so viewers forgive compressed nuance. Carries genuine off-brand/tonal risk: it borrows a parody-documentary voice that may clash with a data-authority brand identity. Use deliberately, don't default to it.
## 1.7 Share/save triggers
Distinct psychological drivers behind why a data-story reel gets forwarded vs. bookmarked — worth naming separately because they call for different production choices:
- **Identity signaling.** Rivalry/team framing ("team X vs team Y," fandom-vs-fandom) lets a viewer self-insert and tag someone on "the other side." **Identity-signaling rivalries are the strongest share trigger for fandom data** — it converts a data claim into a social move (tagging a friend), which is a stronger distribution mechanism than the data being merely interesting.
- **Nostalgia arcs.** "Then vs now" / vintage framing triggers a documented dopamine/belonging response and reliably outperforms polished, hyper-modern content on feeds.
- **Completion satisfaction.** Timelines, countdowns, and races resolve an open information loop; visible progress (playheads, milestone markers) intensifies the pull to watch to the end.
- **Reference-utility end cards ("save this").** A reel that holds its final numbers static for a beat reads as a re-checkable artifact worth bookmarking rather than a one-time watch — long runtime combined with a low like-to-view ratio is the empirical signature of this behavior (people watch fully to save, not to react).
- **The "whoa" transformation gasp.** A single wordless visual payoff is forwarded on its own visual strength with zero domain context required — this is a share trigger, not a save trigger, and correlates with low like-to-view ratios (high reach via algorithmic pass-along, not deep engagement).
## 2. Consistency over virality
The best pure-data account measured had **zero statistical outliers** — its top reel was only 1.35x its own median. Every post performs; none spike, none flop. That is the deliberate trade: template consistency as the strategy, not "swing for a viral outlier."
Contrast: an account chasing viral highlight moments had one reel at 96x its own median — and that reel had nothing to do with the account's core format (it was a lucky highlight clip with a caption, not the data format at all). Outlier-chasing accounts get carried by non-repeatable moments; consistency accounts get carried by the template itself being the product.
Implication: judge a reel template by whether it can hit the same beat structure every time, not by whether any single instance could go viral. If a crossover/fandom hook is available and honest, it can lift a single reel's ceiling — but don't build the core format around hoping for one.
## 3. Voice sets the pace — voiceover-first workflow
Never fit voice to animation. The order is:
1. Write the script.
2. Generate the audio per sentence and measure actual duration (e.g. one file per sentence via TTS, `ffprobe` the runtime).
3. Time animations/beat-starts to the measured sentence durations — not the other way around.
Natural spoken rate is roughly 180 wpm, but pauses between beats bring the *elapsed* rate down to roughly 110-130 wpm across a full reel. If a script runs long, **shorten the script** — do not speed up the voice track. A rushed voice reads as low-quality and undermines the 5th-grade comprehension target below.
## 4. The 5th-grade rule
Optimize for both comprehension and reading speed simultaneously:
- ~40-50 word total script for a short reel.
- ≤6 words per on-screen text element.
- Every key stat, number, or rule line holds on screen ≥2.5s before the scene advances.
- Charts and big numbers carry the story; on-screen text only labels what's already visually obvious — it should never be the only place an idea lives.
If a viewer would need to pause to re-read a card, cut it down or extend its hold.
## 5. Duration
- Silent (voiceless) reels: 14-20s, biased toward 15-19s.
- Voiced reels: ~22-26s (measured hold times push voiced reels a few seconds past the silent target — that's expected, not scope creep).
- One insight per reel. Don't stack multiple claims into one video hoping for more value; a richer source (e.g. a full blog post) becomes *several* reels, each with its own single insight.
## 6. Data integrity
Every spoken or shown number must trace back to a real data source — no invented stats, no "roughly right" placeholders left in for polish later. When a number is rounded for spoken delivery, say "about" or let the rounding be obviously approximate (e.g. "twenty-eight percent" for a true 27.9%) — never present a rounded number as exact. Keep a written trace from script number → source field/table for every stat that appears, spoken or on-screen.
## 7. TTS craft — phonetic respelling map
Off-the-shelf TTS mispronounces proper nouns, brand names, and acronyms by reading them literally. Maintain a phonetic respelling map (proper nouns, brand names like "TCGplayer" → "T C G player", acronyms like "SIR" → "S I R", spoken letter-by-letter for suffixes like "ex" → "E X"):
- Apply respellings to the **spoken** script text fed to the TTS engine only. On-screen captions always keep the correct/official spelling — never show the respelling to the viewer.
- Generate and sanity-check new respellings individually before using them in a full script (synthesize the single term, check the resulting duration is plausible for its syllable count).
- Produce **per-sentence audio files**, not one monolithic voice track. This makes fixing a single mispronounced line cheap — regenerate that one file and re-splice, instead of re-rendering the whole VO.
- Keep the map itself as a living document per project (term → respelling → note) so it compounds across reels instead of being re-derived each time.
## 8. Visual identity
- **Dark, near-black background** is the default for data reels: it maximizes contrast against data colors (chart lines, highlight colors, ticking numbers), suits night/OLED viewing, makes hero product imagery pop against the frame, and reads as a "terminal aesthetic" that signals technical trustworthiness for a data-driven brand.
- **Hero product/subject imagery** (the actual card, chart, product, etc.) should be sourced at the highest resolution obtainable — check what a source CDN actually serves (don't assume a legacy asset pattern still works; verify with a resolution/HTTP-status check before building around it) and fall back gracefully if a preferred size 403s.
- **Consistent brand typography**, with **tabular figures** (fixed-width digits) for any number that ticks or animates — proportional digits cause visual jitter as a number counts up or down.From Evan-Kim2028/agent-skills, MIT.
More from Evan-Kim2028/agent-skills
- 0.552score
ebay-listing
Evan-Kim2028
List Pokémon TCG singles on the ekcope-46 eBay store via lake-of-rage ebay-sell (Trading AddFixedPriceItem).
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
data
Evan-Kim2028
Hub for data-engineering pipeline work — storage/ingest/serve choice plus shared discipline (idempotency, incremental-not-full-recompute, schema fencing…
SkillBFreshness: B★ 1Claude Code +9 - 0.548score
data-api
Evan-Kim2028
Use when consuming HTTP APIs for ingestion (rate limits, backoff, pagination, auth, schema fencing) or serving gold over HTTP (FastAPI + DuckDB, pushdown…
SkillBFreshness: B★ 1Claude Code +9 - 0.548score
data-product-eval
Evan-Kim2028
Portable methodology for evaluating published estimates, marks, or forecasts against later realized outcomes — frozen snapshots, walk-forward fit vs forecast…
SkillBFreshness: B★ 1Claude Code +9 - 0.548score
data-semantic-quality
Evan-Kim2028
Portable methodology for semantic (row-truth) data quality — write-time quality attributes, trust ladders, cohort fences, golden entity packs with dual error…
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
data-apache-lakehouse
Evan-Kim2028
Use when designing, modifying, or debugging Apache Iceberg lakehouses (bronze/silver/gold medallion specifically on Iceberg) — PyIceberg +…
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
data-identity-resolution
Evan-Kim2028
Portable workflow for attaching messy records to canonical entities — evidence ladder, fail-closed assignment, quarantine on strong-vs-weak conflict…
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
data-pokemon-tcg-foundations
Evan-Kim2028
Use when working with a trading-card sales tape — any sale-level dataset of collectible card transactions across multiple venues (Pokémon TCG, sports cards…
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
data-pipeline-operations
Evan-Kim2028
Use when running multiple data pipelines on one host: memory admission, systemd MemoryMax, OOM that only appears under coexistence, capacity ratchets…
SkillBFreshness: B★ 1Claude Code +9 - 0.502score
flutter-pro-ux-review
Evan-Kim2028
Production Flutter UX audit: ranked polish findings (dead taps, null text, a11y, keyboard, haptics, layout shift, async/offline honesty, motion, empty states…
SkillCFreshness: C★ 1Claude Code +9 - 0.502score
browser-verify
Evan-Kim2028
Prove UI in a real browser — Playwright e2e, visual snapshots, axe, and/or Chrome DevTools MCP (live DOM, console, network, performance).
SkillCFreshness: C★ 1Claude Code +9 - 0.502score
mobile-app-echarts-visual
Evan-Kim2028
Mobile-readable **product ECharts** (card price/volume, portfolio history, set charts) without desktop regressions — grid gutters, axisLabel floors, legend…
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 16, 2026 (2 months ago)
- Last release
- Jun 22, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Evan-Kim2028/agent-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Evan-Kim2028
- 0.552score
ebay-listing
Evan-Kim2028
List Pokémon TCG singles on the ekcope-46 eBay store via lake-of-rage ebay-sell (Trading AddFixedPriceItem).
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
data
Evan-Kim2028
Hub for data-engineering pipeline work — storage/ingest/serve choice plus shared discipline (idempotency, incremental-not-full-recompute, schema fencing…
SkillBFreshness: B★ 1Claude Code +9 - 0.548score
data-api
Evan-Kim2028
Use when consuming HTTP APIs for ingestion (rate limits, backoff, pagination, auth, schema fencing) or serving gold over HTTP (FastAPI + DuckDB, pushdown…
SkillBFreshness: B★ 1Claude Code +9 - 0.548score
data-product-eval
Evan-Kim2028
Portable methodology for evaluating published estimates, marks, or forecasts against later realized outcomes — frozen snapshots, walk-forward fit vs forecast…
SkillBFreshness: B★ 1Claude Code +9 - 0.548score
data-semantic-quality
Evan-Kim2028
Portable methodology for semantic (row-truth) data quality — write-time quality attributes, trust ladders, cohort fences, golden entity packs with dual error…
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
data-pokemon-tcg-foundations
Evan-Kim2028
Use when working with a trading-card sales tape — any sale-level dataset of collectible card transactions across multiple venues (Pokémon TCG, sports cards…
SkillBFreshness: B★ 1Claude Code +9
Cite this page
data-reels skill. Agent Mart. https://agentmart.dev/skills/evan-kim2028-data-reels (last updated 2026-10-24)