Skip to content

Instantly share code, notes, and snippets.

@rifkiamil
Last active September 15, 2025 03:14
Show Gist options
  • Select an option

  • Save rifkiamil/2b3bfeea36184a09564de1d04e235fc4 to your computer and use it in GitHub Desktop.

Select an option

Save rifkiamil/2b3bfeea36184a09564de1d04e235fc4 to your computer and use it in GitHub Desktop.
product_name capture_date rank_1_cheapest rank_1_price rank_1_days_since_price_change rank_2_cheapest rank_2_price rank_2_days_since_price_change rank_3_cheapest rank_3_price rank_3_days_since_price_change product_name_1 capture_date_1 Tesco_future_price Tesco_future_days_since_change Tesco_name_price_unit_gbp Tesco_days_since_change Tesco_last_change_date Tesco_price_changed Tesco_last_price Tesco_price_diff Tesco_change_within_1d Tesco_change_within_3d Tesco_change_within_7d Tesco_change_within_8d Tesco_change_within_14d Tesco_change_within_16d Tesco_change_in_past_1d Tesco_change_in_past_3d Tesco_change_in_past_7d Tesco_change_in_past_8d Tesco_change_in_past_14d Tesco_change_in_past_16d Sains_future_price Sains_future_days_since_change Sains_name_price_unit_gbp Sains_days_since_change Sains_last_change_date Sains_price_changed Sains_last_price Sains_price_diff Sains_change_within_1d Sains_change_within_3d Sains_change_within_7d Sains_change_within_8d Sains_change_within_14d Sains_change_within_16d Sains_change_in_past_1d Sains_change_in_past_3d Sains_change_in_past_7d Sains_change_in_past_8d Sains_change_in_past_14d Sains_change_in_past_16d ASDA_future_price ASDA_future_days_since_change ASDA_name_price_unit_gbp ASDA_days_since_change ASDA_last_change_date ASDA_price_changed ASDA_last_price ASDA_price_diff ASDA_change_within_1d ASDA_change_within_3d ASDA_change_within_7d ASDA_change_within_8d ASDA_change_within_14d ASDA_change_within_16d ASDA_change_in_past_1d ASDA_change_in_past_3d ASDA_change_in_past_7d ASDA_change_in_past_8d ASDA_change_in_past_14d ASDA_change_in_past_16d Morrisons_future_price Morrisons_future_days_since_change Morrisons_name_price_unit_gbp Morrisons_days_since_change Morrisons_last_change_date Morrisons_price_changed Morrisons_last_price Morrisons_price_diff Morrisons_change_within_1d Morrisons_change_within_3d Morrisons_change_within_7d Morrisons_change_within_8d Morrisons_change_within_14d Morrisons_change_within_16d Morrisons_change_in_past_1d Morrisons_change_in_past_3d Morrisons_change_in_past_7d Morrisons_change_in_past_8d Morrisons_change_in_past_14d Morrisons_change_in_past_16d Aldi_future_price Aldi_future_days_since_change Aldi_name_price_unit_gbp Aldi_days_since_change Aldi_last_change_date Aldi_price_changed Aldi_last_price Aldi_price_diff Aldi_change_within_1d Aldi_change_within_3d Aldi_change_within_7d Aldi_change_within_8d Aldi_change_within_14d Aldi_change_within_16d Aldi_change_in_past_1d Aldi_change_in_past_3d Aldi_change_in_past_7d Aldi_change_in_past_8d Aldi_change_in_past_14d Aldi_change_in_past_16d will_any_supermarket_change_within_1d will_any_supermarket_change_within_3d will_any_supermarket_change_within_7d will_any_supermarket_change_within_8d will_any_supermarket_change_within_14d will_any_supermarket_change_within_16d did_any_supermarket_change_in_past_1d did_any_supermarket_change_in_past_3d did_any_supermarket_change_in_past_7d did_any_supermarket_change_in_past_8d did_any_supermarket_change_in_past_14d did_any_supermarket_change_in_past_16d
Colgate Max White Medium Toothbrush 2024-01-09 Sains 1.5000 0 Tesco 2.1500 0 Colgate Max White Medium Toothbrush 2024-01-09 2.1500 1 2.1500 0 2024-01-09 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 1 1.5000 0 2024-01-09 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 1 1.5000 0 2024-01-09 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-01-10 Sains 1.5000 1 Tesco 2.1500 1 Colgate Max White Medium Toothbrush 2024-01-10 2.1500 2 2.1500 1 2024-01-09 0 0 0 0 0 0 0 1 1 1 1 1 1 1.5000 2 1.5000 1 2024-01-09 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 2 1.5000 1 2024-01-09 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-01-11 Sains 1.5000 2 Tesco 2.1500 2 Colgate Max White Medium Toothbrush 2024-01-11 2.1500 3 2.1500 2 2024-01-09 0 0 0 0 0 0 0 0 1 1 1 1 1 1.5000 3 1.5000 2 2024-01-09 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 3 1.5000 2 2024-01-09 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-01-12 Sains 1.5000 3 Tesco 2.1500 3 Colgate Max White Medium Toothbrush 2024-01-12 2.1500 4 2.1500 3 2024-01-09 0 0 0 0 0 0 0 0 1 1 1 1 1 1.5000 4 1.5000 3 2024-01-09 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 4 1.5000 3 2024-01-09 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-01-13 Sains 1.5000 4 Tesco 2.1500 4 Colgate Max White Medium Toothbrush 2024-01-13 2.1500 4 2024-01-09 0 0 0 0 0 0 0 0 0 1 1 1 1 1.5000 5 1.5000 4 2024-01-09 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 5 1.5000 4 2024-01-09 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-01-14 Sains 1.5000 5 Tesco Colgate Max White Medium Toothbrush 2024-01-14 2.1500 6 0 0 0 0 0 0 0 0 1 1 1 1 1.5000 6 1.5000 5 2024-01-09 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 6 1.5000 5 2024-01-09 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-01-15 Sains 1.5000 6 Tesco 2.1500 6 Colgate Max White Medium Toothbrush 2024-01-15 2.1500 7 2.1500 6 2024-01-09 0 0 0 0 0 0 0 0 0 1 1 1 1 1.5000 7 1.5000 6 2024-01-09 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 7 1.5000 6 2024-01-09 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-01-16 Sains 1.5000 7 Tesco 2.1500 7 Colgate Max White Medium Toothbrush 2024-01-16 2.1500 8 2.1500 7 2024-01-09 0 0 0 0 0 0 0 0 0 1 1 1 1 1.5000 8 1.5000 7 2024-01-09 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 7 2024-01-09 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-01-17 Sains 1.5000 8 Tesco 2.1500 8 Morrisons Colgate Max White Medium Toothbrush 2024-01-17 2.1500 9 2.1500 8 2024-01-09 0 0 0 0 0 0 0 0 0 0 1 1 1 1.5000 9 1.5000 8 2024-01-09 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 9 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1
Colgate Max White Medium Toothbrush 2024-01-18 Sains 1.5000 9 Tesco 2.1500 9 Colgate Max White Medium Toothbrush 2024-01-18 2.1500 10 2.1500 9 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 1 1 1.5000 10 1.5000 9 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 9 2024-01-09 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-01-19 Sains 1.5000 10 Tesco 2.1500 10 Morrisons Colgate Max White Medium Toothbrush 2024-01-19 2.1500 11 2.1500 10 2024-01-09 0 0 0 0 0 0 1 0 0 0 0 1 1 1.5000 11 1.5000 10 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 11 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-01-20 Sains 1.5000 11 Tesco 2.1500 11 Colgate Max White Medium Toothbrush 2024-01-20 2.1500 12 2.1500 11 2024-01-09 0 0 0 0 0 0 1 0 0 0 0 1 1 1.5000 12 1.5000 11 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 12 1.5000 11 2024-01-09 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-01-21 Sains 1.5000 12 Tesco 2.1500 12 Colgate Max White Medium Toothbrush 2024-01-21 2.1500 13 2.1500 12 2024-01-09 0 0 0 0 0 1 1 0 0 0 0 1 1 1.5000 13 1.5000 12 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 13 1.5000 12 2024-01-09 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-01-22 Sains 1.5000 13 Tesco 2.1500 13 Colgate Max White Medium Toothbrush 2024-01-22 2.1500 14 2.1500 13 2024-01-09 0 0 0 0 0 1 1 0 0 0 0 1 1 1.5000 14 1.5000 13 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 14 1.5000 13 2024-01-09 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-01-23 Sains 1.5000 14 Tesco 2.1500 14 Colgate Max White Medium Toothbrush 2024-01-23 2.1500 14 2024-01-09 0 0 0 0 0 1 1 0 0 0 0 1 1 1.5000 15 1.5000 14 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 15 1.5000 14 2024-01-09 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-01-24 Sains 1.5000 15 Tesco Colgate Max White Medium Toothbrush 2024-01-24 2.1500 16 0 0 0 0 1 1 0 0 0 0 0 1 1.5000 16 1.5000 15 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 16 1.5000 15 2024-01-09 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1
Colgate Max White Medium Toothbrush 2024-01-25 Sains 1.5000 16 Tesco 2.1500 16 Colgate Max White Medium Toothbrush 2024-01-25 2.1500 17 2.1500 16 2024-01-09 0 0 0 0 0 1 1 0 0 0 0 0 1 1.5000 17 1.5000 16 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 17 1.5000 16 2024-01-09 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1
Colgate Max White Medium Toothbrush 2024-01-26 Sains 1.5000 17 Tesco 2.1500 17 Colgate Max White Medium Toothbrush 2024-01-26 2.1500 18 2.1500 17 2024-01-09 0 0 0 0 0 1 1 0 0 0 0 0 0 1.5000 18 1.5000 17 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 18 1.5000 17 2024-01-09 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-01-27 Sains 1.5000 18 Tesco 2.1500 18 Colgate Max White Medium Toothbrush 2024-01-27 2.1500 19 2.1500 18 2024-01-09 0 0 0 0 1 1 1 0 0 0 0 0 0 1.5000 19 1.5000 18 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 19 1.5000 18 2024-01-09 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-01-28 Sains 1.5000 19 Tesco 2.1500 19 Colgate Max White Medium Toothbrush 2024-01-28 2.1500 20 2.1500 19 2024-01-09 0 0 0 1 1 1 1 0 0 0 0 0 0 1.5000 20 1.5000 19 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 20 1.5000 19 2024-01-09 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-01-29 Sains 1.5000 20 Tesco 2.1500 20 Colgate Max White Medium Toothbrush 2024-01-29 2.1500 21 2.1500 20 2024-01-09 0 0 0 1 1 1 1 0 0 0 0 0 0 1.5000 21 1.5000 20 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 21 1.5000 20 2024-01-09 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-01-30 Sains 1.5000 21 Tesco 2.1500 21 Colgate Max White Medium Toothbrush 2024-01-30 2.1500 22 2.1500 21 2024-01-09 0 0 0 1 1 1 1 0 0 0 0 0 0 1.5000 22 1.5000 21 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 0 1.5000 21 2024-01-09 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-01-31 Sains 1.5000 22 Tesco 2.1500 22 Morrisons 2.1500 0 Colgate Max White Medium Toothbrush 2024-01-31 2.1500 23 2.1500 22 2024-01-09 0 0 0 1 1 1 1 0 0 0 0 0 0 1.5000 23 1.5000 22 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 1 2.1500 0 2024-01-31 1 1.5000 0.6500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-02-01 Sains 1.5000 23 Tesco 2.1500 23 Morrisons 2.1500 1 Colgate Max White Medium Toothbrush 2024-02-01 2.1500 26 2.1500 23 2024-01-09 0 0 1 1 1 1 1 0 0 0 0 0 0 1.5000 26 1.5000 23 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 4 2.1500 1 2024-01-31 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-04 Sains 1.5000 26 Tesco 2.1500 26 Morrisons 2.1500 4 Colgate Max White Medium Toothbrush 2024-02-04 2.1500 27 2.1500 26 2024-01-09 0 0 1 1 1 1 1 0 0 0 0 0 0 1.5000 27 1.5000 26 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 5 2.1500 4 2024-01-31 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-05 Sains 1.5000 27 Tesco 2.1500 27 Morrisons 2.1500 5 Colgate Max White Medium Toothbrush 2024-02-05 1.5000 0 2.1500 27 2024-01-09 0 1 1 1 1 1 1 0 0 0 0 0 0 1.5000 28 1.5000 27 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 6 2.1500 5 2024-01-31 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-06 Sains 1.5000 28 Tesco 1.5000 0 Morrisons 2.1500 6 Colgate Max White Medium Toothbrush 2024-02-06 1.5000 1 1.5000 0 2024-02-06 1 2.1500 -0.6500 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 29 1.5000 28 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 7 2.1500 6 2024-01-31 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-07 Sains 1.5000 29 Tesco 1.5000 1 Morrisons 2.1500 7 Colgate Max White Medium Toothbrush 2024-02-07 1.5000 2 1.5000 1 2024-02-06 0 0 0 0 0 0 0 1 1 1 1 1 1 1.5000 30 1.5000 29 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 8 2.1500 7 2024-01-31 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-08 Sains 1.5000 30 Tesco 1.5000 2 Morrisons 2.1500 8 Colgate Max White Medium Toothbrush 2024-02-08 1.5000 3 1.5000 2 2024-02-06 0 0 0 0 0 0 0 0 1 1 1 1 1 1.5000 31 1.5000 30 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 9 2.1500 8 2024-01-31 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-09 Sains 1.5000 31 Tesco 1.5000 3 Morrisons 2.1500 9 Colgate Max White Medium Toothbrush 2024-02-09 1.5000 4 1.5000 3 2024-02-06 0 0 0 0 0 0 0 0 1 1 1 1 1 1.5000 32 1.5000 31 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 10 2.1500 9 2024-01-31 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-10 Sains 1.5000 32 Tesco 1.5000 4 Morrisons 2.1500 10 Colgate Max White Medium Toothbrush 2024-02-10 1.5000 5 1.5000 4 2024-02-06 0 0 0 0 0 0 0 0 0 1 1 1 1 1.5000 33 1.5000 32 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 11 2.1500 10 2024-01-31 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-11 Sains 1.5000 33 Tesco 1.5000 5 Morrisons 2.1500 11 Colgate Max White Medium Toothbrush 2024-02-11 1.5000 6 1.5000 5 2024-02-06 0 0 0 0 0 0 0 0 0 1 1 1 1 1.5000 34 1.5000 33 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 12 2.1500 11 2024-01-31 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-12 Sains 1.5000 34 Tesco 1.5000 6 Morrisons 2.1500 12 Colgate Max White Medium Toothbrush 2024-02-12 1.5000 7 1.5000 6 2024-02-06 0 0 0 0 0 0 0 0 0 1 1 1 1 1.5000 35 1.5000 34 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 13 2.1500 12 2024-01-31 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-13 Sains 1.5000 35 Tesco 1.5000 7 Morrisons 2.1500 13 Colgate Max White Medium Toothbrush 2024-02-13 1.5000 8 1.5000 7 2024-02-06 0 0 0 0 0 0 0 0 0 1 1 1 1 1.5000 36 1.5000 35 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 14 2.1500 13 2024-01-31 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-14 Sains 1.5000 36 Tesco 1.5000 8 Morrisons 2.1500 14 Colgate Max White Medium Toothbrush 2024-02-14 1.5000 9 1.5000 8 2024-02-06 0 0 0 0 0 0 0 0 0 0 1 1 1 1.5000 37 1.5000 36 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 15 2.1500 14 2024-01-31 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1
Colgate Max White Medium Toothbrush 2024-02-15 Sains 1.5000 37 Tesco 1.5000 9 Morrisons 2.1500 15 Colgate Max White Medium Toothbrush 2024-02-15 1.5000 10 1.5000 9 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 1 1 1.5000 38 1.5000 37 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 16 2.1500 15 2024-01-31 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-02-16 Sains 1.5000 38 Tesco 1.5000 10 Morrisons 2.1500 16 Colgate Max White Medium Toothbrush 2024-02-16 1.5000 11 1.5000 10 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 1 1 1.5000 39 1.5000 38 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 17 2.1500 16 2024-01-31 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-02-17 Sains 1.5000 39 Tesco 1.5000 11 Morrisons 2.1500 17 Colgate Max White Medium Toothbrush 2024-02-17 1.5000 12 1.5000 11 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 1 1 1.5000 40 1.5000 39 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 18 2.1500 17 2024-01-31 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-02-18 Sains 1.5000 40 Tesco 1.5000 12 Morrisons 2.1500 18 Colgate Max White Medium Toothbrush 2024-02-18 1.5000 13 1.5000 12 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 1 1 1.5000 41 1.5000 40 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 19 2.1500 18 2024-01-31 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-02-19 Sains 1.5000 41 Tesco 1.5000 13 Morrisons 2.1500 19 Colgate Max White Medium Toothbrush 2024-02-19 1.5000 14 1.5000 13 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 1 1 1.5000 42 1.5000 41 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 20 2.1500 19 2024-01-31 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-02-20 Sains 1.5000 42 Tesco 1.5000 14 Morrisons 2.1500 20 Colgate Max White Medium Toothbrush 2024-02-20 1.5000 15 1.5000 14 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 1 1 1.5000 43 1.5000 42 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 21 2.1500 20 2024-01-31 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-02-21 Sains 1.5000 43 Tesco 1.5000 15 Morrisons 2.1500 21 Colgate Max White Medium Toothbrush 2024-02-21 1.5000 16 1.5000 15 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 0 1 1.5000 44 1.5000 43 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 0 2.1500 21 2024-01-31 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1
Colgate Max White Medium Toothbrush 2024-02-22 Sains 1.5000 44 Tesco 1.5000 16 Morrisons 1.5000 0 Colgate Max White Medium Toothbrush 2024-02-22 1.5000 17 1.5000 16 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 0 1 1.5000 45 1.5000 44 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 1 1.5000 0 2024-02-22 1 2.1500 -0.6500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Colgate Max White Medium Toothbrush 2024-02-23 Sains 1.5000 45 Tesco 1.5000 17 Morrisons 1.5000 1 Colgate Max White Medium Toothbrush 2024-02-23 1.5000 18 1.5000 17 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 46 1.5000 45 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 2 1.5000 1 2024-02-22 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-24 Sains 1.5000 46 Tesco 1.5000 18 Morrisons 1.5000 2 Colgate Max White Medium Toothbrush 2024-02-24 1.5000 19 1.5000 18 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 47 1.5000 46 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 3 1.5000 2 2024-02-22 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-25 Sains 1.5000 47 Tesco 1.5000 19 Morrisons 1.5000 3 Colgate Max White Medium Toothbrush 2024-02-25 1.5000 20 1.5000 19 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 48 1.5000 47 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 4 1.5000 3 2024-02-22 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-26 Sains 1.5000 48 Tesco 1.5000 20 Morrisons 1.5000 4 Colgate Max White Medium Toothbrush 2024-02-26 1.5000 21 1.5000 20 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 49 1.5000 48 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 5 1.5000 4 2024-02-22 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-27 Sains 1.5000 49 Tesco 1.5000 21 Morrisons 1.5000 5 Colgate Max White Medium Toothbrush 2024-02-27 1.5000 22 1.5000 21 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 50 1.5000 49 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 6 1.5000 5 2024-02-22 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-28 Sains 1.5000 50 Tesco 1.5000 22 Morrisons 1.5000 6 Colgate Max White Medium Toothbrush 2024-02-28 1.5000 23 1.5000 22 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 51 1.5000 50 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 7 1.5000 6 2024-02-22 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-02-29 Sains 1.5000 51 Tesco 1.5000 23 Morrisons 1.5000 7 Colgate Max White Medium Toothbrush 2024-02-29 1.5000 24 1.5000 23 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 52 1.5000 51 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 8 1.5000 7 2024-02-22 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-03-01 Sains 1.5000 52 Tesco 1.5000 24 Morrisons 1.5000 8 Colgate Max White Medium Toothbrush 2024-03-01 1.5000 25 1.5000 24 2024-02-06 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 53 1.5000 52 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 9 1.5000 8 2024-02-22 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
Colgate Max White Medium Toothbrush 2024-03-02 Sains 1.5000 53 Tesco 1.5000 25 Morrisons 1.5000 9 Colgate Max White Medium Toothbrush 2024-03-02 1.5000 26 1.5000 25 2024-02-06 0 0 0 0 0 0 1 0 0 0 0 0 0 1.5000 54 1.5000 53 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 10 1.5000 9 2024-02-22 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-03-03 Sains 1.5000 54 Tesco 1.5000 26 Morrisons 1.5000 10 Colgate Max White Medium Toothbrush 2024-03-03 1.5000 27 1.5000 26 2024-02-06 0 0 0 0 0 0 1 0 0 0 0 0 0 1.5000 55 1.5000 54 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 11 1.5000 10 2024-02-22 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-03-04 Sains 1.5000 55 Tesco 1.5000 27 Morrisons 1.5000 11 Colgate Max White Medium Toothbrush 2024-03-04 1.5000 28 1.5000 27 2024-02-06 0 0 0 0 0 1 1 0 0 0 0 0 0 1.5000 56 1.5000 55 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 12 1.5000 11 2024-02-22 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-03-05 Sains 1.5000 56 Tesco 1.5000 28 Morrisons 1.5000 12 Colgate Max White Medium Toothbrush 2024-03-05 1.5000 29 1.5000 28 2024-02-06 0 0 0 0 0 1 1 0 0 0 0 0 0 1.5000 57 1.5000 56 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 12 2024-02-22 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-03-06 Sains 1.5000 57 Tesco 1.5000 29 Morrisons Colgate Max White Medium Toothbrush 2024-03-06 1.5000 30 1.5000 29 2024-02-06 0 0 0 0 0 1 1 0 0 0 0 0 0 1.5000 58 1.5000 57 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 14 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-03-07 Sains 1.5000 58 Tesco 1.5000 30 Morrisons 1.5000 14 Colgate Max White Medium Toothbrush 2024-03-07 1.5000 31 1.5000 30 2024-02-06 0 0 0 0 0 1 1 0 0 0 0 0 0 1.5000 59 1.5000 58 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 15 1.5000 14 2024-02-22 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-03-08 Sains 1.5000 59 Tesco 1.5000 31 Morrisons 1.5000 15 Colgate Max White Medium Toothbrush 2024-03-08 1.5000 32 1.5000 31 2024-02-06 0 0 0 0 0 1 1 0 0 0 0 0 0 1.5000 60 1.5000 59 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 16 1.5000 15 2024-02-22 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1
Colgate Max White Medium Toothbrush 2024-03-09 Sains 1.5000 60 Tesco 1.5000 32 Morrisons 1.5000 16 Colgate Max White Medium Toothbrush 2024-03-09 1.5000 33 1.5000 32 2024-02-06 0 0 0 0 0 1 1 0 0 0 0 0 0 1.5000 61 1.5000 60 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 17 1.5000 16 2024-02-22 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1
Colgate Max White Medium Toothbrush 2024-03-10 Sains 1.5000 61 Tesco 1.5000 33 Morrisons 1.5000 17 Colgate Max White Medium Toothbrush 2024-03-10 1.5000 34 1.5000 33 2024-02-06 0 0 0 0 1 1 1 0 0 0 0 0 0 1.5000 62 1.5000 61 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 18 1.5000 17 2024-02-22 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-03-11 Sains 1.5000 62 Tesco 1.5000 34 Morrisons 1.5000 18 Colgate Max White Medium Toothbrush 2024-03-11 1.5000 35 1.5000 34 2024-02-06 0 0 0 1 1 1 1 0 0 0 0 0 0 1.5000 63 1.5000 62 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 19 1.5000 18 2024-02-22 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-03-12 Sains 1.5000 63 Tesco 1.5000 35 Morrisons 1.5000 19 Colgate Max White Medium Toothbrush 2024-03-12 1.5000 36 1.5000 35 2024-02-06 0 0 0 1 1 1 1 0 0 0 0 0 0 1.5000 64 1.5000 63 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 20 1.5000 19 2024-02-22 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-03-13 Sains 1.5000 64 Tesco 1.5000 36 Morrisons 1.5000 20 Colgate Max White Medium Toothbrush 2024-03-13 1.5000 38 1.5000 36 2024-02-06 0 0 0 1 1 1 1 0 0 0 0 0 0 1.5000 66 1.5000 64 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 22 1.5000 20 2024-02-22 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-03-15 Sains 1.5000 66 Tesco 1.5000 38 Morrisons 1.5000 22 Colgate Max White Medium Toothbrush 2024-03-15 1.5000 39 1.5000 38 2024-02-06 0 0 0 1 1 1 1 0 0 0 0 0 0 1.5000 67 1.5000 66 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 23 1.5000 22 2024-02-22 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-03-16 Sains 1.5000 67 Tesco 1.5000 39 Morrisons 1.5000 23 Colgate Max White Medium Toothbrush 2024-03-16 1.5000 40 1.5000 39 2024-02-06 0 0 1 1 1 1 1 0 0 0 0 0 0 1.5000 68 1.5000 67 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 24 1.5000 23 2024-02-22 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-03-17 Sains 1.5000 68 Tesco 1.5000 40 Morrisons 1.5000 24 Colgate Max White Medium Toothbrush 2024-03-17 1.5000 40 2024-02-06 0 0 1 1 1 1 1 0 0 0 0 0 0 1.5000 69 1.5000 68 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 25 1.5000 24 2024-02-22 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-03-18 Sains 1.5000 69 Morrisons 1.5000 25 Tesco Colgate Max White Medium Toothbrush 2024-03-18 2.1500 0 1 1 1 1 1 1 0 0 0 0 0 0 1.5000 70 1.5000 69 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 26 1.5000 25 2024-02-22 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-03-19 Sains 1.5000 70 Morrisons 1.5000 26 Tesco 2.1500 0 Colgate Max White Medium Toothbrush 2024-03-19 2.1000 0 2.1500 0 2024-03-19 1 1.5000 0.6500 1 1 1 1 1 1 0 0 0 0 0 0 1.5000 71 1.5000 70 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 0 1.5000 26 2024-02-22 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-03-20 Sains 1.5000 71 Tesco 2.1000 0 Morrisons 2.1500 0 Colgate Max White Medium Toothbrush 2024-03-20 2.1000 1 2.1000 0 2024-03-20 1 2.1500 -0.0500 0 0 0 0 0 0 1 1 1 1 1 1 1.5000 72 1.5000 71 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.1500 0 2024-03-20 1 1.5000 0.6500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-03-21 Sains 1.5000 72 Tesco 2.1000 1 Morrisons Colgate Max White Medium Toothbrush 2024-03-21 2.1000 2 2.1000 1 2024-03-20 0 0 0 0 0 0 0 1 1 1 1 1 1 1.5000 73 1.5000 72 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-03-22 Sains 1.5000 73 Tesco 2.1000 2 Morrisons Colgate Max White Medium Toothbrush 2024-03-22 2.1000 4 2.1000 2 2024-03-20 0 0 0 0 0 0 0 0 1 1 1 1 1 1.5000 75 1.5000 73 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-03-24 Sains 1.5000 75 Tesco 2.1000 4 Morrisons Colgate Max White Medium Toothbrush 2024-03-24 2.1000 5 2.1000 4 2024-03-20 0 0 0 0 0 0 0 0 1 1 1 1 1 1.5000 76 1.5000 75 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
Colgate Max White Medium Toothbrush 2024-03-25 Sains 1.5000 76 Tesco 2.1000 5 Morrisons Colgate Max White Medium Toothbrush 2024-03-25 2.1000 6 2.1000 5 2024-03-20 0 0 0 0 0 0 0 0 0 1 1 1 1 1.5000 77 1.5000 76 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-03-26 Sains 1.5000 77 Tesco 2.1000 6 Morrisons Colgate Max White Medium Toothbrush 2024-03-26 2.1000 7 2.1000 6 2024-03-20 0 0 0 0 0 0 0 0 0 1 1 1 1 1.5000 78 1.5000 77 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-03-27 Sains 1.5000 78 Tesco 2.1000 7 Morrisons Colgate Max White Medium Toothbrush 2024-03-27 2.1000 8 2.1000 7 2024-03-20 0 0 0 0 0 0 0 0 0 1 1 1 1 1.5000 79 1.5000 78 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-03-28 Sains 1.5000 79 Tesco 2.1000 8 Morrisons Colgate Max White Medium Toothbrush 2024-03-28 2.1000 9 2.1000 8 2024-03-20 0 0 0 0 0 0 0 0 0 1 1 1 1 1.5000 80 1.5000 79 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
Colgate Max White Medium Toothbrush 2024-03-29 Sains 1.5000 80 Tesco 2.1000 9 Morrisons Colgate Max White Medium Toothbrush 2024-03-29 2.1000 10 2.1000 9 2024-03-20 0 0 0 0 0 0 0 0 0 0 1 1 1 1.5000 81 1.5000 80 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
Colgate Max White Medium Toothbrush 2024-03-30 Sains 1.5000 81 Tesco 2.1000 10 Morrisons Colgate Max White Medium Toothbrush 2024-03-30 2.1000 11 2.1000 10 2024-03-20 0 0 0 0 0 0 0 0 0 0 0 1 1 1.5000 82 1.5000 81 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-03-31 Sains 1.5000 82 Tesco 2.1000 11 Morrisons Colgate Max White Medium Toothbrush 2024-03-31 2.1000 11 2024-03-20 0 0 0 0 0 0 0 0 0 0 0 1 1 1.5000 83 1.5000 82 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-04-01 Sains 1.5000 83 Tesco Colgate Max White Medium Toothbrush 2024-04-01 0 0 0 0 0 0 0 0 0 0 1 1 1.5000 84 1.5000 83 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-04-02 Sains 1.5000 84 Tesco Colgate Max White Medium Toothbrush 2024-04-02 2.1000 14 0 0 0 0 0 0 0 0 0 0 1 1 1.5000 85 1.5000 84 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-04-03 Sains 1.5000 85 Tesco 2.1000 14 Morrisons Colgate Max White Medium Toothbrush 2024-04-03 2.1000 15 2.1000 14 2024-03-20 0 0 0 0 0 0 0 0 0 0 0 1 1 1.5000 86 1.5000 85 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-04-04 Sains 1.5000 86 Tesco 2.1000 15 Morrisons Colgate Max White Medium Toothbrush 2024-04-04 2.1000 16 2.1000 15 2024-03-20 0 0 0 0 0 0 0 0 0 0 0 1 1 1.5000 87 1.5000 86 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
Colgate Max White Medium Toothbrush 2024-04-05 Sains 1.5000 87 Tesco 2.1000 16 Morrisons Colgate Max White Medium Toothbrush 2024-04-05 2.1000 17 2.1000 16 2024-03-20 0 0 0 0 0 0 0 0 0 0 0 0 1 1.5000 88 1.5000 87 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Colgate Max White Medium Toothbrush 2024-04-06 Sains 1.5000 88 Tesco 2.1000 17 Morrisons Colgate Max White Medium Toothbrush 2024-04-06 2.1000 18 2.1000 17 2024-03-20 0 0 0 0 0 0 0 0 0 0 0 0 1 1.5000 89 1.5000 88 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Colgate Max White Medium Toothbrush 2024-04-07 Sains 1.5000 89 Tesco 2.1000 18 Morrisons Colgate Max White Medium Toothbrush 2024-04-07 2.1000 19 2.1000 18 2024-03-20 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 90 1.5000 89 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-04-08 Sains 1.5000 90 Tesco 2.1000 19 Morrisons Colgate Max White Medium Toothbrush 2024-04-08 2.1000 20 2.1000 19 2024-03-20 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 91 1.5000 90 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-04-09 Sains 1.5000 91 Tesco 2.1000 20 Morrisons Colgate Max White Medium Toothbrush 2024-04-09 2.1000 21 2.1000 20 2024-03-20 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 92 1.5000 91 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-04-10 Sains 1.5000 92 Tesco 2.1000 21 Morrisons Colgate Max White Medium Toothbrush 2024-04-10 2.1000 22 2.1000 21 2024-03-20 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 93 1.5000 92 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-04-11 Sains 1.5000 93 Tesco 2.1000 22 Morrisons Colgate Max White Medium Toothbrush 2024-04-11 2.1000 23 2.1000 22 2024-03-20 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 94 1.5000 93 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-04-12 Sains 1.5000 94 Tesco 2.1000 23 Morrisons Colgate Max White Medium Toothbrush 2024-04-12 2.1000 24 2.1000 23 2024-03-20 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 95 1.5000 94 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Colgate Max White Medium Toothbrush 2024-04-13 Sains 1.5000 95 Tesco 2.1000 24 Morrisons Colgate Max White Medium Toothbrush 2024-04-13 2.1000 24 2024-03-20 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 95 2024-01-09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
WITH RECURSIVE date_spine AS (
SELECT DATE '2024-01-09' AS capture_date
UNION ALL
SELECT capture_date + INTERVAL '1' DAY
FROM date_spine
WHERE capture_date < DATE '2024-04-13'
),
product_list AS (
SELECT
product_name,
COUNT(DISTINCT supermarket_name) AS distinct_supermarkets,
COUNT(DISTINCT capture_date) AS distinct_days,
COUNT(*) AS total_records
FROM base_retail_gb_zstd.base_retail_gb_zstd
GROUP BY product_name
HAVING distinct_supermarkets >= 2
),
supermarkets AS (
SELECT DISTINCT supermarket_name
FROM base_retail_gb_zstd.base_retail_gb_zstd
WHERE product_name IN (SELECT product_name FROM product_list)
),
date_supermarket_grid AS (
SELECT ds.capture_date, s.supermarket_name
FROM date_spine ds
CROSS JOIN supermarkets s
),
base_data AS (
SELECT
grid.capture_date,
br.product_name AS product_name,
grid.supermarket_name,
br.price_unit_gbp
FROM date_supermarket_grid grid
LEFT JOIN base_retail_gb_zstd.base_retail_gb_zstd br
ON grid.capture_date = br.capture_date
AND grid.supermarket_name = br.supermarket_name
AND br.product_name IN (SELECT product_name FROM product_list)
),
-- Forward-fill prices within each product x supermarket
filled_prices AS (
SELECT
capture_date,
product_name,
supermarket_name,
price_unit_gbp,
COALESCE(
price_unit_gbp,
LAST_VALUE(price_unit_gbp IGNORE NULLS) OVER (
PARTITION BY product_name, supermarket_name
ORDER BY capture_date
ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING
)
) AS price_filled
FROM base_data
),
-- Compute prev_price and whether the price changed today
price_changes AS (
SELECT
product_name,
supermarket_name,
capture_date,
price_filled AS price_unit_gbp,
LAG(price_filled) OVER (
PARTITION BY product_name, supermarket_name
ORDER BY capture_date
) AS prev_price,
CASE
WHEN price_filled IS NULL THEN 0
WHEN LAG(price_filled) OVER (
PARTITION BY product_name, supermarket_name
ORDER BY capture_date
) IS NULL THEN 1
WHEN price_filled <> LAG(price_filled) OVER (
PARTITION BY product_name, supermarket_name
ORDER BY capture_date
) THEN 1
ELSE 0
END AS price_changed
FROM filled_prices
),
-- Carry forward the most recent change date
runs AS (
SELECT
*,
MAX(CASE WHEN price_changed = 1 THEN capture_date END) OVER (
PARTITION BY product_name, supermarket_name
ORDER BY capture_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) AS last_change_date
FROM price_changes
),
calc AS (
SELECT
product_name,
supermarket_name,
capture_date,
price_unit_gbp,
prev_price,
/* Only show last_different_price on change days */
price_changed,
CASE WHEN price_changed = 1 THEN prev_price END AS last_different_price,
CASE WHEN price_changed = 1 THEN price_unit_gbp - prev_price END AS price_difference,
/* 0 on the change day, increments by 1 while unchanged.
If you prefer 1-based counting, add +1 to this expression. */
last_change_date,
CASE
WHEN last_change_date IS NULL THEN NULL
ELSE DATEDIFF('day', last_change_date, capture_date)
END AS days_since_price_change
FROM runs
),
price_comparison AS (
SELECT
product_name,
capture_date,
-- Tesco
MAX(CASE WHEN supermarket_name = 'Tesco' THEN price_unit_gbp END) AS Tesco,
MAX(CASE WHEN supermarket_name = 'Tesco' THEN price_unit_gbp END) AS Tesco_name_price_unit_gbp,
MAX(CASE WHEN supermarket_name = 'Tesco' THEN days_since_price_change END) AS Tesco_days_since_change,
MAX(CASE WHEN supermarket_name = 'Tesco' THEN last_change_date END) AS Tesco_last_change_date,
MAX(CASE WHEN supermarket_name = 'Tesco' THEN price_changed END) AS Tesco_price_changed,
MAX(CASE WHEN supermarket_name = 'Tesco' THEN last_different_price END) AS Tesco_last_price,
MAX(CASE WHEN supermarket_name = 'Tesco' THEN price_difference END) AS Tesco_price_diff,
-- Sainsbury's
MAX(CASE WHEN supermarket_name = 'Sains' THEN price_unit_gbp END) AS Sains,
MAX(CASE WHEN supermarket_name = 'Sains' THEN price_unit_gbp END) AS Sains_name_price_unit_gbp,
MAX(CASE WHEN supermarket_name = 'Sains' THEN days_since_price_change END) AS Sains_days_since_change,
MAX(CASE WHEN supermarket_name = 'Sains' THEN last_change_date END) AS Sains_last_change_date,
MAX(CASE WHEN supermarket_name = 'Sains' THEN price_changed END) AS Sains_price_changed,
MAX(CASE WHEN supermarket_name = 'Sains' THEN last_different_price END) AS Sains_last_price,
MAX(CASE WHEN supermarket_name = 'Sains' THEN price_difference END) AS Sains_price_diff,
-- ASDA
MAX(CASE WHEN supermarket_name = 'ASDA' THEN price_unit_gbp END) AS ASDA,
MAX(CASE WHEN supermarket_name = 'ASDA' THEN price_unit_gbp END) AS ASDA_name_price_unit_gbp,
MAX(CASE WHEN supermarket_name = 'ASDA' THEN days_since_price_change END) AS ASDA_days_since_change,
MAX(CASE WHEN supermarket_name = 'ASDA' THEN last_change_date END) AS ASDA_last_change_date,
MAX(CASE WHEN supermarket_name = 'ASDA' THEN price_changed END) AS ASDA_price_changed,
MAX(CASE WHEN supermarket_name = 'ASDA' THEN last_different_price END) AS ASDA_last_price,
MAX(CASE WHEN supermarket_name = 'ASDA' THEN price_difference END) AS ASDA_price_diff,
-- Morrisons
MAX(CASE WHEN supermarket_name = 'Morrisons' THEN price_unit_gbp END) AS Morrisons,
MAX(CASE WHEN supermarket_name = 'Morrisons' THEN price_unit_gbp END) AS Morrisons_name_price_unit_gbp,
MAX(CASE WHEN supermarket_name = 'Morrisons' THEN days_since_price_change END) AS Morrisons_days_since_change,
MAX(CASE WHEN supermarket_name = 'Morrisons' THEN last_change_date END) AS Morrisons_last_change_date,
MAX(CASE WHEN supermarket_name = 'Morrisons' THEN price_changed END) AS Morrisons_price_changed,
MAX(CASE WHEN supermarket_name = 'Morrisons' THEN last_different_price END) AS Morrisons_last_price,
MAX(CASE WHEN supermarket_name = 'Morrisons' THEN price_difference END) AS Morrisons_price_diff,
-- Aldi
MAX(CASE WHEN supermarket_name = 'Aldi' THEN price_unit_gbp END) AS Aldi,
MAX(CASE WHEN supermarket_name = 'Aldi' THEN price_unit_gbp END) AS Aldi_name_price_unit_gbp,
MAX(CASE WHEN supermarket_name = 'Aldi' THEN days_since_price_change END) AS Aldi_days_since_change,
MAX(CASE WHEN supermarket_name = 'Aldi' THEN last_change_date END) AS Aldi_last_change_date,
MAX(CASE WHEN supermarket_name = 'Aldi' THEN price_changed END) AS Aldi_price_changed,
MAX(CASE WHEN supermarket_name = 'Aldi' THEN last_different_price END) AS Aldi_last_price,
MAX(CASE WHEN supermarket_name = 'Aldi' THEN price_difference END) AS Aldi_price_diff
FROM calc
GROUP BY product_name, capture_date
),
latency_labeling AS (
SELECT
product_name,
capture_date,
-- Tesco
LEAD(Tesco) OVER (PARTITION BY product_name ORDER BY capture_date) AS Tesco_future_price,
LEAD(Tesco_days_since_change) OVER (PARTITION BY product_name ORDER BY capture_date) AS Tesco_future_days_since_change,
Tesco_name_price_unit_gbp,
Tesco_days_since_change,
Tesco_last_change_date,
Tesco_price_changed,
Tesco_last_price,
Tesco_price_diff,
-- Tesco (within windows)
CASE WHEN COALESCE(
MAX(Tesco_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Tesco_change_within_1d,
CASE WHEN COALESCE(
MAX(Tesco_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 3 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Tesco_change_within_3d,
CASE WHEN COALESCE(
MAX(Tesco_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 7 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Tesco_change_within_7d,
CASE WHEN COALESCE(
MAX(Tesco_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 8 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Tesco_change_within_8d,
CASE WHEN COALESCE(
MAX(Tesco_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 14 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Tesco_change_within_14d,
CASE WHEN COALESCE(
MAX(Tesco_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 16 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Tesco_change_within_16d,
-- Tesco (PAST windows)
CASE WHEN COALESCE(
MAX(Tesco_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Tesco_change_in_past_1d,
CASE WHEN COALESCE(
MAX(Tesco_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 3 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Tesco_change_in_past_3d,
CASE WHEN COALESCE(
MAX(Tesco_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 7 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Tesco_change_in_past_7d,
CASE WHEN COALESCE(
MAX(Tesco_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 8 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Tesco_change_in_past_8d,
CASE WHEN COALESCE(
MAX(Tesco_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 14 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Tesco_change_in_past_14d,
CASE WHEN COALESCE(
MAX(Tesco_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 16 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Tesco_change_in_past_16d,
-- Sains
LEAD(Sains) OVER (PARTITION BY product_name ORDER BY capture_date) AS Sains_future_price,
LEAD(Sains_days_since_change) OVER (PARTITION BY product_name ORDER BY capture_date) AS Sains_future_days_since_change,
Sains_name_price_unit_gbp,
Sains_days_since_change,
Sains_last_change_date,
Sains_price_changed,
Sains_last_price,
Sains_price_diff,
-- Sains (within windows)
CASE WHEN COALESCE(
MAX(Sains_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Sains_change_within_1d,
CASE WHEN COALESCE(
MAX(Sains_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 3 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Sains_change_within_3d,
CASE WHEN COALESCE(
MAX(Sains_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 7 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Sains_change_within_7d,
CASE WHEN COALESCE(
MAX(Sains_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 8 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Sains_change_within_8d,
CASE WHEN COALESCE(
MAX(Sains_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 14 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Sains_change_within_14d,
CASE WHEN COALESCE(
MAX(Sains_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 16 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Sains_change_within_16d,
-- Sains (PAST windows)
CASE WHEN COALESCE(
MAX(Sains_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Sains_change_in_past_1d,
CASE WHEN COALESCE(
MAX(Sains_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 3 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Sains_change_in_past_3d,
CASE WHEN COALESCE(
MAX(Sains_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 7 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Sains_change_in_past_7d,
CASE WHEN COALESCE(
MAX(Sains_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 8 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Sains_change_in_past_8d,
CASE WHEN COALESCE(
MAX(Sains_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 14 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Sains_change_in_past_14d,
CASE WHEN COALESCE(
MAX(Sains_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 16 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Sains_change_in_past_16d,
-- ASDA
LEAD(ASDA) OVER (PARTITION BY product_name ORDER BY capture_date) AS ASDA_future_price,
LEAD(ASDA_days_since_change) OVER (PARTITION BY product_name ORDER BY capture_date) AS ASDA_future_days_since_change,
ASDA_name_price_unit_gbp,
ASDA_days_since_change,
ASDA_last_change_date,
ASDA_price_changed,
ASDA_last_price,
ASDA_price_diff,
-- ASDA (within windows)
CASE WHEN COALESCE(
MAX(ASDA_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS ASDA_change_within_1d,
CASE WHEN COALESCE(
MAX(ASDA_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 3 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS ASDA_change_within_3d,
CASE WHEN COALESCE(
MAX(ASDA_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 7 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS ASDA_change_within_7d,
CASE WHEN COALESCE(
MAX(ASDA_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 8 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS ASDA_change_within_8d,
CASE WHEN COALESCE(
MAX(ASDA_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 14 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS ASDA_change_within_14d,
CASE WHEN COALESCE(
MAX(ASDA_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 16 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS ASDA_change_within_16d,
-- ASDA (PAST windows)
CASE WHEN COALESCE(
MAX(ASDA_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS ASDA_change_in_past_1d,
CASE WHEN COALESCE(
MAX(ASDA_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 3 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS ASDA_change_in_past_3d,
CASE WHEN COALESCE(
MAX(ASDA_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 7 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS ASDA_change_in_past_7d,
CASE WHEN COALESCE(
MAX(ASDA_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 8 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS ASDA_change_in_past_8d,
CASE WHEN COALESCE(
MAX(ASDA_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 14 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS ASDA_change_in_past_14d,
CASE WHEN COALESCE(
MAX(ASDA_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 16 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS ASDA_change_in_past_16d,
-- Morrisons
LEAD(Morrisons) OVER (PARTITION BY product_name ORDER BY capture_date) AS Morrisons_future_price,
LEAD(Morrisons_days_since_change) OVER (PARTITION BY product_name ORDER BY capture_date) AS Morrisons_future_days_since_change,
Morrisons_name_price_unit_gbp,
Morrisons_days_since_change,
Morrisons_last_change_date,
Morrisons_price_changed,
Morrisons_last_price,
Morrisons_price_diff,
-- Morrisons (within windows)
CASE WHEN COALESCE(
MAX(Morrisons_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Morrisons_change_within_1d,
CASE WHEN COALESCE(
MAX(Morrisons_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 3 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Morrisons_change_within_3d,
CASE WHEN COALESCE(
MAX(Morrisons_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 7 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Morrisons_change_within_7d,
CASE WHEN COALESCE(
MAX(Morrisons_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 8 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Morrisons_change_within_8d,
CASE WHEN COALESCE(
MAX(Morrisons_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 14 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Morrisons_change_within_14d,
CASE WHEN COALESCE(
MAX(Morrisons_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 16 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Morrisons_change_within_16d,
-- Morrisons (PAST windows)
CASE WHEN COALESCE(
MAX(Morrisons_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Morrisons_change_in_past_1d,
CASE WHEN COALESCE(
MAX(Morrisons_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 3 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Morrisons_change_in_past_3d,
CASE WHEN COALESCE(
MAX(Morrisons_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 7 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Morrisons_change_in_past_7d,
CASE WHEN COALESCE(
MAX(Morrisons_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 8 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Morrisons_change_in_past_8d,
CASE WHEN COALESCE(
MAX(Morrisons_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 14 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Morrisons_change_in_past_14d,
CASE WHEN COALESCE(
MAX(Morrisons_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 16 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Morrisons_change_in_past_16d,
-- Aldi
LEAD(Aldi) OVER (PARTITION BY product_name ORDER BY capture_date) AS Aldi_future_price,
LEAD(Aldi_days_since_change) OVER (PARTITION BY product_name ORDER BY capture_date) AS Aldi_future_days_since_change,
Aldi_name_price_unit_gbp,
Aldi_days_since_change,
Aldi_last_change_date,
Aldi_price_changed,
Aldi_last_price,
Aldi_price_diff,
-- Aldi (within windows)
CASE WHEN COALESCE(
MAX(Aldi_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Aldi_change_within_1d,
CASE WHEN COALESCE(
MAX(Aldi_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 3 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Aldi_change_within_3d,
CASE WHEN COALESCE(
MAX(Aldi_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 7 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Aldi_change_within_7d,
CASE WHEN COALESCE(
MAX(Aldi_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 8 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Aldi_change_within_8d,
CASE WHEN COALESCE(
MAX(Aldi_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 14 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Aldi_change_within_14d,
CASE WHEN COALESCE(
MAX(Aldi_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 FOLLOWING AND 16 FOLLOWING
), 0) = 1 THEN 1 ELSE 0 END AS Aldi_change_within_16d,
-- Aldi (PAST windows)
CASE WHEN COALESCE(
MAX(Aldi_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Aldi_change_in_past_1d,
CASE WHEN COALESCE(
MAX(Aldi_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 3 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Aldi_change_in_past_3d,
CASE WHEN COALESCE(
MAX(Aldi_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 7 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Aldi_change_in_past_7d,
CASE WHEN COALESCE(
MAX(Aldi_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 8 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Aldi_change_in_past_8d,
CASE WHEN COALESCE(
MAX(Aldi_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 14 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Aldi_change_in_past_14d,
CASE WHEN COALESCE(
MAX(Aldi_price_changed) OVER (
PARTITION BY product_name
ORDER BY capture_date
ROWS BETWEEN 16 PRECEDING AND 1 PRECEDING
), 0) = 1 THEN 1 ELSE 0 END AS Aldi_change_in_past_16d
FROM price_comparison
ORDER BY product_name, capture_date
),
cheapest_ranked_prices_base AS (
SELECT
product_name, capture_date,
-- Rank 1
MAX(CASE WHEN rank_cheapest = 1 THEN supermarket_name END) AS rank_1_cheapest,
MAX(CASE WHEN rank_cheapest = 1 THEN price END) AS rank_1_price,
MAX(CASE WHEN rank_cheapest = 1 THEN days_since_price_change END) AS rank_1_days_since_price_change,
-- Rank 2
MAX(CASE WHEN rank_cheapest = 2 THEN supermarket_name END) AS rank_2_cheapest,
MAX(CASE WHEN rank_cheapest = 2 THEN price END) AS rank_2_price,
MAX(CASE WHEN rank_cheapest = 2 THEN days_since_price_change END) AS rank_2_days_since_price_change,
-- Rank 3
MAX(CASE WHEN rank_cheapest = 3 THEN supermarket_name END) AS rank_3_cheapest,
MAX(CASE WHEN rank_cheapest = 3 THEN price END) AS rank_3_price,
MAX(CASE WHEN rank_cheapest = 3 THEN days_since_price_change END) AS rank_3_days_since_price_change,
FROM (
SELECT
product_name,
capture_date,
unpvt.supermarket_name,
unpvt.price,
unpvt.days_since_price_change,
RANK() OVER (
PARTITION BY product_name, capture_date
ORDER BY unpvt.price ASC, unpvt.days_since_price_change DESC
) AS rank_cheapest
FROM latency_labeling
CROSS JOIN LATERAL (
VALUES
('Tesco', Tesco_name_price_unit_gbp, Tesco_days_since_change),
('Sains', Sains_name_price_unit_gbp, Sains_days_since_change),
('ASDA', ASDA_name_price_unit_gbp, ASDA_days_since_change),
('Morrisons', Morrisons_name_price_unit_gbp, Morrisons_days_since_change),
('Aldi', Aldi_name_price_unit_gbp, Aldi_days_since_change)
) AS unpvt(supermarket_name, price, days_since_price_change)
) ranked_rows
WHERE rank_cheapest <= 3
GROUP BY product_name, capture_date
)
SELECT
cl.*,
lb.*,
GREATEST(lb.Tesco_change_within_1d, lb.Sains_change_within_1d, lb.ASDA_change_within_1d, lb.Morrisons_change_within_1d, lb.Aldi_change_within_1d) AS will_any_supermarket_change_within_1d,
GREATEST(lb.Tesco_change_within_3d, lb.Sains_change_within_3d, lb.ASDA_change_within_3d, lb.Morrisons_change_within_3d, lb.Aldi_change_within_3d) AS will_any_supermarket_change_within_3d,
GREATEST(lb.Tesco_change_within_7d, lb.Sains_change_within_7d, lb.ASDA_change_within_7d, lb.Morrisons_change_within_7d, lb.Aldi_change_within_7d) AS will_any_supermarket_change_within_7d,
GREATEST(lb.Tesco_change_within_8d, lb.Sains_change_within_8d, lb.ASDA_change_within_8d, lb.Morrisons_change_within_8d, lb.Aldi_change_within_8d) AS will_any_supermarket_change_within_8d,
GREATEST(lb.Tesco_change_within_14d, lb.Sains_change_within_14d, lb.ASDA_change_within_14d, lb.Morrisons_change_within_14d, lb.Aldi_change_within_14d) AS will_any_supermarket_change_within_14d,
GREATEST(lb.Tesco_change_within_16d, lb.Sains_change_within_16d, lb.ASDA_change_within_16d, lb.Morrisons_change_within_16d, lb.Aldi_change_within_16d) AS will_any_supermarket_change_within_16d,
GREATEST(lb.Tesco_change_in_past_1d, lb.Sains_change_in_past_1d, lb.ASDA_change_in_past_1d, lb.Morrisons_change_in_past_1d, lb.Aldi_change_in_past_1d) AS did_any_supermarket_change_in_past_1d,
GREATEST(lb.Tesco_change_in_past_3d, lb.Sains_change_in_past_3d, lb.ASDA_change_in_past_3d, lb.Morrisons_change_in_past_3d, lb.Aldi_change_in_past_3d) AS did_any_supermarket_change_in_past_3d,
GREATEST(lb.Tesco_change_in_past_7d, lb.Sains_change_in_past_7d, lb.ASDA_change_in_past_7d, lb.Morrisons_change_in_past_7d, lb.Aldi_change_in_past_7d) AS did_any_supermarket_change_in_past_7d,
GREATEST(lb.Tesco_change_in_past_8d, lb.Sains_change_in_past_8d, lb.ASDA_change_in_past_8d, lb.Morrisons_change_in_past_8d, lb.Aldi_change_in_past_8d) AS did_any_supermarket_change_in_past_8d,
GREATEST(lb.Tesco_change_in_past_14d, lb.Sains_change_in_past_14d, lb.ASDA_change_in_past_14d, lb.Morrisons_change_in_past_14d, lb.Aldi_change_in_past_14d) AS did_any_supermarket_change_in_past_14d,
GREATEST(lb.Tesco_change_in_past_16d, lb.Sains_change_in_past_16d, lb.ASDA_change_in_past_16d, lb.Morrisons_change_in_past_16d, lb.Aldi_change_in_past_16d) AS did_any_supermarket_change_in_past_16d
FROM cheapest_ranked_prices_base cl
JOIN latency_labeling lb
ON cl.product_name = lb.product_name AND cl.capture_date = lb.capture_date
ORDER BY lb.product_name , lb.capture_date
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment