A fixed-date countdown timer shows one deadline to every shopper: “Sale ends Sunday at 11:59 p.m.” An evergreen countdown timer gives each shopper their own deadline, usually starting on their first visit. A daily timer sits in between and resets every midnight.
Which one to use comes down to one question: what actually ends the offer? If the answer is a date on your calendar, use a fixed date. If it’s a new deal tomorrow, use a daily timer. If it’s something tied to one shopper, an evergreen timer can work, but only if something other than the timer enforces it. For how timers fit with sales popups, reviews and stock alerts, see our social proof guide for Shopify.
What is the difference between evergreen and fixed-date countdown timers?
All three types count down. They differ in what they count down to and who sees the same deadline.
| Fixed date | Daily | Evergreen (per visitor) | |
|---|---|---|---|
| Counts down to | One date and time you choose | Midnight, every day | First visit plus a duration you set |
| Same deadline for everyone? | Yes | Same clock time, but each shopper’s local midnight | No, each shopper has their own |
| What happens at zero | The timer ends for good | A new countdown starts the next day | The timer ends for that shopper |
| What makes it honest | The discount ends at the same moment | Tomorrow’s deal is really different | The offer ends for that shopper |
| Typical use | Weekend sale, holiday cutoff, launch | Deal of the day | Personal welcome offer |
A fixed-date timer is the easiest to keep honest because Shopify works the same way. A discount code has the dates for which it is valid, and those times follow the time zone set in your Shopify admin (Shopify Help Center). Set both to the same moment and they end together.
How does a per-visitor countdown timer work?
A per-visitor timer has to remember when each shopper first saw it. Most apps do this in the shopper’s browser, not on your server.
Here is how the Per visitor, starts at first visit type works in Sam FOMO, based on the app’s code:
- It starts on the first view. You set a Duration in minutes (the default is 60). The countdown starts when the shopper first sees the timer.
- It is saved in the browser. The start time is stored in that browser’s local storage, separately for each timer you create.
- It does not restart. When it reaches zero, the timer hides and stays hidden in that browser, even on later visits.
- A new browser means a new timer. A private window, a second device or cleared site data has no saved start time, so the countdown begins again. If a browser blocks site storage, the timer counts from that page view.
- A new timer starts fresh for everyone. If you delete the timer and create another one, every shopper gets a new countdown.
That is the right behavior for a per-visitor timer. It also shows its limit. The timer knows about one browser. It doesn’t know who the shopper is, and it can’t stop a discount code from working.
When should you use a fixed-date countdown timer?
Use a fixed date whenever the offer ends at the same moment for everyone. That covers most sales:
- A weekend or holiday sale with a real end date on the discount.
- A shipping cutoff, such as your last day to order for holiday delivery.
- A product launch or restock that goes live at a set time.
- A price increase that takes effect on a known date.
In Sam FOMO, pick Ends at a fixed date & time and set Ends at. The field uses the local time of the computer you set it on, while your Shopify discount uses your store’s time zone. Check that both point to the same moment, especially if your team works from another country. When the timer reaches zero, it disappears from your store. If you pick a date that has already passed, the editor warns you that the timer is hidden.
When does a daily countdown timer make sense?
A daily countdown timer makes sense when tomorrow’s deal is really different from today’s. A featured product that changes each day, or a daily drop, fits.
It does not fit an always-on discount. If the same 15% off runs every day, a timer that resets at midnight shows a deadline that never comes. Shoppers who return the next day see the clock start over, and they stop believing your other timers too. We cover that line in false urgency: when countdown timers cross the line.
Watch the time zones on daily timers
Sam FOMO’s Ends every day at midnight counts down to midnight in each shopper’s own time zone. Your Shopify discount ends at midnight in your store’s time zone. For a shopper six hours ahead of you, the timer reaches zero six hours before your deal actually changes.
That gap is fine if the timer is a rough “deal of the day” signal. If the price changes at an exact moment, use a fixed date for each day’s deal instead.
When is an evergreen countdown timer honest?
An evergreen timer is honest when the offer really ends for that shopper at zero. The hard part is the enforcement, not the timer.
A standard Shopify discount code has one set of active dates for everyone (Shopify Help Center). Pair a 60-minute personal timer with a code that works all month, and every shopper who waits still gets the deal. The timer is decoration, and it makes a claim that isn’t true.
Ask these questions before you turn one on:
- What stops the offer at zero? If the answer is “the timer hides,” nothing stops it.
- Would a shopper on a second device get the same deal later? If yes, the deadline isn’t personal.
- Does the timer’s end match the offer’s real end? A timer that ends before the offer does, or after it, misstates the deadline.
How can you enforce a personal deadline on Shopify?
You need a code that is unique to the shopper and expires on its own. One common route is an email tool that creates Shopify codes per recipient.
For example, Klaviyo can generate unique Shopify coupon codes in which “each code can be redeemed once.” In flows, codes can be set to expire after a number of days or hours. Klaviyo also “adds a 24-hour grace period to the generated code’s validity window,” and variable expiration dates can’t be used in campaigns (Klaviyo Help Center).
Two things follow from that:
- The deadline lives with the code, not the site. The code’s expiry is set by your email tool, not by the shopper’s first visit to your store. An on-site per-visitor timer won’t line up with it.
- State the real deadline. If the code works for an extra 24 hours, “expires in 4 hours” isn’t accurate. Tell shoppers when the code really stops working, in the email that delivers it.
If you can’t enforce a personal deadline, the honest options are simple: use a fixed end date for everyone, or show the offer without a timer.
Which countdown type should you pick?
Start from the offer, then pick the timer. If no row fits, you probably don’t need a timer.
| Your offer | Timer type | Check before you publish |
|---|---|---|
| Store-wide sale ending Sunday night | Fixed date | Discount end date and Ends at are the same moment |
| Last day to order for holiday delivery | Fixed date | The date is your real last ship date |
| Launch at 10 a.m. Friday | Fixed date | The product goes live when the timer ends |
| A different deal every day | Daily | Tomorrow’s deal is really different |
| Welcome code that expires 48 hours after sign-up | No on-site timer; deadline in the email | The code expires on its own, and the email states when |
| Always-on discount | No timer | Use a promo bar with the code instead |
| Personal offer with nothing that ends it | No timer | Make it a fixed-date offer, or drop the deadline |
The fixed date wins most rows. That’s not a bias against evergreen timers. Most store offers simply end at the same moment for everyone.
How do you set up each type in Sam FOMO?
Sam FOMO is our sales popup and urgency app for Shopify. It’s free to install and rated 4.6★ from 17 reviews on the Shopify App Store (Oct 2026). All three timer types live in one setting.
- Turn on the app embed. Follow the install guide.
- Create the timer. Go to Notifications > Create notification, pick Countdown Timer and click Add.
- Choose a Placement. Under Timer: product page, cart page, top bar, bottom bar or a landing page block.
- Choose the Countdown type. Ends at a fixed date & time (then set Ends at), Ends every day at midnight, or Per visitor, starts at first visit (then set Duration in minutes).
- Name what ends. Replace the default “Hurry up!” and “Sale ends in:” with the real offer, such as “Spring sale: 20% off” and “Ends Sunday at midnight in:”.
- Save and test. Open your store in a private window. For a per-visitor timer, reload the page and confirm it keeps counting rather than starting over.
The full walkthrough with every placement is in how to add a countdown timer to Shopify. The settings are listed in the urgency and cart guide. If the code matters more than the clock, a promo bar can show a countdown next to a coupon code.
What mistakes make each timer type backfire?
- Fixed date, discount still live. The timer hits zero and the price stays the same. Set the discount’s end date first, then copy it to the timer.
- Fixed date, rolled forward every week. A “48-hour sale” that restarts every Monday is a regular price.
- Daily timer on a permanent deal. Returning shoppers see the reset and learn to ignore it.
- Evergreen timer with a shared code. The deadline exists only on screen. Anyone who waits, or opens a new browser, still gets the deal.
- Two timers for one offer. A bar countdown and a product page countdown that disagree look broken. Use one deadline per screen.
- No measurement. Sam FOMO’s Analytics shows impressions and clicks by popup type (analytics guide). Compare similar sale periods with and without a timer before you keep it.
For timer copy that doesn’t feel pushy, see urgency marketing phrases. If you’re using a timer on the cart page, read cart countdown timers: do they help or hurt? first.
Frequently asked questions
What is an evergreen countdown timer?
An evergreen countdown timer, also called a per-visitor timer, starts a separate countdown for each shopper, usually on their first visit. Two shoppers who arrive on different days see different end times. A fixed-date timer, by contrast, shows the same deadline to everyone.
Is an evergreen countdown timer honest?
Only if the offer really ends for that shopper when the timer does. A standard Shopify discount code has one set of active dates for everyone, so a shared code that keeps working after the personal timer ends makes the deadline false. If you cannot enforce a personal deadline, use a fixed date or no timer.
Does a per-visitor countdown timer restart?
It depends on the app. In Sam FOMO, the Per visitor, starts at first visit timer saves the start time in the shopper's browser and hides when it ends, without restarting in that browser. A shopper in a new browser or a private window gets a fresh timer, which is why the timer alone cannot enforce a deadline.
When should I use a daily countdown timer?
Use a daily timer when the deal really changes every day, such as a different featured product each day. If the same discount runs every day, a timer that resets at midnight shows a deadline that never arrives.
Why does my daily timer not match my discount end time?
Shopify discount dates follow the time zone set in your Shopify admin. A daily timer that counts to midnight in each shopper's own time zone ends at a different moment for shoppers in other time zones. For an exact end, use a fixed date and time.
Sources
Part of our guide: Social proof →