---
title: "10 effects for sale and Black Friday ads, with a tested Claude prompt for each"
description: "Badges, slashed prices, coupon codes and countdowns that tell the viewer what the deal is and how long it lasts."
url: https://www.recharm.com/effects/lists/effects-for-sale-and-black-friday-ads
---

# 10 effects for sale and Black Friday ads

Badges, slashed prices, coupon codes and countdowns that tell the viewer what the deal is and how long it lasts.

Sale badge: A round red "30% off" sticker pops onto the top-right corner, tilted slightly.

## [1. Sale badge](https://www.recharm.com/effects/sale-badge)

A round red "30% off" sticker pops onto the top-right corner, tilted slightly.

```
Add a sale badge to input.mp4: a red (230, 30, 45) circle 30% of the frame width across, with "30%" over "OFF" in white and a thin white ring inside, tilted -10 degrees, centered at 78% across and 14% down. It pops in at 0.5 seconds over 0.35 seconds with a slight overshoot, then stays. 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/sale-badge)

Price strikethrough: The old price gets crossed out with a red line, then the lower price pops in beside it.

## [2. Price strikethrough](https://www.recharm.com/effects/price-strikethrough)

The old price gets crossed out with a red line, then the lower price pops in beside it.

```
Add a price drop animation to input.mp4: "$48" in white bold (black outline) at 30% across and 85% down; at 1 second a thick red (230, 30, 45) line crosses it out over 0.25 seconds; at 1.4 seconds "$29" pops in larger in yellow (255, 214, 0) at 68% across. Both stay 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/price-strikethrough)

Countdown timer: A "sale ends in" clock near the top counts down one second at a time.

## [3. Countdown timer](https://www.recharm.com/effects/countdown-timer)

A "sale ends in" clock near the top counts down one second at a time.

```
Add a countdown timer to input.mp4: near the top center, a dark translucent rounded box with "SALE ENDS IN" in yellow and a white HH:MM:SS clock under it that starts at 23:59:59 and goes down one second every second. 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/countdown-timer)

Discount code overlay: A yellow coupon with a dashed cut-here border slides up into the lower part of the frame, reading "USE CODE GLOW20" and "20% off, ends Sunday".

## [4. Discount code overlay](https://www.recharm.com/effects/discount-code-overlay)

A yellow coupon with a dashed cut-here border slides up into the lower part of the frame, reading "USE CODE GLOW20" and "20% off, ends Sunday".

```
Add a discount code overlay to input.mp4: a yellow (255, 210, 0) rounded rectangle 76% of the frame width and 20% of the frame height, centered at 50% across and 78% down, with corner radius 1/8 of its height. Inside it, inset by 1/12 of its height, draw a dashed border in near-black (25, 25, 25). Center three lines of bold near-black text on it: "USE CODE" at 26% of its height (font 12% of its height), "GLOW20" at 52% (font 30%) and "20% OFF · ENDS SUNDAY" at 77% (font 10%). It appears at 1.0 second: over 0.4 seconds it fades in and slides up from 12% of the frame height lower with an ease-out, then stays to the end. Nothing is shown before 1.0 second. 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/discount-code-overlay)

Low stock alert: A white card slides up under the product reading "Only 5 left in stock" in red, then the count ticks down to 3 as its red stock bar drains.

## [5. Low stock alert](https://www.recharm.com/effects/low-stock-alert)

A white card slides up under the product reading "Only 5 left in stock" in red, then the count ticks down to 3 as its red stock bar drains.

