30-day free trial · no card needed · no contract · pricing tailored to your business · Free 30-day trial · tailored pricing · Get a quote
Back to all posts
Update 17 April 2026 • 5 min read

Happy Hour on a Timer: Introducing Scheduled Price Shifts

v1.3.4 adds a new premium feature for venues that charge different prices at different times of day. Configure a weekly schedule in the back office, set an Alt Price per product, and every POS terminal and waiter device switches prices automatically when the window opens.

The epos247 Team

Building the next-generation POS

Pubs have happy hours. Cafés have breakfast menus. Theatres have matinée pricing. Restaurants have early-bird menus. All of these share the same operational shape: for a specific window each week, certain products sell at a different price, and outside that window they're back to normal. The till needs to follow automatically — no manager flipping switches at 17:00 on the dot, no hoping a staff member remembered to change the buttons.

That's what Price Shifts is for.

One Shift, One Schedule

We thought about supporting multiple concurrent shifts — breakfast, lunch, happy hour, late night all at once — but every venue we asked has one thing in mind when they talk about this feature. "We run happy hour." "We have a breakfast menu." Singular. Building a stacking priority system for shifts you don't have would just make the simple case harder. So v1.3.4 gives you one named shift per venue, configured from the new Price Shifts section under Discounts in the back office.

The configuration is as small as the feature. Name it (this text shows up on the till when it's active, so make it something your staff will recognise — "Happy Hour", "Breakfast Menu", "Early Bird"). Pick the days of the week it runs. Set a start and end time. Done. Schedules that span midnight — say, a late-night special from 22:00 to 02:00 — are handled correctly.

One Alt Price Per Product

We considered several shortcuts for bulk-configuring alt prices — "25% off all drinks", "all spirits £1 off", category-wide rules. In every case the edge cases bit back. What about the premium spirits you don't want to discount? The cocktails that already have a margin built in? The beer that's on another promotion? After thinking it through we decided tenants want actual control, even if the setup is more work up front. So it's a per-product alt price: open the product, set an Alt Price field (only appears when Price Shifts is enabled), save. Do nothing to products that shouldn't participate — those stay at their normal price during the shift.

Products with variations get the same treatment per variation. A pint of Guinness drops from £6.50 to £5.00; a half stays at £3.25. A small latte drops from £3.00 to £2.50; a large stays at £4.00. The variation editor grows a small amber Alt field next to each price field when the feature is enabled.

The XLSX import/export also gained the new column, and the variations string carries alt prices through round-trip. If you manage pricing through spreadsheets, a column of alt prices imports the same as any other.

The Till Knows

When the scheduled window opens, a banner appears across the top of the cart on Windows, Web, Android, iPad and the Waiter app. It shows the shift name you configured ("Happy Hour — alt prices active") in amber, so staff can see at a glance that they're serving at shifted prices. Products with an alt price set render the alt price on the till button with the original price struck through below, and a small clock icon. Products without an alt price render exactly as normal.

When the window closes, the banner disappears, the product buttons revert, and everything's back to normal. No restart, no manual intervention.

Manual Override When You Need It

Three kinds of exceptions come up. A staff party wants happy hour prices an hour early. A private event needs to run without happy hour applying. A supplier reps meeting runs past 7pm and you want the prices held for them.

For those cases there's a dedicated Price Shift button you can drop into the Function Bar (or access from Options). Tap it and the shift flips on or off. The terminal holds your choice until the next schedule boundary — so if you turn happy hour on at 3pm when it would normally start at 5pm, it behaves like it started at 3pm; at 7pm (the scheduled end time) it returns to automatic. When the shift is manually overridden, the banner shows a small MANUAL badge so staff know the override is in effect.

Promotions Still Stack

The existing loyalty features all continue to work. Multi-buy deals still apply on top of the shifted prices. Mix & match still kicks in. Customer account member pricing still wins if both a member price and an alt price are set on the same product. If you've built a layered discount strategy, Price Shifts slots into it as one more timing-based layer without displacing anything.

Cart Items Lock Their Price

If a customer orders at 6:59pm and pays at 7:05pm, the items in the cart keep the price they were added at — shifts ending mid-sale don't re-price already-added lines. This matches how every other price modifier in the system already works (discounts, member pricing, manual price edits).

Available Everywhere

Price Shifts is a premium add-on module, available on Lite and Pro alike. Turn it on from the Apps settings in the back office, and the Price Shifts configuration page appears in the Discounts section. If you want to try it for a single service — say, test it over this coming Friday evening — set a short schedule, add alt prices to three or four key products, and watch the tills handle it.

#price-shifts#happy-hour#scheduling#pricing#v1.3.4

More from the blog