Business Analysis
Product Case Study
Flagship end-to-end narrative: solution architecture, key decisions, trade-offs, and a worked requirements-traceability example.
Source: docs/product-management/15-product-case-study.md
HotelMind AI — Product Case Study
This project is a portfolio/product-development implementation and does not claim validated customer ROI, real customers, or measured business results. All business-outcome language here is prospective and directional, not measured.
Executive Summary
HotelMind AI is a multi-service hotel operations and AI decision-support platform built to demonstrate the complete product lifecycle — business analysis, requirements engineering, product definition, prioritization, delivery, and AI product management — on a working, non-trivial system spanning a FastAPI operational backend, a Next.js dashboard, a trained ML/GenAI service, and an Airflow/dbt data warehouse. It is not a validated commercial product; several of its AI features are trained on synthetic data, and this case study is explicit about that boundary throughout.
Discovery & Analysis Approach
This documentation suite was produced by reconciling a pre-existing engineering-authored gap analysis against the actual implemented codebase, using standard BABOK-style business analysis and Agile product-management practice — rather than through primary customer discovery (no customer interviews or market research were conducted). The approach: (1) inventory the implemented system precisely, distinguishing real from synthetic/mock capability at the file/module level; (2) derive business problems and stakeholder needs consistent with that inventory; (3) build requirements, stories, backlog, and roadmap artifacts traceable back to specific implementation evidence.
Solution Architecture
Five independently deployable projects:
- hotelmind-backend (FastAPI) — operational system of record: hotels, rooms, bookings, restaurant, staff, payments ledger, reviews, recommendations/guardrails; event-driven via Kafka, cached via Redis, real-time via WebSocket.
- hotelmind-frontend (Next.js/TypeScript) — role-based dashboard with an explicit real/beta/mock data-source labeling system, covering both fully real modules (bookings, pricing, reports) and design-complete but currently mock-backed modules (housekeeping, maintenance, check-in/out, loyalty, HR, portfolio).
- hotelmind-ml — training/prediction service for five ML models plus generative AI (RAG assistant, rule-based insights, review-analysis pipeline).
- hotelmind-data — Airflow-orchestrated dbt star-schema warehouse feeding the ML and reporting layers.
- hotelmind-infra — single-VM Docker Compose deployment with Nginx and GitHub Actions CI/CD.
Key Product Decisions
- Gate all AI-driven pricing changes behind mandatory human approval rather than shipping autonomous repricing. Rationale: preserves trust while forecast accuracy is still maturing.
- Build and maintain a real/beta/mock data-source labeling convention across the entire dashboard, rather than hiding which features are backed by real data. Rationale: prevents the product from overstating its own maturity to any stakeholder, internal or external.
- Ship restaurant and staffing forecasting on synthetic data now, clearly labeled, rather than waiting for real data to exist before shipping any capability.
Trade-offs
- Shipping ML pipelines on synthetic data (restaurant, staff) allowed the full pipeline — feature engineering, training, MLOps, UI — to be built and demonstrated end-to-end before real data existed, at the cost of the models having no currently-provable real-world accuracy.
- Building a broad, mock-backed dashboard surface (housekeeping, maintenance, HR, etc.) allowed the full product vision to be demonstrated visually before backend investment, at the cost of a wider real/mock gap than a narrower, fully-real MVP would have had.
- Disabling generative AI in production, rather than shipping an unreliable generation path, prioritized reliability over feature completeness for the AI Assistant.
Current Status
Core operations, real-data pricing/occupancy forecasting, RAG retrieval, rule-based AI Insights, and real-data executive reporting are implemented and stable. Restaurant/staff forecasting are implemented on synthetic data. Churn prediction is implemented but requires re-baselining. Generative AI is implemented but disabled in production. Roughly half the dashboard's operational surface is mock-data-backed pending real backend integration. Digital Twin is not started.
Results / Evidence
No customer adoption, revenue, or business-outcome results exist or are claimed. Evidence of technical execution: a working multi-service system, five trained ML models with .pkl artifacts, a documented MLOps pipeline (registry, MLflow tracking, drift detection, promote/rollback CLIs) with its own test suite, a real-time event-driven backend, and a deployed, publicly reachable frontend.
Lessons Learned
- Building the full pipeline on synthetic data surfaced the label-leakage defect in churn prediction — a lesson in evaluating model metrics against how the label was constructed, not just the resulting score.
- A visible data-source labeling convention proved valuable enough to elevate from a UI detail to a stated product principle.
- Shipping a degraded-but-honest AI Assistant state (retrieval-only) is preferable to either failing silently or shipping an unreliable generation path.
Future Opportunities
- Instrument the product-analytics gap — most usage/acceptance metrics are not currently trackable.
- Acquire or partner for real restaurant order and staff attendance data to retrain the two synthetic-data models.
- Re-baseline Guest Churn Prediction with a leakage-free label before any external claim of accuracy.
- Restore generative AI to production reliability.
- Progressively convert mock-backed dashboard modules to real backend features, per the documented adapter promotion path.
- Explore Digital Twin / scenario simulation as a long-horizon capability once forecasting models are validated on real data.
Product Evolution
HotelMind AI's evolution to date has moved from operational foundation → data warehouse → trained ML models → generative AI → MLOps tooling → real-time analytics, largely in that order. The next phase of evolution is not new AI capability but closing the gap between what is implemented and what is production-trustworthy: real data replacing synthetic data, a corrected churn label, restored generative AI, and a real (not mock) backend behind the currently mock-data-backed half of the dashboard.
Appendix: Requirements Traceability (representative chains)
Chain 1 — Revenue / Dynamic Pricing: Business problem (reactive, non-forecast-driven pricing) → business requirement (generate pricing recommendation from occupancy forecast) → product requirement (Dynamic Pricing Recommendation) → user story ("As a Revenue Manager, I want a system-generated price recommendation...") → acceptance criteria (including guardrail approval) → KPI (pricing recommendation acceptance rate — not currently instrumented).
Chain 2 — AI Assistant Generation: Business problem (fragmented access to operational data) → business requirement (assistant composes natural-language answers via generative model) → product requirement (Generative Response Composition — partial, disabled in production) → user story → acceptance criteria (not currently met in production) → KPI (assistant usage — not currently instrumented).
Chain 3 — Guest Churn Prediction: Business problem (no systematic detection of at-risk guests) → business requirement (predict guest churn risk, requires re-baseline) → product requirement (Guest Churn Prediction) → user story/acceptance criteria (partially met — label leakage invalidates current metrics) → KPI (churn precision/recall — invalid today, pending re-baseline).
Chain 4 — Restaurant Demand Forecasting: Business problem (prep quantities guessed, not forecast) → business requirement (forecast per-meal-period restaurant demand) → product requirement (Restaurant Demand Forecasting, synthetic data) → user story/acceptance criteria → KPI (forecast accuracy — not measurable against real data yet).
This BR- → PRD- → EPIC-/FEAT- → US-/AC- → KPI- ID scheme is applied consistently across the underlying BRD, PRD, user-stories, backlog, prioritization, and KPI documents, and can be extended to any additional feature using the same domain prefixes.