Built Word Documents (.docx):
Spensara Overview (.docx)
Capability Assessment (.docx)
Brink POS Ingestion Analysis (.docx)
The Borg Ingestion Architecture (.docx)
Categories
Monitor Specs (29)
Operational monitoring, alerting, anomaly detection, and health specifications.
- backend/Kds.Ai.Data/MonitorSpecs/customer-churn-risk.md
- backend/Kds.Ai.Data/MonitorSpecs/customer-profiles.md
- backend/Kds.Ai.Data/MonitorSpecs/daily-forecast.md
- backend/Kds.Ai.Data/MonitorSpecs/demand-drivers.md
- backend/Kds.Ai.Data/MonitorSpecs/forecast-demand.md
- backend/Kds.Ai.Data/MonitorSpecs/forgotten-items.md
- backend/Kds.Ai.Data/MonitorSpecs/identify-high-value-customers.md
- backend/Kds.Ai.Data/MonitorSpecs/identify-plowhorse-items.md
- backend/Kds.Ai.Data/MonitorSpecs/identify-star-items.md
- backend/Kds.Ai.Data/MonitorSpecs/incorporate-seasonality.md
- backend/Kds.Ai.Data/MonitorSpecs/inventory-levels.md
- backend/Kds.Ai.Data/MonitorSpecs/item-recall-storm.md
- backend/Kds.Ai.Data/MonitorSpecs/kitchen-performance.md
- backend/Kds.Ai.Data/MonitorSpecs/large-order-wave.md
- backend/Kds.Ai.Data/MonitorSpecs/menu-item-profitability.md
- backend/Kds.Ai.Data/MonitorSpecs/monthly-forecast.md
- backend/Kds.Ai.Data/MonitorSpecs/optimal-pricing-adjustments.md
- backend/Kds.Ai.Data/MonitorSpecs/optimize-order-quantities.md
- backend/Kds.Ai.Data/MonitorSpecs/order-surge.md
- backend/Kds.Ai.Data/MonitorSpecs/prep-time.md
- backend/Kds.Ai.Data/MonitorSpecs/pricing-recommendations.md
- backend/Kds.Ai.Data/MonitorSpecs/priority-flood.md
- backend/Kds.Ai.Data/MonitorSpecs/seasonality-trends.md
- backend/Kds.Ai.Data/MonitorSpecs/segment-customers.md
- backend/Kds.Ai.Data/MonitorSpecs/segment-descriptions.md
- backend/Kds.Ai.Data/MonitorSpecs/slow-kitchen.md
- backend/Kds.Ai.Data/MonitorSpecs/station-bottleneck.md
- backend/Kds.Ai.Data/MonitorSpecs/waste-reduction.md
- backend/Kds.Ai.Data/MonitorSpecs/weekly-forecast.md
id: 019cb9fd-149a-7785-96a1-dcc78bc14393 name: Station Bottleneck Monitor kind: Anomaly cron: 0 0 * * * * analysis_window: 1h comparison_periods: [1d, 7d]
Detect when a single KDS station has a bottleneck -- items routed to that station take dramatically longer while other stations remain normal.
Known Tables & Columns
curated.kitchen_orders
guid(varchar, PK) - order identifierstore_guid(varchar) - which store/restaurantpreparation_time(int, seconds, nullable) - total order preparation timedone(tinyint) - whether the order is completeis_deleted(tinyint) - soft delete flagcreate_time(int, unix timestamp) - when the order was created
curated.kitchen_order_items
guid(varchar, PK) - item identifierorder_guid(varchar, FK) - parent ordername(varchar) - menu item namecategory(varchar) - Grill, Fryer, Salads, Drinks, Dessertsdevice_id(int) - KDS station ID (1=Grill, 2=Fryer, 3=Salad, 4=Drinks, 5=Desserts)preparation_time(int, seconds, nullable) - how long the item took to prepareis_deleted(tinyint) - soft delete flagcreate_time(int, unix timestamp) - when the item was created
curated.kitchen_item_status_events
guid(varchar, PK) - bump identifieritem_guid(varchar, FK) - parent itemstatus(tinyint) - 0=pending, 1=prepared, 2=doneprepared_local_time(int, unix timestamp, nullable) - when item was prepareddone_local_time(int, unix timestamp, nullable) - when item was completedis_deleted(tinyint) - soft delete flag
Analysis Approach
- Query the last {AnalysisWindow} of items from
curated.kitchen_order_items(is_deleted=0,preparation_time IS NOT NULL), joined with their parent orders fromcurated.kitchen_orders(done=1,is_deleted=0). - Group items by
device_id(station) and by hour. - For each station-hour combination, verify at least 10 items exist. Ignore stations with fewer data points.
- For each station-hour combination, compute the average and standard deviation of
preparation_time. - Compare each station's hourly average against its own historical baseline (same station, same hour-of-day, {ComparisonPeriods}).
- Look for the asymmetric pattern: one station shows a massive spike (5x+ normal) while other stations remain within normal range.
- The key differentiator from a "slow kitchen" anomaly is that only ONE station is affected. If multiple stations are elevated, this is likely a different issue — call
emit_no_anomaly.
Station Reference
device_id = 1: Grill (burgers, chicken, steaks -- baseline 300-660s)device_id = 2: Fryer (fries, tenders, onion rings -- baseline 180-660s)device_id = 3: Salad (salads -- baseline 120-360s)device_id = 4: Drinks (beverages -- baseline 30-240s)device_id = 5: Desserts (desserts -- baseline 60-420s)
Severity Guidance
- Low: One station 5-8x above its baseline, others normal
- Medium: One station 8-12x above its baseline, causing visible order delays
- High: One station >12x above its baseline, orders backing up significantly