ShiftlyGuides

Track labour cost with tags

Set up categories and tags, give each position its defaults, and see how shifts, timesheets, leave, payroll, reports and exports carry them.

Tags let you see where your labour cost goes and filter your roster by it. They used to be called cost centres, and they still work the same way. You group them into categories, each one a layer you report by, such as Department (Kitchen, Front of house) or Venue job (one per venue). Every shift and timesheet carries one tag per category, filled in from the position's defaults, so nobody has to pick them by hand. This guide covers setting them up, how shifts, timesheets and leave get them, posting to MicroKeeper by job, and the reports, filters and exports that use them.

Who this is for

Owners and managers using the Shiftly web platform.

  • To open the Tags page you need access to business settings. To add or change categories and tags you need permission to edit settings. Without it the page shows View only.
  • To set a position's defaults you need permission to edit the roster at that location.

Before you start

  • Open the account menu (your initials, top right) and select Tags. You can also open Business settings and select the same card there.

How the pieces fit together

  • A category is a layer you report by. You name it, so it can be anything: Department, Venue job, Event. You can have up to 3 active categories.
  • A tag belongs to one category, for example Kitchen in Department. It can be used at every location, or limited to some.
  • A position has a default tag in each category. A shift in that position picks it up automatically.
  • A shift carries one tag per category. You can change any of them on the shift, and change it back with Use default.

For example, with a Department category and a Venue job category, a Chef shift at Massimo might carry Kitchen and Massimo BOH, both from the Chef position's defaults.

See your tags

The page lists each category as its own section, in order, with its tags below. Each row shows the tag's Code, the locations it's Limited to (or All locations) and, when it pairs with a payroll provider, what it Pairs with. The first category is marked first category. Archived categories sit at the bottom with Restore category.

The Tags page with a Department section listing Kitchen and Front of house at all locations, a Venue job section paired with MicroKeeper jobs listing Massimo FOH, Massimo BOH (not paired, with a Pair job button) and Massimo Events, and an archived Event category below

Select the arrow at the end of a row to open that tag's report. To see the hours and cost that have no tag in a category, open the category's ⋮ menu and select View hours with no that category, for example View hours with no Department. See Reports and exports.

Add a category

Name it and choose its order

Select Add category. Give it a Category name, then choose its Order: Last, First or after another category. Select Add category to save.

The Add category dialog with an empty Category name field, the Order set to Last and the note "A column on Positions, a field on every shift and a roster filter. 2 of 10 used."

Know what it adds

Each category becomes a column on Positions, a field on every shift and timesheet, and a filter on the roster. Your first category turns tags on for the business; until then there's nothing to fill in.

Where only one category fits, Shiftly uses the first: roster shift cards show the code of the shift's tag in the first category, and the Unassigned report starts on it.

Two categories can't share a name, and you can have up to 3 active ones. Archive one to add another.

Add a tag

Open the form

Select Add tag on the category's section.

Fill in the details

  • Name (required). Two tags in the same category can't share a name, whatever the capital letters.
  • Code (optional). A short code, such as MBOH. It's used in exports, and on roster shift cards for the first category.
  • Category (required). Change it to move the tag to another category.
  • Colour, used to pick it out across the app.
  • Limited to. Leave it empty to use the tag at every location, or add the locations it belongs to. A venue job usually belongs to one location. A limited tag only appears in the pickers and filters for shifts at those locations.
  • MicroKeeper job. Shows for the category you post to MicroKeeper by. See Post to MicroKeeper by job.
  • Xero tracking option. Shows when your business is connected to Xero. See Pair tags with Xero tracking options.
  • Budget ($) (optional), shown only if you can see pay. It's used on the tag's report.

The Edit Massimo BOH dialog in the Venue job category, with Name, Code MBOH, Category, Colour, Limited to Massimo, MicroKeeper job set to Not paired and an empty Budget field, and an Archive tag link

Save it

Select Add tag (or Save changes when editing).

Edit, archive or restore

  • To change a tag, select Edit on its row. If you post to MicroKeeper by job, a tag that isn't paired with a job yet shows Pair job instead, which opens the same form.
  • To archive a tag, open it and select Archive tag, then confirm. It leaves pickers, defaults and filters. Shifts, timesheets and reports keep it, marked archived. Archived tags stay in their section with Restore.
  • To rename, reorder or archive a category, use the ⋮ menu on its section: Edit category or Archive category. Archiving your last category turns tags off; shifts, timesheets and reports keep their values. Restore category brings an archived one back.

