Matching staff rotas to the footfall around each store
Most chains staff every store to the same template. How to use each store’s busy hours and days to shape its rota, and how to check the result against your own sales.
To match a rota to footfall, give each store the shape of its own week: which part of the day carries most of the people around it, which day is busiest and which is quietest. Then move hours from the quiet parts to the busy ones, keeping the total roughly the same. Mobility Footfall provides that shape for every store in a chain at once, and you check the new rota against your own till data before making it permanent.
This article is for operations and HR teams in retail, food service, gyms and clinics who build rotas for many sites. It covers what to take from the data, a method for turning shares into shifts, an example, and the checks that keep the change honest.
Why one template fails
Chains often staff every store the same way because it is simple to plan. But a store next to a commuter station and a store in a residential high street can share a format and still face opposite days: one has its rush at 08:00 and goes quiet by 15:00, the other is calm all morning and full in the evening. The same rota is wrong for both, in opposite directions.
What to take from the data
- footfall_by_part: the share of the day in the morning, midday, evening and late night. This is the backbone of the rota.
- footfall_peak_hour: the hour that needs the most hands on the floor.
- busiest_day and quietest_day: where to add a shift and where to take one away.
- footfall_trend: whether the area is getting busier or quieter than the week before, which warns you before a change shows up in sales.
Use the last 30 days with all days for the main shape. If your stores are in very different kinds of area, also look at weekdays and weekends apart (see weekday and weekend footfall).
From shares to shifts: a simple method
- Start from the staff hours the store has today for an average day, say 40.
- Keep a floor: the minimum people needed in any open hour, whatever the footfall, for safety and service.
- Share the hours above the floor in proportion to footfall_by_part, for the parts of the day the store is open.
- Round to whole shifts and put the longest overlap around the peak hour.
- Move one shift from the quietest day to the busiest day if the gap between them is large.
- Run it for four weeks and compare sales per staff hour, queue times or complaints with the four weeks before.
An example from two cities
A made-up chain of opticians has a store by a suburban rail station in Mumbai and a store on a residential street in Vancouver. Each is open 09:00 to 21:00 and has 40 staff hours a day, with a floor of two people at all times.
| Mumbai, by the station | Vancouver, residential | |
|---|---|---|
| Peak hour | 09:00 | 18:00 |
| Morning share | 46% | 19% |
| Midday share | 25% | 28% |
| Evening share | 29% | 53% |
| Busiest day | Monday | Saturday |
| Quietest day | Sunday | Tuesday |
Made-up figures, to show the method.
With a floor of two people for twelve open hours, 24 of the 40 hours are fixed and 16 can move. In Mumbai, about 46% of those (roughly 7 hours) go to the morning, so a third person starts at 08:30 and a fourth covers the 09:00 peak. In Vancouver, about 53% (between 8 and 9 hours) go to the evening, so the extra people start after lunch and stay until close, and Saturday borrows a shift from Tuesday.
The arithmetic is deliberately plain. The point is not a perfect schedule but a rota that leans the right way for each store, built from evidence rather than habit.
Checks before you roll it out
- Footfall is presence around the store, not customers inside it. A store whose sales peak later than its street (because people browse first) needs staff at its sales peak; the street’s shape is a starting point.
- Keep the floor. No share of a quiet morning should leave one person alone in a store.
- Respect contracts and local rules on shift length and rest. The data shapes the rota; it does not override them.
- Watch the weather. A rainy weekend can empty an outdoor high street and fill an indoor one. The template Rainy weekend: staff the right stores adds that check.
- Each day’s footfall arrives about ten days late, so the rota follows patterns, not tomorrow’s crowd. The data starts on 17 October 2026 and does not yet cover Australia.
Let a flow refresh it every month
A monthly flow keeps every store’s shape current: a Schedule on the first of the month, your store table from My data, Mobility Footfall with Busy hours, Busiest days and Trend, a Calculated field that turns the shares into movable hours for each part of the day, and a Google Sheets app block that writes a row per store into the planning sheet. Store managers open the sheet and see their store’s suggested split beside last month’s.
Questions
Can footfall tell me how many staff I need?
No. It tells you when the area is busy, relative to the rest of the day and week. How many people that needs depends on your service, your sales and your own standards.
How many stores can I check at once?
The block handles up to 50 places a run. A bigger chain can split its stores into tables by region and run one flow for each.
Does it work for a 24-hour store?
Yes. The late night share covers 21:00 to 06:00, so a store open all night sees how much of its street’s day falls in those hours.
What if a store gets no footfall figures?
The block says why in footfall_note, for example no data in that area yet. Keep that store on its current rota until it has figures.