TL;DR
- Under $50 impulse products: 4-8 hours. $50-200 considered: 12-24 hours. $200+ deliberate: 24-48 hours
- Small lists (under 5k) need 12+ hours to capture opens; large lists (50k+) saturate in 4-6 hours
- Let real inventory scarcity end the sale before the clock — whichever hits first wins
- Extension is OK only when stock is genuinely available and the messaging is honest
- BFCM: 4-6 hours peak intensity plus 24-hour extended pricing
The right duration for a flash sale depends on three variables: product price point, audience size, and inventory level. There is no single number that works across all scenarios. This article gives a data-backed answer for each case and explains how to calibrate to your own store.
The short answer
For most ecommerce categories: 4 to 24 hours. Under 4 hours leaves audience uncovered. Over 24 hours dilutes urgency.
For BFCM-tier events: 4 to 6 hours of peak intensity, followed by 24 hours of extended pricing. The peak window captures high-intent shoppers. The extended window converts the on-the-fence segment.
For dead-stock clearance: 3 to 7 days. The goal is flushing inventory, not driving urgency. A week-long clearance with a fixed end-date works.
Why duration matters
Too short (under 2 hours): not enough time for the email-to-purchase loop. Open rates peak 2-4 hours after send. If the sale ends before opens compound, conversion is mathematically capped.
Too long (over 48 hours for a hero product): urgency dissipates. Shoppers who did not buy in the first few hours typically do not buy at hour 30 either, because the constraint stopped feeling real to them. Conversion rate usually drops below baseline by hour 24 for impulse-eligible products.
By product price point
- Under $50 (impulse purchases): 4 to 8 hours. Shopper decides in seconds. Longer durations capture no incremental conversion.
- $50 to $200 (considered purchases): 12 to 24 hours. Shoppers compare, read reviews, sometimes wait for partner approval.
- $200 to $500 (deliberate purchases): 24 to 48 hours. The price point requires a sleep-on-it cycle for most shoppers.
- Above $500 (major purchases): 3 to 7 days. Beyond this window, treat the campaign as a launch, not a flash sale.
By audience size
Small list (under 5,000): 12+ hours needed to capture all opens. Smaller list means thinner per-hour open volume.
Medium list (5,000 to 50,000): 4 to 8 hours works for impulse products, 24 hours for considered ones.
Large list (50,000+): 4 to 6 hours can saturate. Beyond that, hour-over-hour conversion drops because the inbox audience already converted or already passed.
By inventory level
If stock is genuinely limited (say, 50 units), let the sale end when the stock burns even if that happens at 90 minutes. Heartly''s sale pages display both the countdown and the live stock count, and the sale ends on whichever hits first.
If stock is ample (500+ units for a single SKU sale), the inventory is not the constraint. The clock is. Pick a duration using the price-point heuristic above.
The dress-rehearsal test
Before locking duration for a high-stakes sale (BFCM, product launch), run a small-scale dress rehearsal 2-4 weeks before. Use the same duration, same channels, same audience size on a less-critical product. Measure when conversion rate decays. Use that decay curve to calibrate the real sale.
When extending mid-sale is acceptable
Extension is acceptable when stock is genuinely available and the messaging is honest. Acceptable: "Stock holding up, extending 24 hours." Unacceptable: extending because the launch underperformed and you want to recapture sales. The audience can usually tell the difference, and the second framing erodes trust for future campaigns.
Heartly Pro Autopilot can auto-extend based on inventory rules. For example: if more than 60% of stock remains at the original end-time, extend by 24 hours. Automation removes the human temptation to extend dishonestly.
When ending early is the right call
End the sale when stock burns faster than expected. The early end creates a real scarcity signal for the next campaign. Customers who saw the previous sale sell out in 90 minutes act faster on the next one. Heartly''s server-anchored countdown ends the sale automatically when inventory hits zero, regardless of remaining clock time.
BFCM-specific recommendation
Black Friday: launch Thursday 9 PM PT (Friday morning ET) for 4-6 hours of peak intensity. Extend with full-price-but-still-tagged-as-BFCM pricing for the next 24 hours. Cyber Monday: 24-hour window with optional 24-hour bundle and accessory extension on Tuesday-Wednesday.
Common mistakes
- Resetting the countdown when shoppers refresh. This destroys trust. Heartly uses server-anchored countdowns that do not reset.
- Running the same flash sale weekly. Shoppers learn the cadence and wait. Maximum 2-3 per category per month.
- Extending without an honest reason. See above.
- Picking a duration based on what competitors do. Your audience, price point, and inventory are different. Calibrate to your own data.
Next steps
For the operational walkthrough, see How to Run a Flash Sale on Shopify. For the email cadence during the sale window, see Flash Sale Email Examples. For BFCM-specific timing, see the BFCM 2026 playbook.
