> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.skailama.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# How to setup a goal based progress bar

${youtube}[How to setup a goal based progress bar](-POrGv_27Yg)

This guide explains how to create a dynamic progress bar that gamifies the shopping experience by offering multiple rewards (e.g., Free Gift at 100, Free Shipping at 150, 20% Off at 200) as customers add more items to their cart.
### Step-by-Step Configuration
**1. Select Progress Type**
* **Goal Type:** Select **Multiple Goals** (instead of Single Goal).
* **Progress Basis:** Choose how the bar fills up.
    * **Cart Subtotal:** (Most Common) Based on total spend.
    * **Cart Quantity:** Based on the number of items.
    * **Product Subtotal/Quantity:** Use this to track spend on specific collections (e.g., "Spend 100 on Jewelry to unlock...").
* **Calculation Mode:**
    * **Before Discount:** The bar calculates based on the full price of items. Easier for customers to reach goals.
    * **After Discount:** The bar calculates based on what the customer actually pays. Safer for margins if you allow other discount codes.
**2. Define Your Tiers (Goals)** You can mix and match different reward types for each step of the bar:
* **Goal 1 (e.g., Free Gift):**
    * **Threshold:** Set subtotal to **100**.
    * **Reward Type:** Select **Free Gift** and choose the product.
    * **Message:** "You've unlocked a Free Gift!"
* **Goal 2 (e.g., Free Shipping):**
    * **Threshold:** Set subtotal to **150**.
    * **Reward Type:** Select **Free Shipping**.
    * **Value:** Set to **100%** (Free). You can restrict this to specific shipping rates (e.g., Standard only).
* **Goal 3 (e.g., Order Discount):**
    * **Threshold:** Set subtotal to **200**.
    * **Reward Type:** Select **Product/Order Discount**.
    * **Value:** Set to **20%** off the entire cart.
**3. Eligibility & Design**
* **Eligibility:** Optionally restrict this bar to specific Markets (e.g., "USA Only") or Customer Tags (e.g., "VIP").
* **Widget Design:** Customize the colors (filled vs. empty bar), fonts, and icons. Ensure the text contrasts well with your theme.
**4. Save & Test**
* **Save** the campaign.
* **Verify on Storefront:**
    * Add items to reach 100 -> Verify Gift adds.
    * Add more to reach 150 -> Verify Shipping becomes Free.
    * Add more to reach 200 -> Verify 20% discount applies to the total.
### Technical Notes & Limitations
> **Stacking Rewards:** When using mixed rewards (Shipping + Gift + Discount), Kite handles the logic to ensure they apply together. However, ensure your **Combinations** settings in Shopify (if using native discount codes) allow stacking, or use Kite's automatic functions to prevent conflicts.
> **"After Discount" Calculation:** If you select **After Discount**, warn your customers! If a customer has 100 in the cart (unlocking a gift) but applies a 10% code, their subtotal drops to 90, and they might lose the free gift. Using **Before Discount** is usually friendlier for user experience.
### Troubleshooting Checklist
* **Bar not appearing?** Check your **Widget Placement** settings. If using App Blocks, ensure the block is added to the Cart Page template.
* **Free Shipping not applying?** Verify the **Delivery Rules**. If the customer selects "Express" but you only discounted "Standard," they will see a charge.
* **Discount Stacking Issues?** If the 20% off goal doesn't trigger, check if another automatic discount is already running in the store. Shopify generally only allows one automatic discount at a time unless you use specific app logic.