```
Add a low stock alert to input.mp4. At 0.5 seconds a white rounded card slides up 6% of the frame height into place over 0.35 seconds while fading in, filling the box from 8% to 92% across and 74% to 88% down. On it, in bold red (220, 38, 38) text 25% of the card's height, left-aligned 7% of the card's width in from its left edge after a small pulsing red dot, it reads "Only 5 left in stock", centered 36% down the card. Below, from 64% to 74% down the card and inset 7% of the card's width on each side, a rounded stock bar with a light gray (229, 231, 235) track and a red (220, 38, 38) fill showing units left out of 10, so 50% full. At 1.8 seconds the text changes to "Only 4 left in stock" and the fill eases down to 40% over 0.4 seconds; at 2.8 seconds it changes to "Only 3 left in stock" and eases down to 30%, then stays. 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/low-stock-alert)

Scratch-off reveal: A gold coin zigzags across a silver scratch card over the bottle, scraping the foil away row by row until a yellow "40% OFF" prize shows underneath.

## [6. Scratch-off reveal](https://www.recharm.com/effects/scratch-off-reveal)

A gold coin zigzags across a silver scratch card over the bottle, scraping the foil away row by row until a yellow "40% OFF" prize shows underneath.

```
Add a scratch-off card to input.mp4. Draw a card 80% of the frame width by 26% of the frame height, centered across and with its center 58% down the frame, rounded corners (radius 10% of the card height) and a soft drop shadow. Under the foil the card is yellow (255, 214, 0) with "40% OFF" in bold red (215, 25, 40) text 36% of the card height tall, centered at 44% down the card, and "TODAY ONLY" in dark red (120, 20, 25) 12% of the card height tall at 76% down. Over it lay brushed silver foil (gray around 150-210 with a diagonal sheen and fine grain) printed with "SCRATCH TO REVEAL" in gray (95, 95, 102), 13% of the card height tall, centered. From 0.6 to 2.4 seconds a gold (196, 160, 84) coin, radius 12% of the card height, moves at a steady speed in a zigzag over four rows (15%, 38%, 62% and 85% down the card, left to right then right to left), and wherever it passes the foil is scratched away in a stroke 32% of the card height wide with slightly ragged edges. Any foil left fades out from 2.4 to 2.65 seconds, the full yellow card holds, and the whole card fades out from 4.5 to 4.8 seconds so the rest of the video is untouched. Use Python with Pillow and numpy to draw the card each frame 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/scratch-off-reveal)

Prize wheel spin: A rainbow eight-prize wheel in front of the product whirls into a blur, slows to a stop with red "30% OFF" under the arrow, and a yellow "You won 30% off" banner pops in above it.

## [7. Prize wheel spin](https://www.recharm.com/effects/prize-wheel-spin)

A rainbow eight-prize wheel in front of the product whirls into a blur, slows to a stop with red "30% OFF" under the arrow, and a yellow "You won 30% off" banner pops in above it.

```
Add a prize wheel spin to input.mp4. Draw a wheel 86% of the frame width across, centered at 50% across and 65% down, with a soft dark drop shadow: a dark (30, 20, 50) rim 6% of the wheel's width thick with 24 small cream (255, 245, 200) dots round it, eight equal slices with thin white dividers and a white hub (18% of the wheel's width) with a dark outline. Clockwise from the top the slices are red (230, 30, 45) "30% / OFF", white "FREE / GIFT", purple (120, 60, 220) "10% / OFF", yellow (255, 214, 0) "FREE / SHIP", teal (0, 170, 160) "20% / OFF", pink (255, 60, 150) "2 FOR / 1", navy (30, 40, 90) "5% / OFF" and orange (255, 140, 0) "50% / OFF", each label in bold on two lines at 66% of the radius, upright when its slice is at the top, dark text on light slices and white on dark ones. Put a white downward triangle with a dark outline, 11% of the frame width, at 12 o'clock over the rim as the pointer; it doesn't move. The wheel starts turned 160 degrees counterclockwise from its landing position, holds until 0.3 seconds, then spins clockwise 5 full turns plus those 160 degrees, ending at 3.8 seconds with the red 30% OFF slice under the pointer; ease it out with a cubic curve so it starts fast and slows the whole way, and motion-blur each frame by averaging the wheel at several angles across the frame's turn. At 4.0 seconds pop in a yellow (255, 214, 0) rounded banner 84% of the frame width wide and 14% of the frame height tall, centered at 13% down, with a dark outline and "YOU WON" over "30% OFF" in dark bold text; it scales up over 0.35 seconds with a slight overshoot and stays. Use Python with Pillow to draw the wheel, labels and banner and ffmpeg to put them 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/prize-wheel-spin)

Scrolling ticker: A yellow band appears near the bottom and "FREE SHIPPING • NEW FORMULA • BACK IN STOCK" crawls across it from right to left, looping without a gap.

## [8. Scrolling ticker](https://www.recharm.com/effects/scrolling-ticker)

A yellow band appears near the bottom and "FREE SHIPPING • NEW FORMULA • BACK IN STOCK" crawls across it from right to left, looping without a gap.

```
Add a scrolling ticker to input.mp4 (540x960). From 0.5 seconds to the end, show a full-width yellow (255, 210, 0) band 8% of the frame height tall, centered 82% down the frame, fading in over 0.2 seconds. On it, "FREE SHIPPING  •  NEW FORMULA  •  BACK IN STOCK  •  " repeated end to end in near-black (20, 20, 20) bold, text 7.5% of the frame width high and vertically centered in the band, scrolls from right to left at 40% of the frame width per second: the first letter enters at the band's right edge at 0.5 seconds and the copies follow with no gap, so the text never runs out. Nothing shows before 0.5 seconds and the rest of the frame is left as it is. 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/scrolling-ticker)

