EP-008: Banquet & Events Management
| Field | Value |
|---|---|
| Epic ID | EP-008 |
| Epic Name | Banquet & Events Management |
| Owner | Banquet Module Lead |
| Created | 2026-03-05 |
| Last Updated | 2026-03-05 |
| Status | In Progress |
| Priority | P1 - High |
1. Business Objective
Deliver end-to-end event management for weddings, conferences, and MICE (Meetings, Incentives, Conferences, Exhibitions) -- a major revenue stream for Indian hotels contributing 30-40% of total revenue in many properties. Indian weddings alone are a USD 50 billion industry, with multi-day celebrations (mehndi, sangeet, wedding, reception) requiring simultaneous venue bookings, elaborate catering (500-2000 pax), decor, AV, and phased payment collection. The system must handle the full event lifecycle from initial inquiry to post-event P&L analysis, generate professional proposals and BEOs (Banquet Event Orders), and coordinate across departments via function sheets. Real-time calendar visibility prevents double-booking and enables the sales team to respond instantly to inquiries -- critical when venues are booked 6-18 months in advance.
2. Audience
| Role | Interaction |
|---|---|
| Banquet Manager | Event lifecycle management, venue scheduling, BEO approval, P&L review |
| Sales Coordinator | Inquiry handling, quotation creation, client follow-up, proposal generation |
| Chef / F&B Manager | Menu planning, function sheet review, dietary requirements, kitchen coordination |
| AV Technician | Equipment assignment, setup requirements, technical riders |
3. Scope
3.1 In Scope
- Event lifecycle management (7 statuses: INQUIRY -> QUOTATION -> TENTATIVE -> CONFIRMED -> IN_PROGRESS -> COMPLETED -> CANCELLED)
- Venue management with 6 setup types (Theatre, Classroom, U-Shape, Boardroom, Banquet, Reception)
- Function sheets (per-event operational instructions for each department)
- Event items management (venue rental, food packages, beverages, AV equipment, decor, miscellaneous)
- Payment milestone tracking (advance, pre-event, post-event settlement)
- Calendar view for venue availability and event scheduling
- BEO (Banquet Event Order) PDF generation
- Proposal / quotation PDF generation with terms
- Event P&L (estimated vs actual revenue and costs)
- Floor plan editor for venue layout design
- Multi-day event support (e.g., 3-day wedding)
- Event cloning for recurring conferences
3.2 Out of Scope
- Full catering / kitchen production management (covered in EP-007 POS & F&B)
- Guest room block management for event attendees (covered in EP-003 Reservations)
- Marketing and lead generation (covered in EP-010 CRM)
- Spa/wellness packages bundled with events (covered in EP-016)
4. Current Implementation Status
4.1 Backend (01-hmp-backend - Banquet Service)
| Component | Status | Notes |
|---|---|---|
| Event CRUD | Built | Full lifecycle with 7 status transitions |
| Venue Management | Built | CRUD with capacity, setup types, amenities |
| Function Sheets | Built | Per-department sheets with task assignments |
| Event Items | Built | Venue, food, beverage, AV, decor item types |
| Payment Milestones | Built | Create, track, mark paid with payment reference |
| Event P&L | Built | Revenue vs cost calculation at event level |
| BEO PDF Generation | Not Started | Endpoint defined, PDF template not implemented |
| Proposal PDF Generation | Not Started | Endpoint defined, PDF template not implemented |
| Multi-Venue Events | Partial | Schema supports it, API logic for conflict check incomplete |
| Staffing Assignment | Partial | Schema exists, not connected to HR/staff roster |
4.2 Dashboard (02-hmp-web-dashboard)
| Component | Status | Notes |
|---|---|---|
| Event List & Search | Built | Filterable by status, date range, venue |
| Event Create Form | Built | Multi-step wizard with all event details |
| Event Detail View | Built | Timeline, items, payments, function sheets |
| Event P&L View | Built | Estimated revenue, costs, and margin |
| Venue List & Management | Built | CRUD with capacity and amenities |
| Floor Plan Editor | Built | Konva.js-based drag-and-drop layout designer |
| Calendar View | Partial | Basic monthly view, lacks drag-to-reschedule |
| BEO Preview | Not Started | No PDF preview or download in UI |
| Proposal Preview | Not Started | No client-facing quotation document |
| Multi-Day Event View | Partial | Works but timeline visualization needs improvement |
5. Gap Analysis
| # | Gap | Impact | Effort | Priority |
|---|---|---|---|---|
| 1 | BEO PDF not implemented | High - operations depend on printed BEOs for each department | M | P1 |
| 2 | Proposal/quotation PDF not implemented | High - sales team cannot send professional proposals to clients | M | P1 |
| 3 | Calendar view basic (no drag-reschedule) | Medium - venue scheduling less efficient | M | P2 |
| 4 | Multi-venue conflict check incomplete | High - risk of double-booking for large weddings | S | P1 |
| 5 | Staffing assignment not connected | Medium - manual staff coordination continues | L | P2 |
| 6 | P&L lacks actuals vs estimated comparison | Medium - post-event analysis incomplete | S | P1 |
| 7 | Event cloning not implemented | Low - convenience feature for recurring events | S | P3 |
6. User Stories Summary
| Story ID | Title | Priority | Points | Sprint | Status |
|---|---|---|---|---|---|
| US-008-01 | Event Inquiry & Creation | P0 | 8 | 1 | Built |
| US-008-02 | Quotation & Proposal Generation | P1 | 8 | 2 | Not Started |
| US-008-03 | Event Confirmation & Status Flow | P0 | 5 | 1 | Built |
| US-008-04 | Venue Management & Setup Types | P0 | 5 | 1 | Built |
| US-008-05 | Event Items & Pricing | P0 | 8 | 2 | Built |
| US-008-06 | Payment Milestone Tracking | P0 | 5 | 2 | Built |
| US-008-07 | Function Sheet Generation | P1 | 8 | 3 | Built |
| US-008-08 | BEO PDF Generation | P1 | 8 | 3 | Not Started |
| US-008-09 | Event Calendar & Scheduling | P1 | 8 | 3 | Partial |
| US-008-10 | Floor Plan Editor | P2 | 13 | 4 | Built |
| US-008-11 | Event P&L (Estimated vs Actual) | P1 | 5 | 4 | Partial |
| US-008-12 | Multi-Day / Multi-Venue Events | P1 | 8 | 4 | Partial |
| US-008-13 | Event Cloning | P3 | 3 | 5 | Not Started |
7. Dependencies
| Dependency | Type | Epic/Service | Status |
|---|---|---|---|
| Property service (venue inventory) | Upstream | EP-002 / property | Available |
| Auth service (RBAC roles) | Upstream | EP-001 / auth | Available |
| POS / F&B service (catering) | Peer | EP-007 / pos | Partial |
| Guest/CRM service (client contacts) | Upstream | EP-004 / guest | Available |
| Reservation service (room blocks) | Peer | EP-003 / reservation | Available |
| Notification service (confirmations) | Downstream | EP-014 / notification | Partial |
| Kafka event bus | Infra | Docker / Kafka | Available |
| PDF generation library | Infra | Backend / pdfkit | Available |
8. Epic-Level Acceptance Criteria
- AC-EP-008-01: A sales coordinator can create an event inquiry and advance it through all 7 lifecycle stages with proper validation at each transition.
- AC-EP-008-02: The system prevents double-booking of venues, including partial time-slot overlaps for multi-venue events.
- AC-EP-008-03: A professional BEO document can be generated as PDF with all event details, menu, AV requirements, and setup instructions for each department.
- AC-EP-008-04: Payment milestones are tracked with amounts in INR, due dates, and GST breakup; overdue payments trigger alerts.
- AC-EP-008-05: Event P&L shows estimated vs actual comparison for revenue and costs with variance percentage.
- AC-EP-008-06: The calendar view shows all venues with booked/tentative/available slots and supports date-range filtering.
9. KPIs
| KPI | Target | Measurement Method |
|---|---|---|
| Inquiry to confirmation time | < 48 hours | Timestamp: inquiry to confirmed |
| Venue utilization rate | > 65% | Booked days / available days |
| Event revenue per sqft/month | > INR 150 | Total event revenue / total sqft |
| Proposal acceptance rate | > 40% | Confirmed / quotations sent |
| Payment collection on time | > 90% | On-time milestones / total |
| Event P&L accuracy | < 5% variance | Actual vs estimated deviation |
| BEO generation time | < 2 minutes | Create to PDF download |
10. Detailed User Stories
US-008-01: Event Inquiry & Creation
As a Sales Coordinator, I want to capture event inquiries with client details, event type, preferred dates, and estimated guest count, So that I can track leads and convert them into confirmed bookings.
Priority: P0 | Points: 8 | Sprint: 1 | Status: Built
Implementation Status
Event creation API supports all fields: client info, event type (WEDDING, CONFERENCE, BIRTHDAY, CORPORATE, SOCIAL, OTHER), date/time, expected pax, venue preference, budget range in INR. Dashboard wizard guides through multi-step creation. Kafka event banquet.inquiry_created published.
Acceptance Criteria
Scenario: Create wedding inquiry
Given a client "Mr. Agarwal" calls to inquire about a wedding reception
When the sales coordinator creates an event inquiry with:
| Field | Value |
| Event Type | WEDDING |
| Client Name | Agarwal Family |
| Contact | +91 98765 43210 |
| Date | 2026-12-15 |
| Expected Pax | 800 |
| Budget | INR 25,00,000 |
| Venue Pref | Grand Ballroom |
Then the event is created with status "INQUIRY"
And an event reference number is generated (e.g., EVT-2026-0042)
And the inquiry appears in the sales pipeline dashboard
And a Kafka event "banquet.inquiry_created" is published
Scenario: Check venue availability during inquiry
Given the Grand Ballroom is booked on 2026-12-15 for another event
When the sales coordinator selects 2026-12-15 for the new inquiry
Then the system shows "Grand Ballroom: Not Available" with a conflict indicator
And suggests alternative dates (2026-12-14, 2026-12-16) where the venue is free
And suggests alternative venues (Sapphire Hall, Terrace Garden) available on 2026-12-15
Scenario: Capture multi-day wedding inquiry
Given the Agarwal family wants a 3-day wedding celebration
When the coordinator creates the inquiry with dates 2026-12-14 to 2026-12-16
And adds sub-events: Mehndi (Day 1), Wedding (Day 2), Reception (Day 3)
Then a parent event is created with 3 linked sub-events
And each sub-event can have different venue, pax count, and menu preferences
US-008-02: Quotation & Proposal Generation
As a Sales Coordinator, I want to generate a professional quotation/proposal document with itemized pricing, terms, and venue photos, So that clients can review and approve the event package.
Priority: P1 | Points: 8 | Sprint: 2 | Status: Not Started
Implementation Status
Not started. The endpoint is defined in the banquet controller but the PDF template, content aggregation, and rendering logic are not implemented. Sales team currently creates proposals manually in Word/Excel.
Acceptance Criteria
Scenario: Generate wedding proposal PDF
Given event "EVT-2026-0042" has been quoted with:
| Item | Amount (INR) |
| Grand Ballroom (1 day) | 3,00,000 |
| Veg Menu (800 pax) | 12,00,000 |
| Bar Package (800 pax) | 4,00,000 |
| Decor - Premium | 2,50,000 |
| AV & Lighting | 1,50,000 |
| Total (excl GST) | 23,00,000 |
When the sales coordinator clicks "Generate Proposal"
Then a PDF is generated with hotel branding, venue photos, and floor plan
And includes itemized pricing with GST breakup (18% on venue, 5% on food)
And includes payment milestone schedule (30% advance, 40% pre-event, 30% post-event)
And includes terms and conditions (cancellation policy, minimum guarantee)
And the PDF can be emailed directly to the client from the system
Scenario: Revise quotation after client negotiation
Given the client requests a 10% discount on the venue rental
When the sales coordinator updates the venue rate to INR 2,70,000
And regenerates the proposal (Version 2)
Then the new proposal shows the revised total with discount noted
And both versions are stored in the event history for audit
And the version number and date are printed on the proposal
US-008-03: Event Confirmation & Status Flow
As a Banquet Manager, I want to advance events through lifecycle stages with proper validation and approvals, So that operations are coordinated and resources are committed only for confirmed events.
Priority: P0 | Points: 5 | Sprint: 1 | Status: Built
Implementation Status
Status transitions implemented with validation rules: INQUIRY->QUOTATION (requires items added), QUOTATION->TENTATIVE (requires proposal sent), TENTATIVE->CONFIRMED (requires advance payment), CONFIRMED->IN_PROGRESS (event date reached), IN_PROGRESS->COMPLETED (event ended), any->CANCELLED (with cancellation charges if confirmed).
Acceptance Criteria
Scenario: Confirm event after advance payment
Given event "EVT-2026-0042" is in "TENTATIVE" status
And the advance payment milestone is INR 6,90,000 (30% of total)
When the client makes a payment of INR 6,90,000 via NEFT
And the banquet manager records the payment with bank reference
Then the event status can be advanced to "CONFIRMED"
And the venue is firmly blocked (no longer tentative)
And function sheets are auto-generated for each department
And a Kafka event "banquet.event_confirmed" is published
Scenario: Cancel confirmed event with charges
Given event "EVT-2026-0055" is in "CONFIRMED" status
And the cancellation policy specifies: >30 days = 25% charge, <30 days = 50% charge
And the event is 45 days away
When the banquet manager processes cancellation
Then a cancellation charge of 25% of the total event value is calculated
And the charge is adjusted against the advance payment received
And the refund amount (advance minus cancellation charge) is computed in INR
And the venue is released back to available inventory
US-008-04: Venue Management & Setup Types
As a Banquet Manager, I want to manage venue inventory with multiple setup configurations and capacities, So that I can offer clients appropriate options and maximize venue utilization.
Priority: P0 | Points: 5 | Sprint: 1 | Status: Built
Implementation Status
Venue management supports CRUD with: name, area (sqft), ceiling height, floor, amenities (built-in AV, stage, dance floor, kitchen access), and 6 setup types each with different capacity. Venue photos and floor plan images can be uploaded.
Acceptance Criteria
Scenario: Create venue with multiple setup types
Given the hotel is adding a new "Sapphire Hall" venue
When the banquet manager creates the venue with:
| Field | Value |
| Name | Sapphire Hall |
| Area | 5,000 sqft |
| Floor | Ground Floor |
| Amenities | Stage, AV, Kitchen Access|
And configures setup types:
| Setup Type | Capacity |
| Theatre | 500 |
| Classroom | 250 |
| U-Shape | 80 |
| Boardroom | 50 |
| Banquet | 350 |
| Reception | 600 |
Then the venue is created with all 6 setup options
And appears in venue search and event booking flows
And the rental rates can be set per setup type and time slot
Scenario: Check venue capacity against event pax
Given event "EVT-2026-0042" expects 800 guests for a reception
When the sales coordinator searches for venues
Then only venues with reception capacity >= 800 are shown
And "Grand Ballroom" (capacity 1000) is suggested
And "Sapphire Hall" (capacity 600) is flagged as insufficient
US-008-05: Event Items & Pricing
As a Sales Coordinator, I want to add and price event items (venue, food, beverages, AV, decor) with quantities and rates, So that the total event cost is accurately calculated for the client.
Priority: P0 | Points: 8 | Sprint: 2 | Status: Built
Implementation Status
Event items support 6 categories: VENUE, FOOD, BEVERAGE, AV_EQUIPMENT, DECOR, MISCELLANEOUS. Each item has quantity, unit rate (INR), tax rate, and total. Food items support per-plate pricing with pax count. GST rates applied automatically: 18% for venue/AV/decor, 5% for food (in-house restaurant), 18% for beverages.
Acceptance Criteria
Scenario: Add food package to wedding event
Given event "EVT-2026-0042" for 800 guests
When the sales coordinator adds a food package:
| Item | Rate/Plate (INR) | Pax | Total (INR) |
| Veg Dinner | 1,500 | 800 | 12,00,000 |
Then the item is added with GST at 5% (INR 60,000)
And the event total is updated to reflect the new item
And the per-plate rate is stored for BEO and kitchen reference
Scenario: Add AV equipment with custom pricing
Given a corporate conference event "EVT-2026-0060"
When the coordinator adds AV items:
| Item | Qty | Rate (INR) | Total (INR) |
| LCD Projector | 2 | 5,000 | 10,000 |
| Wireless Mic | 4 | 1,500 | 6,000 |
| LED Screen (10ft) | 1 | 25,000 | 25,000 |
Then GST at 18% is calculated on each AV item
And the total AV cost of INR 41,000 + GST is reflected in the event summary
US-008-06: Payment Milestone Tracking
As a Banquet Manager, I want to define and track payment milestones (advance, pre-event, final settlement), So that the hotel's cash flow is managed and clients have clear payment schedules.
Priority: P0 | Points: 5 | Sprint: 2 | Status: Built
Implementation Status
Payment milestones support: name, due date, amount (INR), percentage of total, status (PENDING/PAID/OVERDUE), payment reference, and payment method. Auto-calculation of milestone amounts based on percentage splits. Overdue detection via scheduled job.
Acceptance Criteria
Scenario: Define payment milestones for wedding
Given event "EVT-2026-0042" has a total value of INR 23,00,000 (excl GST)
When the banquet manager sets up milestones:
| Milestone | Percentage | Amount (INR) | Due Date |
| Booking Advance | 30% | 6,90,000 | 2026-06-15 |
| Pre-Event | 40% | 9,20,000 | 2026-12-01 |
| Final Settlement| 30% | 6,90,000 | 2026-12-20 |
Then the milestones are created and linked to the event
And the payment schedule appears on the proposal and BEO
Scenario: Track overdue payment
Given the "Pre-Event" milestone of INR 9,20,000 was due on 2026-12-01
And today is 2026-12-03 and payment has not been received
When the overdue detection job runs
Then the milestone status changes to "OVERDUE"
And the banquet manager receives a dashboard alert
And a notification is sent to the sales coordinator for follow-up
And the event is flagged with a payment warning indicator
US-008-07: Function Sheet Generation
As a Banquet Manager, I want to generate function sheets that communicate event requirements to each department (kitchen, housekeeping, engineering, AV), So that all teams are aligned on event setup and execution.
Priority: P1 | Points: 8 | Sprint: 3 | Status: Built
Implementation Status
Function sheets generated per department with event-specific instructions. Kitchen sheet includes menu details, dietary requirements, serving timeline, and pax count. Housekeeping sheet includes setup/teardown times. AV sheet includes equipment list and technical requirements. Sheets are viewable in dashboard and printable.
Acceptance Criteria
Scenario: Generate kitchen function sheet for wedding reception
Given event "EVT-2026-0042" is confirmed with:
| Detail | Value |
| Menu | Veg Dinner - North Indian + South Indian |
| Pax | 800 (guaranteed minimum) |
| Dietary | 50 Jain meals, 20 gluten-free |
| Serving Time | 8:00 PM - 11:00 PM IST |
| Live Counters | Chaat, Dosa, Pasta |
When the function sheet is generated for the Kitchen department
Then it includes the full menu with item-wise quantities
And highlights special dietary requirements (Jain, gluten-free) separately
And includes the serving timeline and live counter setup instructions
And is accessible to the Chef via the kitchen dashboard
Scenario: Generate AV function sheet for conference
Given event "EVT-2026-0060" is a 2-day corporate conference
When the AV function sheet is generated
Then it includes equipment list, setup diagram, and technical rider
And specifies setup time (2 hours before event), teardown time (1 hour after)
And includes contact details of the client's AV coordinator
And notes any special requirements (e.g., live streaming, recording)
US-008-08: BEO PDF Generation
As a Banquet Manager, I want to generate a Banquet Event Order (BEO) document as a PDF, So that all departments have a standardized reference for event execution.
Priority: P1 | Points: 8 | Sprint: 3 | Status: Not Started
Implementation Status
Not started. The BEO endpoint exists in the banquet controller but returns a placeholder response. The BEO must aggregate: event details, venue setup, menu, AV requirements, decor, timeline, contact information, and special instructions into a single printable document. Currently, banquet operations rely on viewing the event detail page on screen.
Acceptance Criteria
Scenario: Generate BEO for confirmed wedding
Given event "EVT-2026-0042" is in "CONFIRMED" status
When the banquet manager clicks "Generate BEO"
Then a PDF document is generated containing:
| Section | Content |
| Event Header | Event name, date, time, venue, BEO number |
| Client Details | Name, contact, billing address, GSTIN |
| Venue Setup | Setup type, seating plan, stage requirements |
| Menu | Full menu with course sequence and pax count |
| Beverages | Bar setup, brands, service hours |
| AV & Decor | Equipment list, theme, flower requirements |
| Timeline | Hour-by-hour schedule from setup to teardown |
| Special Instructions| Dietary needs, VIP arrangements, parking |
And the BEO has a unique number (BEO-2026-0042-R1) with revision tracking
And can be printed on A4 paper with hotel branding
Scenario: Revise BEO after menu change
Given BEO-2026-0042-R1 has been generated
When the client changes the menu from Veg to Veg + Non-Veg
And the banquet manager updates the event items and regenerates the BEO
Then BEO-2026-0042-R2 is generated with the updated menu
And the revision history shows changes between R1 and R2
And the previous version R1 is archived but accessible
US-008-09: Event Calendar & Scheduling
As a Sales Coordinator, I want to view a calendar showing all venue bookings (confirmed, tentative, inquiry) across all venues, So that I can quickly check availability and schedule events without conflicts.
Priority: P1 | Points: 8 | Sprint: 3 | Status: Partial
Implementation Status
Basic monthly calendar view implemented showing events color-coded by status (red=confirmed, yellow=tentative, blue=inquiry). Filtering by venue works. Missing: drag-to-reschedule, week/day views, time-slot granularity (currently date-level only), and conflict detection for overlapping time slots on the same day.
Acceptance Criteria
Scenario: View monthly calendar with venue availability
Given the hotel has 5 banquet venues
And December 2026 has 12 confirmed events, 5 tentative, and 3 inquiries
When the sales coordinator opens the event calendar for December 2026
Then all 20 events are displayed on their respective dates
And events are color-coded: red (confirmed), yellow (tentative), blue (inquiry)
And each venue row shows its availability at a glance
And clicking an event opens the event detail view
Scenario: Detect time-slot conflict on same-day booking
Given "Grand Ballroom" is booked from 10:00 AM to 4:00 PM for a conference
When the sales coordinator tries to book the same venue from 2:00 PM to 10:00 PM
Then the system detects a 2-hour overlap (2:00 PM - 4:00 PM)
And displays a conflict warning with the existing booking details
And suggests adjusting the time to 5:00 PM - 11:00 PM (with 1-hour turnover gap)
And does not allow saving without conflict resolution
US-008-10: Floor Plan Editor
As a Banquet Manager, I want to design venue floor plans using a drag-and-drop editor, So that I can create setup layouts for different event configurations and share them with clients.
Priority: P2 | Points: 13 | Sprint: 4 | Status: Built
Implementation Status
Konva.js-based floor plan editor built in the dashboard. Supports drag-and-drop placement of tables (round, rectangular, square), chairs, stage, dance floor, buffet stations, and AV equipment. Floor plans are saved as JSON and can be linked to specific events. Export to PNG for client presentations.
Acceptance Criteria
Scenario: Create banquet layout for wedding reception
Given the Banquet Manager is designing a layout for the Grand Ballroom
When they open the floor plan editor and select the Grand Ballroom template
And place 80 round tables (10-seater), 1 stage, 2 buffet stations, and a dance floor
Then the editor validates that all items fit within the venue dimensions
And shows the total seated capacity (800) matching the event requirements
And the floor plan is saved and linked to event "EVT-2026-0042"
And can be exported as PNG and included in the proposal
Scenario: Reuse floor plan template
Given a "Theatre 500" template exists for Sapphire Hall
When the banquet manager selects this template for a new conference event
Then the template is loaded with pre-arranged rows of chairs facing the stage
And the manager can customize (add podium, adjust rows) without modifying the original template
And save the customized version linked to the specific event
US-008-11: Event P&L (Estimated vs Actual)
As a Banquet Manager, I want to view profit & loss analysis for each event comparing estimated vs actual revenue and costs, So that I can assess event profitability and improve future pricing.
Priority: P1 | Points: 5 | Sprint: 4 | Status: Partial
Implementation Status
P&L calculation shows estimated revenue (from event items) and estimated costs (from internal cost rates). Actual revenue tracked from payments received. Actual costs not yet connected to purchasing/inventory systems, so actuals must be entered manually. Variance calculation and percentage display implemented.
Acceptance Criteria
Scenario: Review P&L for completed wedding event
Given event "EVT-2026-0042" has been completed
When the banquet manager opens the P&L report
Then the report shows:
| Category | Estimated (INR) | Actual (INR) | Variance |
| Revenue - Venue | 3,00,000 | 3,00,000 | 0% |
| Revenue - Food | 12,00,000 | 12,60,000 | +5% |
| Revenue - Bar | 4,00,000 | 4,50,000 | +12.5% |
| Revenue - Decor | 2,50,000 | 2,50,000 | 0% |
| Revenue - AV | 1,50,000 | 1,50,000 | 0% |
| Total Revenue | 23,00,000 | 24,10,000 | +4.8% |
| Total Costs | 14,00,000 | 14,80,000 | +5.7% |
| Net Profit | 9,00,000 | 9,30,000 | +3.3% |
And the profit margin is displayed (38.6%)
And food revenue exceeded estimate due to additional 50 pax over guaranteed minimum
Scenario: Flag low-margin event
Given a corporate conference has a profit margin below 20%
When the P&L is calculated
Then the event is flagged as "Low Margin" with a warning indicator
And the banquet manager can add notes explaining the variance
And the event contributes to aggregate margin analytics on the dashboard
US-008-12: Multi-Day / Multi-Venue Events
As a Sales Coordinator, I want to manage events spanning multiple days and multiple venues simultaneously, So that large celebrations like Indian weddings can be handled as a single coordinated booking.
Priority: P1 | Points: 8 | Sprint: 4 | Status: Partial
Implementation Status
Schema supports parent-child event relationships for multi-day events. Each sub-event can have a different venue, time, and configuration. Multi-venue booking on the same day (e.g., ceremony in garden + reception in ballroom) partially implemented -- conflict checking across simultaneous venue bookings needs completion.
Acceptance Criteria
Scenario: Book 3-day wedding across multiple venues
Given the Agarwal family wedding spans December 14-16, 2026
When the sales coordinator creates a master event with sub-events:
| Day | Sub-Event | Venue | Time | Pax |
| 1 | Mehndi | Terrace Garden | 4:00 PM-10:00 PM | 300 |
| 2 | Wedding | Grand Ballroom | 10:00 AM-4:00 PM | 800 |
| 2 | Reception | Grand Ballroom | 7:00 PM-12:00 AM | 1000|
| 3 | Vidaai | Terrace Garden | 8:00 AM-12:00 PM | 200 |
Then all 4 sub-events are linked under a single master event
And the total event value aggregates across all sub-events
And the calendar shows all sub-events with the master event label
And payment milestones apply to the master event total
Scenario: Detect venue conflict in multi-venue event
Given Day 2 has both Wedding (10 AM-4 PM) and Reception (7 PM-midnight) in Grand Ballroom
And the system requires a 2-hour turnover gap between events
When the coordinator checks the schedule
Then a 1-hour gap is flagged as insufficient (4 PM to 7 PM = 3 hours, but 2 hours needed for teardown + setup = OK)
And the schedule is validated as feasible with the 3-hour gap
US-008-13: Event Cloning
As a Sales Coordinator, I want to clone a previous event's configuration for a recurring client or similar event type, So that I can quickly set up new events without re-entering all details.
Priority: P3 | Points: 3 | Sprint: 5 | Status: Not Started
Implementation Status
Not started. The feature would copy all event items, venue configuration, menu, AV requirements, and decor from a source event to a new event with updated dates. Useful for recurring corporate conferences (quarterly town halls) or similar wedding packages.
Acceptance Criteria
Scenario: Clone quarterly conference event
Given event "EVT-2026-0060" (Q1 Corporate Town Hall) was successfully completed
When the sales coordinator clicks "Clone Event" and sets new date to 2026-06-15
Then a new event "EVT-2026-0085" is created with all items from the source event
And the venue, AV, catering, and setup details are copied
And the status is set to "INQUIRY" (not auto-confirmed)
And the coordinator can modify any copied details before advancing to quotation
Scenario: Clone with price adjustment
Given the source event had food at INR 1,200/plate
And food costs have increased by 10%
When the coordinator clones and applies a 10% markup on food items
Then all food items in the cloned event reflect the updated rate (INR 1,320/plate)
And other items (venue, AV) retain their original rates
Document generated: 2026-03-05 | Epic Owner: Banquet Module Lead | Review Cycle: Bi-weekly