How to Calculate the Elasticity of Bids in PPC Marketing

Author:Murphy  |  View: 28912  |  Time: 2025-03-22 20:12:52

The elasticity of prices is the bread and butter of econometrics. You normally hear it as "elasticity of demand," where you are trying to understand how much more demand there will be if we increase the price by a certain amount. Now in bidding ecosystems, marketeers try to understand how many "clicks" we will get if we increase our bids by X%. In this post, I will show you a way to calculate the elasticity of bids in PPC marketing.

PS 1: The examples you will read in this post come from 1 of the 100s of campaigns I was managing at Skyscanner. I have removed all identifiers to protect sharing information, but you will be able to see how to calculate elasticity of bids using real distributed data.

PS 2: All images are authored by me unless otherwise specified.

Elasticity of supply

Before diving into calculating elasticity of bids, let's go back to econometrics 101 and understand what is elasticity of supply. Taken directly from this article: "Price elasticity of supply indicates how quickly producers shift production levels in response to price changes." [1] __ As you might imagine, from a producers point of view, the more prices rise, the more the producer would be willing to produce.

Adjusting the formula to account for price elasticity of supply:

  • Price elasticity of supply = % Change in Supply / % Change in Price
Image by author (although it's the typical elasticity image you will find in every econometrics book in the world)

Elasticity of bids = Elasticity of supply

When we live in the world of marketing, suppliers are the marketing platforms. For example, Google is the supplier of ad slots for SEM and Amazon is the supplier of ad slots for sponsored items. Again, as you might imagine, the higher the bid Google or Amazon receive, generally, the higher the supply of slots they will provide (and hence, the higher the chances of getting a click). Of course, Google's and Amazon's algorithm is more sophisticated than simply looking a bid quantity, but you get the theoretical idea: the more you are willing to pay, the higher the chances of grabbing an ad slot.

This is equivalent of elasticity of supply. If we adjust the formula:

  • Price elasticity of bids = % Change in [metric] / % Change in bid

being [metric] impressions, clicks, impression share, etc.

Applying elasticity of bids formula without any corrections

In this following example, I have pulled data on how many clicks we got at different bid levels. For this live campaign, we tried bidding quantities from €0.30 up to €0.78. As mentioned in the theory, we would expect to get way more clicks on the €0.78 mark than the lower €0.30 mark. However, that is not the case if we simply plot the sum of clicks over each bid level.

A lower bid generates more clicks than a higher bid…

Think about the data for a moment: How is it possible that a €0.40 bid generates 5x more clicks than a €0.78 bid? What are we missing?

Careful with "given chances"

One super simple explanation is that we might simply have used the €0.40 bid way more often than other higher bids. Just due to that, it might well get more clicks. The following chart shows how many days was the bid active.

The distribution of our bids based on the number of days it was active, is primarily around 40p, with a longer right tail reaching the 78p bid.

By being active way more days, the volume of ad auctions it entered is also higher than the low-frequency by expensive bids. The screenshot below shows that the higher 78p bid "only" entered 125k auctions compared to 266k auctions entered by the 40p bid.

The 78p bid entered ~50% less auctions compared to the 40p bid. But, with the caveat that it was active 4x less days.

All of this shows us that you cant simply rely on aggregate raw metrics such as clicks. We need to apply corrections to the analysed KPIs.

Normalising the demand metric

As a marketeer, my demand metrics tend to be either impressions, clicks or conversions, always trying to keep ROAS at a specific level. We have just seen that we can't simply work with clicks.

One way to correct these metrics is through normalisation. What I mean by normalisation is coming up with a metric that captures percentages in the marketing funnel flow. A metric that tries to control for:

  • Fluctuations on how much you bid (we have just seen the example where we haven't really tried bidding €0.78 many times in our campaign).
  • Temporal effects. For example, a €0.30 bid in high vs low demand cycles can get your into more or less auctions. It is the same bid, but competition changes.
  • External effects. For example, Google is famous on having factors such as relevance and accuracy as part of their ad ranking logic. If Google decides to change this, your same bid could get into more or less auctions.

Some examples of normalised metrics could be:

  1. Impression share (impressions / eligible opportunities)
  2. CTR (clicks / impressions)
  3. Clicks / eligible opportunities
  4. Click coverage (your clicks vs the whole market clicks)

Moving forward in the blog, I will be using metric number (3). It is a metric I like as it captures both our goal of buying traffic (clicks) and also the total auctions we could have entered without considering bid strength.

In the plot below we have drawn the clicks per eligible opportunity distribution. The trend makes now much more sense. The higher the bid, the higher the clicks per opportunity you tend to get. The correlation is positive and if we compare the 78p bid against the 40p bid, we are more than tripling the clicks per opportunity we generated.

Clicks per opportunity plot

The problem of real data: the non-linear supply problem

Before diving into the non-linear supply problem, lets calculate elasticity using the data from the previous chart. A reminder on how you would calculate it:

  1. Choose 2 consecutive bids. Let's say 40p and 41p. This is a 2.5% change.
  2. Check the clicks / elig. opportunity they generate. In this case 0.001933 and 0.002856. This is a 48% change.
  3. Divide (2) / (1). In this case, elasticity = 48 / 2.5 = 19.2. This means that, if we were at the 40p bid point, and increase our bid by 1%, this would yield a 19.2% increase on clicks / elig. opportunity.

Running this calculation throughout the whole range, we get:

Elasticity calculated at each bid point.

Careful – What is happening with negative elasticities!

If we apply the formula, we get positive elasticities… but also negative ones!! This would mean that, increasing our bid X%, would mean a decrease of supply!

This negative behaviour happens because of the non-linear supply trend. In the normalised metric chart, you can see that there are slight decreases from one bid to the next. For example, between €0.42 bid to €0.47 bid, there is a steady decrease in clicks per opportunity from 0.0036 to 0.0017.

These small areas of fluctuation are super normal dealing with real-life data. This is because there are soooooo many factors that influence the volume of clicks or opportunities you get access to. For example, the supplier might have downtimes, you could be in low demand seasons, new competitors get in the game, etc.

We can solve the problem is 2 ways.

Option 1: Use a line of best fit.

By using a line of best fit, you definitely will always get a positive elasticity.

Whilst our fit to the real data is not perfect, a line of best fit can be a good starting point. The key aspect of this line of best fit is that it is monotonically increasing. In other words, we always get a higher supply by increasing our bid.

Option 2: Using cumulative sum to generated a positive monotonic curve

If you don't want to work with the line of best fit, and still make use of real data, we could try to force a linear trend. As I wrote just before, the key is having a monotonically increasing trend.

In order to do this with our clicks per opportunity real data, I propose using the cumulative sum of the desired metric. In the chart below, we have ordered the bids on ascending order and have done a cumulative sum of the clicks per opportunity.

Cumulative sum of clicks per opportunity

The downside of option 2 is that is it less interpretable. In this case, elasticity would represent an increase in cumulative clicks per elig. opportunity.

Elasticity on the positive monotonic trend

Now that we have 2 options to hand, let's see how the elasticity plot looks like. In this case, I'll be calculating it only based on the cumulative sum curve (option 2), because it is not a perfect linear trend (which would yield a perfectly line to calculate elasticity).

Elasticity for cumulative c/elig op. calculated at each bid point.

Reading the chart, the elastictiy of cumulative clicks per elig. opportunity is of 5.21 at bid = €0.40. This means that, by being at €0.40, we get a 5.21% increase in cumulative clicks per opportunity if we increased our bids by 1%. As I just mentioned, even though the cumulative elasticity is a bit more difficult to explain; it is still a good proxy and valid for taking decisions on high elasticity areas we don't want to miss.

Smoothing the elasticity of bids (or any other elasticity) is good practice

In econometrics, the concept of elasticity, whether it be of supply or demand, is inherently smooth because it represents a continuous relationship between price changes and quantity changes. It is a measure that assumes a gradual and consistent response over a range of prices, rather than abrupt or "bumpy" changes. In elasticity of bids, even if we managed to get all positive elasticities, it doesn't really make sense that by increasing the bid 1p, the next bid will have a higher elasticity than the previous one.

One solution solution is, again, to create a line of best fit. It is similar to the idea of the linear fit on the raw clicks per opportunity metric (ie, the higher the bid, the higher the supply). The chart below shows a very crude linear fit.

In this case, I have drawn a super crude linear fit. I am sure there can be much better approximations to the one I did (polynomial fit, gaussian curve or even splines). But again, the key in this case is that the line is monotonically decreasing. In other words, the more you increase your bids, the lower the margin increase in volumes you should get.

Summary

In this post, we have covered some ideas on how to calculate the elasticity of bids vs a desired metric for PPC campaigns. We have seen:

  1. That using raw absolute metrics is misleading. We should use a normalised metric. For example, we used clicks per opportunity.
  2. That normalised metrics tend to be non-linear. We should try to come up with a linear positive monotonic trend. This could be with lines of best fit or with cumulative sums.
  3. That elasticity should always be positive. And ideally, it should be smooth.

Acknowledgements

Further reading

Thanks for reading the article! If you are interested in more of my written content, here is an article capturing all of my other blogs posts organised by themes: Data Science team and project management, Data storytelling, Marketing & bidding science and Machine Learning & modelling.

All my written articles in one place

Stay tuned!

If you want to get notified when I release new written content, feel free to follow me on Medium or subscribe to my Substack newsletter. In addition, I would be very happy to chat on Linkedin!

Get notified with my latest written content about Data Science!

Jose's Substack | Jose Parreño Garcia | Substack

Tags: bidding-strategies Data Science Econometrics elasticity-of-demand ppc-marketing

Comment