Engraved and monogrammed gifts: one order-by cue per lead time
Personalised gifts need earlier cutoffs than stock items. Compute each order-by date from production plus transit days and burn all lines in one caption job.

Show one order-by line per product line, each computed as the delivery date minus production days minus transit days, and burn them as cues in a single caption job ($0.20 for a clip up to 60 seconds). An engraved item with a 5-day make time needs an earlier cutoff than a stock item, and one shared "order by Dec 15" card is wrong for at least one of them.
Why one date fails
Holiday clips usually carry a single shipping cutoff. Personalised products break that. The customer sees "order by December 15", orders an engraved mug on the 14th, and the mug is still in production on the 20th. The cutoff for a personalised line is earlier by exactly the production time, and that number lives in your operations data, not in the creative.
The arithmetic
The table uses made-up lead times to show the shape of the calculation. Replace them with your own production days and with the carrier's published transit times for the service you use. This post does not provide carrier dates; see the stored carrier posts for those, which cite the carriers' own pages.
The delivery date used in the sample is December 24, 2026.
| Product line | Make days | Transit days | Order by (for Dec 24) |
|---|---|---|---|
| Engraved | 5 | 4 | Tue 15 Dec |
| Embroidered | 7 | 4 | Sun 13 Dec |
| Standard | 1 | 4 | Sat 19 Dec |
Generate the cues
The script computes each cutoff and builds the cues for POST /v1/video-captions. Each cue is a short line with text, start and end in seconds, and Sume burns them without speech-to-text. Add an Idempotency-Key that includes the delivery date, so a changed date is a new job.
If one line's cutoff has already passed on the day the clip is published, remove that line instead of leaving a false offer in the clip.
import json
from datetime import date, timedelta
DELIVER_BY = date(2026, 12, 24)
# per product line: (production days, transit days) from YOUR own operations data
LINES = {"engraved": (5, 4), "embroidered": (7, 4), "standard": (1, 4)}
cues = []
for i, (name, (make, ship)) in enumerate(LINES.items()):
cutoff = DELIVER_BY - timedelta(days=make + ship)
cues.append({"text": f"{name.title()}: order by {cutoff:%a %d %b}",
"start": 0.5 + i * 2.5, "end": 3.0 + i * 2.5})
print(json.dumps({"video_url": "https://example.com/gifts.mp4", "cues": cues}, indent=1))Check it on screen
After burning, pull a few stills at the cue times with video frames and read each line. Check the weekday against a calendar: the common bug is a date string from a different year or a weekday that does not match the date.
Limits
Make times vary with order volume. A line that takes 5 days in October can take 9 in the first week of December, so recompute when your queue grows. The honest option when capacity is tight is to move the cutoff earlier, burn the new cue, and retire the old clip. Do not let the weekend fall inside a make window you have not staffed: a Sunday cutoff only works if someone is producing on the Saturday before it, and the date on the card should come from the same calendar your production team uses.
Sources
Related posts
More in Use cases
- Place the EU AI icon where app UI and captions will not cover it
The EU icon page says no overlay should obstruct the icon on video. TikTok publishes ad safe-zone files; use compose layout and caption placement to stay clear.
- EU AI icon on video: burn it in, do not rely on a platform badge
EU icon guidance says the label must be embedded in the video and kept on reshare or download. A burned-in overlay does that; a platform badge does not.
- EU deepfake audio label: repeat the disclaimer in a long voiceover
The EU Code lists an audible disclaimer for audio-only deepfakes, repeated in longer content. Join disclaimer clips into a voiceover with Sume timeline audio.
- EU deepfake label on a recorded video: disclaimer and end credits
The EU Code of Practice lists an opening disclaimer, persistent icon and end credits for recorded video. Burn the text onto a Sume avatar clip with cues.
Written by Sume