Cross-Day Working Time
We360.ai Cross-Day Working Time — how a working day is defined, how overnight shifts stay on one date, every setting and rule in detail, and what it changes in attendance, aggregates, and reports.
Feature Path: Settings → Workplace → Cross-day Working Time · Reports → Report Type → Cross-day shifts · Reports → Attendance → Cross-Day Attendance
Most attendance and productivity numbers in We360.ai are grouped by working day. By default a working day is a calendar date, which suits day shifts but splits a night shift in two: someone who works 10:00 PM to 6:00 AM shows a short evening on one date and a short morning on the next.
Cross-Day Working Time redefines the working day as a stretch of work rather than a date. Activity that continues past midnight stays attached to the day the shift started, so an overnight shift reads as one working day with its full hours.
This page explains what a working day is, exactly how the rules decide when one ends and the next begins, and where the working day is used. For step-by-step setup, see Reporting on Shifts That Cross Midnight.
The working day without cross-day
With the setting off, the working day is the calendar date in the employee's own timezone. The timezone comes from the employee's shift; if no shift timezone is set, the device's timezone is used. Two employees in different timezones on the same team each get their own local dates.
Within that date:
Punch-in is the first tracked activity of the day (or a manual, mobile, or biometric punch-in).
Punch-out moves forward with every new activity until the day ends. The day ends at midnight in the employee's timezone, when Auto Punch-Out fires, or when the employee punches out.
Any activity after midnight starts a new working day on the new date.
For a day shift this is exactly right. For a night shift it produces two half-days, low average hours, and late-arrival flags that make no sense.
The working day with cross-day
With cross-day on, every piece of tracked activity is labelled with a work date: the local date on which the current working day started. The desktop agent assigns the work date at the moment activity is recorded, using the rules below, and the portal groups everything by that label instead of the calendar date.
The settings
All settings live under Settings → Workplace → Cross-day Working Time and apply to the whole organization. There is no per-team, per-user, or per-shift override.
Cross-day Working Time
Master switch. Off means every working day ends at midnight, exactly as before.
Off
—
Carryover Limit
Length of the base period. While a working day is younger than this, nothing ends it, however long the gaps.
16 hours
1 to (24 − Grace) hours
Carryover Grace
Length of the grace window after the base period. Activity here still belongs to the same working day as long as the employee has not been away too long.
4 hours
0 to (24 − Limit) hours
Idle Gap Threshold
How long an employee must be away (no activity recorded at all) for that gap to end the working day, once the base period is over.
4 hours
1 to 12 hours
Work-day Reset
Elapsed time applies the limits above strictly. Calendar date additionally refuses to end a working day while it is still on the date it started.
Elapsed time
—
The Carryover Limit and Carryover Grace together can never exceed 24 hours. Whatever is left of the 24 hours after both is the beyond window.
The three phases of a working day
Every working day starts at an anchor: the first activity after the previous working day ended. From the anchor, the day passes through three phases, and the working day can never last more than 24 hours in total.
Base period (first 16 hours by default). The working day is sticky. Any activity in this phase belongs to the day, no matter how long the employee was away. A six-hour break in the middle of a shift does not split it.
Grace window (the next 4 hours by default). Activity here still belongs to the same working day if the gap since the last activity is shorter than the Idle Gap Threshold. The first gap at or above the threshold after the base period ends the day; the next activity anchors a new one. Working at any point in the grace window also unlocks the beyond window.
Beyond window (whatever remains before 24 hours). Activity here belongs to the same working day only if the employee actually worked during the grace window and the gap is still shorter than the threshold. An employee who stopped before the grace window and returns much later gets a new working day. This stops a stray late-night login from stretching yesterday's shift.
The 24-hour cap. Regardless of any setting, activity 24 hours or more after the anchor always starts a new working day. This is the only rule Work-day Reset → Calendar date cannot override.
Working-day decision flow
Use this flow to see how the desktop agent assigns each new activity to the current working day or starts a new one. The checks follow the documented order; Calendar date reset can preserve the current day only where the idle-gap or beyond-window rule would otherwise end it.
In summary, activity remains with the open working day through the base period and qualifying grace or beyond-window work, unless the 24-hour cap or an unsuppressed end-of-day rule starts a new one.
The rules in order
When a new piece of activity arrives, the agent checks these rules top to bottom and applies the first that matches:
No working day open yet (first run, or a very old last activity) → start a new working day here.
24 hours or more since the anchor → new working day. Never suppressed.
Still inside the base period → same working day, whatever the gap.
Past the base period and the gap is at or above the Idle Gap Threshold → new working day.
Inside the grace window with a short gap → same working day, and the beyond window becomes reachable.
Inside the beyond window with a short gap → same working day if the grace window had work, otherwise a new working day.
Work-day Reset is Calendar date and the activity is still on the same local date as the anchor → rules 4 and 6 cannot end the day. Rule 2 still applies.
Worked examples
All examples use the defaults: 16-hour limit, 4-hour grace, 4-hour gap threshold, Elapsed time reset.
Shift 8:00 PM Monday to 3:00 AM Tuesday, worked continuously
One working day, dated Monday.
Shift 8:00 PM Monday to 12:00 PM Tuesday (16 h), then back at 1:30 PM Tuesday after a 1.5 h break
Still Monday: inside the grace window, gap under 4 h.
Shift 8:00 PM Monday to 12:00 PM Tuesday, then back at 5:30 PM Tuesday after a 5.5 h break
Tuesday: past the base period, gap of 4 h or more (rule 4).
Work 8:00 AM to noon, six-hour gap, back at 6:00 PM
Same day: at 6:00 PM only 10 h have elapsed, still in the base period (rule 3).
Continuous work from 8:00 AM Monday to 6:00 AM Tuesday (22 h)
One working day, Monday: the grace window (midnight to 4:00 AM) had work, so the beyond window counts.
Continuous work from 8:00 AM Monday past 8:00 AM Tuesday
Monday until 7:59 AM Tuesday; Tuesday from 8:00 AM, when the 24-hour cap applies.
Work 8:00 AM Monday to 11:30 PM, 5-hour break, back at 4:30 AM Tuesday, threshold set to 6 h
Tuesday: the gap is under the threshold, but nothing was worked in the grace window (midnight to 4:00 AM), so the beyond window is not reachable (rule 6).
Same as above but with the default 4-hour threshold
Tuesday by rule 4, since the 5-hour gap meets the threshold.
Work 8:00 AM to 11:00 PM Monday, 3.5-hour break, back at 2:30 AM Tuesday and on to 5:00 AM
Still Monday: short gap in the grace window, then the beyond window is allowed because the grace window had work.
Calendar date reset. Start 12:30 AM Monday, work to 5:00 PM, 5-hour gap, back at 10:00 PM Monday
Still Monday: the gap would normally end the day (rule 4), but it is the same local date, so the reset mode suppresses it. At 12:45 AM Tuesday the 24-hour cap applies and Tuesday begins.
Two shifts separated by a break shorter than the threshold, after the base period
The two shifts merge into one working day. Lower the Idle Gap Threshold so the break ends the first day.
Activity resumes on a device after weeks off
New working day on the day of return.
Choosing values
Set Carryover Limit to at least your longest normal shift including breaks, so no break during the shift can split it.
Set Carryover Grace to cover normal overtime.
Set Idle Gap Threshold a little shorter than the shortest rest between two consecutive shifts, and longer than the longest break inside a shift after the base period.
Leave Work-day Reset on Elapsed time unless you specifically need a working day never to end while it is still on the date it started.
The limit, grace, and threshold values remain editable while the master switch is off. They are also used by the single-day reconstruction described under Reports below, so tune them before switching on and the switch will not move any boundaries.
Auto Punch-Out must be off
Cross-Day Working Time and Auto Punch-Out contradict each other. Auto Punch-Out closes the day on a timer or at a time of day, and the agent stops tracking at the day boundary, which is precisely what cross-day has to avoid.
The Cross-day Working Time switch is greyed out while Auto Punch-Out is set to anything other than Disabled. Its tooltip says to turn Auto Punch-Out off first.
If the switch had been on earlier and Auto Punch-Out is later re-enabled, the switch shows as off and cross-day stops applying, even though the stored setting is unchanged. Only the numeric settings stay editable.
Reports check the same combination: the cross-day options over a date range only work while both conditions hold.
What the working day changes
Once activity carries a work date, everything that groups by day follows it.
Punch logs
Working day
When activity moves into a new working day, the open punch session is closed and a new one opened at exactly that moment, with no gap and no overlap. Both sessions carry the working day they belong to.
Attendance module (Summary, Detailed, Datewise)
Working day for past dates
Present, absent, working time, break time, and late-arrival figures for completed days come from the daily roll-up, which is keyed by working day.
Late arrival and early leaving
Working day
Arrival is the first punch-in of the working day; departure is the last punch-out.
Daily productivity totals per employee (online, active, idle, productive time)
Working day
These feed Time & Motion, Employee Scoring, and the dashboards.
Dynamic reports
Working day when Cross-day shifts is ticked
See Reports below.
Desktop agent
Working day
The agent's info tooltip shows the Work date, and its Today timeline lists the whole working day rather than the calendar date. Tracking no longer stops at midnight.
What stays on the calendar date
App and website usage breakdowns by category and application (the per-app tables and team usage charts) remain on the calendar date. For a night-shift worker, the post-midnight slice of app usage appears under the next date. Totals per employee are unaffected.
Timesheets, Manual Time, Leave, Holidays, and Weekly Offs are calendar-date features and do not change.
Today's live view in the Attendance module reads the live punch data by calendar date. An overnight shift in progress looks split until the daily roll-up runs, after which it reads as one working day.
Mobile and biometric punches carry no work date of their own. They join the working day that the desktop agent's activity establishes, and otherwise behave as calendar-date punches.
Agent version
Cross-day Working Time is confirmed with desktop agent 4.31 and later. Older agents do not label activity with a work date and behave as if the setting were off. Update field devices before switching on.
Reports
Cross-day shifts in the dynamic report builder
In Reports, the Report Type section of the report builder offers a Cross-day shifts checkbox for organizations set up for work across midnight. Ticking it keeps a shift that runs past midnight on one row, dated by the day it started. It is unticked by default, so saved and scheduled reports behave as before until you change them. The columns are the same as any other dynamic report; only the date they are grouped under changes.
How the report finds shift boundaries depends on your setup:
Cross-day Working Time on and Auto Punch-Out Disabled
Any range
From the work date recorded with the activity. Exact.
Anything else
One day at a time
Reconstructed from the activity as the report runs, using your current limit, grace, and threshold values.
Reconstruction mode re-applies the same three-phase rules to the raw activity around the chosen date. It is a close read rather than an exact record: a boundary is only trusted where a real quiet period placed it, and where the boundary could not be established with confidence the activity keeps its calendar date. The checkbox greys out when your range covers more than one day and your organization is not recording work dates; narrow to a single date to use it.
Sessions that span working days appear as one row per working day, clipped at the boundary, so the hours across the rows add back up to the full session. A 27-hour session never lands on a single day.
Data readiness. Cross-day figures for a date are ready after 4:00 PM the following day, once the roll-up for that working day has settled. The builder blocks the download until then and names the latest date you can pick.
Scheduled reports built from a template with Cross-day shifts ticked follow the same rules. A scheduled multi-day cross-day report fails unless Cross-day Working Time is on with Auto Punch-Out disabled.
Cross-Day Attendance report
Reports → Attendance → Cross-Day Attendance is an older, separate report that stitches punch sessions across midnight without relying on work dates. It produces one row per employee per shift-start day with the columns Employee ID · Employee name · Team · Date · Punch in · Punch out · Duration, where the punch times are full timestamps so the midnight crossing is visible. It works over any date range and does not require Cross-day Working Time, but it only looks at punches, not at how the rest of the portal groups the day. Availability depends on your subscription.
Edge cases
Device offline during the shift, uploads later
No effect. The work date is decided on the device from the activity's own timestamps and uploaded with it, so the day is grouped correctly however late the upload.
Employee works on two computers
Each device decides its own work date. Normally they agree; if they differ, the punch log follows the later work date.
Timezone changes mid-shift
Dates are always evaluated in the timezone the activity was recorded in. A change opens a new punch session; the working day's anchor date is not moved.
Daylight-saving change during the shift
Elapsed and gap times are measured in real hours, so the shift's length is unaffected. Only the local date of the anchor is timezone-dependent.
Shift longer than Limit + Grace
Continues into the beyond window if the grace window had work, and always closes at 24 hours.
Limit + Grace set to exactly 24 hours
There is no beyond window; the day always closes at 24 hours.
Switching the master switch off
New activity is recorded by calendar date again. Already-recorded work dates are kept.
Manual punch-in
Has no work date of its own; it adopts the work date of the next tracked activity rather than being split.
Related
Workplace Settings — the settings table and the Auto Punch-Out interlock.
Reporting on Shifts That Cross Midnight — setup steps and troubleshooting.
Attendance — the Summary, Detailed, and Datewise tabs.
Reports — the report catalogue and builder.
Time & Motion — monthly effort and output built from working-day totals.
Last updated
Was this helpful?