Skip to content

Batch Cocktail Preparation

This document contains user stories related to batch recipe creation, scaling calculations, batch tracking, and serving management for large events.

Story: Create Batch Recipe from Standard Recipe

Section titled “Story: Create Batch Recipe from Standard Recipe”

As a Host,
I want to convert a standard single-serving recipe into a batch recipe,
So that I can prepare cocktails in advance for large events.

✅ IMPLEMENTED (December 2025)

  • ✅ Given I have a standard cocktail recipe (e.g., Margarita for 1 serving)
  • ✅ When I choose to create a batch version
  • ✅ Then I can specify:
    • ✅ Number of servings (e.g., 20 servings)
    • ✅ Preparation technique (shaken, stirred, blended, built)
    • ✅ Include dilution (toggle)
  • ✅ And the system automatically scales all ingredient quantities:
    • ✅ 2 oz tequila × 20 = 40 oz (1.18 L)
    • ✅ 1 oz lime juice × 20 = 20 oz (591 ml)
    • ✅ 1 oz Cointreau × 20 = 20 oz (591 ml)
  • ✅ And the system calculates total batch volume
  • ✅ And the system suggests appropriate container size (32 oz pitcher, 64 oz pitcher, 128 oz cambro, 256 oz cambro, punch bowl)
  • ✅ And I can preview scaled ingredients before saving
  • ✅ And I can save batch recipes for later use

Files Created:

  • shaker/utils/batchScaling.ts - Scaling calculations
  • shaker/components/batch/BatchScalingCalculator.tsx - Interactive calculator
  • shaker/app/(tabs)/recipes/batch/create.tsx - Create batch screen

Features:

  • Interactive scaling calculator
  • Live preview of scaled ingredients
  • Container suggestions based on volume
  • Unit conversions (oz to ml)
  • Batch recipe CRUD operations

See: Batch Cocktails Feature for complete details.

High - Core functionality for event preparation

  • Recipe, BatchRecipe, RecipeIngredient, BatchIngredient, BatchedCocktail

Story: Account for Dilution in Batch Recipes

Section titled “Story: Account for Dilution in Batch Recipes”

As a Host,
I want to add appropriate dilution to batch recipes,
So that pre-batched cocktails taste the same as individually shaken/stirred drinks.

✅ IMPLEMENTED (December 2025)

  • ✅ Given I am creating a batch recipe for a shaken cocktail
  • ✅ When the system scales the recipe
  • ✅ Then it suggests adding water to account for dilution:
    • ✅ Shaken drinks: add 22.5% water by volume
    • ✅ Stirred drinks: add 32.5% water by volume
    • ✅ Blended drinks: add 15% water by volume
    • ✅ Built/Layered/Other: no additional water needed (0%)
  • ✅ And I can see the calculation:
    • ✅ Total spirit/mixer volume: 80 oz
    • ✅ Suggested water addition: 18 oz (22.5% for shaken)
    • ✅ Final batch volume: 98 oz
  • ✅ And dilution is calculated automatically based on preparation technique
  • ✅ And I can toggle dilution on/off when creating batch

Files Created:

  • shaker/utils/batchScaling.ts - Contains calculateDilution() function

Dilution Calculations:

  • Shaken: 22.5% dilution
  • Stirred: 32.5% dilution
  • Blended: 15% dilution
  • Built/Layered/Other: 0% dilution

See: Batch Cocktails Feature for complete details.

Medium - Important for quality

  • Recipe, BatchRecipe, BatchIngredient, RecipeBalance

As a Host,
I want to record when I prepare a batch of cocktails,
So that I can track what’s ready, where it’s stored, and when it was made.

✅ IMPLEMENTED (December 2025)

  • ✅ Given I have created a batch recipe
  • ✅ When I actually prepare the batch
  • ✅ Then I can record:
    • ✅ Batch recipe ID (links to recipe)
    • ✅ Recipe name
    • ✅ Event ID (links to event)
    • ✅ Number of servings prepared
    • ✅ Preparation date and time (auto-recorded)
    • ✅ Batch status (planned, preparing, ready, serving, depleted, expired)
  • ✅ And I can create a BatchedCocktail instance from a BatchRecipe
  • ✅ And the batch appears in event batch management
  • ✅ And I can see all batches prepared for an event
  • ✅ And I can mark batch as ready when prepared

Files Created:

  • shaker/data/batchRecipes/index.ts - CRUD operations for BatchedCocktail
  • shaker/app/(tabs)/recipes/batch/[id].tsx - Batch detail screen
  • shaker/app/(tabs)/events/batch-management.tsx - Event batch management

Data Model:

  • BatchedCocktail entity with status lifecycle
  • Status transitions: planned → preparing → ready → serving → depleted/expired
  • Shelf life calculation based on ingredients

See: Batch Cocktails Feature for complete details.

High - Essential for event management

  • BatchedCocktail, BatchRecipe, Event, BatchStatus

