---
title: Define meal deal offers
slug: tesco-hol-q12026/define-meal-deal-offers
docTags: 
createdAt: 2026-02-23T09:00:39.563Z
---

## Why Are We Using Decisioning?

So far, we identified customers who are likely to stop buying Meal Deals. The next question is, **what should we offer them?**

Sending the same discount to everyone would be simple. Some customers prefer Sushi, others sandwiches, some are more sensitive about the price point.&#x20;

Instead of sending a generic promotion, we'll choose the most relevant meal deal for each customer based on their preferences.&#x20;

Decisioning allows Adobe Journey Optimizer to select the best offer in real-time based on customer preferences.

## What We Will Build

We will configure a decision that selects one Meal Deal offer from a collection of possible offers.

Decisioning will:

1. Look at all available meal deals offers
2. Check which ones the customer is eligible for&#x20;
3. Rank them based on preferences&#x20;
4. Surface the best option to the customer in the Journey&#x20;

### What This Means in Practice

Two customers enter the same win-back journey:

**Customer A**

- Frequently buys sushi&#x20;
- Low price sensitivity
  &#x20;→ Receives premium sushi meal deal offer&#x20;

**Customer B**

- Buys sandwiches&#x20;
- High price sensitivity
  &#x20;→ Receives regular sandwich meal deal discount&#x20;

Same journey, different experiences.

## Configure the Meal Deal Decision

We will create a Decision that selects the most relevant Meal Deal offer for each customer using their preferences.

By the end of this exercise you will:

- Create an offer in the Catalog
- Group meal deal offers into a collection&#x20;
- Create a Ranking Formula to boost relevant offers
- Create a Selection Strategy that chooses the best offer

### Step 1: Understand the Offer Catalogue

Tesco has multiple Meal Deal combinations available. Examples include:

- Regular sandwich meal deals&#x20;
- Sushi meal deals&#x20;
- Premium salad or wrap upgrades&#x20;

Each of these exists as an individual offer in Adobe Journey Optimizer. These offers are grouped into a collection so the system can choose between them.

### Exercise 1: Create your Offer&#x20;

