Skip to content
Features

Staff to your pattern, not your memory

A recency-weighted forecast of staffed hours by weekday, position, and daypart, drawn from your own history — and shown as coverage while you build, not as a report afterwards.

Demand forecasting

How does demand forecasting work for shift work?

Shift demand is strongly periodic: a Friday resembles other Fridays far more than it resembles the Thursday before it. Sofia averages the staffed hours you actually ran for each weekday, position, and daypart across recent weeks, weighting recent weeks more heavily than older ones. The day is four bands — opening, lunch, afternoon, and closing — not an hour-by-hour curve.

1

Recent weeks count more

Every historical week contributes, but its influence decays — with a three-week half-life, a week from three weeks ago counts half as much as last week. A seasonal shift or a new trading pattern works its way into the forecast within a few weeks instead of being diluted by a year of stale history.

  • Exponential recency weighting, three-week half-life by default
  • Grouped by weekday, position, and daypart, so seasonality is intrinsic
  • Built from staffed hours you actually ran
  • Pure and deterministic — the same history always gives the same forecast
2

Shown where the decision happens

The forecast is not a separate report. Each day of the schedule shows coverage against its expected hours as you build, so an understaffed Saturday is visible while you are still able to fix it.

  • Per-day total, plus opening, lunch, afternoon, and closing
  • Sits alongside labor cost, so coverage and spend are read together
  • Updates as you add, move or remove shifts
  • Included on every plan — never a premium add-on
The product
3 weeks
default recency half-life
weekday × role × daypart
forecast granularity
deterministic
same history, same forecast
$0
included on every plan
FAQ

Questions, answered

Does the forecast use my sales data?

No. It is built from your shift history — the staffed hours you actually ran by weekday, position, and daypart. Projected sales are a separate figure you enter, used for labor percentage rather than for the forecast.

Is the forecast hourly?

No. It projects four dayparts — opening, lunch, afternoon, and closing — for each weekday and position. It is not an hour-by-hour curve.

Can I leave a holiday out of the average?

Yes. Pin that week as a closure, a holiday, a promo, or weather. The schedule says the week was excluded. Pinning the week you are looking at does not change the forecast on screen, because the number is built from earlier weeks.

Does it detect trends?

Not as a separate component. Recency weighting means a sustained change moves the forecast within a few weeks, but there is no explicit trend term and we will not claim one.

How much history does it need?

It works from the weeks you have; more history simply makes the weighted average steadier. A new location produces a usable forecast once it has run a few comparable weekdays.

Is forecasting a paid add-on?

No. It is included on every plan. Charging separately for the number that tells you how many people to schedule has always struck us as backwards.

Is this machine learning?

No. It is a recency-weighted moving average — a published formula you can reason about and reproduce by hand. That is a feature: you can check it, and it never surprises you.

Explore more of Sofia

Information pack

Request a free information pack

A practical overview of Sofia, activation, and A$200-per-store pricing for your operation — sent straight to your work inbox.

  • Call-offs by call or by text, from the roster rules you set
  • How the first store is activated
  • A$200 per store per month

Optional. The site or company this pack is for.

We use these details to send your pack and follow up on your request. Privacy