Two shifts and nobody is bound to one
"We have two shifts, A and B, and a man comes to whichever one he comes to. At month end tell me how many times he came on A and how many times on B."
What is really being asked
Two different things, and only one of them can be done today.
- "Record which shift he actually turned up for." This cannot be done. No screen has a field for it and no punch carries a shift.
- "Count, per shift, at month end." This can be done, but it counts the shift he was expected on, not the one he worked.
So read the rest of this page before you promise him anything.
Why it cannot be done
A punch is a time in and a time out against a date. There is no shift on it, and there is no screen that lets you put one there. Employee Attendance is the screen for correcting a day, and it corrects the dates, the times, the overtime and a Present tick. It has no shift field.
What the day is measured against is worked out, every time, along one chain and no other:
the man's organization assignment, then the Employee Policy Profile named on it, then the Calendar named on that profile, then the Calendar Working Time line whose dates cover the day, then the Time Template named on that line, then that template's line for the weekday.
Note what is not in that chain: Shift Pattern, Shift Roster and Shift Change Request. They are planning documents. Nothing in attendance and nothing in payroll reads them. See shift versus time template.
The practical consequence, and it is the one that bites: a man whose Calendar says Shift A, who actually works Shift B, is measured against Shift A. He walks in at two in the afternoon for a six in the morning shift, and the system reports him Late, or Absent. Then somebody spends a week looking for a bug.
What you can actually deliver
Two things, and you should show the client both and let him pick.
A per-shift month-end count of the planned shift. The Attendance Detail report and its summary twin carry a column headed Shifts, and that column is the time template name that came out of the chain above. Group the report on it and you have the count he asked for. It is truthful only to the extent that each man's Calendar genuinely says which shift he was on.
A live per-shift board for today. The Shift Board tile groups by the same time template name and shows, per shift, planned, punched in, late, absent, on leave and open requests. It reads today and only today, so it is a morning board, not a month-end count.
The nearest thing to what he asked for
If the client will accept recording the shift in advance per period rather than capturing it per day, this works and uses only screens that exist:
Build one Time Template per shift.
SHIFT-Awith Time In 06:00 and Time Out 14:00,SHIFT-Bwith 14:00 and 22:00, seven weekday lines each, the weekend ticked on the days that are off.Build one Calendar per shift,
FACTORY-AandFACTORY-B, each with a Calendar Working Time line naming its own template and covering the dates.Build one Employee Policy Profile per shift, each naming its calendar.
Put each man on the profile for the shift he will work this month, on Employee Organization Assignment.
When a man moves from A to B, open a new organization assignment dated from the day he moves. The screen closes the previous one the day before for you.
Now the Calendar tells the truth, the measurement is right, and the Attendance Detail report counts correctly per shift. The cost is that somebody has to maintain the assignments. For a five hundred man factory where men genuinely float day to day, that cost is real and the client should hear the number before he agrees.
Where two clients differ
| Men genuinely float | Men float but settle for a month | |
|---|---|---|
| Can the actual shift be captured | No | Not needed |
| What drives measurement | One calendar for everybody, so one shift's times | A calendar per shift |
| What the month-end count means | Nothing useful per shift | A true per-shift count |
| Who maintains it | Nobody, and the lateness figures are wrong | HR, one assignment per man per change |
| What to tell the client | This is a gap. Record it. | This works. Price the admin. |
If the client is in the first column, say so plainly and write it down. See also two shifts and each man is bound to one, which is the configuration the other kind of client needs.
How you prove it worked
- Pick a man you have put on the Shift B profile. Open Employee Attendance for a day he worked. The Schedule Time In must read 14:00, not 06:00. That field is the proof the chain resolved to the right template.
- If Schedule Time In is blank or wrong, the fault is upward in the chain: the policy profile, its calendar, or the calendar's date range. It is never the roster.
- Run the Attendance Detail report for the month and group on the Shifts column. The two totals must add up to the headcount multiplied by the working days.
- Check one man's late count by hand against his punches. If a man who came on time reads Late, he is being measured against the other shift.
What will go wrong
- The roster is built and everybody assumes it drives attendance. It does not. The roster is read by one report and nothing else. Hours get spent on a document that changes no number.
- One calendar is used for both shifts because it was quicker. Every Shift B man then reads eight hours late, every day, and payroll deducts for it.
- The policy profile has no calendar on it. Attendance reports come back completely blank although the punches are there. Check the calendar on the profile before anything else.
- The client is told the actual shift is captured. It is not. This is the one sentence on this page that must survive into the implementation document.