Customers Who Give Up Take Their Orders With Them

A default game used to stop serving almost entirely around the six-minute mark, and adding staff didn't help. Two things were wrong, and both are fixed.

  • Abandoned orders stayed live. A guest who gave up waiting still had their order on the board, so a cook still cooked it and a server still carried it out to an empty chair. Now leaving cancels the guest's order and any not-yet-started work for it. A cook mid-recipe stops at the next step, and a server already carrying the plate drops it rather than delivering it to nobody. Food that was finished but never collected is binned at the pass.
  • The kitchen only ever cooked for people about to leave. Once more guests were arriving than two cooks could feed, cooks always picked up the oldest ticket, which by then was already near its guest's patience limit, so it was cancelled partway through. Both cooks stayed busy while finished orders dropped from about 2.8 a minute to about 0.2. Cooks now skip a ticket whose guest will have left before it could reach them. How long an order takes is learned from real orders as the game runs, not guessed.
  • Result, same default game and crew: served by minute 15 went from 14 to 38, and guests lost from 51 to 22. Across ten different random seeds the game now serves 10–14 more guests between minutes 6 and 10, where it used to serve 0–1.
  • Four new automated tests cover this, including one that fails if a default game stops serving after minute 6. An older test comparing a good and a bad kitchen layout was only ever passing 1 served vs 0; it now compares ten-minute runs across three seeds, where the good layout clearly wins (53 vs 21).

More from CHEF! · See this in the live feed