---
title: "10 animated chart and stat effects for video ads, with a tested Claude prompt for each"
description: "Bars, pies, rings and counters that grow on screen, for ads that make their point with a number."
url: https://www.recharm.com/effects/lists/animated-chart-and-stat-effects-for-video-ads
---

# 10 animated chart and stat effects for video ads

Bars, pies, rings and counters that grow on screen, for ads that make their point with a number.

Number counter: A big yellow number races up from 0 and slows as it lands on "50,000+" above "happy customers".

## [1. Number counter](https://www.recharm.com/effects/number-counter)

A big yellow number races up from 0 and slows as it lands on "50,000+" above "happy customers".

```
Add a number counter to input.mp4: from 0.5 seconds, a black box at 69% opacity with rounded corners, 85% of the frame width wide and centered across, with its center about 70% down the frame. In it, a yellow (255, 214, 0) bold number 20% of the frame width tall counts up from 0 to 50,000 with comma separators over 2 seconds, easing out (value = 50000 * (1 - (1 - p)^3), p going 0 to 1), and gains a "+" ("50,000+") once it lands at 2.5 seconds; under it "HAPPY CUSTOMERS" in white, 6.5% of the frame width tall. Nothing shows before 0.5 seconds, and the counter stays until the end. Use Python with Pillow to draw it and ffmpeg to put it on the video (don't rely on ffmpeg's drawtext filter), keep the audio, and save it as output.mp4.
```

