Vita-Mojo/kitchensim-v1
KitchenSim — Synthetic Restaurant Operations Dataset (v1) A parametric simulator-generated event stream for 60 simulated restaurant kitchens across 7 days. Designed for benchmarking demand forecasting, operational-state inference, and self-supervised representation learning on time-series event data. This is the publish-ready version. A hidden ground-truth state column (hidden_true_state) was used during the original simulator's classifier and is stripped here — only what a… See the full description on the dataset page: https://huggingface.co/datasets/Vita-Mojo/kitchensim-v1.
KitchenSim — Synthetic Restaurant Operations Dataset (v1)
A parametric simulator-generated event stream for 60 simulated restaurant kitchens across 7 days. Designed for benchmarking demand forecasting, operational-state inference, and self-supervised representation learning on time-series event data.
This is the publish-ready version. A hidden ground-truth state column (hidden_true_state) was used during the original simulator's classifier and is stripped here — only what a downstream consumer would see in real operational data is included.
Schema
Statistics
- 1,163,151 events
- 60 stores × 7 days (Mon 2024-01-01 → Sun 2024-01-07 UTC)
- ~16 MB compressed (zstd) parquet
- 193,837 orders generated
- Reproducibility: byte-identical given the master seed in the code repository generator config
Store types
Five archetypal kitchens with distinct operational profiles:
Dynamics
- Non-homogeneous Poisson arrivals modulated by hour-of-day (double-peak at lunch + dinner) and day-of-week (Friday peak, Sunday dip).
- State machine per store:
stable / degraded / collapsed, classified byqueue_depth / base_capacityandrecent_fulfilment_EMA / median_fulfilment. - Non-linear load_factor
1 + 0.6 * max(0, q/cap - 1)^1.5(capped at 5.0) drives the kitchen-spiral dynamic that's the signal of interest. - Stochastic disruptions per store per day: equipment failure (3%, capacity -40% for 8-15 min), demand spike (5%, arrival rate ×2 for 5-10 min), staff shortage (2%, capacity -25% for 30-90 min).
Loading
import pandas as pd
df = pd.read_parquet("hf://datasets/Vita-Mojo/kitchensim-v1/synthetic_ops_v1_publish.parquet")
print(df.head())Use cases
- Self-supervised pretraining of sequence encoders (this dataset trained Vita-Mojo/opswm1)
- Benchmarking demand-forecasting models with realistic daily/weekly seasonality
- Operational state-inference research (the simulator's classifier rule is documented in the model card so you can compare your inferred states to ground truth on the training split if you re-generate with the seed)
- Evaluation of representation learning for tabular event streams
Limitations
- Synthetic: dynamics are mathematically generated, not observed. The store-type taxonomy, arrival curves, and disruption mix are stylised abstractions of real-world patterns, not measured ones.
- No multi-week seasonality: only 7 days, so weekly cycles are observed once. The day-of-week multiplier captures relative patterns; absolute calibration to a real chain is undefined.
- No price/menu dynamics: prices are a simple
£3 + £4 × items_total + N(0, £1.50)formula. Real-world discounting and menu mix are absent. - No customer-side state: the dataset only contains kitchen-side events. Customer wait times, abandonments, complaints are not modelled.
License
Apache 2.0
