Core Concepts
This page describes the various components and assumptions made when constructing TimeDetect. The goal is to understand how to model the uploaded data to optimize the use of TimeDetect.
Anomaly Detection on Time Registrations
TimeDetect learns how the time registrations for a specific employee, project, department or company typically looks. When something deviates from the normal, TimeDetect identifies the anomalies.
In order to learn the pattern for time registrations, TimeDetect relies on partners sending in only approved time registrations that are up to date with the latest settings and changes in connected products. After having received sufficient training data, TimeDetect is then able to utilize machine learning to learn the normal occurring patterns in the data. When it is then presented with new data it is able to say whether or not these conform to the learned patterns.
Time Registration Data
Each time you send data you send it as part of a dataset. A dataset consists out of time registrations that can be for one or more employees. The time registration is the core unit for data within TimeDetect and it contains all information that is being used to detect anomalies on. A part of the registration is predefined and contains fields such as:
TimeDetect dataset schema
registrationId required | string [ 1 .. 100 ] characters The unique ID for the registration. |
date required | string <date> The date of the registration. Must be in format |
employeeId required | string [ 1 .. 100 ] characters The unique ID for the employee. |
projectId | string [ 1 .. 100 ] characters The unique ID for the project if applicable. |
departmentId | string [ 1 .. 100 ] characters The unique ID for the department if applicable. |
workCategory | string [ 1 .. 100 ] characters The unique ID for the category of work if applicable. |
startTime | number [ -1 .. 24 ] The start time for the registration as a number (e.g. 08:30 => 8.5). If not provided, the start time will be set to the median value and the field will not be in the list of significant fields in the results. |
endTime | number [ -1 .. 24 ] The end time for the registration as a number (e.g. 16:30 => 16.5). If not provided, the end time will be set to the median value and the field will not be in the list of significant fields in the results. |
workDuration | number The work duration for the registration as a number (e.g. 8 hours and 30 min => 8.5). If not provided, the work duration will be set to the median value and the field will not be in the list of significant fields in the results. |
breakDuration | number The break duration for the registration as a number (e.g. 30 min => 0.5). If not provided, the break duration will be set to the median value and the field will not be in the list of significant fields in the results. |
publicHoliday | boolean Whether or not it is a public holiday (e.g. easter). If not provided, public holiday will be set to the median value and the field will not be in the list of significant fields in the results. |
Array of objects (Raw Data Upload Request Numerical) Numericals are additional custom numerical fields for time registration data for the TimeDetect api, outside the common schema. For example, a registration might have a field for the number of kilometers driven. This can be added as a numerical. Please do not upload any personal data that is not agreed upon in advance. And under no circumstances upload non-pseudonymized or sensitive data. Reach out to us if you have any questions regarding this field. | |
Array of objects (Raw Data Upload Request Categorical) Categoricals are additional custom textual fields for time registration data for the TimeDetect api, outside the common schema. For example a registration can have a wage code to explain what kind of wage it is. This can be added as a categorical. Please do not upload any personal data that is not agreed upon in advance. And under no circumstances upload non-pseudonymized or sensitive data. Reach out to us if you have any questions regarding this field. |
{- "registrationId": "1e24162a-3bad-4a58-865c-a1994c75942d",
- "date": "2024-08-26",
- "employeeId": "cf5ee029-0747-45c1-94e3-ea7a2ae3129c",
- "projectId": "high_rise_project",
- "departmentId": "construction",
- "workCategory": "roofing",
- "startTime": 6.5,
- "endTime": 16,
- "workDuration": 9,
- "breakDuration": 0.5,
- "publicHoliday": false,
- "numericals": [
- {
- "name": "kilometersDriven",
- "value": 100
}
], - "categoricals": [
- {
- "name": "wageCode",
- "value": "Regular"
}
]
}