BI measures

Business Intelligence measures

Operating mode

Cloud Suite

|

ON-PREMISES

Modules

Services & CRM

Budget & Phases

Purchases

Resource Planning

Business Intelligence

Created: 22.04.2020
Machine translated
Updated: 03.10.2023 | Rework of the BI module with version 6.8

The different types of KPI's available in the Business Intelligence module are called BI measures:

The measures are configured in the folder Settings > Business Intelligence > BI measures. Each measure has the following properties:

Designation

The designation is shown in the BI view and should therefore be as clear and meaningful as possible so that it is clear what is shown. It is an Mlstring field.

Active

Only active measures are pre-saved, so if you never need a standard measure, you can deactivate it.

If, on the other hand, you want to calculate a measure but not show it (for example, because you only need it for a calculation – see Derived measure below – but not for display), deactivate the Visible checkbox below instead.

Internal name
The internal name must be unique because the measure is identified by the generator via this name.
Colour

For each measure, a color can be saved. In the Bi view, this color is then always shown for this measure. This makes recognition easier. 

All measures supplied by default have already been assigned a color. The default list of measures has also been redesigned and shows the colors:

When shown in the BI, measures that do not have a predefined color are randomly assigned one of the colors not yet used in the current view.

Derived measure

If a measure is marked as derived, the calculation is done not by the generator, but by other measures. In this case, instead of the generator field, there is a field for the calculation:

Here the calculation is defined by the internal name of the corresponding measures.

In addition to division, addition (+) and subtraction (-) can be used to calculate measures. Only simple operations (calculation with only one operation) are allowed.

As of Vertec 6.8, it is possible to cumulate values and thus form running totals. You can do this with the new sum(<measure>) function. This allows you to sum another measure. The internal name is given as the measure.

The dimensions (see below) result from the underlying measures and cannot be specified separately here. 

Generator
The calculation of the measures is done by generators, unless it is a calculated measure (see above).
Unit

The following units are available:

  • Amount: Numerical values, displayed according to country settings.
  • Hours: Minute values, displayed according to System Settings Display Minutes.
  • Percentage: Percentages, represented as %. Values are interpreted as 1 based quotients, so a value of 1 is represented as 100%.
  • Quantity: quantity, with two decimal places.
  • Hourly rate, displayed according to country settings.
Visible

Controls whether a measure can be shown in the BI view. This is especially useful if you need a measure to calculate another measure (see Calculated measure above) but do not want to show it yourself.

You can also deactivate standard measures that you do not need at all (see checkbox Active above).

Key date value

Measures marked as key date value are shown in views for a single month or in time series and show the value per end of the month (of this month).    

If the running total is to be shown instead, a derived measure can be created and the measure can be cumulated.

Dimensions

Classes 1 – 5,
Role

Specifies on which classes (dimensions) the measures are available. These must be calculated in the specified generator.

In addition, a role label can be specified for each dimension. The role label can be used to specify the context of the measure for that dimension.

For example, when calculating the incoming order, the project leader of the project is also returned. If we now see the “incoming order” on a list of editors, then the context is not clear: Is this the salesperson, are these his own services? Here, for example, the Role can be specified:

 The Role is then shown next to the measure in the BI view:

Help text

Here a help text can be entered, for example to explain to the user how the measure is calculated. This is shown as a tooltip in the Display of measures:

The ad is truncated after 19 rows. Care must be taken to ensure that the text fits into the ad. This is an Mlstring field.

 Generate BI measure from generator

With the menu item Import measure from Generator, BI measures can be automatically populated from a Bi generator. The following dialog opens:

Script
Here the script containing the generator is selected. The generator must be registered in Vertec.
Generator
If it has several generators in the script, the desired generator can be selected here.
BI measure
Here, the measure defined in the generator to be imported is selected.

The dialog shows only measures that are not yet in the system, or only generators that contain such measures.

With one click on OK the key measure is imported, including Dimensions and Role.

For this to work, the generator must be of the type BIGenerator be, see article about Bi generators.

Standard BI measures

Vertec provides the following key measures by default (the code parts are equivalent):

Designation / Int. Name Significance Available on (Dimension)
Work commenced

FeesCommenced

External fee for the services of productive projects, which are not on an invoice at the end of the month or whose invoice was charged later.
if not leistsum.rechnung or leistsum.rechnung.valutadatum > enddate:
    leistsum.wertExtOffen + leistsum.wertExtVerrechnet
  • project
Working hours

WorkingTime

Working hours

->getArbeitszeit(Startdatum, Enddatum)
  • user
Order backlog Fee

FeesOrderbacklog

Budget Fees – Cumulative fee externally. Only awarded and not yet completed phases.

bdgvalue('planWertExt', Enddatum, -1) -
leistSum.wertExtOffen + leistSum.wertExtVerrechnet
  • project
  • user
  • phase
Incoming orders Fee

FeesOrderintake

Budget Fee of newly awarded phases or changes of this budget value during that month.

bdgvalue('planWertExt', Enddatum, -1) -
bdgvalue('planWertExt', (Startdatum-1 Tag), -1)
  • project
  • user
  • phase
Hours Budget Rest

MinutesBudgetRest

Calculated Measure. Expense Hours Budget Total (MinutesBudgetTotal) – Expense Hours Is (MinutesCumulatedPhases).

MinutesBudgetTotal - MinutesCumulatedPhases
  • project
  • user
  • phase
Hours Budget Total

MinutesBudgetTotal

