Mai Shan Yun Restaurant Inventory Management Dashboard A comprehensive, AI-powered inventory management and forecasting dashboard designed for Mai Shan Yun restaurant. This dashboard provides real-time inventory tracking, predictive analytics, and actionable insights to optimize ingredient ordering, reduce waste, and prevent stockouts.

Built for TAMU Datathon 2025

Dashboard Purpose and Key Insights Purpose The Mai Shan Yun Restaurant Dashboard addresses critical challenges in restaurant inventory management:

Prevent Stockouts: Real-time alerts when ingredients fall below safe thresholds Reduce Waste: Identify overstocked items and optimize ordering quantities Cost Optimization: Forecast demand to prevent over-ordering and reduce food waste Data-Driven Decisions: Provide actionable insights based on historical sales and usage patterns Key Insights Delivered Inventory Status Monitoring: Real-time tracking of 18+ ingredients across 6 months with automatic categorization (Optimal, Low Stock, Overstocked)

Predictive Forecasting: Next-month usage predictions based on trend analysis, with trend detection (increasing, decreasing, stable) and percentage change calculations

Usage Pattern Analysis: Monthly ingredient usage trends, comparison of usage vs. received quantities, and identification of ingredients with increasing/decreasing demand

Alert System: Low stock alerts, overstock warnings, and critical alerts with customizable thresholds and reorder recommendations

Sales Analytics: Total revenue tracking ($367,367.58 over 6 months), menu item performance analysis (47,916 items sold), and monthly revenue trends

📁 Datasets Used and Integration Dataset Overview The dashboard integrates three primary data sources:

Monthly Sales Data (Excel files: May-October 2024)

Contains: Item-level sales data with counts and revenue Structure: Multiple sheets per file containing menu item sales Purpose: Calculate ingredient usage from menu item sales Ingredient Matrix (MSY Data - Ingredient.csv)

Contains: Recipe information mapping menu items to ingredients with quantities Purpose: Calculate ingredient usage from menu item sales Tracks: 18 ingredients (beef, pork, chicken, rice, ramen, noodles, vegetables, etc.) Shipment Data (MSY Data - Shipment.csv)

Contains: Ingredient shipment schedules and quantities Fields: Ingredient name, quantity per shipment, unit, number of shipments, frequency Purpose: Calculate monthly received quantities and inventory levels Data Integration Process Data Cleaning:

Sales data: Extracted item-level data, converted revenue strings to numeric values, normalized counts Ingredient matrix: Normalized ingredient names, handled unit variations, combined related ingredients Shipment data: Standardized frequencies, normalized units, calculated shipments per month Unit Conversion:

Weight-based ingredients: Converted to grams (1 lb = 453.592 grams) Count-based ingredients: Kept in original units (count, pieces, eggs) Ingredient Usage Calculation: For each month, the system matches menu items with recipes, multiplies item count by ingredient quantity per item, and aggregates usage across all menu items.

Inventory Tracking: Tracks inventory month-by-month: previous_inventory + received - used. Detects low stock when inventory falls below thresholds and overstock when usage < 50% of received.

Status Determination:

Low Stock: Usage ratio > 110% of received, multiple months with low inventory, or current inventory < 10% of monthly received Overstocked: Usage ratio < 50% of received Normal: Usage ratio between 50% and 110% of received Forecasting: Compares recent 2 months average to early 2 months average to detect trends. Predicts next month based on trend: increasing/decreasing trends use rate-based prediction, stable trends use weighted average.

Setup and Run Instructions Prerequisites Node.js 18+ and pnpm Python 3.8+ and pip Installation Clone the repository: git clone cd "Tamu Datathon 2025" Install frontend dependencies: cd code pnpm install Install Python dependencies: cd ../mai-shen-yun pip install -r requirements.txt Process raw data: python process_data_for_dashboard.py This generates code/public/data/dashboard_data.json with all processed analytics.

Run the development server: cd ../code pnpm dev Open http://localhost:3000 in your browser.

Example Insights and Use Cases Use Case 1: Preventing Stockouts Scenario: White Onion inventory is consistently low

Insights: Monthly usage (600 onions) exceeds monthly received (320 onions) by 187.5% Action: Increase order quantity from 80 to 150 onions per shipment, or increase frequency to 6 shipments per week Use Case 2: Reducing Waste Scenario: Flour is overstocked

Insights: Monthly usage (45 lbs) is only 45% of monthly received (100 lbs) Action: Reduce order quantity from 50 lbs to 25 lbs per shipment, or change frequency from monthly to biweekly Use Case 3: Demand Forecasting Scenario: Beef usage is increasing

Insights: Trend shows 15% increase over 2 months, predicted next month (644 lbs) exceeds current shipments (480 lbs) Action: Increase weekly shipments from 3 to 4, or increase quantity per shipment from 40 lbs to 50 lbs Use Case 4: Customizable Thresholds Dashboard Features: Adjustable thresholds for low stock (20%), critical stock (10%), overstock (50% usage), high usage (110%), and low stock months (2 months)

Action: Set stricter thresholds for critical ingredients to trigger alerts earlier

Built With

Share this project:

Updates