Recorded work time and overlaps

Concept · People and work · Measures

Updated

Browse documentation
On this page

Engine 19.0.0rc597 · Reader 9.0.0rc656 · Development snapshot

Recorded work time is the clock time covered by one person's admitted work records. Ghost Observatory combines intervals recorded by systems, reported by the person or left unclassified. Where two records cover the same time, that time contributes once to person_days.work_sec.

The interval-union calculation

Let Ij be each work interval the Engine can place on this person's clock, clipped to the relevant day and window. Let |I| mean its length in seconds.

W = |⋃j Ij|

O = Σj |Ij| − W

Combine the admitted intervals and count each covered second once to obtain W, stored as work_sec. Add the separate interval lengths and subtract that combined coverage to obtain O, stored as overlap_sec. This excess includes overlaps within a source and across sources.

Time stated without an admissible clock position is stored separately in unplaced_sec. A duration can support an interval that the source actually locates; it cannot by itself establish an invented start and end. Source-specific fields such as system_recorded_sec and self_reported_sec each hold their own interval union. Those unions can overlap. The combined work_sec counts that shared clock time once while preserving the separate source measures. Screen observations contribute to screen_observed_sec, outside that work total.

Two one-hour records cover 90 minutes

On one UTC day, a system records work from 09:00 to 10:00, while a person reports work from 09:30 to 10:30. A desktop record covers 10:30 to 11:00 as screen time. Another record states five minutes of work without a clock position.

Published work-clock quantities for the example person
QuantitySecondsMeaning
work_sec5,40009:00–10:30, counted once
overlap_sec1,80009:30–10:00 appears in both work records
system_and_reported_sec1,800The clock interval both source classes cover
system_only_sec1,80009:00–09:30
reported_only_sec1,80010:00–10:30
screen_observed_sec1,800Desktop screen coverage, separate from work
unplaced_sec300The five minutes without a clock position

Each work source reports 3,600 seconds, but their combined coverage is 5,400 seconds. Adding the source totals would count the shared half-hour twice. The five unplaced minutes and the desktop screen interval remain separate quantities. Screen coverage can include idle time and does not establish work activity.

Comparing with a schedule

If the person's planned hours are 09:00–10:00, scheduled_sec is 3,600 and outside_schedule_sec is 1,800. Reader displays 100 × 5,400 ÷ 3,600 = 150.0% of planned time. That percentage is presentation arithmetic over recorded work and scheduled hours. It describes source coverage, not all work actually done, productivity or measured capacity utilization.

Schedules come from an explicitly assigned employee calendar, or the sole declared organization calendar. An event's team label does not assign a calendar. Unavailable or incomplete schedule evidence withholds the comparison; the Engine does not treat every uncovered hour as overtime.

Days, populations and missing values

Work intervals are split at local-day boundaries in run.timezone. person_days contains dated rows and whole-window rows with work_date = NULL. Whole-window rows also account for undated evidence. Use the matching grain rather than adding a window total to its day rows.

Work time is published on person rows. An unknown amount in a relevant work record can make the day's pooled work, overlap and unplaced values NULL; required unknown components also affect the window total. No work records means NULL work time. It does not mean the person did no work. Source-agreement fields require both source classes and known amounts. There is no statistical sample-size floor for these interval lengths.

Where Reader shows the calculation

People → Work time per day, #people/rhythm, shows person/day coverage. People → Work time vs planned, #people/schedule, shows schedules, recorded time, outside-schedule time and source agreement. Reader reads the published totals; filtering to one person does not derive new totals from the visible bars.

Published results

These measures describe the published person_days results in the stated development snapshot. Keep the evidence class and eligible population visible when comparing recorded time.