Budget hours of granted and not yet completed phases.

bdgvalue('planMinutenInt', Enddatum, -1)
  • project
  • user
  • phase
external hours

MinutesExt

external hours

leistsum.minutenExtOffen + leistsum.minutenExtVerrechnet
  • project
  • user
  • phase
  • service type
internal hours

MinutesInt

internal hours

leistsum.minutenIntOffen + leistsum.minutenIntVerrechnet
  • project
  • user
  • phase
  • service type
Hour Be

MinutesCumulatedPhases

Cumulative internal hours of granted and not yet completed phases.

leistSum.minutenIntOffen + leistSum.minutenIntVerrechnet
  • project
  • user
  • phase
Stock downpayments

Downpayments

Net amount of all downpayments – Advance paid on invoices cleared by the end of the month (value date).

vorschuesse += vorschuesse.nettobetrag
if rechnung.verrechnet and rechnung.valutadatum <= enddate:
    vorschuesse -= invoice.vorschussEffektiv
  • project
Contribution margin (DB)

MarginContributed

Fees charged externally – costs charged

leistsum.wertExtVerrechnet - leistsum.wertKostenVerrechnet
  • project
  • user
  • phase
  • service type
External fee per phase
FeesExtPhases

External fee at the end of the month of awarded and not yet completed phases.

if not ((phase.abgeschlossen and phase.abschlussdatum < startdate) or phase.erteiltdatum > enddate):
    leistSum.wertExtOffen + leistSum.wertExtVerrechnet
  • project
  • user
  • phase
vacation balance

VacationBalance

Vacation balance at the end of the month

->getFerienSaldo(Enddatum)
  • user
Vacation balance accrued

VacationBalanceAccrued

Deferred vacation balance at the end of the month

->getFerienSaldoAbgegrenzt(Enddatum)
  • user
Degree of completion

PercentageOfCompletion

Calculated Measure. Effort Hours Be (MinutesCumulatedPhases) / Effort Hours Budget Total (MinutesBudgetTotal).

MinutesCumulatedPhases / MinutesBudgetTotal
  • project
  • user
  • phase
Headcount
Headcount

Quantity of employees at this time (entry date before the end of the month, no exit date or exit date after the end of the month). The workload does not Role for this value.

if not (enddate < user.eintrittper or (user.austrittper and startdate > user.austrittper)):
            headcount = 0 if user.austrittper and user.austrittper < enddate else 1
  • user
External fee

FeesExt

External fee

leistsum.wertExtOffen + leistsum.wertExtVerrechnet
  • project
  • Users (as project leader)
  • user
  • phase
  • service type
Fee externally written off

FeesExtWrittenoff

Fee charged internally – Fee charged externally

leistsum.wertIntVerrechnet - leistsum.wertExtVerrechnet
  • project
  • Users (as project leader)
  • user
  • phase
  • service type
Fee externally open

FeesExtOpen

Fee externally open

leistsum.wertExtOffen
  • project
  • Users (as project leader)
  • user
  • phase
  • service type
Fee charged externally

FeesExtCharged

Fee charged externally

leistsum.wertExtVerrechnet
  • project
  • Users (as project leader)
  • user
  • phase
  • service type
Internal fees

FeesInt

Internal fees

leistsum.wertIntOffen + leistsum.wertIntVerrechnet
  • project
  • Users (as project leader)
  • user
  • phase
  • service type
Internal hours per phase
MinutesIntPhases

Internal hours at the end of the month of granted and not yet completed phases.

if not ((phase.abgeschlossen and phase.abschlussdatum < startdate) or phase.erteiltdatum > enddate):
    leistSum.minutenIntOffen + leistSum.minutenIntVerrechnet
  • project
  • user
  • phase
Costs

Costs

Costs

leistsum.wertKostenOffen + leistsum.wertKostenVerrechnet
  • project
  • Users (as project leader)
  • user
  • phase
  • service type
Cumulative external fee
FeesCumulated

Calculated Measure, cumulative measure External fee (FeesExt).

sum(FeesExt)
  • project
  • user
  • phase
Productivity
Productivity

Percentage of recorded hours on productive projects compared to total effort. Maximum value = 1.

minutenInt = leistsum.minutenIntOffen + leistsum.minutenIntVerrechnet
minutenIntUnprod = leistsum.minutenIntOffenUnprod + leistsum.minutenIntVerrechnetUnprod
productivity = (minutenInt - minutenIntUnprod) / minutenInt
  • user
standard hours

SetTime

standard hours

->getSollzeit(Startdatum, Enddatum)
  • user
Hourly rate chargeable

RateChargeable

Calculated Measure. External fee (FeesExt) / Internal hoursMinutesInt).

FeesExt / MinutesInt
  • user
Overtime balance

OvertimeBalance

Overtime balance at the end of the month

->getUeberzeitsaldo(Enddatum)
  • user
Turnover outlays

TurnoverOutlays

Outlays charged (value date of invoice)

rechnung.auslagenExt
  • project
  • user

Only available if module Purchases is licensed.

Turnover services

TurnoverServices

Total charged after discount (value date of invoice)

rechnung.leistWertExtNachRabatt
  • project
  • user
Turnover expenses

TurnoverExpenses

Expenses charged (value date of invoice)

rechnung.spesenExt
  • project
  • user
Full-time equivalent

Fte

employment level

->getBeschaeftigungsgrad(Enddatum)
  • user

Netherlands

United Kingdom