There's no delete, so past shifts and timesheets always keep their tags.

Give each position its defaults

Defaults are what make tags automatic. Set them once and every new shift in that position picks them up.

Open Positions for the location

Open People and choose Positions, with the location you want selected at the top left. The grid has one column per category, and each cell is that position's default at this location. Manage categories at the top opens the Tags page.

The Positions grid for Massimo with Department and Venue job columns, where Waitstaff defaults to Kitchen and Massimo FOH, Bartender uses business-wide defaults, Chef defaults to Kitchen and Massimo BOH and several positions show No default, and a footer reading "Department: 3 without a default · Venue job: 5 without a default"

Pick a default in each cell

Open a cell and choose a tag. It saves straight away. The list only offers tags you can use at this location. Choose No default to clear it, or, when the position has a business-wide default, Business-wide default to fall back to that. A position that isn't used at this location shows Not used here.

The Venue job cell for Runner open, offering No default, Massimo FOH, Massimo BOH and Massimo Events

The line under the grid counts how many positions still have no default in each category.

Decide about upcoming shifts

If shifts that haven't started yet still use the old default, Shiftly asks Apply to upcoming shifts? The button names the count, for example Apply to 4 shifts: select it to move those shifts to the new default, or select Keep existing shifts to leave them. Only shifts at this location whose value came from the default change. A tag someone picked by hand on a shift is never changed.

Set a business-wide default

To give a position the same default at every location, pick All locations in the location menu and set it on the Positions grid, or edit the position (row ⋮ menu, Edit) and use Business-wide tag defaults. A location's own default on the Positions grid wins over the business-wide one.

The position form for Bartender showing the Business-wide tag defaults group, "Used at every location unless a location sets its own on the Positions screen.", with Department set to Front of house and Venue job set to Massimo FOH

How shifts and timesheets get their tags

When a shift is created, Shiftly fills each category in this order:

  1. The tag set on the shift itself, if there is one.
  2. The position's default at the shift's location.
  3. The position's business-wide default.
  4. Otherwise the category stays empty. The shift still saves.

A default that can't be used at the shift's location (limited to other locations, or archived) is skipped.

See and change them on a shift

The shift form has one field per category. The position's default is marked (default), so a field reading Kitchen (default) is following the default.

The Edit an internal shift form with Department set to Front of house and Venue job set to Massimo Events, and the shift summary reading "Posts to MicroKeeper as Massimo Events."

Change one

Open the field and pick another tag. It's saved with the shift as one you set, so it stays put if the position or location changes later.

Go back to the default

A value you set has a Use default option at the end of the list. Pick it to hand the field back to the position's default.

The Venue job field open on a shift, listing None, Massimo FOH (default), Massimo BOH, Massimo Events (selected) and Use default

When you change a shift's position or location, the values that came from defaults follow the new position and location, and the values you set stay as they are. If a category has no tags you can use at the shift's location, its field is greyed out and says so when you hover it.

When your business posts to MicroKeeper by job, the shift summary tells you how the shift will post, for example Posts to MicroKeeper as Massimo Events., or warns you if the job category is empty or its tag isn't paired yet.

Timesheets

  • A timesheet created from a rostered shift copies the shift's tags. Clock-ins with no rostered shift, and timesheets you add by hand, are filled from the position's defaults in the same order.
  • Until a timesheet is approved, it keeps following its shift's defaults: if you change the shift's position, the timesheet's default values change too. Values someone set on the timesheet stay. A tag you pick by hand on the shift isn't copied across, so change the timesheet as well. Approved timesheets are left alone.
  • In Create timesheet, the category fields read Choose a position first until you pick a position, then fill from its defaults.

The Create timesheet dialog with Chef chosen as the position, and Department showing Kitchen (default) and Venue job showing Massimo BOH (default)

  • In a timesheet's Timesheet tab you can change its tags the same way as on a shift. On an approved timesheet the fields are greyed out: select Reopen for editing first, which puts it back to pending.

The Timesheet tab of an approved timesheet, with an Approved and locked notice and a Reopen for editing button above the Position, Date, Department (Kitchen, default) and Venue job (Massimo BOH, default) fields

Set each employee's home venue

Leave isn't worked at a venue, so Shiftly costs it to the employee's home venue. Open the employee from People, then the Employment tab, and pick their Home venue from the venues they work at.

