Skip to content
Features

Staff to your pattern, not your memory

A recency-weighted forecast of staffed hours by weekday and position, 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. So the useful unit is the weekday-and-role pair. Sofia averages the staffed hours you actually ran for each weekday and position across recent weeks, weighting recent weeks more heavily than older ones, and uses that as the expectation for the week you are building.

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 and position, 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 forecast, scheduled hours, and coverage percentage
  • 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
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 per weekday and position. Projected sales are a separate figure you enter, used for labor percentage rather than for the forecast.

Is the forecast hourly?

No. It projects expected staffed hours for a weekday and position, not a curve across the trading day. That matches the granularity most hourly rosters are actually built at.

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

CoverWaitlist

Still short after Auto-Fill? Cover is a waitlist, not a live pool.

See Cover
She answers the phone$200

Get a store number, or let us show you around.

$200 a store. The line is boarding. Or open a workspace and run the roster today.