Skip to content

Time Data

Jani Giannoudis edited this page Jul 25, 2023 · 28 revisions

Payroll Time Data

The Payroll Engine distinguishes between the following types of changeable data:

  • Version controled data
    • Data model with data fields
    • Input control with validation
    • Wage calculation
    • Report templates
    • Third party data
  • Time data
    • Global case values
    • Company case values
    • Employee case values

Version Controlled Data is the data that is managed in the regulations. Changes to this data result in a new version of the regulation.

Time data are case values, which are recorded with additional time data. The following description shows how the case time data is structured and how it is used for wage calculation.

Case Time Data

With the help of the time data, all wage-relevant information of the employee is recorded as a case at the time of occurrence. In addition to the case value (e.g. wage, days of absence, etc.), the time data also contains the validity period of the case. The immediate change of personnel changes ensures that the data is always up-to-date and complete. On this basis, payroll runs are possible at any time. The validity period determines from when the value is to be valid and whether the change is limited in time.

This offers new possibilities for the display and management of case data:

  • The validity period of the value can be limited: Input of the end date
  • A case mutation can be relevant for future billing runs: Start date in the future
  • A case mutation can be retroactive: Start date in the past (automatic retroactive billing)
  • A case mutation can be retroactively reversed (automatic retroactive accounting)
  • The evaluation date of the case data can be selected: What was valid then, what does the case data look like at the end of the year?

A conventional mutation corresponds to a case with a current start date and an open end date.

The following illustration shows the effect for the user in data entry:
Time Data

Time Types

Type Description Period Start Period End # Period Values Example
Timeless Value without time commitment - - 1 Pension obligation
Moment Value which is assigned to a point in time x - 1..n 3) Bonus
Period Value assigned to a period x (x) 1) 2) n 4) Working hours
Calendar Period Value distributed to the calendar period x (x) 1) 2) n 4) Monthly wage

1) A period without end date indicates an endless/open period.
2) A mandatory closed period is achieved by means of scripting (validation) or case actions (SetFieldEndRequired, SetEndRequired).
3) Values are aggregated in the period (PeriodAggregation): Summary, first or last value.
4) Unlimited overlap support mit Splitting on a daily basis.

Time Calculations

The following example shows a scenario where the mutations of the monthly wage and risk bonus overlap:
Time Calculations

The calculation of time values taking into account overlaps is possible with the operators addition (+), subtraction (-), multiplicationn (*), division (/) and modulus (%).

The following wage type script calculates the above example correctly

1 var values = GetCaseValues("Salary", "RiskBonus");
2 decimal baseSalary = values["Salary"];
3 return baseSalary + (values["Salary"] * values["RiskBonus"]);

In line 1 the values to be calculated are requested, in this case Salary and RiskBonus. For more complex scenarios, the parameter site must be extended accordingly. Line 2 calculates the basic monthly salary, to which the risk bonus is added in line 3. Important is the multiplication operator, which divides the values into sub-periods and multiplies the values per sub-period. The result of the wage type is the sum of the products of all partial periods.

The conversion in line 2 to decimal is necessary to obtain the value in line 3 as a numerical value.

Clone this wiki locally