The Employment Details tab with Home venue set to Massimo and greyed out, with the tooltip "Set automatically because Ada works at one venue. Leave is costed to it."

  • Someone who works at only one venue gets it set automatically.
  • For someone who works at two or more venues, you choose. If your business posts to MicroKeeper by job and it isn't set, the tab warns No home venue yet, and their leave is held back from posting until you set it. Their shifts aren't affected.

Post to MicroKeeper by job

If your business uses MicroKeeper payroll, you can post hours to MicroKeeper jobs by tag. You pick one category, usually your venue jobs, as your job category, and pair each of its tags with a MicroKeeper job.

Open the Tags to jobs step

Go to Integrations, select Manage connection on the MicroKeeper card, then Tags to jobs.

Choose the category that maps to jobs

Shiftly starts on the category you saved before, or your first category. To change it, use Category that maps to jobs beside the heading. Its tags are listed by the locations they're limited to, each with a status: Paired, Suggested (Shiftly matched a MicroKeeper job with the same name), Unpaired, or Created.

Pair tags with MicroKeeper jobs, with Venue job chosen as the category, "2 paired · 1 suggested · 0 unpaired", and the Massimo section listing Massimo BOH (Suggested), Massimo Events and Massimo FOH (Paired) with an Accept 1 suggested button

Pair each tag

Pick a job in the MicroKeeper job column. Each job shows the MicroKeeper location it's linked to; clock times post with that location. To take every suggestion in a section at once, select Accept 1 suggested (the button counts them).

If there's no matching job, Create "…" in MicroKeeper… at the bottom of the list sets up a new job (with a Job name and the MicroKeeper location to link) and pairs it.

Save

Select Save and next. This is when pairings are saved and any jobs you chose to create are added to your MicroKeeper account. You can finish setup with some tags unpaired; their hours are held back from posting until they're paired.

Creating a job writes to your MicroKeeper account straight away when you save. Check the name before you select Save and next. You can edit the job in MicroKeeper afterwards.

Once a job category is chosen, the Pair locations step is optional: hours already carry a location through each job, so pair Shiftly locations only if your MicroKeeper location reports need a different one. Connect positions can be skipped too. Both have Skip this step.

You can also pair one tag at a time from the Tags page: its MicroKeeper job field does the same thing.

Check what's held back before you post

When you post to MicroKeeper, the preview says posts by your job category and splits the timesheets into Ready to post and Held back. Held-back items don't stop the rest posting: everything else posts now, and fixed items post next time.

The Post timesheets to MicroKeeper preview for 28 Sep to 4 Oct 2026, "posts by Venue job", on the Held back tab with filter chips for All, No Venue job, Not paired and No home venue

Use the chips to see one reason at a time. Each held-back row has a link to fix it:

ReasonWhat it meansHow to fix it
No job category, for example No Venue jobThe timesheet has no tag in your job category. For leave, the position the employee works most at their home venue has no default there, or they haven't worked there in the last four pay periods.Open shift opens the timesheet; set the tag (reopen it first if it's approved, then approve it again). For leave, Open positions and give that position a default at the home venue.
Job category not paired, for example Venue job not pairedThe timesheet's tag isn't paired with a MicroKeeper job.Pair job opens the Tags to jobs step.
No home venueThe employee has leave in the period but no home venue.Open employee opens their Employment tab at Home venue.

Approved leave posts to the job of the employee's home venue, using the default of the position they worked the most hours in there over the previous four pay periods.

Pair tags with Xero tracking options

If your business uses Xero, each Xero timesheet line can carry a tracking option. Pair the tags in one category with the options of one Xero tracking category, and every line posts with the option paired with its tag. See Pair tags with Xero tracking options.

Filter the roster by tag

The roster's Filter panel has a section for each category, listing the tags you can use at the selected location. Pick one to see only the shifts that carry it. See Find your way around the roster.

Reports and exports

  • A tag's report. Select the arrow on its row to see its hours, cost, staff and budget. See See how a tag is tracking.
  • Unassigned. View hours with no … in a category's ⋮ menu shows the hours and cost with no tag in that category. Switch category with the menu beside the date range.

The Unassigned report with the Venue job category and Last week selected, showing total cost, budget remaining, profit margin, actual hours, hours variance and staff

  • Exports. The Every shift timesheet export has one column per active category, named after the category, showing each timesheet's tag code (or its name when it has no code).

On the Shiftly website

Job costing

Wage cost by project and centre.

On this page