Fair-workweek compliance, priced as you schedule
Change a posted shift and Sofia tells you what it owes — before you save. Every premium lands in an append-only ledger that re-publishing cannot erase.
What is fair-workweek compliance software?
Fair-workweek (or “predictability pay”) laws require employers to give hourly staff advance notice of their schedule, and to pay a premium when a posted shift is later changed, cancelled, or added. Compliance software applies those rules to your actual schedule changes — recording what happened, when, and what premium it triggered — so the amount owed is calculated as you work rather than reconstructed months later.
The ledger is the record — not a report you re-run
Most tools reconstruct what you owe by diffing snapshots at period end. Sofia writes an event the moment a posted shift changes, in the same atomic batch as the change itself. If the write fails, the change fails; if the change lands, the premium is recorded.
Six event kinds: time change, reassigned, cancelled, added, short notice, clopening Append-only — re-publishing a week can never erase what is already owed Written in the same batch as the mutation, so the two cannot disagree Premiums accrue at publish, against the actually-posted state
What gets caught, and when
Every premium path is a pure, unit-tested function — the same code prices the warning you see before saving and the record you export later.
Before you save
Editing a posted shift shows the premium the change would owe — “this change owes ~$X” — while you can still reconsider.
At publish
The publish preview totals advance-notice, additions and clopening premiums for the whole week, so the number lands before you commit, not after.
On a clopening
Consecutive shifts on different days with rest below your threshold are detected from the latest end of any earlier shift, so overnight closers are not misclassified.
On a voluntary swap
A worker-initiated swap that a manager approves owes nothing — it is consensual. Sofia re-baselines the shift and deliberately writes no ledger event.
Jurisdiction presets
Pick a preset per location. Every preset carries 14-day advance notice; the numbers below are the mechanics Sofia applies.
| Jurisdiction | Clopening threshold / premium |
|---|---|
| New York City — Fast food | 11h · $100 flat |
| Seattle — Secure Scheduling | 10h · 1 hour of pay |
| Oregon — SB 828 (statewide) | 10h · 1 hour of pay |
| Chicago — Fair Workweek | 10h · 1 hour of pay |
| Los Angeles — Retail (FWWO) | 10h · 1 hour of pay |
These are approximations of each ordinance’s mechanics for planning purposes — estimates, not legal advice. Confirm the figures with counsel before relying on them for payroll.
Different rules at different sites
A multi-jurisdiction operator sets Seattle at one location and NYC fast food at another; a site with no pack inherits the organization default. Sofia stores which preset you chose, not just its numbers — several ordinances share identical thresholds, so the label cannot be reverse-inferred from the values.
Per-location rule packs, resolved over the org default The chosen preset id is stored as metadata, so the label survives Good-faith estimates issued per worker, flagged stale after a year Minor-labor caps: age computed against the shift date, not today
An export an agency can read
One period document combining both append-only trails: every recorded schedule change with the premium it owed, and every access-to-hours offer with who received it. Downloadable as CSV from the dashboard.
Change-by-change premium detail, not a single total Access-to-hours offers evidencing part-timers were offered hours first Payroll export splits overtime at 1.5× per ISO week, approved punches only Payroll priced at the employee’s current wage; live labor cost uses the rate snapshotted on each punch
Questions, answered
Is this legal advice?
No. Sofia implements the mechanics of each ordinance — thresholds, premium formulas, notice windows — as configurable estimates for planning. The figures are approximations and should be confirmed with your own counsel before they drive payroll.
Which jurisdictions are supported?
Five presets ship today: New York City fast food, Seattle, Oregon, Chicago and Los Angeles retail. Every value in a preset is editable, so a jurisdiction that is not listed can be configured manually with its own thresholds and premiums.
What happens if I re-publish a week?
Nothing is erased. The ledger is append-only and premium accrual is idempotent — re-publishing a week does not double-book a premium, and it cannot remove one that was already recorded.
Do worker-initiated swaps owe predictability pay?
No. A swap a worker offers and a teammate picks up is voluntary, so Sofia treats it as exempt: the shift is reassigned and its published baseline is updated, but no ledger event is written. A manager reassigning a shift is a different case and does accrue.
When is the premium calculated?
Twice, with the same function. Once as a warning before you save an edit to a posted shift, and once at publish, against the state actually being posted. Additions accrue at publish rather than at draft-create, so a draft the worker never saw never books a premium.
Does this cover minor-labor rules too?
Yes, separately. FLSA-style caps — daily and weekly hour limits, earliest and latest hours, school-day versus non-school-day — are enforced as hard constraints by Auto-Fill and surfaced as warnings on the schedule. A worker with no date of birth on file fails open rather than being wrongly excluded.
Explore more of Sofia
Still short after Auto-Fill? Cover is a waitlist, not a live pool.
See CoverGet 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.