When you click on a retailer link, we may earn affiliate commission, which helps fund our not-for-profit mission. This tracks your activity using third party cookies. By clicking a link you are consenting to this.

Supermarket price comparison

Discover the cheapest supermarket in the UK, based on exclusive Which? price comparison analysis
Ellie Simmonds

Which supermarket is cheapest so far in 2023?

Every month, we compare how much the UK's biggest supermarkets charge for a trolley of groceries, from bread to toothpaste. 

We compare hundreds of grocery prices at Aldi, Asda, Lidl, Morrisons, Ocado, Sainsbury’s, Tesco and Waitrose to reveal the cheapest supermarket each month (the links take you to our reviews of each one). 

Find out the latest results of our analysis below. 

Be more money savvy

free newsletter

Get a firmer grip on your finances with the expert tips in our Money newsletter – it's free weekly.

This newsletter delivers free money-related content, along with other information about Which? Group products and services. Unsubscribe whenever you want. Your data will be processed in accordance with our Privacy policy

April 2023

Aldi was the cheapest supermarket, with a basket of 39 items costing £69.99, on average. It beat rival discounter Lidl by 65p.

The same shop at Waitrose was £87.33, on average, making it £17.34 pricier than Aldi. 

Of the 'big four', Sainsbury's was the cheapest at £76.85. 

SupermarketAverage basket price
Aldi£69.99
Lidl£70.64
Sainsbury's£76.85
Asda£77.92
Tesco£78.09
Morrisons£81.46
Ocado£83.69

Which? also analysed the cost of a larger trolley of 135 grocery items, made up of the original 39, plus 96 more.

Asda continued its long-running streak as the cheapest traditional supermarket – a title it's held since January 2020. Our big shop cost £343.46, on average, beating next-cheapest Sainsbury's (£353.96) by £10.50.

Meanwhile, the most expensive was Waitrose and was £38.76 more expensive than Asda, coming in at £382.22 for the same products.

SupermarketAverage basket price
Asda£343.46
Sainsbury's£353.96
Morrisons£355.84
Tesco£365.77
Ocado£374.53
Waitrose£382.22

Are you worried about your finances?

Answer a few questions and we'll give you a tailored list of expert advice that will help you manage your finances.

Get started
A worried woman sitting in a chair being consoled by her daughter

March 2023

Aldi was the cheapest overall, with a shop for 41 items costing £72.54, on average, beating rival discounter Lidl by just 25p.

The same shop at Waitrose was £92.55, on average, making it £20.01 pricier than Aldi. 

Of the 'big four', Sainsbury's was the cheapest at £80.27. 

SupermarketAverage basket price
Aldi72.54
Lidl72.79
Sainsbury's80.27
Tesco81.58
Asda81.88
Morrisons83.63
Ocado88.03

Which? also analysed the cost of a larger trolley of 137 items, made up of the original 41, plus 96 more.

Asda continued its streak, which started in January 2020, as the cheapest traditional supermarket. It cost £343.91, on average, beating the next cheapest Sainsbury's (£353.16) by £9.25.

Meanwhile, the most expensive based on our analysis was Waitrose. Its total for our trolley was £41.83 more expensive than Asda, at £385.74, on average.

SupermarketAverage basket price
Asda£343.91
Sainsbury's£353.16
Morrisons£354.87
Tesco£366.65
Ocado£371.85
Waitrose£385.74


February 2023

Aldi was the cheapest overall, with a shop for 43 items costing £74.81, on average, beating rival discounter Lidl by £2.69.

The same shop at Waitrose was £96.59, on average, making it £21.78 pricier than Aldi. 

Of the 'big four', Sainsbury's was the cheapest at £85.25. There was just 7p difference between Sainsbury's and Tesco, and Asda wasn't far behind, either . 

SupermarketAverage basket price
Aldi£74.81
Lidl£77.50
Sainsbury's£85.25
Tesco£85.32
Asda£85.81
Morrisons£89.01
Ocado£89.96

Which? also analysed the cost of a larger trolley of 139 items, made up of the original 43, plus 96 more.

Asda continued its streak, which started in January 2020, as the cheapest traditional supermarket. It cost £355.29, on average, for our big-trolley shop, beating the next cheapest Sainsbury's (£358.77) by £3.48.

Meanwhile, the most expensive based on our analysis was Waitrose. Its was £41.29 more expensive than Asda, coming in at £396.58, on average.

SupermarketAverage basket price
Asda£355.29
Sainsbury's£358.77
Morrisons£371.86
Tesco£376.95
Ocado
£382.54
Waitrose
£396.58


January 2023

Aldi was the cheapest overall for our shop consisting of 45 popular groceries, costing £82.03, on average, and beating rival discounter Lidl by £2.04. 

The same shop at Waitrose cost £107.71, on average, making it nearly £26 more expensive than Aldi.

Of the 'big four', Tesco was the cheapest at £93.80.

SupermarketAverage basket price
Aldi£82.03
Lidl£84.07
Tesco£93.80
Asda£95.32
Sainsbury's£95.65
Morrisons£96.58
Ocado£100.87

We also compared the cost of a larger trolley of 144 items (the original 45, plus 99 more).

Asda cost the least for our big trolley at £363.29, on average. This means that Asda was the cheapest traditional (or non-discounter) supermarket every month in 2022, as well as in January 2023.

Sainsbury's was the next cheapest in our analysis (£375.84), followed by Tesco (£376.72). 

Waitrose was £45.43 more expensive than Asda, coming in at £408.72, on average.

