What’s the first thing that comes to mind when you hear the term ‘dynamic pricing’? If it’s a recent – and very public – controversy, then you’re probably not alone. From “furious” reactions to Ticketmaster’s handling of the Oasis reunion tour1 through to the growing adoption of surge pricing in the robotaxi industry2, dynamic pricing has been grabbing headlines for all the wrong reasons over the past couple of years.
Much as these incidents might feel like cautionary tales for businesses, though, they don’t really tell the full story – particularly when it comes to the grocery industry. With the right strategy in place, dynamic pricing can actually reduce waste, boost loyalty, and deliver real value for customers. Let’s see how.
Dynamic pricing isn’t a new concept. Travel operators have been using it for years already, setting the prices of flights, hotels, and taxis based on fluctuations in customer demand. As time has gone by, though, dynamic pricing has begun to creep into a range of other industries. Amazon’s pricing system now makes more than 2.5m changes per day3, for instance, while fast-food brands are starting to experiment with price adjustments based on time of day4.
Grocery isn’t immune to that trend, but – again – dynamic pricing isn’t really a new concept here. Back when most people shopped at local stores like butchers and greengrocers, they had the option to barter or negotiate with store owner. And even today, market shoppers may be more likely to get a bargain later in the day when a seller wants rid of their stock. Grocery and dynamic pricing have gone hand-in-hand for decades already.
What is new, of course, is the sheer sophistication and scale at which dynamic pricing can now be implemented across the grocery landscape – and that’s a change that presents opportunity and threat in equal measure.
Before we get into the potential risks and benefits of dynamic pricing, let’s take a moment to look at some of the different ways in which it can be applied.
Much like the marketplace example above, one of the clearest use cases here relates to shelf life. Through a combination of smart packaging data and electronic shelf labels (ESLs), a retailer can give shoppers the opportunity to buy short-dated stock at a discount. Rolling this kind of initiative out en masse can help to drive revenues and reduce waste in equal measure; Germany’s METRO saw a 15.3% drop in food waste in the first year of implementation, for example5.
Waste isn’t the only issue that dynamic pricing can address; it can be used to defend against rival retailers, too. At Norway’s REMA, for instance, dynamic pricing is used to help maintain a competitive position throughout the day6. A network of “price hunters” keep watch on the cost of goods at competing stores, enabling REMA to update its own pricing in response. REMA makes as many as 2,000 changes a day, with prices only ever dropping rather than increasing.
While the potential applications of dynamic pricing might be clear, there are of course some risks for retailers to be aware of. One of the major ones – as alluded to above – is that of public perception. Dynamic pricing is often associated with price gouging and profiteering, the response to which can be vocal to say the least. Take Wendy’s announcement of digital pricing boards, which necessitated significant damage control after an audible public response7.
There’s also the issue of exploitation to consider. While Uber’s surge pricing during the June 2017 London terror attack8 may be an extreme example, it isn’t hard to see how similar (albeit less egregious) examples could play out in the grocery space. Higher priced ice creams on sunny days? Uplifted umbrellas during a rainstorm? Both would likely draw the ire of customers and media – and rightly so.
Finally, there’s the perennial issue of differentiation to take into account. If REMA’s competitors responded in kind, then a race to the bottom could quickly be the result. Price wars – and eroding profit margins – would rapidly follow.
The risks associated with dynamic pricing may be pronounced, but so too are the benefits. When it’s applied effectively – and with a genuinely “Customer First” mindset in place – dynamic pricing can be a win-win for both shoppers and retailers.
For customers, dynamic pricing can:
For retailers, it can help them:
If a retailer is going to manage prices dynamically across their estate, there are certain considerations and investments that need to be taken into account. The staffing costs associated with updating pricing tickets mean that ESLs are a must, for instance. ESLs come with a sizable upfront cost of their own, of course, especially for chains with stores numbering in the hundreds.
Dynamic pricing also increases the need for data quality and completeness, particularly when product shelf life is involved. At that point, every barcode and date needs to be 100% accurate, all the way down to store level.
This is where a tool like dunnhumby Price can help. Optimising prices based on wide range of criteria, dunnhumby Price also supports automatic pricing features, making it easy for retailers to roll out updates to their entire store network in real time. Learn more about dunnhumby Price here or simply get in touch to find out how it can benefit your own dynamic pricing strategy.
1 Fans urge Oasis to refund difference after 'dynamic pricing' strategy hikes prices – The iPaper, 1st September 2024
2 Surge pricing, the scourge of ridehailing, is evolving for the robotaxi era – The Verge, 19th April 2025
3 Amazon Pricing Strategy: Ultimate Guide – Sellberry, 22nd June 2025
4 Your Wendy’s Order Could Cost More During Peak Hours In 2025 – Southern Living, 27th February 2024
5 German Supermarket METRO Experiments with Dynamic Pricing – Packaging World, 23rd January 2023
6 Is dynamic pricing feasible within supermarkets? – Supermarket News, 7th March 2024
7 Wendy's denies plans for surge pricing after backlash – BBC News, 28th February 2024
8 Uber has refunded customers caught up in London terror attack – Business Insider, 5th June 2017
Boost value perception and execute promotions that drive results
Explore dunnhumby's Customer First platform for Price & PromotionsCookie | Description |
---|---|
cli_user_preference | The cookie is set by the GDPR Cookie Consent plugin and is used to store the yes/no selection the consent given for cookie usage. It does not store any personal data. |
cookielawinfo-checkbox-advertisement | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category . |
cookielawinfo-checkbox-analytics | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Analytics" category . |
cookielawinfo-checkbox-necessary | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
CookieLawInfoConsent | The cookie is set by the GDPR Cookie Consent plugin and is used to store the summary of the consent given for cookie usage. It does not store any personal data. |
viewed_cookie_policy | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
wsaffinity | Set by the dunnhumby website, that allows all subsequent traffic and requests from an initial client session to be passed to the same server in the pool. Session affinity is also referred to as session persistence, server affinity, server persistence, or server sticky. |
Cookie | Description |
---|---|
passster | Set by Passster to remember that a visitor has entered a correct password, so they don’t have to re-enter it across protected pages. |
wordpress_test_cookie | WordPress cookie to read if cookies can be placed, and lasts for the session. |
wp_lang | This cookie is used to remember the language chosen by the user while browsing. |
Cookie | Description |
---|---|
fs_cid | Set by FullStory to correlate sessions for diagnostics and session consistency; not always set. |
fs_lua | Set by FullStory to record the time of the user’s last activity, helping manage session timeouts. |
fs_session | Set by FullStory to manage session flow and recording. Not always visible or applicable across all implementations. |
fs_uid | Set by FullStory to uniquely identify a user’s browser. Used for session replay and user analytics. Does not contain personal data directly. |
VISITOR_INFO1_LIVE | Set by YouTube to estimate user bandwidth and improve video quality by adjusting playback speed. |
VISITOR_PRIVACY_METADATA | Set by YouTube to store privacy preferences and metadata related to user consent and settings. |
vuid | Vimeo installs this cookie to collect tracking information by setting a unique ID to embed videos to the website. |
YSC | Set by YouTube to track user sessions and maintain video playback state during a browser session. |
_ga | The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognise unique visitors. |
_ga_* | Set by Google Analytics to persist session state. |
_gid | Installed by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously. |
_lfa | This cookie is set by the provider Leadfeeder to identify the IP address of devices visiting the website, in order to retarget multiple users routing from the same IP address. |
__Secure-ROLLOUT_TOKEN | YouTube sets this cookie via embedded videos to manage feature rollouts. |
Cookie | Description |
---|---|
aam_uuid | Set by LinkedIn, for ID sync for Adobe Audience Manager. |
AEC | Set by Google, ‘AEC’ cookies ensure that requests within a browsing session are made by the user, and not by other sites. These cookies prevent malicious sites from acting on behalf of a user without that user’s knowledge. |
AMCVS_14215E3D5995C57C0A495C55%40AdobeOrg | Set by LinkedIn, indicates the start of a session for Adobe Experience Cloud. |
AMCV_14215E3D5995C57C0A495C55%40AdobeOrg | Set by LinkedIn, Unique Identifier for Adobe Experience Cloud. |
AnalyticsSyncHistory | Set by LinkedIn, used to store information about the time a sync with the lms_analytics cookie took place for users in the Designated Countries (which LinkedIn determines as European Union (EU), European Economic Area (EEA), and Switzerland). |
bcookie | LinkedIn sets this cookie from LinkedIn share buttons and ad tags to recognise browser ID. |
bscookie | LinkedIn sets this cookie to store performed actions on the website. |
DV | Set by Google, used for the purpose of targeted advertising, to collect information about how visitors use our site. |
ELOQUA | This cookie is set by Eloqua Marketing Automation Tool. It contains a unique identifier to recognise returning visitors and track their visit data across multiple visits and multiple OpenText Websites. This data is logged in pseudonymised form, unless a visitor provides us with their personal data through creating a profile, such as when signing up for events or for downloading information that is not available to the public. |
gpv_pn | Set by LinkedIn, used to retain and fetch previous page visited in Adobe Analytics. |
lang | Session-based cookie, set by LinkedIn, used to set default locale/language. |
lidc | Set by LinkedIn, used for routing from Share buttons and ad tags. |
lidc | LinkedIn sets the lidc cookie to facilitate data center selection. |
li_gc | Set by LinkedIn to store consent of guests regarding the use of cookies for non-essential purposes. |
li_sugr | Set by LinkedIn, used to make a probabilistic match of a user's identity outside the Designated Countries (which LinkedIn determines as European Union (EU), European Economic Area (EEA), and Switzerland). |
lms_analytics | Set by LinkedIn to identify LinkedIn Members in the Designated Countries (which LinkedIn determines as European Union (EU), European Economic Area (EEA), and Switzerland) for analytics. |
NID | Set by Google, registers a unique ID that identifies a returning user’s device. The ID is used for targeted ads. |
OGP / OGPC | Set by Google, cookie enables the functionality of Google Maps. |
OTZ | Set by Google, used to support Google’s advertising services. This cookie is used by Google Analytics to provide an analysis of website visitors in aggregate. |
s_cc | Set by LinkedIn, used to determine if cookies are enabled for Adobe Analytics. |
s_ips | Set by LinkedIn, tracks percent of page viewed. |
s_plt | Set by LinkedIn, this cookie tracks the time that the previous page took to load. |
s_pltp | Set by LinkedIn, this cookie provides page name value (URL) for use by Adobe Analytics. |
s_ppv | Set by LinkedIn, used by Adobe Analytics to retain and fetch what percentage of a page was viewed. |
s_sq | Set by LinkedIn, used to store information about the previous link that was clicked on by the user by Adobe Analytics. |
s_tp | Set by LinkedIn, this cookie measures a visitor’s scroll activity to see how much of a page they view before moving on to another page. |
s_tslv | Set by LinkedIn, used to retain and fetch time since last visit in Adobe Analytics. |
test_cookie | Set by doubleclick.net (part of Google), the purpose of the cookie is to determine if the users' browser supports cookies. |
U | Set by LinkedIn, Browser Identifier for users outside the Designated Countries (which LinkedIn determines as European Union (EU), European Economic Area (EEA), and Switzerland). |
UserMatchHistory | LinkedIn sets this cookie for LinkedIn Ads ID syncing. |
UserMatchHistory | This cookie is used by LinkedIn Ads to help dunnhumby measure advertising performance. More information can be found in their cookie policy. |
yt-remote-connected-devices | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
_gcl_au | Set by Google Tag Manager to store and track conversion events. It is typically associated with Google Ads, but may be set even if no active ad campaigns are running, especially when GTM is configured with default settings. The cookie helps measure the effectiveness of ad clicks in relation to site actions. |