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.
Implementation Status
Section titled “Implementation Status”✅ IMPLEMENTED (December 2025)
Acceptance Criteria
Section titled “Acceptance Criteria”- ✅ 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
Implementation Details
Section titled “Implementation Details”Files Created:
shaker/utils/batchScaling.ts- Scaling calculationsshaker/components/batch/BatchScalingCalculator.tsx- Interactive calculatorshaker/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.
Priority
Section titled “Priority”High - Core functionality for event preparation
Related Entities
Section titled “Related Entities”- 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.
Implementation Status
Section titled “Implementation Status”✅ IMPLEMENTED (December 2025)
Acceptance Criteria
Section titled “Acceptance Criteria”- ✅ 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
Implementation Details
Section titled “Implementation Details”Files Created:
shaker/utils/batchScaling.ts- ContainscalculateDilution()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.
Priority
Section titled “Priority”Medium - Important for quality
Related Entities
Section titled “Related Entities”- Recipe, BatchRecipe, BatchIngredient, RecipeBalance
Story: Prepare and Track Batched Cocktail
Section titled “Story: Prepare and Track Batched Cocktail”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.
Implementation Status
Section titled “Implementation Status”✅ IMPLEMENTED (December 2025)
Acceptance Criteria
Section titled “Acceptance Criteria”- ✅ 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
Implementation Details
Section titled “Implementation Details”Files Created:
shaker/data/batchRecipes/index.ts- CRUD operations for BatchedCocktailshaker/app/(tabs)/recipes/batch/[id].tsx- Batch detail screenshaker/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.
Priority
Section titled “Priority”High - Essential for event management
Related Entities
Section titled “Related Entities”- BatchedCocktail, BatchRecipe, Event, BatchStatus
Story: Track Batch Serving Progress
Section titled “Story: Track Batch Serving Progress”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.
Implementation Status
Section titled “Implementation Status”✅ IMPLEMENTED (December 2025)
Acceptance Criteria
Section titled “Acceptance Criteria”- ✅ 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
Implementation Details
Section titled “Implementation Details”Files Created:
shaker/components/batch/BatchServingTracker.tsx- Serving progress trackershaker/data/batchRecipes/index.ts- ContainsupdateServingProgress()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.
Priority
Section titled “Priority”Medium - Useful during events
Related Entities
Section titled “Related Entities”- 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.
Acceptance Criteria
Section titled “Acceptance Criteria”- 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
Implementation Status
Section titled “Implementation Status”⏳ NOT YET IMPLEMENTED
Future Enhancement
Section titled “Future Enhancement”This feature is planned but not yet implemented. Basic batch tracking is available, but timeline calculation with reminders is not yet available.
Priority
Section titled “Priority”Low - Nice to have for planning
Related Entities
Section titled “Related Entities”- 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.
Acceptance Criteria
Section titled “Acceptance Criteria”- 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)
Implementation Status
Section titled “Implementation Status”⏳ NOT YET IMPLEMENTED
Future Enhancement
Section titled “Future Enhancement”This feature is planned but not yet implemented. Currently, batch scaling doesn’t check against current inventory levels.
Priority
Section titled “Priority”Medium - Practical for inventory management
Related Entities
Section titled “Related Entities”- BatchRecipe, BatchIngredient, Ingredient, Product, Inventory
Story: Store Batch Recipe Templates
Section titled “Story: Store Batch Recipe Templates”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.
Acceptance Criteria
Section titled “Acceptance Criteria”- 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
Implementation Status
Section titled “Implementation Status”⏳ NOT YET IMPLEMENTED
Future Enhancement
Section titled “Future Enhancement”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.
Priority
Section titled “Priority”Low - Quality of life improvement
Related Entities
Section titled “Related Entities”- BatchRecipe, Recipe
Story: Print Batch Recipe Instructions
Section titled “Story: Print Batch Recipe Instructions”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.
Acceptance Criteria
Section titled “Acceptance Criteria”- 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
Implementation Status
Section titled “Implementation Status”⏳ NOT YET IMPLEMENTED
Future Enhancement
Section titled “Future Enhancement”This feature is planned but not yet implemented. Currently, batch recipes can be viewed in the app, but print/export functionality is not available.
Priority
Section titled “Priority”Low - Convenience feature
Related Entities
Section titled “Related Entities”- BatchRecipe, BatchIngredient, Recipe