:::hint{type="info"}
To log into Adobe Journey Optimizer, check the [Welcome!](#)**&#x20;&#x20;**&#x73;ection.
:::

In our case, an offer describes a single lunch combination the customer can receive.

To get an overview of all Offers in the Catalog:&#x20;

1. In the menu on the left side, under **Decisioning**, click on **Catalogs.**
2. Select **Offers.&#x20;**&#x59;ou will see all existing Offers in the Catalog.

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/Of7DwmFaFCglhMmkhpDGC_screenshot-2026-02-23-at-212829.png" size="100" isUploading="false" width="3012" height="1622" showCaption="false" indent="1"}

2. Select **Create Item**.
3. Name your offer: `Your Name - Meal Deal - Premium Main - Sushi 1`
4. Select a **start date** and **end date&#x20;**&#x66;rom the date pickers for which your offer is valid.
5. Leave the **priority** setting as the default.
6. Select the **Tag** `Meal Deal Win Back` from the drop down.

These are the Standard Attributes of an offer, you'll notice below there is also a list of **Custom Attributes**.&#x20;

The custom attributes of the offer allow decisioning to understand what kind of meal it is. These are specific attributes tailored to your needs that you can assign to an offer. &#x20;

7. Add the following Custom Attributes:&#x20;
   - Offer name: `Premium Sushi + Sweet + Juice`
   - Main Category: `Sushi`
   - Snack Category: `Sweet`
   - Drink Category: `Juice`
   - Tier: `Premium`
   - Value Score: `Low`
   - Health Score: `Med`
   - Set all other custom attributes to `#`
8. Expand the **content** panel, we will now select an offer image from our Asset Library.
   - For the **image** attribute, select **Add asset from library**.
   - Click **Add asset&#x20;**&#x74;o open the Asset Selector.
   - Navigate to the **Hands-on Lab** folder > **Tesco&#x20;**>**&#x20;Meal Deals.**
   - Select the `Premium Sushi + Sweet + Juice.png` offer image.
9. Click **Next**.

Your offer should be configured as:

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/GyKZWZzkfy23-0z8_-38R_screenshot-2026-02-23-at-220836.png" size="100" isUploading="false" width="2062" height="1538" showCaption="false" indent="1"}

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/IhdOJruzDCkhfZHYqRSSe_screenshot-2026-02-23-at-220131.png" size="100" isUploading="false" width="1900" height="1266" showCaption="false" indent="1"}

Leave the **Eligibility&#x20;**&#x61;nd **Capping** settings as default. We will not configure this now.

- Click **Next.**
- On the Summary page, click **Save.**
- To approve your offer for use, click **Approve** in the top right corner.

:::hint{type="success"}
Your Offer is now ready to be used!
:::

### Exercise 2: Create the Offer Collection

We will now create a Collection of "Meal Deal Win Back" Offers that we will use in our Selection Strategy.

1. In the menu on the left side, under **Decisioning**, click on **Catalogs**.&#x20;
2. Select **Collections.**
3. Select **Create Collection.**
4. Name your Collection: `Your Name - Meal Deal Win Back Offers`
5. In the Collection Rules, under Number of items, select **Click to create a decision item...**
6. In the the attribute window, select **Tags.**
7. Click **Save&#x20;**&#x74;o close the window.
8. Set the rule to `Tags` `contains` `Meal Deal Win Back`

You should see the number of items increase to include all offers with this Tag.

9. Click **Create.**

The final Collection configuration:&#x20;

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/3WWQGdgDHHWZlKMPz0u7h_screenshot-2026-02-23-at-222447.png" size="100" isUploading="false" width="2650" height="1254" showCaption="false" indent="1"}

:::hint{type="success"}
You've now configured a **Collection**, all Meal Deal combinations/offers now exist in one selectable "menu".&#x20;
:::

### Step 2: Ranking Offers Using Customer Preferences

Not every customer values the same thing. Some customers prefer premium options vs lower prices, or specific food types.

We use profile attributes to rank offers:

| Attribute         | Meaning                                   |
| ----------------- | ----------------------------------------- |
| Item Affinity     | Preferred meal, snack, or drink type      |
| Price Sensitivity | Likelihood to respond to premium vs value |

The ranking formula increases the score when the meal type matches the customer's preferred food and adjusts the score based on their sensitivity to price.

### \[Optional] Exercise 3: Create the Ranking Formula

We will create a Ranking Formula to rank offers using customer preferences stored on the profile.

1. In the menu on the left side, under **Decisioning**, click on **Strategy setup**.&#x20;
2. Under Ranking Methods, select **Ranking Formulas.**
3. Select **Create Formula.**
4. Name your Forumla: `Your Name - Offer Ranking by Item Affinity and Price`
5. Click **\</> Switch to code editor&#x20;**&#x69;n the top, right of the screen.
6. Copy and past the following expression into the editor. The formula increases the score of offers matching customer preferences:

   ```javascript
   if( offer._demopotemea.offerAttributes.mainCategory = _demopotemea.individualCharacteristics.grocery.mealDealPreferences.mainPreference, offer._experience.decisioning.decisionitem.itemPriority + 40, offer._experience.decisioning.decisionitem.itemPriority) AND if( offer._demopotemea.offerAttributes.snackCategory = _demopotemea.individualCharacteristics.grocery.mealDealPreferences.snackPreference, offer._experience.decisioning.decisionitem.itemPriority + 20, offer._experience.decisioning.decisionitem.itemPriority) AND if( offer._demopotemea.offerAttributes.drinkCategory = _demopotemea.individualCharacteristics.grocery.mealDealPreferences.drinkPreference, offer._experience.decisioning.decisionitem.itemPriority + 15, offer._experience.decisioning.decisionitem.itemPriority) AND if((offer._demopotemea.offerAttributes.tier = "regular") and (_demopotemea.individualCharacteristics.grocery.mealDealPreferences.priceSensitivity = "high"), offer._experience.decisioning.decisionitem.itemPriority + 30, offer._experience.decisioning.decisionitem.itemPriority) AND
   if((offer._demopotemea.offerAttributes.tier = "premium") and (_demopotemea.individualCharacteristics.grocery.mealDealPreferences.priceSensitivity = "low"), offer._experience.decisioning.decisionitem.itemPriority + 30, offer._experience.decisioning.decisionitem.itemPriority)
   ```

:::hint{type="warning"}
This formula is comparing the preferences on the customer profile with the custom attributes of the offer, if they match it will boost that offer for that profile.&#x20;

Attributes being factored are the meal, drink & snack prefrences, as well as the price sensitivity.

- If customer is not price sensitive > boost premium meal deals.&#x20;
- If customer prefers sushi > boost sushi combinations, prefers wraps > boost wrap combinations, prefers fizzy drinks > boost fizzy drinks combinations, etc.
:::

Offers will now score differently per customer

## Step 3: Selection Strategy

A selection strategy is reusable, and consists of a collection associated with an eligibility constraint and/or a ranking method to determine the offers to be shown when selected in a Decision Policy.

The strategy:

1. Takes all Meal Deal offers in the collection&#x20;
2. Applies eligibility rules&#x20;
3. Applies the ranking formula&#x20;
4. Returns the top ranked offer&#x20;

### Exercise 4: Create the Selection Strategy

The Selection strategy decides which offer the customer will see

1. In the menu on the left side, under **Decisioning**, click on **Strategy setup**.&#x20;
2. Select **Selection strategies.**
3. Select **Create selection Strategy.**
4. Name your selection strategy: `Your Name - Meal Deal Win Back Strategy`
5. Select the `Meal Deal Offers` **Collection**
6. Leave the Eligibility as All visitors.&#x20;
   - *Note: Eligibility removes offers from consideration entirely, while ranking orders the remaining ones.*
7. Select the **Ranking Formula&#x20;**&#x79;ou created in exercise 3.
   - *If you didn't create a Ranking formula, you can use `Meal Deal Offer Ranking by Item Affinity and Price`*
8. Click **Save.**

The final selection strategy configuration:&#x20;

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/w3iVcvtlOOE_xJG9Q8NO6_screenshot-2026-02-23-at-225814.png" size="100" isUploading="false" width="2684" height="1322" showCaption="false" indent="1"}

This connects the offer catalog and the ranking so that decisioning can choose the best meal deal offers for each customer!

:::hint{type="success"}
You have now configured a system that selects a different meal deal for each customer automatically.

**How will this be used next?**

This decision will now be called inside our journey message so each customer is shown a personalised offer in real-time. The journey will request one offer from this strategy at send time.
:::

