Protein price table
What a gram of protein costs at UK supermarkets, cheapest first. Prices in GBP, updated 2026-09-22. Download the CSV or add an item on GitHub.
54 / 54
| Red Split Lentils (Laila) | Amazon | £3.00 | 2000 g | 26 /100g | £0.0058 | £0.58 | 2026-09-22 | ||
| Scottish Porridge Oats | Aldi | £1.09 | 1000 g | 12.3 /100g | £0.0089 | £0.89 | 2026-09-22 | ||
| Chickpeas (Laila) | Amazon | £3.75 | 2000 g | 21 /100g | £0.0089 | £0.89 | 2026-09-22 | ||
| Green Lentils (Laila) | Amazon | £5.53 | 2000 g | 24 /100g | £0.0115 | £1.15 | 2026-09-22 | ||
| Frozen Everyday Essentials Chicken Breast Fillet | Aldi | £4.25 | 1000 g | 31.3 /100g | 0.1 | £0.0136 | £1.36 | 2026-09-22 | |
| Everyday Essentials Unsmoked Back Bacon | Aldi | £4.49 | 1000 g | 26.7 /100g | 1 | £0.0168 | £1.68 | 2026-09-22 | |
| Princes Sardines sunflower oil | Aldi | £0.47 | 120 g | 23 /100g | 0.1 | £0.0170 | £1.70 | 2026-09-22 | |
| Can of Tuna Chunks in Brine | Aldi | £2.59 | 580 g | 24.9 /100g | 0 | £0.0179 | £1.79 | 2026-09-22 | |
| Everyday Essentials Unsmoked Gammon Joint | Aldi | £4.29 | 1107 g | 21.2 /100g | 1 | £0.0183 | £1.83 | 2026-09-22 | |
| Sardines in Tomato Sauce | Aldi | £0.47 | 120 g | 20.5 /100g | £0.0191 | £1.91 | 2026-09-22 | ||
| White Fish Fillets | Aldi | £4.49 | 1000 g | 22.7 /100g | 0.1 | £0.0198 | £1.98 | 2026-09-22 | |
| Everyday Essentials - Back / Streaky Bacon | Aldi | £1.45 | 275 g | 26.3 /100g | £0.0200 | £2.00 | 2026-09-22 | ||
| White Fish Fillets | Aldi | £2.49 | 520 g | 22.7 /100g | £0.0211 | £2.11 | 2026-09-22 | ||
| Ashfields British Pork Shoulder Joint | Aldi | £5.79 | 1528 g | 18 /100g | 1 | £0.0211 | £2.11 | 2026-09-22 | |
| Premium Baked Beans (Bramwells) | Aldi | £0.41 | 410 g | 4.7 /100g | £0.0213 | £2.13 | 2026-09-22 | ||
| Everyday Essentials Cottage Cheese | Aldi | £0.79 | 300 g | 12.3 /100g | £0.0214 | £2.14 | 2026-09-22 | ||
| Emporium - British Mature 50% lighter | Aldi | £2.69 | 400 g | 29.9 /100g | £0.0225 | £2.25 | 2026-09-22 | ||
| Cottage Cheese | Aldi | £1.15 | 300 g | 17 /100g | £0.0225 | £2.25 | 2026-09-22 | ||
| Large Gammon Joint | Aldi | £6.69 | 1300 g | 21.2 /100g | 0 | £0.0243 | £2.43 | 2026-09-22 | |
| The Fishmonger Tuna Chunks in Brine - 4 pack | Aldi | £2.49 | 4 piece | 24.4 /piece | 0.1 | £0.0255 | £2.55 | 2026-09-22 | |
| Long life Skimmed Milk | Aldi | £0.89 | 1000 ml | 3.4 /100g | £0.0262 | £2.62 | 2026-09-22 | ||
| Quark | Aldi | £0.85 | 250 g | 12.3 /100g | £0.0276 | £2.76 | 2026-09-22 | ||
| Pink Salmon | Aldi | £1.39 | 213 g | 23.6 /100g | £0.0277 | £2.77 | 2026-09-22 | ||
| British Chicken Breast Fillet 2kg | Aldi | £11.99 | 2000 g | 21.5 /100g | £0.0279 | £2.79 | 2026-09-22 | ||
| Aldi emporium British mature cheddar | Aldi | £2.79 | 400 g | 25 /100g | 2 | £0.0279 | £2.79 | 2026-09-22 | |
| 10% Beef Mince | Aldi | £3.19 | 500 g | 21.9 /100g | 0 | £0.0291 | £2.91 | 2026-09-22 | |
| 25% Beef Mince | Aldi | £2.59 | 500 g | 17.7 /100g | £0.0293 | £2.93 | 2026-09-22 | ||
| British Range 15 Mixed Size Eggs | Aldi | £2.69 | 15 piece | 6 /piece | 0.6 | £0.0299 | £2.99 | 2026-09-22 | |
| British Chicken Thigh Fillets | Aldi | £5.19 | 900 g | 18.9 /100g | 0 | £0.0305 | £3.05 | 2026-09-22 | |
| 30 eggs | Local Shop | £6.00 | 1800 g | 10.8 /100g | £0.0309 | £3.09 | 2026-09-22 | ||
| Tofu | Aldi | £0.89 | 200 g | 14.1 /100g | £0.0316 | £3.16 | 2026-09-22 | ||
| 2% Fat Turkey Mince | Aldi | £3.99 | 500 g | 25 /100g | 0 | £0.0319 | £3.19 | 2026-09-22 | |
| Ashfields Chicken Breast Fillets | Aldi | £4.49 | 650 g | 21.5 /100g | 0.1 | £0.0321 | £3.21 | 2026-09-22 | |
| Ashfields British Pork Loint Joint | Aldi | £9.43 | 1628 g | 18 /100g | 0.1 | £0.0322 | £3.22 | 2026-09-22 | |
| Optimum Nutrition Gold Standard Whey - Banana Cream | Amazon | £58.00 | 2280 g | 79 /100g | 5 | £0.0322 | £3.22 | 2026-09-22 | |
| Can Tuna Steak | Aldi | £0.99 | 110 g | 27.7 /100g | £0.0325 | £3.25 | 2026-09-22 | ||
| Oakhurst - Turkey Rashers | Aldi | £1.59 | 150 g | 32.1 /100g | £0.0330 | £3.30 | 2026-09-22 | ||
| Optimum Nutrition Gold Standard Whey Protein | Amazon | £23.70 | 900 g | 79 /100g | £0.0333 | £3.33 | 2026-09-22 | ||
| Protein Chicken Mini Fillets | Aldi | £2.99 | 340 g | 25.9 /100g | £0.0340 | £3.40 | 2026-09-22 | ||
| Ashfields Beef Mince 20% fat | Aldi | £3.25 | 500 g | 18.6 /100g | 0.2 | £0.0349 | £3.49 | 2026-09-22 | |
| Basa Fillets | Aldi | £2.39 | 380 g | 17.9 /100g | £0.0351 | £3.51 | 2026-09-22 | ||
| FOUR SEASONS Broccoli Florets | Aldi | £1.19 | 1000 g | 3.3 /100g | 2.6 | £0.0361 | £3.61 | 2026-09-22 | |
| 3% Fat Beef Mince | Aldi | £7.79 | 1000 g | 21.5 /100g | £0.0362 | £3.62 | 2026-09-22 | ||
| 0% Fat Authentic Greek Yogurt | Aldi | £1.89 | 500 g | 10.4 /100g | £0.0363 | £3.63 | 2026-09-22 | ||
| Brooklea Authentic Greek Yogurt 0% Fat | Aldi | £3.69 | 1000 g | 9.8 /100g | 3.4 | £0.0377 | £3.77 | 2026-09-22 | |
| Almonds | Aldi | £1.69 | 200 g | 21.2 /100g | £0.0399 | £3.99 | 2026-09-22 | ||
| 3% Beef Meatballs | Aldi | £3.19 | 340 g | 22 /100g | £0.0426 | £4.26 | 2026-09-22 | ||
| Tiba - Tempeh | Aldi | £1.99 | 200 g | 22 /100g | £0.0452 | £4.52 | 2026-09-22 | ||
| Ashfields Lean Diced Beef | Aldi | £7.59 | 700 g | 22.5 /100g | 0.1 | £0.0482 | £4.82 | 2026-09-22 | |
| Frozen Salmon Fillets | Aldi | £6.99 | 480 g | 28.7 /100g | £0.0507 | £5.07 | 2026-09-22 | ||
| Anchovy Fillets in Olive | Aldi | £0.65 | 50 g | 25.2 /100g | £0.0516 | £5.16 | 2026-09-22 | ||
| Serrano Ham | Aldi | £1.89 | 100 g | 33.2 /100g | £0.0569 | £5.69 | 2026-09-22 | ||
| Ashfield Beef Brisket | Aldi | £13.55 | 1068 g | 18 /100g | 0.5 | £0.0705 | £7.05 | 2026-09-22 | |
| Kefir | Aldi | £1.99 | 750 ml | 3.4 /100g | £0.0780 | £7.80 | 2026-09-22 |
How the ranking works
Each row is one product in one package size, with the shelf price and the protein figure from its nutrition label. Total protein is the package size times the protein per 100 g (or per piece for eggs and multipacks). Dividing the price by that total gives the price of one gram of protein, and the table sorts by it. A food that looks cheap per kilo can still be expensive protein if little of it is protein.
Prices come from shelf labels and receipts, and each row keeps the date it entered the table, so check the date before relying on a price.