Amazon BFCM inventory arrival dates: which SKUs get sale clips first
Amazon's BFCM inbound dates are Oct 14, 21 and 28 by route. Make clips first for SKUs that arrive by Oct 14. Read 2026-10-05, with a queue sketch.

Amazon's Holiday 2026 page lists three inventory arrival deadlines for Black Friday and Cyber Monday: **October 14** for AWD, **October 21** for FBA minimal splits and **October 28** for FBA Amazon-optimized splits. If you are short on creative time, make sale clips first for the SKUs whose stock will arrive by the earliest date, because a clip for a SKU that cannot be in stock is wasted money and a risk of advertising something you cannot ship.
The three dates (read 2026-10-05)
Which route a SKU takes is a logistics decision, not a creative one. The point here is only that the route sets the order of the creative queue.
| Route | Arrival deadline | Clip priority (our suggestion) |
|---|---|---|
| AWD | October 14 | First: render now |
| FBA, minimal splits | October 21 | Second: render after the Oct 14 batch is reviewed |
| FBA, Amazon-optimized splits | October 28 | Third: hold a price-card template, render last |
Build the queue by arrival date
Keep a list of SKU, deadline, source clip and price text. Process it in deadline order and give every job a deterministic idempotency key (SKU plus a version number). A retry after a network error then returns the same job instead of billing a second caption job. Jobs and results explains the job envelope you poll afterwards.
The sketch burns one price cue on each clip. Caption jobs are $0.20 each for clips up to 60 seconds, per the captions page.
import json, os, urllib.request
SKUS = [ # (sku, arrival deadline label, clip url, price text)
("mug-set", "Oct 14", "https://example.com/mug.mp4", "$24"),
("scarf", "Oct 21", "https://example.com/scarf.mp4", "$38"),
("candle", "Oct 28", "https://example.com/candle.mp4", "$18"),
]
for sku, due, url, price in sorted(SKUS, key=lambda s: s[1]):
body = {"video_url": url, "style": "slam",
"cues": [{"text": price, "start": 0.5, "end": 3.5}]}
req = urllib.request.Request(
"https://api.sume.com/v1/video-captions", json.dumps(body).encode(),
{"Authorization": "Bearer " + os.environ["SUME_API_KEY"],
"Content-Type": "application/json", "Idempotency-Key": f"bf26-{sku}-v1"})
print(sku, due, json.load(urllib.request.urlopen(req)).get("request_id"))Why the late group should wait
The October 28 group has the most time to change. Prices move, and Amazon's own page notes fees and surcharges starting October 15, so the price you plan to show on October 6 may not be the price you show on November 20. Rendering the late group last lets you burn the final price once instead of re-burning it.
Review while stock is in transit
The gap between rendering and arrival is useful. Use it to look at each finished clip frame by frame for price typos, because the price card is the one element that must be exactly right. Video frames can pull up to 24 stills from a clip of up to 300 seconds at the source size, so you can check the exact frame where the price appears at the cue time rather than scrubbing by hand.
Keep the SKU, price text and cue times in one file next to the clip URL. When a price moves, you change one row, re-run only that SKU, and the idempotency key version increments to v2 so the new job is not mistaken for a retry of the old one.
Limits
The dates come from a seller-forum post on Amazon's domain, so confirm them in Seller Central for your own account. This post does not say anything about which route is cheaper or faster. If a SKU misses its arrival deadline, pull its clip from the schedule rather than letting an ad promise stock you may not have.
Sources
Related posts
More in Use cases
- Amazon main image bans promo text: where the Black Friday banner goes
Amazon's photography page says main images are pure white, fill 85-100%, with no promotional text. Put the sale banner on a video overlay. Read 2026-10-05.
- Amazon "up to 50% off" needs 10% of ASINs at 50%: a caption check
Amazon says an up-to claim needs 10% of products at the maximum discount. A short Python check counts the ASINs and burns the matching caption cue.
- Animal Shelter Adoption Appeal as an AI Avatar Video: Cost
A shelter adoption appeal using an avatar and a scene photo: scripted scenes, per-scene seconds, request shape and Sume cost on each quality tier.
- Animate a brand mascot still: which Sume models take a first frame
Almost every Sume video row takes a first frame, except H3 Max Recast and Genjutsu. Grok Imagine Video 1.5 is $0.0125 a second; Omni, Wan and Kling add more.
Written by Sume