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