diff --git a/app/src/main/java/com/example/cupcake/FlavorFragment.kt b/app/src/main/java/com/example/cupcake/FlavorFragment.kt
index e7b74d24599348bc6194e9e0d126f6cbceacfc6e..cae160cee0e8fa687715c291a8b0f6122957640e 100644
--- a/app/src/main/java/com/example/cupcake/FlavorFragment.kt
+++ b/app/src/main/java/com/example/cupcake/FlavorFragment.kt
@@ -49,6 +49,7 @@ class FlavorFragment : Fragment() {
 
         binding?.apply {
             viewModel = sharedViewModel
+            lifecycleOwner = viewLifecycleOwner
             nextButton.setOnClickListener { goToNextScreen() }
         }
     }
diff --git a/app/src/main/java/com/example/cupcake/PickupFragment.kt b/app/src/main/java/com/example/cupcake/PickupFragment.kt
index e1bb1fdaa5bac36ccd3b10ae9b501d0177e9e243..799116c90d623a19a3eea6bd467d90c52ab924b3 100644
--- a/app/src/main/java/com/example/cupcake/PickupFragment.kt
+++ b/app/src/main/java/com/example/cupcake/PickupFragment.kt
@@ -49,6 +49,7 @@ class PickupFragment : Fragment() {
 
         binding?.apply {
             viewModel = sharedViewModel
+            lifecycleOwner = viewLifecycleOwner
             nextButton.setOnClickListener { goToNextScreen() }
         }
     }
diff --git a/app/src/main/java/com/example/cupcake/SummaryFragment.kt b/app/src/main/java/com/example/cupcake/SummaryFragment.kt
index 839e3778a4f44fb6af9ea47a892e6b9a95eadb5f..9a9affb658536bfa531d3b75bbd6369f921e8789 100644
--- a/app/src/main/java/com/example/cupcake/SummaryFragment.kt
+++ b/app/src/main/java/com/example/cupcake/SummaryFragment.kt
@@ -50,6 +50,7 @@ class SummaryFragment : Fragment() {
 
         binding?.apply {
             viewModel = sharedViewModel
+            lifecycleOwner = viewLifecycleOwner
             sendButton.setOnClickListener { sendOrder() }
         }
     }
diff --git a/app/src/main/java/com/example/cupcake/model/OrderViewModel.kt b/app/src/main/java/com/example/cupcake/model/OrderViewModel.kt
index 67b4a831d9ea255b28b99fcfb6a7ecce51424660..35397708e6aba0ac55d548b2985bd07fd84b2d5d 100644
--- a/app/src/main/java/com/example/cupcake/model/OrderViewModel.kt
+++ b/app/src/main/java/com/example/cupcake/model/OrderViewModel.kt
@@ -8,6 +8,7 @@ import java.util.Calendar
 import java.util.Locale
 
 private const val PRICE_PER_CUPCAKE = 2.00
+private const val PRICE_FOR_SAME_DAY_PICKUP = 3.00
 
 class OrderViewModel : ViewModel() {
     private val _quantity = MutableLiveData<Int>()
@@ -29,7 +30,12 @@ class OrderViewModel : ViewModel() {
     }
 
     private fun updatePrice() {
-        _price.value = (quantity.value ?: 0) * PRICE_PER_CUPCAKE
+        var calculatedPrice = (quantity.value ?: 0) * PRICE_PER_CUPCAKE
+        // If the user selected the first option (today) for pickup, add the surcharge
+        if (dateOptions[0] == _date.value) {
+            calculatedPrice += PRICE_FOR_SAME_DAY_PICKUP
+        }
+        _price.value = calculatedPrice
     }
 
     private fun getPickupOptions(): List<String> {
@@ -62,6 +68,7 @@ class OrderViewModel : ViewModel() {
 
     fun setDate(pickupDate: String) {
         _date.value = pickupDate
+        updatePrice()
     }
 
     fun hasNoFlavorSet(): Boolean {