Skip to content
Features

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.

Fair-workweek compliance

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.

1

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 presets
JurisdictionClopening threshold / premium
New York City — Fast food11h · $100 flat
Seattle — Secure Scheduling10h · 1 hour of pay
Oregon — SB 828 (statewide)10h · 1 hour of pay
Chicago — Fair Workweek10h · 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.

2

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
3

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
FAQ

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

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.