# Staff planning by guest forecast: how a network proposes the rota

> A restaurant in Cologne, 1,004 real days of weather and a small neural network: how a guest forecast becomes a rota that fits the actual rush.

## Sunday evening, the rota is waiting

In many restaurants next week's rota gets written on Sunday evening. The owner checks the weather forecast, the booking calendar, maybe last year's figures, and then hands out shifts by gut feeling. Or she skips all that and staffs every day the same: four in service, three in the kitchen, one person behind the bar.

Both usually work out somehow. But the fixed plan costs twice: on a warm Friday evening people are missing and guests wait. On a rainy Tuesday too many stand around, and the wages keep running.

I rebuilt exactly this problem in my demo application. It shows step by step how a business's own figures turn into a guest forecast, and the forecast into a proposed rota.

## The example: a restaurant in Cologne

The restaurant in the demo has 90 seats inside and 60 on the terrace. It opens Tuesday to Friday for lunch and dinner, all day at weekends, and is closed on Mondays.

The basis is **1,004 real days of Cologne weather** from January 2024 to September 2026, plus the real public and school holidays in North Rhine-Westphalia, carnival and the Christmas season. The guests, however, are made up. They follow patterns that are common in restaurants. With real till data it works the same way, only with your guests instead of invented ones.

The screenshots come from the German version of the demo.

## Step 1: What drives the guests

![Demo application, section on what drives the guests: bar chart of 1,004 days coloured by temperature, below it effects such as +49 % on warm dry summer days and +133 % on Saturdays compared with Tuesdays](https://fk-onlineservices.de/media/images/fkm-5-a67570aad6-2264.webp)

One look at the data shows how much demand swings. Each bar is one day, the colour shows the maximum temperature. In this data a warm, dry summer day brings about half again as many guests as a rainy one, the evening before a public holiday a good half more than a normal evening, and a Saturday more than twice as many as a Tuesday.

Nobody keeps all of these influences in mind at once, least of all on a Sunday evening. A model can.

## Step 2: The network learns

![Demo application, the neural network after 30 epochs and the error curve: deviation per day ± 12 % on 26 weeks the network has never seen](https://fk-onlineservices.de/media/images/fkm-6-93be713bab-2264.webp)

In the demo a small neural network learns right in the browser. For every half hour it gets 23 inputs: weekday, time of day, month, temperature, rain, sunshine, public holiday, whether tomorrow is a day off, school holidays, carnival, Christmas season. From these it has to predict how many guests arrive in that half hour.

It learned from 27 months, about 11,000 half hours. It is tested on the 26 weeks from April to September 2026 that it has never seen. In my run the forecast was **off by 12 % per day on average**. Because the network starts slightly differently on every training run, the figure varies a little; in my runs it was between 11 and 15 %.

That may not sound very precise, but it is the key point: a rota does not need to know whether 154 or 160 guests are coming. It is enough to know whether it will be a quiet Tuesday or a busy evening before a holiday.

## Step 3: Guests become staffing needs

![Demo application, week starting 1 June 2026 as day cards with forecast guests, Wednesday 154 guests, below it the curve per half hour](https://fk-onlineservices.de/media/images/fkm-7-5e3f833a0b-2264.webp)

For the week starting 1 June 2026 the network forecasts every day like a weather report. On Wednesday, the evening before Corpus Christi, it expects **154 guests**, most of them at 7:30 pm, with up to 65 in the house at the same time. In fact, 134 came that day.

The guests in the house turn into staffing needs, using figures each business sets for itself: how many guests one server looks after, how many meals a cook manages per hour, how long guests stay in the evening. At its peak, Wednesday needs 4 people in service, 3 in the kitchen and 2 behind the bar.

## Step 4: The proposed rota

![Demo application, proposed rota for Wednesday: shifts for service 1 to 4, kitchen 1 to 3 and bar 1 to 2, 9 people and 51 hours instead of 67 in the fixed plan](https://fk-onlineservices.de/media/images/fkm-8-e543b6508c-2264.webp)

The need per half hour becomes coherent shifts of at least three hours, at lunch and in the evening, some of them split shifts. For Wednesday that is **9 people and 51 hours. The fixed plan would have used 67 hours.**

Important: the proposal only contains roles such as "Service 1" or "Kitchen 2", no names. Who takes which shift is still decided by the person who knows the team.

## What it means for the whole week

![Demo application, figures for the week: 355 staff hours instead of 435, €1,680 less wage cost, with the fixed plan 21 hours with waiting times and 164 hours without work](https://fk-onlineservices.de/media/images/fkm-9-9d4606f478-890.webp)

Across the whole week the proposal needs **355 instead of 435 staff hours**. At €21 per hour that is **€1,680 less in wages in one week**.

The other side is more interesting, though. The fixed plan was not simply too generous, it put people in the wrong places: for **164 hours** staff stood around with nothing to do, and for **21 hours** people were missing because too many guests arrived at once. A forecast moves staff to where they are needed. That saves not only wages but also waiting times and stress.

## What if the sun comes out?

![Demo application, what-if: 30 °C and no rain on Wednesday, the network expects 227 guests and the rota grows to 12 people and 63 hours](https://fk-onlineservices.de/media/images/fkm-10-634551bb5f-2264.webp)

The Wednesday in the demo was rainy. What happens if the forecast changes? Without rain and at 30 °C the network expects **227 instead of 154 guests**, and the rota immediately grows to **12 people and 63 hours**. The terrace is open, and the evening before the holiday draws people in.

That is how you use it day to day: the weather forecast changes on Thursday, Saturday's plan recalculates, and you see at a glance whether someone else should come in.

## And the planning time? An example calculation

The demo does not measure how long a rota takes by hand, and that differs from business to business. So here is an example calculation with open assumptions that you can replace with your own figures:

| | By hand | With a proposal |
|---|---|---|
| Check weather, bookings, last year and estimate demand | 1.5 hours | not needed, the forecast does it |
| Hand out and agree shifts | 1 hour | 45 minutes: check the proposal, assign names |
| **per week** | **2.5 hours** | **45 minutes** |

Under these assumptions about 1¾ hours per week are freed up, which over a year of 50 working weeks comes to **almost 90 hours**. That is not a measurement but a calculation. The bigger lever is what the table does not show: the plan fits the actual rush better.

## What the network deliberately does not do

- **No employee data.** The forecast only works with guests per half hour, not with the performance of individual people.
- **No automatic assignment.** It proposes roles and times; a person decides who works.
- **No data leaving the house.** In the demo the network runs entirely in the browser. In a real application the data stays on a server in Germany.

## Not just for restaurants

The pattern works wherever demand fluctuates and staff are planned around it: in retail, doctors' practices, call centres, leisure pools or workshops. Instead of guests it is customers, patients, calls or jobs per half hour.

What it needs are figures you usually already have: till receipts or turnover per hour, bookings or appointments, ideally from one to two years. I add weather, public holidays and school holidays from public sources. More on the page [Staff planned to demand](/en/solutions/staff-planning/). You can try the exercise from this article yourself in the [demo application](/en/demo-access/).

## When is your busiest time?

Describe your business in three sentences and which figures you have. You get a **free initial assessment** of whether a forecast is worth it for you, and before you commission anything I check on an extract of your data how well your business can be predicted.

**[Describe your problem →](/en/contact/?topic=check&campaign=beitrag-personalplanung)**