As a Host,
I want to track how much of a batch has been served,
So that I know when to prepare more or when I have leftovers.

✅ IMPLEMENTED (December 2025)

  • ✅ Given I have a prepared batch of 20 servings
  • ✅ When I am serving drinks during the event
  • ✅ Then I can:
    • ✅ Mark servings as poured using quick buttons (1, 2, 5, 10 servings)
    • ✅ Enter custom serving count
    • ✅ See remaining servings (e.g., “15 servings remaining”)
    • ✅ Update the count in real-time
  • ✅ And the system shows:
    • ✅ Original batch size: 20 servings
    • ✅ Served: 5 servings (25%)
    • ✅ Remaining: 15 servings (75%)
    • ✅ Visual progress bar
    • ✅ Low stock warnings when running low
  • ✅ And I can mark the batch as “Depleted” when empty
  • ✅ And I receive low stock alerts when batch is running low

Files Created:

  • shaker/components/batch/BatchServingTracker.tsx - Serving progress tracker
  • shaker/data/batchRecipes/index.ts - Contains updateServingProgress() function

Features:

  • Visual progress bar
  • Quick pour buttons (1, 2, 5, 10 servings)
  • Custom serving input
  • Low stock warnings
  • Status indicators

See: Batch Cocktails Feature for complete details.

Medium - Useful during events

  • BatchedCocktail, BatchStatus

Story: Calculate Batch Preparation Timeline

Section titled “Story: Calculate Batch Preparation Timeline”

As a Host,
I want to see when I should prepare each batch,
So that cocktails are fresh but I’m not rushing at the last minute.

  • Given I have planned to batch several cocktails for an event
  • When I view my event preparation timeline
  • Then the system suggests preparation times based on:
    • Event start time
    • Ingredient shelf life (citrus-based = day-of, spirit-forward = 1-2 days ahead)
    • Refrigeration requirements
    • Preparation complexity
  • And I can see a timeline:
    • 2 days before: Batch Old Fashioned (spirit-forward, stable)
    • Day of, 4 hours before: Batch Margarita (contains citrus)
    • Day of, 1 hour before: Batch Mojito (contains fresh herbs)
  • And I can mark batches as prepared
  • And the system sends reminders at appropriate times

⏳ NOT YET IMPLEMENTED

This feature is planned but not yet implemented. Basic batch tracking is available, but timeline calculation with reminders is not yet available.

Low - Nice to have for planning

  • BatchedCocktail, Event, Recipe, RecipeIngredient

Story: Adjust Batch Recipe for Available Ingredients

Section titled “Story: Adjust Batch Recipe for Available Ingredients”

As a Host,
I want to adjust batch size based on available ingredient quantities,
So that I can maximize what I can make with what I have.

  • Given I want to batch a Negroni for 30 servings
  • And I only have 500ml of Campari (need 600ml for 30 servings)
  • When I create the batch
  • Then the system:
    • Identifies the limiting ingredient (Campari)
    • Suggests maximum servings possible (25 servings)
    • Automatically scales all ingredients to 25 servings
    • Shows what I’ll have left over of each ingredient
  • And I can choose to:
    • Accept the reduced batch size
    • Add Campari to my shopping list
    • Proceed with original plan (will need to shop)

⏳ NOT YET IMPLEMENTED

This feature is planned but not yet implemented. Currently, batch scaling doesn’t check against current inventory levels.

Medium - Practical for inventory management

  • BatchRecipe, BatchIngredient, Ingredient, Product, Inventory

As a Host,
I want to save batch recipe templates for cocktails I frequently prepare,
So that I don’t have to recalculate scaling every time.

  • Given I have successfully created and used a batch recipe
  • When I choose to save it as a template
  • Then I can:
    • Name the template (e.g., “Margarita - 20 servings”)
    • Add notes about preparation tips
    • Specify default serving size
    • Mark it as a favorite
  • And I can reuse the template for future events
  • And I can see all my saved batch templates
  • And I can edit or delete templates

⏳ NOT YET IMPLEMENTED

This feature is planned but not yet implemented. Currently, batch recipes can be created and reused, but there’s no separate template system with favorites.

Low - Quality of life improvement

  • BatchRecipe, Recipe

As a Host,
I want to print or export batch recipe instructions,
So that I can follow them while preparing in the kitchen without my phone.

  • Given I have a batch recipe ready to prepare
  • When I choose to print/export
  • Then I get a formatted document with:
    • Recipe name and serving count
    • Scaled ingredient list with quantities
    • Preparation instructions
    • Dilution calculations
    • Storage instructions
    • Expiration date
    • Serving suggestions
  • And I can export as PDF or print directly
  • And the format is clear and easy to read while working

⏳ NOT YET IMPLEMENTED

This feature is planned but not yet implemented. Currently, batch recipes can be viewed in the app, but print/export functionality is not available.

Low - Convenience feature

  • BatchRecipe, BatchIngredient, Recipe