Roster
Publish, posted edits, and predictability pay
Publish posts the week. Editing a posted shift warns before save if the change owes a premium. Premiums are recorded on an append-only ledger so a later publish cannot erase them.
Publish posts the week to the people on it. Until you publish, the grid is a draft. After you publish, edits are posted changes, and posted changes are what fair-workweek ordinances care about.
Publish the week
- Finish the week — hand-assign or Auto-Fill.
- Click Publish.
- Read the preview. If fair-workweek is on, the preview flags shifts inside the advance-notice window.
- Confirm.
Staff then see the week on My shifts. Notifications deep-link to the shift.
Editing a posted shift
Changing a posted shift (time, person, cancel, add) can owe predictability pay. The editor warns before save: this change owes about $X.
The amount is an estimate from your location's rule pack (flat dollars or hours of pay, cancellation percent, clopening). It is not legal advice and not a payslip.
The change ledger
Premiums are written to an append-only scheduleChanges ledger the moment a posted shift is changed, added, or cancelled. Re-publishing cannot erase what is owed. That is the point of a ledger instead of a snapshot.
If you undo a draft Auto-Fill before publish, there is no premium. If you move a posted person, there is.
Approving a pickup after posting
When a worker claims an open shift that is already posted, approving the claim assigns them and records an added premium on the same ledger. Self-service does not get a free pass around predictability pay.
What the preview is for
The publish preview is the last cheap moment to see:
- Short-notice posts (inside the advance-notice window)
- Clopening pairs
- Labor vs the sales target for the week
Fix the week, then publish. After that, every click is a ledger row.
Export
Managers can export an audit-ready record of the premiums. Use it with payroll CSV; Sofia does not push pay items into Xero or MYOB.