Kitchen Display System
Kitchen order flow, station routing, and order preparation diagrams
Kitchen Display System
This page covers the kitchen display system (KDS) workflow including order routing, station management, and preparation tracking.
KDS Architecture
flowchart TB
subgraph "Order Entry"
POS1[POS Terminal 1]
POS2[POS Terminal 2]
KIOSK[Self-Order Kiosk]
ONLINE[Online Orders]
end
subgraph "Routing Engine"
ROUTER[Order Router]
RULES[Routing Rules]
end
subgraph "Kitchen Stations"
GRILL[Grill Station]
FRY[Fry Station]
PREP[Prep Station]
EXPO[Expo Station]
end
subgraph "Display Screens"
KDS_GRILL[Grill KDS]
KDS_FRY[Fry KDS]
KDS_PREP[Prep KDS]
KDS_EXPO[Expo KDS]
end
POS1 --> ROUTER
POS2 --> ROUTER
KIOSK --> ROUTER
ONLINE --> ROUTER
ROUTER --> RULES
RULES --> GRILL
RULES --> FRY
RULES --> PREP
GRILL --> KDS_GRILL
FRY --> KDS_FRY
PREP --> KDS_PREP
GRILL --> EXPO
FRY --> EXPO
PREP --> EXPO
EXPO --> KDS_EXPO
style ROUTER fill:#e1f5fe
style EXPO fill:#e8f5e9Order Item States
stateDiagram-v2
[*] --> PENDING: Order Placed
PENDING --> SENT: Send to Kitchen
SENT --> ACKNOWLEDGED: Station Acknowledges
ACKNOWLEDGED --> PREPARING: Start Preparation
PREPARING --> READY: Finished Cooking
PREPARING --> HELD: Hold Request
HELD --> PREPARING: Resume
READY --> BUMPED: Bump from Station
BUMPED --> EXPO_QUEUE: Queue at Expo
EXPO_QUEUE --> PLATED: Plating Complete
PLATED --> SERVED: Picked Up
SERVED --> [*]
note right of PREPARING
Timer tracking
cook time
end note
note right of EXPO_QUEUE
Waiting for
all items
end noteOrder Routing Logic
flowchart TD
ORDER[New Order Items] --> ANALYZE[Analyze Items]
ANALYZE --> LOOP{More Items?}
LOOP -->|Yes| ITEM[Get Next Item]
ITEM --> CATEGORY[Check Category]
CATEGORY --> STATION_MAP[Map to Station]
STATION_MAP --> GRILL{Grill Item?}
GRILL -->|Yes| ROUTE_GRILL[Route to Grill]
STATION_MAP --> FRY{Fry Item?}
FRY -->|Yes| ROUTE_FRY[Route to Fry]
STATION_MAP --> PREP{Prep Item?}
PREP -->|Yes| ROUTE_PREP[Route to Prep]
STATION_MAP --> BAR{Bar Item?}
BAR -->|Yes| ROUTE_BAR[Route to Bar]
ROUTE_GRILL --> PRIORITY[Calculate Priority]
ROUTE_FRY --> PRIORITY
ROUTE_PREP --> PRIORITY
ROUTE_BAR --> PRIORITY
PRIORITY --> SEQUENCE[Sequence Items]
SEQUENCE --> LOOP
LOOP -->|No| SEND[Send to Stations]
SEND --> DISPLAY[Display on KDS]
style SEND fill:#e8f5e9Kitchen Display Sequence
sequenceDiagram
participant POS as POS Terminal
participant API as Kitchen API
participant Router as Route Engine
participant Station as Kitchen Station
participant KDS as KDS Screen
participant Expo as Expo Station
POS->>API: Send order to kitchen
API->>Router: Route order items
Router->>Router: Apply routing rules
Router->>Router: Calculate priorities
loop For each station
Router->>Station: Assign items
Station->>KDS: Display items
KDS-->>Station: Acknowledged
end
Station->>KDS: Start item (touch)
Note over KDS: Timer starts
Station->>KDS: Complete item (bump)
KDS->>API: Item ready
API->>Expo: Notify expo
Expo->>Expo: Wait for all items
Expo->>Expo: Plate order
Expo->>API: Order ready
API->>POS: Notify serverStation Workflow
flowchart TD
subgraph "Station Display"
QUEUE[Order Queue]
CURRENT[Current Items]
READY[Ready Items]
end
NEW[New Item Arrives] --> QUEUE
QUEUE --> PRIORITIZE[Prioritize by Time/Type]
PRIORITIZE --> DISPLAY[Show on Screen]
DISPLAY --> COOK_START{Cook Starts?}
COOK_START -->|Touch Item| CURRENT
CURRENT --> TIMER[Start Cook Timer]
TIMER --> ALERT{Near Done?}
ALERT -->|Yes| NOTIFY[Audio Alert]
ALERT -->|No| CONTINUE[Continue Timer]
CONTINUE --> TIMER
NOTIFY --> DONE{Item Done?}
DONE -->|Bump| READY
DONE -->|No| CONTINUE
READY --> EXPO_NOTIFY[Notify Expo]
subgraph "Item States on Screen"
NEW_COLOR[New - White]
COOKING_COLOR[Cooking - Yellow]
LATE_COLOR[Late - Red]
READY_COLOR[Ready - Green]
endExpo Station Flow
flowchart TD
ITEMS[Items Arriving] --> GROUP[Group by Order]
GROUP --> ORDER_VIEW[Order View]
ORDER_VIEW --> STATUS{All Items Ready?}
STATUS -->|No| WAITING[Show Waiting Items]
WAITING --> HIGHLIGHT[Highlight Missing]
HIGHLIGHT --> STATUS
STATUS -->|Yes| COMPLETE[Order Complete]
COMPLETE --> ALERT_EXPO[Alert Expo Staff]
ALERT_EXPO --> PLATE[Plate Order]
PLATE --> QUALITY[Quality Check]
QUALITY --> PASS{Pass Check?}
PASS -->|No| REMAKE[Request Remake]
REMAKE --> WAITING
PASS -->|Yes| GARNISH[Final Garnish]
GARNISH --> RUNNER[Call Runner]
RUNNER --> PICKUP[Mark Picked Up]
PICKUP --> SERVE[Serve to Table]
SERVE --> BUMP[Bump Order]
style BUMP fill:#e8f5e9Order Priority System
flowchart TD
subgraph "Priority Factors"
TIME[Order Time]
VIP[VIP Table]
RUSH[Rush Order]
COURSE[Course Timing]
end
TIME --> CALC[Calculate Priority Score]
VIP --> CALC
RUSH --> CALC
COURSE --> CALC
CALC --> SCORE[Priority Score]
SCORE --> HIGH{Score > 80?}
HIGH -->|Yes| RED[Display RED]
SCORE --> MEDIUM{Score 50-80?}
MEDIUM -->|Yes| YELLOW[Display YELLOW]
SCORE --> NORMAL{Score < 50?}
NORMAL -->|Yes| WHITE[Display WHITE]
subgraph "Color Coding"
RED --> URGENT[Urgent - Do First]
YELLOW --> SOON[Attention Needed]
WHITE --> QUEUE_NORMAL[Normal Queue]
endCourse Firing
sequenceDiagram
participant Server as Server
participant POS as POS System
participant Kitchen as Kitchen
participant KDS as KDS Display
Server->>POS: Enter full order (3 courses)
POS->>Kitchen: Send order with course marks
Note over Kitchen: Course 1: Appetizers
Kitchen->>KDS: Display appetizers
KDS->>Kitchen: Appetizers ready
Kitchen->>Server: Course 1 ready
Server->>POS: Fire Course 2
Note over Kitchen: Course 2: Entrees
POS->>Kitchen: Fire entrees
Kitchen->>KDS: Display entrees
KDS->>Kitchen: Entrees ready
Kitchen->>Server: Course 2 ready
Server->>POS: Fire Course 3
Note over Kitchen: Course 3: Desserts
POS->>Kitchen: Fire desserts
Kitchen->>KDS: Display desserts
KDS->>Kitchen: Desserts ready
Kitchen->>Server: Course 3 readyItem Modification Display
flowchart TD
ITEM[Order Item] --> HAS_MODS{Has Modifiers?}
HAS_MODS -->|No| STANDARD[Standard Display]
HAS_MODS -->|Yes| SHOW_MODS[Show Modifiers]
SHOW_MODS --> MOD_TYPE{Modifier Type}
MOD_TYPE --> ADD[Additions]
MOD_TYPE --> REMOVE[Removals]
MOD_TYPE --> SPECIAL[Special Requests]
MOD_TYPE --> ALLERGY[Allergy Alert]
ADD --> GREEN_TEXT[Green Text: +Bacon]
REMOVE --> RED_TEXT[Red Text: NO onions]
SPECIAL --> YELLOW_TEXT[Yellow Text: Extra crispy]
ALLERGY --> FLASH[Flashing Alert: ALLERGY]
GREEN_TEXT --> DISPLAY[Final Display]
RED_TEXT --> DISPLAY
YELLOW_TEXT --> DISPLAY
FLASH --> DISPLAY
STANDARD --> DISPLAY
subgraph "Display Example"
EXAMPLE["BURGER #42
+Bacon
NO onions
MED-RARE
⚠️ PEANUT ALLERGY"]
endKitchen Timing Metrics
flowchart LR
subgraph "Time Metrics"
TICKET[Ticket Time]
PREP[Prep Time]
COOK[Cook Time]
EXPO[Expo Time]
TOTAL[Total Time]
end
subgraph "Targets"
T_TICKET[Target: 2 min]
T_PREP[Target: 3 min]
T_COOK[Target: 8 min]
T_EXPO[Target: 2 min]
T_TOTAL[Target: 15 min]
end
TICKET --> T_TICKET
PREP --> T_PREP
COOK --> T_COOK
EXPO --> T_EXPO
TOTAL --> T_TOTAL
subgraph "Alerts"
WARN[Warning at 80%]
CRITICAL[Critical at 100%]
OVERDUE[Overdue > 100%]
endKitchen Display Data
erDiagram
KITCHEN_ORDER ||--o{ KITCHEN_ITEM : contains
KITCHEN_ITEM }o--|| STATION : routed_to
STATION ||--o{ KDS_DISPLAY : shows_on
KITCHEN_ORDER {
string id PK
string transactionId FK
string tableNumber
int guestCount
enum orderType
enum status
int priority
timestamp receivedAt
timestamp completedAt
}
KITCHEN_ITEM {
string id PK
string orderId FK
string stationId FK
string productName
int quantity
json modifiers
enum status
int course
timestamp sentAt
timestamp startedAt
timestamp completedAt
}
STATION {
string id PK
string tenantId FK
string name
string code
enum type
int displayOrder
boolean isActive
}
KDS_DISPLAY {
string id PK
string stationId FK
string deviceId
string ipAddress
json configuration
timestamp lastPing
}Kitchen Reports
pie title Average Ticket Times by Station
"Grill" : 8
"Fry" : 4
"Prep" : 3
"Bar" : 2gantt
title Sample Order Timeline
dateFormat HH:mm:ss
axisFormat %H:%M:%S
section Order #42
Received :a1, 12:00:00, 10s
Prep Station :a2, after a1, 120s
Grill Station :a3, after a1, 300s
Fry Station :a4, after a1, 180s
Expo Assembly :a5, after a3, 60s
Served :milestone, after a5, 0s