Call-to-action button: A pink "Shop now" button pops up low in the frame for the last few seconds and swells gently in and out, sending out a white ring each beat, as if waiting to be tapped.

## [9. Call-to-action button](https://www.recharm.com/effects/call-to-action-button)

A pink "Shop now" button pops up low in the frame for the last few seconds and swells gently in and out, sending out a white ring each beat, as if waiting to be tapped.

```
Add a call-to-action button to input.mp4: a pink (255, 45, 110) pill-shaped button 64% of the frame width and 9% of its height, centered across and 82% of the way down, with "SHOP NOW" in white bold text and a white chevron after it, on a soft dark shadow. It pops in at 3.5 seconds, growing from nothing to full size over 0.3 seconds with a slight overshoot, then pulses until the end: it smoothly swells to 110% and back every 0.8 seconds, and at the top of each pulse a 4-pixel white outline of the button spreads outward and fades over 0.8 seconds. Nothing shows before 3.5 seconds. 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/call-to-action-button)

Money rain: Green dollar bills pour down from the top edge and keep falling past the product to the end, spinning and flipping edge-on as they drop.

## [10. Money rain](https://www.recharm.com/effects/money-rain)

Green dollar bills pour down from the top edge and keep falling past the product to the end, spinning and flipping edge-on as they drop.

```
Add a money rain to input.mp4. Draw a banknote with Pillow: a 300x130 pixel rounded rectangle in off-white (246, 248, 236), a green (70, 150, 80) face inset 9 pixels, a thin dark green (25, 80, 40) line 15 pixels in, a pale green (150, 205, 140) oval 88x80 pixels in the middle with a dark green "$" in bold type, and "100" in off-white in each corner. Rain 40 of these notes down the frame starting at 0.3 seconds: each is scaled to 20% to 30% of the frame width long (bigger notes fall faster, 0.30 to 0.46 frame heights per second, and are drawn in front), placed at random from 5% to 95% across, and queued evenly from 8% to 138% of the frame height above the top edge so they enter one after another. Spin each note at up to 90 degrees per second either way from a random starting angle, squash its height with |cos| over a 1.2 to 2.4 second cycle (never below 12%) so it looks like it flips over, and sway it side to side by 4% of the frame width over 1.8 to 3.2 seconds. A note that falls 15% past the bottom comes back in at the top, so the shower keeps going to the end. Nothing shows before 0.3 seconds and the notes take until about 2 seconds to reach the bottom half. Use Python with numpy and 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/money-rain)

## 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 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 animated chart and stat effects for video ads**](https://www.recharm.com/effects/lists/animated-chart-and-stat-effects-for-video-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)