SupermarketAverage basket price
Asda£363.29
Sainsbury's£375.84
Tesco£376.72
Morrisons£379.13
Ocado£392.43
Waitrose£408.72


How do we work out which is the cheapest supermarket?

We track the prices of up to 200 branded and own-label products every day over the course of a month to work out the average cost per item, then add those averages up to get a trolley total for each retailer. We include special offers, but not multibuys. 

The contents vary from month to month and might include anything from Andrex toilet paper and Lurpak butter to own-label bread and Heinz baked beans.

Our data is supplied by an independent price comparison company. Most of this is based on online prices, but for Aldi and Lidl (which don't sell their full ranges online) we send fieldworkers out to stores to see how much each item costs each day.

We rotate the products in the trolley to ensure we're comparing as many branded products as possible. This means the totals aren't comparable between months or years.

Which supermarket was cheapest in 2022?

As well as analysing prices each month, we do a whole-year look each January – and, according to our analysis, Aldi was the cheapest supermarket in 2022.

The discounter was the cheapest in our analysis for seven out of 12 months in 2022, which is more than any other supermarket.

Lidl wasn't far behind, coming out cheapest in the first five months of the year. 

Across the seven months that Aldi was the 'cheapest supermarket of the month', the average difference was £1.59 compared with Lidl.

Asda was the cheapest of the non-discounters, coming out on top every month across 2022.  

Monthly supermarket pricing in 2022

December 2022

 Aldi was the cheapest overall for our shop of 48 popular groceries, costing £81.63, on average, and beating rival discounter Lidl (Lidl.co.uk) by £1.61. The same shop at Waitrose (Waitrose.com) cost £112.62, on average, making it nearly £31 more expensive than Aldi. Of the 'big four', Tesco (Tesco.com) was the cheapest at £93.42.

Aldi was the cheapest overall for 45 popular groceries, costing £81.63, on average, and beating rival discounter Lidl by £1.61. 

The same shop at Waitrose cost £107.71, on average, making it almost £26 more expensive than Aldi.

Of the 'big four', Tesco was the cheapest at £93.80.

SupermarketAverage basket price
Aldi£81.63
Lidl£83.24
Tesco£93.42
Asda£93.44
Sainsbury's£95.71
Morrisons£97.12
Ocado£102.87


We also analysed the cost of a larger trolley of 149 items (the original 48, plus 101 more).

Asd cost the least at £355.62, on average, and meant it was the cheapest 'traditional' supermarket every month in 2022. 

Sainsbury's was the next cheapest in December (£368.97), followed by Tesco (£375.97). 

Waitrose was £51.33 more expensive than Asda at £406.95, on average, for the same trolley of goods.

SupermarketAverage basket price
Asda£363.29
Sainsbury's£375.84
Tesco£376.72
Morrisons£379.13
Ocado£392.43
Waitrose£408.72

November 2022

Aldi was the cheapest overall for 48 popular groceries, costing £77.21, on average, beating rival discounter Lidl by £1.36. 

The same shop at Waitrose was £104.11, on average, making it £26.90 more expensive compared with Aldi.

SupermarketAverage basket price
Aldi£77.21
Lidl£78.57
Tesco£87.60
Asda£87.66
Sainsbury's£89.85
Morrisons£93.49
Ocado£96.09

We also compared the cost of a larger trolley of 149 items (the original 48, plus 101 more). This included a larger number of branded items, such as Andrex toilet paper and Cathedral City cheese. 

Asda cost the least, continuing its streak, which started in January 2020, as the cheapest traditional supermarket. It cost £355.34, on average, beating the next cheapest Sainsbury's (£366.83) by £11.49.

Waitrose was £38.03 more expensive than Asda at £393.37, on average. 

SupermarketAverage basket price
Asda£355.34
Sainsbury's£366.83
Tesco£375.90
Morrisons£377.83
Ocado£380.44
Waitrose£393.37

October 2022

Aldi was the cheapest overall for 48 popular groceries, costing £75.79, on average, beating rival discounter Lidl by £1.89. 

The same shop at Waitrose was £101.17, on average, making it £25.38 more expensive than Aldi.

SupermarketAverage basket price
Aldi£75.79
Lidl£77.68
Asda£84.98
Tesco£86.21
Sainsbury's£86.36
Morrisons£92.72
Ocado£93.99

We also compared the cost of a larger trolley of 148 items (the original 48, plus 100 more). This included a larger number of branded items, such as Andrex toilet paper and Cathedral City cheese. 

Asda continued its streak, which started in January 2020, as the cheapest traditional supermarket. It cost £348.38, on average, beating the next cheapest, Sainsbury's (£355.65), by £7.27.

Waitrose was £44.56 more expensive than Asda, coming in at £392.94, on average. 

SupermarketAverage basket price
Asda£348.38
Sainsbury's£355.65
Morrisons£367.12
Tesco£370.38
Ocado£382.30
Waitrose£392.94


September 2022

Aldi was the cheapest overall for September, costing £75.61, on average, beating rival discounter Lidl by £1.84. We compared 48 popular groceries, including own-label and a small number of branded items. 

Waitrose was £99.40, on average, meaning it was £23.79 more than Aldi.

SupermarketAverage basket price 
Aldi £75.61
Lidl£77.45
Asda£84.87
Sainsbury's£86.34
Tesco £87.37
Morrisons£94.38
Ocado£95.51


We also compared the cost of a larger trolley of 149 items (the original 48, plus 101 more). Asda continued its streak (starting in January 2020) as the cheapest traditional supermarket.

It cost £343.38, on average, beating the next-cheapest Sainsbury's (£353.15) by £9.77. Waitrose was £41.13 more expensive than Asda at £384.51, on average.

Supermarket Average basket price
Asda£343.38
Sainsbury's£353.15
Tesco £368.26
Morrisons£370.77
Ocado£383.77
Waitrose£384.51

August 2022

Aldi was the cheapest overall at £76.24, on average, beating rival discounter Lidl by £1.66. We compared 49 popular groceries, including own-label and a small number of branded items. 

Waitrose cost £102.20, on average, meaning it was £25.96 more than Aldi.

SupermarketAverage basket price
Aldi £76.24
Lidl£77.90
Asda£85.99
Sainsbury's£88.05
Tesco£88.48
Morrisons£96.54
Ocado£98.75


We also compared the cost of a larger trolley of 153 items (the original 49, plus 104 more). Asda continued its streak (starting in January 2020) as the cheapest traditional supermarket.

It cost £337.50, on average, beating the next-cheapest Sainsbury's (£360.93) by £23.43. Waitrose was £49.48 more expensive than Asda at £386.98, on average.

SupermarketAverage basket price
Asda£337.50
Sainsbury's£360.93
Tesco£362.48
Morrisons£366.64
Ocado£386.84
Waitrose£386.98

July 2022

Aldi was the cheapest overall at £74.23, on average, beating rival discounter Lidl by £1.38. We compared 47 popular groceries, including own-label and a small number of branded items. 

Waitrose cost £99.46, on average, and was £25.23 more than Aldi.

SupermarketAverage basket price
Aldi£74.23
Lidl£75.61
Asda£83.22
Sainsbury's£86.27
Tesco£86.77
Morrisons£91.14
Ocado£95.33

We also compared the cost of a larger trolley of 152 items (the original 47, plus 105 more). Asda continued its streak (starting in January 2020) as the cheapest traditional supermarket.

It cost £331.81, on average, for our big trolley shop, beating the next-cheapest Morrisons (£350.69) by £18.88. Waitrose was £49.54 more expensive than Asda at £381.35, on average.

SupermarketAverage basket price 
Asda£331.81
Morrisons£350.69
Sainsbury's£351.08
Tesco£356.51
Ocado£372.24
Waitrose£381.35

June 2022

Aldi was the cheapest overall, beating Lidl for the first time in seven months. Our 52-item basket cost £75.61 at the discounter. In contrast, the most expensive was Waitrose at £101.14, on average. Asda was the cheapest of the traditional supermarkets.

SupermarketAverage basket price
Aldi£75.61
Lidl£76.99
Asda£85.22
Tesco£86.63
Sainsbury's£87.24
Morrisons£91.03
Ocado£97.50

We also looked at a larger trolley of 156 items (the original 52, plus 104 more). The cheapest was Asda, continuing its streak (starting in January 2020) as the cheapest traditional supermarket. 

The trolley cost £336.89 at Asda, compared with £385.27 at Waitrose. 

SupermarketAverage basket price
Asda£336.89
Sainsbury's£349.56
Morrisons£356.29
Tesco£357.76
Ocado£376.84
Waitrose£385.27

May 2022

Lidl was the cheapest for the sixth consecutive month. Our 18-item basket cost £23.55 at the discounter. In contrast, the most expensive was Waitrose at £31.85 at Waitrose. Asda was the cheapest of the traditional supermarkets. 

SupermarketAverage basket price
Lidl£23.55
Aldi£24.60
Asda£26.28
Morrisons£27.06
Sainsbury's£27.32
Ocado£28.14
Tesco£28.26

We also looked at a larger trolley of 59 items (the original 18, plus 41 more). Asda continued its streak (starting in January 2020) as the cheapest traditional supermarket. 

It cost £129.53 at Asda, compared with £142.61 at Waitrose. 

SupermarketAverage trolley price
Asda£129.53
Sainsbury's£133.47
Morrisons£134.09
Ocado£139.29
Tesco£139.75
Waitrose£142.61

April 2022

Lidl was the cheapest for the fifth month in a row. Our basket of 18 groceries cost £25.92 at the discounter, compared with £35.06 at Waitrose. Asda was the cheapest of the traditional supermarkets. 

SupermarketAverage basket price
Lidl£25.92
Aldi£26.66
Asda£28.46
Sainsbury's£30.73
Ocado£30.75
Tesco£31.01
Morrisons£31.19

We also compared a larger trolley of 63 groceries (the original 18, plus 45 more). Asda, which has been the cheapest traditional supermarket every month since January 2020, was the cheapest at £132.81. It was £17.01 cheaper than Waitrose, where it cost £149.82.

SupermarketAverage trolley price
Asda£132.81
Sainsbury's£138.58
Morrisons£139.65
Tesco£145.92
Ocado£147.35
Waitrose£149.82

 

March 2022

Lidl was the cheapest, with our basket of 21 groceries costing an average of £26.83. Meanwhile, it would have cost £36.04 at the priciest supermarket Waitrose.

SupermarketAverage basket price
Lidl£26.83
Aldi£27.14
Asda£28.63
Sainsbury's£29.39
Tesco£30.30
Ocado£31.24
Morrisons£31.53

We also compared a larger trolley of 65 groceries, made up of the original 21, plus 44 more. At £128.60, Asda was the cheapest traditional supermarket of the month, charging £6.56 less than its nearest rival Sainsbury’s at £135.16.

Supermarket Average trolley price
Asda£128.60
Sainsbury's£135.16
Morrisons£136.21
Tesco£140.65
Ocado£144.01
Waitrose£148.76


February 2022

Lidl was the cheapest, with our basket of 23 groceries costing an average of £24.21. Meanwhile, the same shop from the priciest supermarket Waitrose would have cost £33.71.

SupermarketAverage basket price
Lidl£24.21
Aldi£24.83
Asda£27.35
Tesco£27.40
Sainsbury's£27.68
Morrisons£29.19
Ocado£31.28

We also compared a larger trolley of 66 groceries, made up of the original 23, plus 43 more. At £128.19, Asda was the cheapest traditional supermarket of the month, charging £1.68 less than its nearest rival Sainsbury’s at £129.87.

SupermarketAverage trolley price
Asda£128.19
Sainsbury's£129.87
Morrisons£136.44
Tesco£139.25
Waitrose£142.91
Ocado£144.45


January 2022

Lidl was the cheapest in January 2022, with our range of 23 groceries costing an average of £24.78. Meanwhile, tit would have cost £33.94 from the priciest supermarket Waitrose.

SupermarketAverage basket price
Lidl£24.78
Aldi£25.37
Asda£27.07
Tesco£28.40
Sainsbury's£30.05
Morrisons£30.75
Ocado£30.83

We also compared a larger trolley of 68 groceries, made up of the original 23, plus 45 more. At £133.34, Asda was the cheapest traditional supermarket, charging £2.69 less than its nearest rival Sainsbury’s at £136.03.

SupermarketAverage trolley price
Asda£133.34
Sainsbury's£136.03
Morrisons£141.34
Tesco£142.24
Ocado£147.08
Waitrose£149.27


Which supermarket was cheapest in 2021?

As well as analysing prices each month, we do a whole-year look each January – and, according to our analysis, Aldi was the cheapest supermarket in 2021. 

Aldi was our 'cheapest supermarket of the month' six times last year – more than any other supermarket. Lidl came top for five months and, for one month, the two discounters were tied.

The two are consistently very close in our monthly comparison, which includes own-brand products such as apples and eggs, as well as branded goods such as Hovis bread – often with just a few pence separating them. 

Asda was the cheapest of the non-discounter supermarkets, coming out on top every month in 2021. 

At the other end of the scale, Waitrose was most expensive each month.

Monthly supermarket pricing in 2021

December 2021

Lidl was crowned the cheapest supermarket in December 2021, with our range of 22 groceries costing an average of £23.29. Meanwhile, it would have cost £32.85 from the priciest supermarket Waitrose, which is 41% more.

SupermarketAverage basket price
Lidl£23.29
Aldi£23.64
Asda£24.52
Tesco£26.32
Sainsbury's£26.70
Morrisons£27.54
Ocado£28.53


We also compared a larger trolley of 70 groceries, made up of the original 22, plus 48 more. At £135.07, Asda was the cheapest traditional supermarket, charging £5.96 less than its nearest rival Sainsbury’s at £141.03.

SupermarketAverage trolley price
Asda£135.07
Sainsbury's£141.03
Morrisons£142.61
Tesco£146.55
Ocado£147.88
Waitrose£153.37


November 2021

Aldi was the cheapest, with our range of 23 grocery products costing an average of £24.64. Meanwhile, it would have cost £34.79 from the priciest supermarket Waitrose, which is £10 more.

SupermarketAverage basket price
Aldi£24.64
Lidl
£25.51
Asda£25.57
Tesco£28.87
Sainsbury's£29.62
Ocado£30.18
Morrisons£30.35


We also compared a larger trolley of 72 groceries, made up of the original 23, plus 49 more. At £136.31, Asda was the cheapest traditional supermarket of the month, charging £4.65 less than its nearest rival Sainsbury's at £140.96.

SupermarketAverage trolley price
Asda£136.31
Sainsbury's£140.96
Morrisons£147.28
Tesco£148.68
Ocado£153.27
Waitrose£157.13


October 2021

Aldi was the cheapest supermarket in October 2021, with our basket of 23 food and drink items costing an average of £24.24. Meanwhile, it would have cost £34.79 from the most expensive supermarket Waitrose, which is £10 more.

SupermarketAverage basket price
Aldi£24.24
Lidl£24.97
Asda£25.94
Sainsbury's£27.71
Morrisons£28.31
Tesco£28.64
Ocado£29.95


We also compared a larger trolley of 77 items, comprising the original 23, plus 54 more. At £143.21, Asda was the cheapest of the month, charging £2.35 less than its nearest rival Sainsbury’s at £145.56.

SupermarketAverage trolley price
Asda£143.21
Sainsbury's£145.56
Morrisons£150.26
Ocado£154.40
Tesco£156.72
Waitrose£164.91


September 2021

Aldi was the cheapest, with our basket of 22 food and drink items costing an average of £24.03. Meanwhile, it would have cost £33.06 from the most expensive supermarket Waitrose, which is £9 more. 

SupermarketAverage basket price
Aldi£24.03
Lidl£24.40
Asda£26.19
Sainsbury's£27.95
Morrisons£28.31
Tesco£28.31
Ocado£29.84


We also compared a larger trolley of 79 items, comprising the original 22, plus 57 more. At £146.36, Asda was the cheapest of the month, charging £4.81 less than its nearest rival Sainsbury’s at £151.17.

SupermarketAverage trolley price
Asda£146.36
Sainsbury's£151.17
Morrisons£157.76
Tesco£161.59
Ocado£163.18
Waitrose£168.02


August 2021

Lidl was the cheapest, with our basket of 23 groceries cost £24.11, on average. it would have cost £33.20 from the most expensive supermarket Waitrose, which is £9 more. 

SupermarketAverage basket price
Lidl£24.11
Aldi£24.54
Asda£25.22
Morrisons£27.14
Sainsbury's£28.18
Tesco£28.47
Ocado£30.33


We also compared a larger trolley of 82 items, made up of the original 23, plus 59 more. This included a greater selection of branded items that aren’t always available in the discounter supermarkets, so we weren't able to include Aldi or Lidl.

Asda was easily the cheapest of the traditional supermarkets for this larger trolley at £149.20 It was £21.22 cheaper than the most expensive supermarket, Waitrose.

SupermarketAverage trolley price
Asda£149.20
Sainsbury's£158.53
Morrisons£159.34
Ocado£161.16
Tesco£161.16
Waitrose£170.42


July 2021 

Aldi was the cheapest supermarket of July 2021, with our basket of 20 products costing £23.59. But it would have cost £31.42 from the most expensive supermarket Waitrose, which is £7.82 more.

Meanwhile, Morrisons overtook Asda as the cheapest 'big four' supermarket for the first time in 17 months.

SupermarketAverage basket price
Aldi£23.59
Lidl£23.77
Morrisons£24.46
Asda£24.72
Sainsbury's£25.13
Ocado£26.63
Tesco£27.06


We also compared a larger trolley of 79 items, made up of the original 20, plus 59 more.

This time, Asda was cheaper by some distance at £151.22 compared with £159.96 at Morrisons. Again, Waitrose was the priciest at £169.50.

SupermarketAverage trolley price
Asda£151.22
Sainsbury's£154.75
Morrisons£159.96
Ocado£162.74
Tesco£162.85
Waitrose£169.50


June 2021 

Aldi was the cheapest in June 2021. On average, shoppers would have paid £21.61 for our trolley of 18 items at Aldi. 

Meanwhile, Waitrose was almost £7 pricier than Aldi at £28.59.

SupermarketAverage basket price
Aldi£21.61
Lidl£21.81
Asda£21.99
Tesco£24.21
Morrisons£24.40
Sainsbury's£24.41
Ocado£26.82


We also compared a larger trolley of 76 items, comprising the original 18, plus 58 more. Asda, at £141.02, was the cheapest – a huge £20.77 less than the most expensive supermarket Waitrose, where it cost £161.79.

SupermarketAverage trolley price
Asda£141.02
Sainsbury's£146.88
Morrisons£150.87
Tesco£151.87
Ocado£156.09
Waitrose£161.79


May 2021

Lidl was the cheapest in May 2021, with our trolley of 20 items costing £22.66. The same shop at the priciset supermarket Waitrose would have cost £31.88.

We also compared a larger trolley of 82 items – the original 20, plus 62 more. At £159.11, Asda was the cheapest, charging £6.11 less than its nearest rival Sainsbury’s (£165.22).

The priciest was Waitrose, costing £22.49 more than Asda for the same or equivalent items.

April 2021

Aldi was the cheapest in April 2021, with our trolley of 20 items costing £22.64. The same or equivalent items at Waitrose cost £30.89.

We also compared a fuller trolley of 82 items – the original 20, plus 62 more. At £152.67, Asda was the cheapest of the month, charging £6.87 less than its nearest rival Sainsbury’s (£159.54).

Most expensive was Waitrose, costing £20.57 more than Asda. 

March 2021

Lidl was the cheapest supermarket for March 2021, with our trolley of 20 items costing £22.48. The same or equivalent items at Waitrose cost £29.77. 

We also compared a fuller trolley of 85 items, comprising the original 20, plus 65 more. Asda, at £160.42, was the cheapest of the month – charging £5.27 less than its nearest rival Sainsbury’s (£165.69). 

Most expensive was Waitrose, costing £21.22 more than Asda. 

February 2021

Lidl was the cheapest, with our trolley of 19 items coming in at £19.13. But at Waitrose it cost £27.44.

We also compared a fuller trolley of 85 items, comprising the original 19, plus 66 more. Asda was the cheapest of the month at £160.89 – charging £6.14 less than its nearest rival Sainsbury’s (£167.03). 

Most expensive was Waitrose, costing £17.90 more. 

January 2021

Aldi and Lidl kept their prices low in January, and were joint cheapest for the month, with our trolley of 19 items coming in at £18.45 at both discounters. But it cost £24.79 at Waitrose.

  1. Aldi £18.45
  2. Lidl £18.45
  3. Asda £20.03
  4. Tesco £21.77
  5. Sainsbury's £22.10
  6. Morrisons £22.45
  7. Ocado £24.15
  8. Waitrose £24.79

We also compared a fuller trolley of 87 items, comprising the original 19, plus 68 more. At £160.08, Asda was the cheapest– charging £9 less than its nearest rival Sainsbury’s (£169.40). 

  1. Asda £160.08
  2. Sainsbury's £169.40
  3. Morrisons £171.99
  4. Tesco £176.47
  5. Waitrose £181.66
  6. Ocado £182.27

Ocado was the most expensive, costing £22.19 more than Asda. Waitrose was also pricey at £181.66, on average.

Which supermarket was cheapest in 2020?

As well as analysing prices each month, we do a whole year look each January – and, according to our analysis, Lidl was the cheapest supermarket in 2020. 

The discounter was just 34p cheaper than its nearest rival Aldi for our trolley of 45 branded and own-label groceries. And it was £26.02 cheaper than the most expensive supermarket, Waitrose.

  1. Lidl £42.67
  2. Aldi £43.01
  3. Asda £48.71
  4. Tesco  £53.30
  5. Morrisons £53.61
  6. Sainsbury's £56.38
  7. Ocado £66.83
  8. Waitrose £68.69

We tracked the prices of 45 branded and own-label groceries – including Hovis bread, Knorr stock cubes, eggs, cucumber and tomatoes – listed at all eight major supermarkets for at least 100 days between 1 January and 31 December 2020. Of course, own-brand items aren’t exactly the same at all supermarkets, but we’ve used experts to ensure that the products are as comparable as possible, based on a range of factors including weight, quality and other industry data. 

Using an independent pricing data provider, we calculated the average price (including special offers, but not multibuys) for each item throughout the year. We added those individual averages together to give an overall price for the trolley at each shop for 2020. 

Why did Lidl beat Aldi?

Given that Aldi was the cheapest supermarket in more individual months than Lidl in 2020 (see below), you might be surprised that Lidl was named the overall cheapest for 2020. 

It all boils down to the items we were able to get prices for. We look at a huge range of food and household essentials, but for our whole year analysis we only included things that we could get at least 100 days’ worth of data for at all eight supermarkets. 

This meant that slightly different items ended up being included from those in our monthly summaries, enabling Lidl to swing it by just 34p.

Monthly supermarket pricing in 2020

December 2020

The cheapest supermarket in December 2020 was Lidl. Our trolley of 19 items cost £18.32 at Lidl. It cost £27.26 for the same items at the most expensive supermarket, Waitrose. 

Here's how our trolley of groceries stacked up at each of the UK's biggest supermarkets:

  1. Lidl £18.32
  2. Aldi £18.35
  3. Asda £19.43
  4. Tesco  £21.20
  5. Morrisons £21.42
  6. Sainsbury's £23.53
  7. Ocado £24.75
  8. Waitrose £27.26

We also compared a shopping trolley packed with 86 items (the original 19, plus 67 more). This included a greater selection of branded items, such as Branston baked beans and Kleenex tissues, that aren't always available in the discounter supermarkets. So for this trolley, we weren't able to include Aldi and Lidl.

  1. Asda £157.41
  2. Morrisons £160.97
  3. Tesco £173.38
  4. Sainsbury's £173.38
  5. Ocado £179.61
  6. Waitrose £183.51

For this trolley of groceries, Asda was the cheapest at £157.41 and Waitrose the priciest at £183.51. 

November 2020

The cheapest was Aldi, with a small trolley of 22 items costing just £21.28, while Asda was the cheapest ‘big four’ supermarket, with our trolley costing £23.94. At the other end of the scale, Waitrose was £10 more expensive than Aldi, at £31.56. 

Here's how our trolley of groceries stacked up at each of the UK's biggest supermarkets:

  1. Aldi £21.28
  2. Lidl £22.16
  3. Asda £23.94
  4. Morrisons £24.39
  5. Tesco  £26.57
  6. Sainsbury's £27.50
  7. Ocado £29.34
  8. Waitrose £31.56

We also compared a shopping trolley packed with 89 items (the original 22, plus 67 more). This included a greater selection of branded items, such as Branston baked beans and Kleenex tissues, that aren't always available in the discounter supermarkets. So for this trolley, we weren't able to include Aldi and Lidl.

  1. Asda £165.42
  2. Sainsbury's £170.96
  3. Morrisons £173.02
  4. Tesco £177.16
  5. Ocado £190.91
  6. Waitrose £193.43

 Asda, at £165.42, was by far the cheapest of the traditional supermarkets. It was £28.01 cheaper than the most expensive, Waitrose. Grocery prices at Sainsbury's, Morrisons and Tesco were similar, with just over £6 separating these three.

October 2020

The cheapest in October was Aldi, with a small trolley of 32 items costing £27.13. Rival discounter Lidl was £4.46 more expensive, which is an unusually large difference between the two. The same shop at Ocado cost £44.13, making it £17 more expensive than Aldi.

Here's how our trolley of groceries stacked up.

  1. Aldi £27.13
  2. Lidl £31.59
  3. Asda £33.85
  4. Tesco  £35.17
  5. Morrisons £35.17
  6. Sainsbury's £37.44
  7. Ocado £43.67
  8. Waitrose £44.13

We also compared a trolley of 103 items (the original 32 items, plus 71 more). This included a greater selection of branded items, such as Branston baked beans and Flash cleaning spray, which aren't typically available all year round from the discounters – hence, Aldi and Lidl not appearing in this list.

  1. Asda £181.69
  2. Sainsbury's £189.18
  3. Tesco £199.76
  4. Morrisons £199.96
  5. Waitrose £210.43
  6. Ocado £211.49

Asda, at £181.69, was the cheapest supermarket for September and pipped its next closest rival (Sainsbury's) by £7.50.

Ocado was the most expensive at £211.49.

September 2020 

The cheapest supermarket in September was Aldi, with a trolley of 70 items costing £60.01, on average. 

This was the third month in a row that Aldi was the cheapest. Waitrose – which parted ways with Ocado at the beginning of September 2020 and now only sells via its own website – was the most expensive at £98.53. 

Here’s how much our trolley of 70 items cost, on average, at each of the UK’s biggest supermarkets:

  1. Aldi £60.01
  2. Lidl £63.66
  3. Asda £71.13
  4. Tesco  £78.28
  5. Morrisons £79.54
  6. Sainsbury's £82.29
  7. Ocado £95.81
  8. Waitrose £98.53

We also looked at a trolley of 150 items (the original 70 items, plus 80 more). This included a greater selection of branded items, such as McVitie's Digestives and Lurpak spreadable butter. Some of the items aren’t available all year round from the discounters, so we couldn't include Aldi or Lidl. 

  1. Asda £232.87
  2. Morrisons £245.54
  3. Tesco £249.09
  4. Sainsbury's £253.07
  5. Ocado £278.55
  6. Waitrose £283.57

Asda was the cheapest and was £12.67 cheaper than nearest rival Morrisons. Compared with priciest supermarket Waitrose (£283.57), Asda shoppers could have saved £50.70. Asda was also the cheapest supermarket for a super-sized trolley when we checked in July and August.

August 2020 

The cheapest supermarket in August was Aldi, according to our research, in which we compared the prices of 74 grocery and household items. 

Our trolley cost an average of £66.45 at Aldi, but rival Lidl was hot on the discounter's heels at £67.17. 

Asda was the cheapest of the ‘big four’ at £74.12. Waitrose was more than £38 pricier than Aldi, at £105.25.

  1. Aldi £66.45
  2. Lidl £67.17
  3. Asda £74.12
  4. Tesco  £82.11
  5. Morrisons £84.73
  6. Sainsbury's £87.45
  7. Ocado £100.16
  8. Waitrose £105.25

We also compared a bumper trolley of 165 items (the original 74, plus 91 more) at the traditional supermarkets. 

Asda, at £256.31, was by far the cheapest supermarket in our larger analysis – it was £15.41 cheaper than its nearest rival Tesco. Compared with the priciest, Waitrose (£322.87), Asda shoppers could have saved £66.55.

  1. Asda £256.31
  2. Morrisons £271.73
  3. Tesco £277.40
  4. Sainsbury's £281.17
  5. Ocado £304.61
  6. Waitrose £322.87

July 2020

Aldi was the cheapest UK in July. We compared prices for a trolley of 85 items, including food, drink and household essentials.

On average, shoppers would have paid £78.50 at Aldi, which beat rival discounter Lidl by just 96p. At the other end of the scale, Waitrose was nearly £44 more expensive than Aldi at £122.47.

  1. Aldi £78.50
  2. Lidl £79.46
  3. Asda £88.29
  4. Tesco  £98.48
  5. Morrisons £99.30
  6. Sainsbury's £103.26
  7. Ocado £117.85
  8. Waitrose £122.47

We also compared a trolley packed with 167 items (the original 85, plus 82 more). This included a greater selection of branded items, such as Branston baked beans and Flash cleaning spray, that weren't available in the discounter supermarkets. 

Asda, at £271.03, was by far the cheapest of the traditional supermarkets. It was a staggering £41.25 cheaper than the most expensive supermarket, Waitrose.

  1. Asda £271.03
  2. Sainsbury's £278.06
  3. Morrisons £278.20
  4. Tesco £281.35
  5. Ocado £311.08
  6. Waitrose £312.28

June 2020

June saw the return of Aldi and Lidl to our analysis after a brief Covid-related pause (as we had temporarily been unable to send fieldworkers out to stores).

Unsurprisingly, the discounters took the top two cheapest slots in the table. Lidl just pipped Aldi to be named cheapest, with a 21p difference between them. 

We compared 78 items, a combination of own-label and branded groceries. Waitrose was nearly £40 more expensive than the discounters at £111.77.

  1. Lidl £72.02
  2. Aldi £72.23
  3. Asda £80.15
  4. Tesco  £88.28
  5. Morrisons £90.27
  6. Sainsbury's £93.93
  7. Ocado £109.61
  8. Waitrose £111.17

We also compared a jumbo shopping trolley packed with 175 items (the original 78, plus 97 more), which included a greater selection of branded items available at the traditional supermarkets.

At £299.78, Asda was by far the cheapest of the traditional supermarkets. It was £103.04 cheaper than online-only Ocado – the greatest difference in prices that we’ve seen to date.

  1. Asda £299.78
  2. Morrisons £312.38
  3. Sainsbury's £317.99
  4. Tesco £324.03
  5. Waitrose £367.19
  6. Ocado £402.82

May 2020

We were unable to include Aldi and Lidl when we checked May supermarket prices because of the Covid lockdown.

Of the grocers we were able to compare (Asda, Morrisons, Ocado, Sainsbury's, Tesco, and Waitrose), Asda was the cheapest supermarket, with a trolley of 178 items costing £279.54. 

Morrisons was the next cheapest supermarket, but was still £14.64 more expensive than Asda.At Waitrose, it was £62.74 more than at Asda at £342.28.

  1. Asda £279.64
  2. Morrisons £294.18
  3. Tesco £298.46
  4. Sainsbury's £298.46
  5. Ocado £332.13
  6. Waitrose £342.28

April 2020

We weren't able to include Aldi and Lidl when we checked April prices due to lockdown.

Asda was the cheapest major online supermarket in April. We compared prices across 186 grocery items and found that, on average, shoppers would have paid £291.67 at Asda – £19.51 less than at its nearest rival Morrisons.

Waitrose was the most expensive, coming in at £363.88.

  1. Asda £291.67
  2. Morrisons £311.18
  3. Tesco £314.90
  4. Sainsbury's £320.33
  5. Ocado £357.01
  6. Waitrose £362.88

March 2020

Aldi was the cheapest in March. A trolley of 108 groceries and household essentials cost £111 at the budget supermarket – £2 less than at Lidl, its closest rival.

Of the larger supermarkets, Asda was cheapest, with shoppers paying £123. Sainsbury’s came in third most expensive at £144. Customers’ shopping would have cost £144, however this was only slightly more than at Tesco (£140) and Morrisons (£143).

Waitrose was by far the most expensive at £175 – £64 more than Aldi.

  1. Aldi £111
  2. Lidl £113
  3. Asda £123
  4. Tesco £140
  5. Morrisons £143
  6. Sainsbury's £144
  7. Ocado £167
  8. Waitrose £175

We also compared prices for a larger trolley of 193 products (the original 108, plus 85 more). This included more branded items, such as Dolmio bolognese sauce and Fairy Platinum washing-up liquid.

Aldi and Lidl were not included in this larger-scale analysis, due to the smaller and frequently changing range of branded goods they sell. 

Asda was cheapest by far at £295 – £25 less than the next option, Morrisons (£320). Waitrose was priciest again at £376 – £81 more expensive than Asda.

This was the first month we included both Aldi and Lidl in our pricing analysis. Previous baskets were based on a comparison of branded products only, but we listened to feedback from Which? members and added own-label items to our analysis (find out more at the end of this article). 

Basket prices earlier than March 2020 are based on a different methodology and aren't comparable. 

  1. Asda £129
  2. Morrisons £320
  3. Sainsbury's £325
  4. Tesco £327
  5. Ocado £369
  6. Waitrose £376

January 2020

Asda started 2020 as the cheapest in our monthly price comparison, with a basket of 62 grocery items costing £121.11.

Shoppers at Tesco, once known for its value, would have paid £129.31 for the same basket of goods – that's more than Waitrose (£127.97) – making it the second most expensive supermarket in January.

  1. Asda £121.11
  2. Sainsbury's £123.66
  3. Morrisons £126.36
  4. Waitrose £127.97
  5. Tesco £129.31
  6. Ocado £131.03

The same shop at online-only Ocado would have cost the most at £131.03, nearly £10 more than Asda.

Shopping at Sainsbury’s, the cheapest supermarket of 2019, would have cost £123.66 for the 62 groceries, while Morrisons shoppers would have paid £126.36.

Cheapest supermarkets 2014-2019

Which was the cheapest supermarket in 2019?

We tracked the prices of 53 popular products sold in the six online supermarkets across the whole of 2019 and found that Sainsbury's was the cheapest. 

Our analysis included everything from Andrex toilet tissue and Heinz baked beans to Weetabix cereal and Sure deodorant. 

Sainsbury’s was the cheapest and Waitrose was the most expensive. 

  1. Sainsbury's £107.01
  2. Asda £107.65
  3. Morrisons £109.13
  4. Tesco £112.40
  5. Ocado £116.40
  6. Waitrose £117.81

Monthly supermarket pricing in 2019

Sainsbury's was the cheapest non-discounter supermarket in 2019. Here are the results by month, with the cheapest supermarkets highlighted.

MonthAsdaMorrisonsOcadoSainsbury'sTescoWaitrose
January£144.49£148.40£154.69£148.16£151.10£156.28
February£143.50£140.51£155.80£131.73
£149.73£154.36
March£137.88£136.73
£150.62£139.37£141.97 £153.81
April£137.92£134.98
£148.54£137.78£143.33£150.34
May£132.60£127.48£139.45£127.03
£138.00£143.36
June£136.27
£141.98£153.14£137.23£145.04£158.06
July£139.37£141.11£149.64£138.12
£142.36 £151.66


Which supermarket was cheapest in 2018?

We tracked the prices of 77 popular products sold in the six online supermarkets across 2018 – and for the second year in a row Morrisons was the cheapest. 

Our analysis included everything from biscuits and bread to tissues and toilet roll. Popular brands such as Kingsmill, Warburtons, PG Tips, Tetley and Andrex all featured in our basket.

  1. Morrisons £156.46
  2. Asda £157.99
  3. Sainsbury's £158.55
  4. Tesco £161.49
  5. Ocado £169.86
  6. Waitrose £170.79

While the rankings changed slightly each month, Morrisons was still the cheapest for six months of the year.

Waitrose and Ocado were the most expensive places to buy our basket of groceries for six months of the year each, but did they make up for it in other ways? Click the links to see how customers rated Waitrose and Ocado in our latest supermarket survey.

Which supermarket was cheapest in 2017?

We've given the average price of our comparison basket in 2017 below. 

  1. Morrisons £142.76
  2. Asda £142.80
  3. Tesco £146.29
  4. Sainsbury's £147.66
  5. Ocado £153.36
  6. Waitrose £154.01

Which supermarket was cheapest in 2016?

We've given the average price of our comparison basket in 2016 below. 

  1. Asda £154.14
  2. Morrisons £160.19
  3. Sainsbury's £162.11
  4. Tesco £164.37
  5. Ocado £170.35
  6. Waitrose £172.27

Which supermarket was cheapest in 2015?

We've given the average price of our comparison basket in 2015 below. 

  1. Asda £156.17
  2. Morrisons £160.94
  3. Sainsbury's £164.33
  4. Tesco £164.37
  5. Ocado £169.32
  6. Waitrose £170.89

Which supermarket was cheapest in 2014?

We've given the average price of our comparison basket in 2014 below.

  1. Asda £179.35
  2. Tesco £190.33
  3. Sainsbury's £191.17
  4. Ocado £194.18
  5. Waitrose £196.33