Module design principles

  • Every view has same columns. (Columns are toggleable)
  • Every view can be downloaded as CSV file.
  • Every view can be viewed in a graphical representation. (Charts)
  • Every row may be expanded.
  • Every column can be sorted.
  • Filters apply to all views.

Following is the list of relationships that may be explored via the analytics module.

User manual

Data exploration always starts from defining a time range. (Default is ongoing month)
Thereafter a key for grouping the data must be chosen. (Default is 'Technician').


Every row in the table is equivalent to 'primary' grouping parameter.
GroupBy selection sets the table row aggregation key by which the summaries are presented.

TechnicianOverview of work orders grouped by user assigned to perform them.
PropertyOverview of work relative to asset (property, device, system)
ClientOverview work relative to clients.
Task CategoryOverview of work relative to task category.
TagOverview of work relative to user defined tag.
TaskOverview of tasks within specific group


TimePlannedTotal time planned
TimeLoggedTotal time logged (Without any rounding rules applied)
TimeInvoicedTotal time that was invoiced (May include rounding up)
TimeClosedTotal time of tasks in CLOSED status - Not invoiced
Avg. TimePer day (Logged)Average time logged per day of work (Total time is divided by the actual number of days worked)
Avg. TimePer day (Invoiced)Average time invoiced per day of work (Total time is divided by the actual number of days worked)
Avg. TimePer task (Logged)Average time logged per task
Avg. TimePer task (Invoiced)Average time invoiced per task
TasksLogged time (Price list)Total time logged on tasks with billing type of PRICE_LIST
TasksEffective hourly rate (Price list)Invoiced.Time Price / Tasks.LoggedTime(Price list)
Tasks# (Price List)Number of tasks with billing type of PRICE_LIST
TasksLogged time (Price offer)Total time logged on tasks with billing type of PRICE_OFFER
TasksEffective hourly rate (Price offer)Invoiced.Services Price / Tasks.LoggedTime(Price offer)
Tasks# (Price offer)Number of tasks with billing type of PRICE_OFFER
TasksLogged time (Contractual)Total time logged on tasks with billing type of CONTRACTUAL
Tasks# (Contractual)Number of tasks with billing type of CONTRACTUAL
InvoicedBilled hourly rateInvoiced.Time Price / Time.Invoiced
InvoicedTimeTotal price of invoiced work time
InvoicedCall out feeTotal price of invoiced callout fees
InvoicedServicesTotal price of invoiced services (NB: Split equally, not proportionally)
InvoicedProductsTotal price of invoiced products (NB: Split equally, not proportionally)
CountPropertyNumber of properties
CountClientNumber of clients
CountTaskNumber of tasks aggregated
Task statusINVOICEDNumber of tasks in INVOICED status
Task statusOPENNumber of tasks in CANCELED status
Task statusSCHEDULEDNumber of tasks in SCHEDULED status
Task statusIN_REVIEWNumber of tasks in IN_REVIEW status
Task statusDONENumber of tasks in DONE status
Task statusCLOSEDNumber of tasks in CLOSED status
Task statusON_HOLDNumber of tasks in ON_HOLD status
Task statusCANCELEDNumber of tasks in CANCELED status


Purpose of filters is to narrow down the item of interest to entities with specific tags.

User categoriesFilter work by tags assinged to users
Task categoriesFilter work by specific task categories
Asset categoriesFilter work by tags assigned to 'assets' (Property, Device, System)

Data interpretation

Following are examples of some the possible topics of interest.


Only 'primary' grouping parameter is applied.

Which 'GROUPING' has the most/least ...
    work planned?
    logged work hours?
    invoiced hours?
    tasks performed?
    clients served?
    properties visited?
What is the effective hourly rate for given 'GROUPING'?
How many hours have been invoiced?
How much was invoiced per 'GROUPING'?
Which worker has the most/least work assigned - why - does this require investigating?
Does any of the workers have more work planned than they can possibly execute in given time frame?
Which 'asset' has the most/least tasks, is there a pattern with problematic 'assets' - What requires changing?

Work orders without a defined client is grouped into a single row named 'N/A' - Expanding this row enables you to see tasks that have no client field set.

Which client has been the most/least profitable within given time period?

NB: Only available as secondary grouping parameter.
Default grouping parameter when expanding a row - This allows to quickly view which tasks compose a specific row.

Tag (Custom user defined)

NB: Only available as pimrary grouping parameter.

User departament - Performance metric grouped by departaments
Building type - Eg. Commercial real estate 
Device model - Which heating device has required the most maintenance?
Device type - Work distribution between different device types eg. Heating, Cooling, Ventilation etc.

Advanced (Expand row)

Both 'primary' and 'secondary' grouping parameters are applied for in depth analysis.

Technician -> Task -> List of tasks performed by the user within selected time interval.
Technician -> Property -> Summary of work by property (For selected user).
Technician -> Client -> Summary by client (For selected user).
Technician -> Task Category -> Summary by task category (For selected user)
Property -> Task -> List of tasks performed on this property within selected time interval.
Property -> Client -> Summary by client (For selected property).
Property -> Technician -> Summary by worker (For selected property).
Property -> Task Category -> Summary by task category (For selected property).

NB: It is important to note that these combinations are not equivalent as they answer different questions.

Technician -> Property -> On Which properties has the worker worked on?
Property -> Technician -> Which users have work relative to this property?