[Full guide: settings and the tested script](https://www.recharm.com/effects/number-counter)

Animated bar chart: A dark chart card fades in over the lower third and three yellow bars grow out to 42%, 68% and 91% one after another, each percentage ticking up as its bar stretches.

## [2. Animated bar chart](https://www.recharm.com/effects/animated-bar-chart)

A dark chart card fades in over the lower third and three yellow bars grow out to 42%, 68% and 91% one after another, each percentage ticking up as its bar stretches.

```
Add an animated bar chart to input.mp4. At 0.4 seconds fade in, over 0.3 seconds, a dark (15, 15, 25) rounded card at 84% opacity spanning 6% to 94% across and 60% to 88% down, titled "Brighter skin, by week" in white bold text 5.5% of the frame width tall, its middle 3.5% of the frame height below the card's top and 4% of the frame width in from its left edge. Inside it put three rows centered 70%, 76.5% and 83% down: a white bold label 4.8% of the frame width tall, 4% of the frame width in from the card's left edge ("Week 1", "Week 4", "Week 8"), a faint white rounded track from 30% to 76% across and 4% of the frame height thick, and a yellow (255, 196, 0) rounded bar on that track that grows from zero to 42%, 68% and 91% of the track's length. The first bar starts at 0.8 seconds, each next one 0.2 seconds later, and each takes 1.2 seconds with an ease-out cubic. Right-aligned at the card's right edge (4% of the frame width in) on each row, a white bold percentage of the same size counts up from 0% with its bar. Everything then stays to the end. Use Python with Pillow to draw it and ffmpeg to put it on the video (don't rely on ffmpeg's drawtext filter), keep the audio, and save it as output.mp4.
```

[Full guide: settings and the tested script](https://www.recharm.com/effects/animated-bar-chart)

Animated line graph: A yellow line draws itself left to right across a dark grid, zigzagging upward from January to December, and a yellow "+184%" tag pops up where it ends.

## [3. Animated line graph](https://www.recharm.com/effects/animated-line-graph)

A yellow line draws itself left to right across a dark grid, zigzagging upward from January to December, and a yellow "+184%" tag pops up where it ends.

```
Add an animated line graph to input.mp4. At 0.4 seconds fade in, over 0.3 seconds, a dark (15, 15, 25) rounded card at 92% opacity spanning 6% to 94% across and 56% to 90% down, titled "Repeat buyers, 2026" in white bold text 5.5% of the frame width tall, its middle 3.5% of the frame height below the card's top and 4% of the frame width in from its left edge. Inside it, a plot area from 12% to 80% across and 66% to 84% down with five faint white horizontal grid lines evenly spaced from its top to its bottom. Twelve points, evenly spaced from the plot's left edge to its right edge, have the values 12, 18, 15, 27, 24, 36, 44, 40, 57, 66, 78 and 92 on a 0-100 scale from the plot's bottom to its top. Under the 1st, 4th, 7th and 10th points, centered 2.2% of the frame height below the plot, write "Jan", "Apr", "Jul" and "Oct" in semi-transparent white bold text 3.4% of the frame width tall. From 0.8 seconds draw a yellow (255, 196, 0) line through the points, 1.2% of the frame width thick, growing from the first point along its length to the last over 2.0 seconds with a smoothstep ease-in-out, with a white dot 3.2% of the frame width across and a yellow outline at its moving tip and a faint yellow fill (about 20% opacity) between the drawn line and the plot's bottom. When the line reaches the last point (2.8 seconds), pop in over 0.25 seconds with a slight overshoot a yellow (255, 196, 0) pill 22% of the frame width wide and 4.5% of the frame height tall, centered horizontally on the last point and 4.5% of the frame height above it, reading "+184%" in dark bold text 5% of the frame width tall. Everything then stays to the end. Use Python with Pillow to draw it and ffmpeg to put it on the video (don't rely on ffmpeg's drawtext filter), keep the audio, and save it as output.mp4.
```

[Full guide: settings and the tested script](https://www.recharm.com/effects/animated-line-graph)

Circular progress ring: A yellow ring sweeps clockwise from 12 o'clock around a dark disc while the number in its middle counts up from 0% to 92%, above "saw brighter skin".

## [4. Circular progress ring](https://www.recharm.com/effects/circular-progress-ring)

A yellow ring sweeps clockwise from 12 o'clock around a dark disc while the number in its middle counts up from 0% to 92%, above "saw brighter skin".

```
Add a circular progress ring to input.mp4: from 0.5 seconds, a black disc at 65% opacity, 50% of the frame width across, centered across and 74% down the frame. Inside it, a ring 6% of the frame width thick whose outer edge sits 4.5% of the frame width in from the disc's edge: a faint white track (white at 27% opacity) all the way round, and over it a yellow (255, 214, 0) arc with round ends that starts at 12 o'clock and fills clockwise to 92% of the circle over 2 seconds, easing out (share = 0.92 * (1 - (1 - p)^3), p going 0 to 1, so it is full at 2.5 seconds). In the middle of the disc, the percentage in bold yellow (255, 214, 0), 13% of the frame width tall, counts up with the arc from 0% to 92% (round(100 * share) followed by %). Under the disc, "SAW BRIGHTER SKIN" in bold white, 5% of the frame width tall, on a black rounded pill at 65% opacity, centered across. Draw the ring at 3x size and scale it down so its edges are smooth. Nothing shows before 0.5 seconds, and the ring holds at 92% until the end. Use Python with Pillow to draw it and ffmpeg to put it on the video (don't rely on ffmpeg's drawtext filter), keep the audio, and save it as output.mp4.
```

[Full guide: settings and the tested script](https://www.recharm.com/effects/circular-progress-ring)

Animated pie chart: A dark chart card fades in over the lower third and a pie fills clockwise from 12 o'clock, opening a yellow 50% slice, then pink 30% and red 20%, while the legend beside it counts each share up.

## [5. Animated pie chart](https://www.recharm.com/effects/animated-pie-chart)

A dark chart card fades in over the lower third and a pie fills clockwise from 12 o'clock, opening a yellow 50% slice, then pink 30% and red 20%, while the legend beside it counts each share up.

```
Add an animated pie chart to input.mp4. At 0.4 seconds fade in, over 0.3 seconds, a dark (15, 15, 25) rounded card at 84% opacity spanning 6% to 94% across and 55% to 90% down, titled "First change users noticed" in white bold text 5.5% of the frame width tall, its middle 3.5% of the frame height below the card's top and 4% of the frame width in from its left edge. On the card's left draw a pie centered 28% across and 75.5% down with a radius of 17% of the frame width: a faint white circle at first, then from 0.8 seconds a sweep that starts at 12 o'clock and goes clockwise all the way round in 1.8 seconds with an ease-in-out cubic, filling three slices in turn: "Brighter" 50% in yellow (255, 196, 0), "Smoother" 30% in pink (240, 70, 150) and "Firmer" 20% in red (230, 40, 50), with thin card-colored lines between them. To the right put a legend with rows centered 68%, 75.5% and 83% down: a dot in the slice color starting 52% across, the slice's name in white bold text 4.4% of the frame width tall just right of it, and right-aligned at 90% across that slice's percentage, counting up from 0% as its slice opens. Everything then stays to the end. Use Python with Pillow to draw it and ffmpeg to put it on the video (don't rely on ffmpeg's drawtext filter), keep the audio, and save it as output.mp4.
```

[Full guide: settings and the tested script](https://www.recharm.com/effects/animated-pie-chart)

Comparison table: A white table rises over the bottom of the shot with "Ours" and "Others" columns, and four feature rows fill in one by one, each getting a green tick under Ours and a red cross under Others.

## [6. Comparison table](https://www.recharm.com/effects/comparison-table)

A white table rises over the bottom of the shot with "Ours" and "Others" columns, and four feature rows fill in one by one, each getting a green tick under Ours and a red cross under Others.

```
Add a comparison table to input.mp4. Draw a white (255, 255, 255) card at 96% opacity with corners rounded by 4% of the frame width and a soft black shadow (35% opacity, 8 px lower, blurred by 12 px). It spans 4% to 96% of the frame width, its top edge sits 62% of the way down, and it holds a heading row and four rows, each 11% of the frame width tall, plus 3% of the frame width of padding at the bottom. The left 52% of the card holds the feature names; the next 24% is our column, filled with light purple (237, 228, 255) as a rounded strip inset 6 px from its sides and 8 px from the card's top and bottom; the last 24% is the other column. The heading row says "Ours" in purple (110, 60, 200) and "Others" in grey (120, 120, 130), bold, 5% of the frame width tall, centered in their columns. Thin light grey (225, 225, 232) 2 px lines separate the rows. The card rises 8% of the frame width into place while fading in over 0.3 seconds at 0.5 seconds. The rows are "15% vitamin C", "Fragrance free", "Vegan formula" and "Under $30", in dark (20, 20, 30) bold text 4.8% of the frame width tall, left-aligned 5% of the frame width in from the card's left edge; they appear at 1.0, 1.5, 2.0 and 2.5 seconds, each fading in while rising 12 px over 0.25 seconds. In each row, 0.15 seconds after the row appears a green (34, 197, 94) circle 7.5% of the frame width across with a white tick pops in at the center of our column, and 0.3 seconds after the row appears a red (230, 30, 45) circle the same size with a white X pops in at the center of the other column; each pop scales up from nothing over 0.2 seconds with a slight overshoot. Everything stays on to the end. Use Python with Pillow to draw it and ffmpeg to put it on the video (don't rely on ffmpeg's drawtext filter), keep the audio, and save it as output.mp4.
```

[Full guide: settings and the tested script](https://www.recharm.com/effects/comparison-table)

Poll sticker: A white "Would you try it?" poll card pops in above the product, then its pink vote bars sweep out to 78% and 22% as the percentages count up.

## [7. Poll sticker](https://www.recharm.com/effects/poll-sticker)

A white "Would you try it?" poll card pops in above the product, then its pink vote bars sweep out to 78% and 22% as the percentages count up.

```
Add a poll sticker to input.mp4: a white card 80% of the frame width, centered across with its top edge 8% down, rounded corners (radius 6% of the card width) and a soft drop shadow. Inside, with padding of 7% of the card width: the question "Would you try it?" in bold black (20, 20, 24) at 8% of the card width, centered at the top; then two options, "Yes, obsessed" and "Not yet", each a bold black label (5.5% of the card width) on the left above a full-width rounded bar 6.5% of the card width tall in light gray (232, 232, 238). The card pops in at 0.4 seconds over 0.35 seconds with a slight overshoot, growing from its center, with empty bars and no percentages. From 1.0 to 2.2 seconds, easing out, the bars fill from the left in pink (240, 50, 130) to 78% and 22% of their width while a percentage at the right end of each label line counts up from 0 to 78% and 22%; then everything holds to the end. Use Python with Pillow to draw it and ffmpeg to put it on the video (don't rely on ffmpeg's drawtext filter), keep the audio, and save it as output.mp4.
```

[Full guide: settings and the tested script](https://www.recharm.com/effects/poll-sticker)

Day counter: A dark card at the top counts "DAY 1", "DAY 7" and "DAY 30" while the clip turns from dull to vivid and a yellow timeline along the bottom fills to each day.

## [8. Day counter](https://www.recharm.com/effects/day-counter)

A dark card at the top counts "DAY 1", "DAY 7" and "DAY 30" while the clip turns from dull to vivid and a yellow timeline along the bottom fills to each day.

```
Make a day-by-day results video from before.mp4 (the dull look) and after.mp4 (the vivid look), both 540x960. From 0 to 2 seconds show before.mp4, from 2 to 4 seconds a 50/50 mix of the two, and from 4 to 6 seconds after.mp4, keeping before.mp4's audio. Each stage gets a label centered horizontally at 12% down the frame: a dark rounded card (RGB 20, 20, 24 at 80% opacity) reading "DAY" in white bold at 7.5% of the frame width tall, followed by the number in yellow (255, 205, 0) bold at 13% of the width: "DAY 1" at 0 seconds, "DAY 7" at 2 seconds and "DAY 30" at 4 seconds. Each label pops in over 0.3 seconds with a slight overshoot and replaces the one before. Along the bottom, at 88% down, draw a timeline from 15% to 85% across on its own dark rounded card: a thin translucent white line with three dots (at 15%, 50% and 85% across) captioned "DAY 1", "DAY 7" and "DAY 30" underneath. The line turns yellow (255, 205, 0) up to the current day's dot, filling over 0.4 seconds as each new day starts, reached dots are yellow and the current one has a yellow ring around it. Draw the labels and timeline with Python and Pillow (don't use ffmpeg's drawtext filter), composite them with ffmpeg, keep the audio and save it as output.mp4 (6 seconds, 30fps).
```

[Full guide: settings and the tested script](https://www.recharm.com/effects/day-counter)

Animated checklist: Three benefit lines slide in one after another on a dark card, and a green circle draws a white tick beside each.

## [9. Animated checklist](https://www.recharm.com/effects/animated-checklist)

Three benefit lines slide in one after another on a dark card, and a green circle draws a white tick beside each.

```
Add an animated checklist to input.mp4: a dark (15, 15, 25) rounded card at 75% opacity, 84% of the frame width, centered horizontally with its center 80% of the way down, holding three lines in white bold text 31 px tall: "Brighter in 7 days", "Fragrance free" and "Dermatologist tested". The card fades in over 0.3 seconds at 0.5 seconds. The lines slide 43 px in from the left and fade up over 0.3 seconds, starting at 0.5, 1.3 and 2.1 seconds. To the left of each line, a green (34, 197, 94) circle 44 px across pops in 0.25 seconds after its line starts and a white tick draws itself inside it over 0.25 seconds. Everything stays on to the end. Use Python with Pillow to draw it and ffmpeg to put it on the video (don't rely on ffmpeg's drawtext filter), keep the audio, and save it as output.mp4.
```

[Full guide: settings and the tested script](https://www.recharm.com/effects/animated-checklist)

Wrong and right marks: Two white option cards appear above and below the product, then a red X stamps onto "10-step routine" and greys it out, and a green tick stamps onto "One serum".

## [10. Wrong and right marks](https://www.recharm.com/effects/wrong-right-marks)

Two white option cards appear above and below the product, then a red X stamps onto "10-step routine" and greys it out, and a green tick stamps onto "One serum".

```
Add wrong and right marks to input.mp4. Draw two white (255, 255, 255) rounded cards at 94% opacity with a soft black shadow (35% opacity, 6 px lower, blurred by 10 px), each 84% of the frame width and 20% of the frame width tall with corners rounded by 30% of their height, centered horizontally with their centers 16% and 84% of the way down. The top card says "10-step routine" and the bottom card "One serum", in dark (20, 20, 30) bold text 7% of the frame width tall, left-aligned 6% of the frame width in from the card's left edge and centered vertically. Both cards fade in over 0.3 seconds at 0.3 seconds. At 1.0 seconds a red (230, 30, 45) X stamps onto the right end of the top card, and at 2.0 seconds a green (34, 197, 94) tick stamps onto the right end of the bottom card. Each mark sits in a box 26% of the frame width across, centered 79% across and on its card's center line, drawn with round-ended strokes 15% of the box wide inside a white outline 24% of the box wide, and tilted 8 degrees clockwise. A stamp lands over 0.25 seconds, shrinking from twice its size to its normal size with an ease-out while fading in. Once the X has landed, the top card's text turns grey (150, 150, 158). Everything stays on to the end. Use Python with Pillow to draw it and ffmpeg to put it on the video (don't rely on ffmpeg's drawtext filter), keep the audio, and save it as output.mp4.
```

[Full guide: settings and the tested script](https://www.recharm.com/effects/wrong-right-marks)

## More lists

- [**10 caption and text effects for video ads**](https://www.recharm.com/effects/lists/caption-and-text-effects-for-video-ads)
- [**10 video transitions for ads**](https://www.recharm.com/effects/lists/video-transitions-for-ads)
- [**10 hook effects for the first 3 seconds of an ad**](https://www.recharm.com/effects/lists/hook-effects-for-the-first-3-seconds)
- [**10 effects for product videos**](https://www.recharm.com/effects/lists/effects-for-product-videos)
- [**10 effects for talking-head ads**](https://www.recharm.com/effects/lists/effects-for-talking-head-ads)
- [**10 retro film looks for video ads**](https://www.recharm.com/effects/lists/retro-film-looks-for-video-ads)
- [**10 VHS and 80s retro effects for video ads**](https://www.recharm.com/effects/lists/vhs-and-80s-retro-effects-for-video-ads)
- [**10 color grades for product videos**](https://www.recharm.com/effects/lists/color-grades-for-product-videos)
- [**10 glitch effects for video ads**](https://www.recharm.com/effects/lists/glitch-effects-for-video-ads)
- [**10 distortion effects for video ads**](https://www.recharm.com/effects/lists/distortion-effects-for-video-ads)
- [**10 light overlays for product videos**](https://www.recharm.com/effects/lists/light-overlays-for-product-videos)
- [**10 text title styles for video ads**](https://www.recharm.com/effects/lists/text-title-styles-for-video-ads)
- [**10 3D text effects for video ads**](https://www.recharm.com/effects/lists/3d-text-effects-for-video-ads)
- [**10 beat-synced edits for Reels and TikTok**](https://www.recharm.com/effects/lists/beat-synced-edits-for-reels-and-tiktok)
- [**10 audio visualizers for music and podcast videos**](https://www.recharm.com/effects/lists/audio-visualizers-for-music-and-podcast-videos)
- [**10 UGC and social proof overlays for video ads**](https://www.recharm.com/effects/lists/ugc-and-social-proof-overlays-for-video-ads)
- [**10 effects for testimonial and review ads**](https://www.recharm.com/effects/lists/effects-for-testimonial-and-review-ads)
- [**10 motion and camera effects for product videos**](https://www.recharm.com/effects/lists/motion-and-camera-effects-for-product-videos)
- [**10 stylized art looks for video ads**](https://www.recharm.com/effects/lists/stylized-art-looks-for-video-ads)
- [**10 layout and reframing effects for social video**](https://www.recharm.com/effects/lists/layout-and-reframing-effects-for-social-video)
- [**10 transitions for product reveals**](https://www.recharm.com/effects/lists/transitions-for-product-reveals)
- [**10 effects for sale and Black Friday ads**](https://www.recharm.com/effects/lists/effects-for-sale-and-black-friday-ads)
- [**10 TikTok-style effects for video ads**](https://www.recharm.com/effects/lists/tiktok-style-effects-for-video-ads)
- [**10 effects for app and SaaS ads**](https://www.recharm.com/effects/lists/effects-for-app-and-saas-ads)
- [**10 effects for skincare and beauty ads**](https://www.recharm.com/effects/lists/effects-for-skincare-and-beauty-ads)
- [**10 effects that stop the scroll**](https://www.recharm.com/effects/lists/effects-that-stop-the-scroll)
- [**10 effects for holiday ads**](https://www.recharm.com/effects/lists/effects-for-holiday-ads)
- [**10 caption styles for social video**](https://www.recharm.com/effects/lists/caption-styles-for-social-video)

## Find 3x _winning ads_

Recharm cuts your ad footage into tagged, searchable clips: hooks, testimonials, product shots. Find the shots that win, add the effect with Claude, and ship 3x more ad edits.

[Start 14-day free trial](https://www.recharm.com/get-started)
