An overview of the Business Intelligence measures available in Vertec
Operating mode
Cloud Suite
|ON-PREMISES
Modules
Services & CRM
Budget & Phases
Purchases
Resource Planning
Business Intelligence
The different types of measures 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 unique and meaningful as possible so that it is clear what is shown. It is an MLstring field. |
Active |
Only active measures are pre-saved. If there is a default measure you never need to use, you can deactivate it. If you want to calculate a measure and hide it (for example, because you only need it for a calculation – see derived measure below), you can uncheck the Visible checkbox below. |
Internal name |
The internal name must be unique because the generator identifies the measure from this name. |
Color |
You can save a color for each measure. In the BI view, this color is then always shown for this measure, which makes recognition easier. All the default measures supplied have already been assigned a color: ![]() When shown in the BI view, 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 set as derived, the calculation is not done by the generator, but rather via other measures. In this case, instead of the generator field, there is a field for the calculation: ![]() The calculation is defined by the internal name of the relevant measures. You can use division, addition (+) and subtraction (-) 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 function ![]() |
Generator |
The measures are calculated by generators, unless it is a calculated measure (see above). |
Unit |
You can choose from the following units: ![]()
|
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. You can also deactivate default measures that you do not need (via the Active checkbox above). |
Key date value |
Measures marked as key date value are shown in views for a single month or in a time series, and show the value valid per end of the month (this month). If the running total is to be shown instead, a derived measure can be created and the measure can be cumulated. |
DimensionsClasses 1 – 5, |
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. This can be used to specify the context of the measure for that dimension. For example, when calculating the incoming order, the project manager of the project is also returned. If we now see the “incoming order” on a list of users, the context is not clear: Is this the salesperson, are these the salesperson's 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 |
You can enter a help text, for example, to explain to the user how the measure is calculated. This is shown as a tooltip in the Bi view: ![]() The display is truncated after 19 rows. Care must be taken to ensure that the text fits in the space available. This is an MLString field. |
Measures can be populated automatically from a BI generator with the action menu item Import measure from generator on measures. The following dialog opens:
Script |
Select the script that contains the generator. This must be registered in Vertec. |
Generator |
If there are several generators in the script, you can select the desired generator here. |
BI measure |
Select the measure defined in the generator that you would like to import. |
The dialog shows only the measures that are not yet in the system, or only generators that contain such measures.
Click on OK
to import the measure, including dimensions and roles.
For this to work, the generator must be of the type BIGenerator
. See article about BI generators.
Vertec provides the following key measures by default (the code parts are equivalent):
Designation/ Internal name | Description | Available on (dimension) |
---|---|---|
Commenced work
|
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 |
|
Working hours
|
Working hours ->getArbeitszeit(Startdatum, Enddatum) |
|
Order backlog fee
|
Budget Fees – Cumulative fee externally. Only awarded and not yet completed phases. bdgvalue('planWertExt', Enddatum, -1) - leistSum.wertExtOffen + leistSum.wertExtVerrechnet |
|
Ordner intake fee
|
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) |
|
Remaining budgeted hours
|
Calculated Measure. Expense Hours Budget Total ( MinutesBudgetTotal - MinutesCumulatedPhases |
|
Total budgeted hours
|
Budget hours of granted and not yet completed phases. bdgvalue('planMinutenInt', Enddatum, -1) |
|
External hours
|
External hours leistsum.minutenExtOffen + leistsum.minutenExtVerrechnet |
|
Internal hours
|
Internal hours leistsum.minutenIntOffen + leistsum.minutenIntVerrechnet |
|
Cumulated hours
|
Cumulative internal hours of granted and not yet completed phases. leistSum.minutenIntOffen + leistSum.minutenIntVerrechnet |
|
Downpayment balance
|
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 |
|
Contribution margin (DM)
|
Fees charged externally – costs charged leistsum.wertExtVerrechnet - leistsum.wertKostenVerrechnet |
|
External fee per phaseFeesExtPhases |
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 |
|
Vacation balance
|
Vacation balance at the end of the month ->getFerienSaldo(Enddatum) |
|
Vacation balance accrued
|
Deferred vacation balance at the end of the month ->getFerienSaldoAbgegrenzt(Enddatum) |
|
Percentage of completion
|
Calculated Measure. Effort Hours Be ( MinutesCumulatedPhases / MinutesBudgetTotal |
|
HeadcountHeadcount |
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 |
|
External fee
|
External fee leistsum.wertExtOffen + leistsum.wertExtVerrechnet |
|
External fee written off
|
Fee charged internally – Fee charged externally leistsum.wertIntVerrechnet - leistsum.wertExtVerrechnet |
|
External fee open
|
Fee externally open leistsum.wertExtOffen |
|
External fee charged
|
Fee charged externally leistsum.wertExtVerrechnet |
|
Internal fee
|
Internal fees leistsum.wertIntOffen + leistsum.wertIntVerrechnet |
|
Internal hours per phaseMinutesIntPhases |
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 |
|
Costs
|
Costs leistsum.wertKostenOffen + leistsum.wertKostenVerrechnet |
|
Cumulated external feesFeesCumulated |
Calculated Measure, cumulative measure External fee ( sum(FeesExt) |
|
ProductivityProductivity |
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 |
|
Standard hours
|
standard hours ->getSollzeit(Startdatum, Enddatum) |
|
Hourly rate chargeable
|
Calculated Measure. External fee ( FeesExt / MinutesInt |
|
Overtime balance
|
Overtime balance at the end of the month ->getUeberzeitsaldo(Enddatum) |
|
Turnover outlays
|
Outlays charged (value date of invoice) rechnung.auslagenExt |
Only available if Purchases module is licensed. |
Turnover services
|
Total charged after discount (value date of invoice) rechnung.leistWertExtNachRabatt |
|
Turnover expenses
|
Expenses charged (value date of invoice) rechnung.spesenExt |
|
Full-time equivalents
|
Employment level ->getBeschaeftigungsgrad(Enddatum) |
|