How the data fits together#

For: Manager | Admin You’ll need: Nothing.

Shiftavo is built from a small handful of records that stack on top of each other. Once you can see the chain, every screen in the product becomes familiar — each one is just a different window into it. This article walks the chain once, left to right.

The chain#

Location  ─┐
           ├─► MLP entry ─► Shift  ─► Assignment ─► Time entry ─► Payroll
Person ────│
           │
Position ──┘

Read it left to right: a location plus a position define a job you might schedule — cashier at the Main store. An MLP entry — short for Member–Location–Position — says a specific person may work that job. A shift is one block of that job on a date, and an assignment puts a person on it. Once the shift has run, the assignment carries the clock data — the time entry — and that’s what payroll reads.

Every link in the chain is enforced. You can’t assign a person to a shift they have no MLP entry for, you can’t confirm hours against an unpublished shift, and you can’t edit hours once they’re approved.

The records, one by one#

Location#

A physical site — restaurant, store, ward. Each location has its own time zone, statutory holidays (seeded automatically from its country and state), and work policy, which picks the break policy for its breaks. Almost everything else is scoped to a location. See Locations.

Position#

A role you schedule — cashier, line cook, registered nurse. Positions are defined once at the company level and are available at every location by default; you can restrict a position to a subset of locations if you need to. Positions carry headcount thresholds (minimum, target, maximum) that drive the coverage grid, and optional skill requirements. Whether a specific person can work a position at a specific location is a separate question — that’s what the MLP entry answers. See Positions.

Person#

A team member: name, email, employment type, hire date, hourly rate, plus the locations they belong to. A person without at least one location can’t be scheduled anywhere. See People.

MLP entry (Member–Location–Position)#

One MLP entry says this person can work this position at this location. Without that entry, the person won’t appear in the candidate list for any shift at that location-and-position pair. Each entry can also carry an override hourly rate.

You can create and edit MLP entries from three places — whichever matches how you’re thinking about the problem:

  • From a location — “who can work which positions at this site?”

  • From a person — “which positions can this person work, and where?”

  • From a position — “who can work this role, and where?”

It’s the same underlying record from any of the three. See Manage the MLP block on a person.

Skill#

A qualification — food safety, forklift, RN license. Skills attach to people (with optional expiry dates) and to positions (as requirements). Validation rejects an assignment if the person lacks a required skill, or if their certification has expired. See Skills.

Shift#

One block of work: a date, a start and end time, a location, a position, and optionally an area inside that location. A shift can exist with nobody on it yet — that’s a gap, surfaced on the coverage grid. A new shift is born Draft: visible to planners, invisible to the team. See Shifts.

Assignment#

One person × one shift. Creating an assignment is what staffs the shift; deleting it leaves the shift unstaffed. An assignment has no draft/published state of its own — its visibility follows the shift, so publishing the shift is what shows it (and everyone on it) to the team. What an assignment carries is the person’s acceptance answer (if shift acceptance is on) and, once the shift is over, its worked-hours status. See Assignments.

Time entry#

The record of what was actually worked on an assignment: clock-in, clock-out, breaks, and attendance flags. Time entries are the source of truth for hours, overtime, and pay — they’re what Shiftavo hands to payroll. See Timesheet.

One row through the chain#

Location Zürich and position Bartender define the job. An MLP entry (Sara, Zürich, Bartender) says Sara may work it — with an override rate of CHF 28.00. You create a shift for Friday 12 September, 17:00 – 23:00, Zürich, Bartender, and assign Sara. She clocks 16:58 – 23:04 with a 30-minute break, so the time entry records 5.6 worked hours, and payroll reads 5.6 h × CHF 28.00. Break any link — delete Sara’s MLP entry for that location and position — and she never appears in the assignment picker for such a shift.

Two fields worth getting right early#

Most things can be edited later without consequences. Two can’t:

  • Country and state on each location — they seed the statutory holidays.

  • Hire date on each person — it drives leave accrual (proration and service-year boundaries). Getting it wrong rewrites months of leave balances later. Time-comp accrual is calendar-year based and doesn’t use the hire date.

Verify it worked#

You can create a shift end to end without being stopped: Company → Locations has a location, Company → Positions a position, and Company → People a person whose ‘Assignments’ panel lists them for that position at that location. If the assignment dropdown on a new shift is empty, one of the three is missing.