Collective agreements: Contributions

In this article, you will learn more about contributions with examples of how to use them.

Introduction

Contributions are a strong feature in collective agreements, which can be used for various cases. The feature can apply conditions and variables to automatically add work through simple and complex calculations.

What are contributions?

Our contributions engine deploys intelligent agents that work together to automatically process and adjust employee work records. These agents analyze existing entries and apply precise calculations based on your business rules. For instance, when handling pension benefits, the agents automatically calculate and apply the correct pension percentages to adjust both employee salaries and customer invoices according to specific contractual articles.

Key benefits of using contributions

  • Eliminates manual calculations and reduces errors
  • Provides flexible customization for internal policies
  • Ensures real-time accuracy with background processing
  • Streamlines compliance with collective agreements

Conditions

Binary conditions

The idea behind binary variables is that they will return 0 or 1. This is really useful in an example where we want to include or exclude something based on something being present or not. An example is that we can have a bonus for an employee if he is not sick.

Example: Give 50 in bonus if the employee has logged work and is not sick. Then we can do as follows:

Condition: hasHours

Salary: 50 - (hasAbsence * 50)

With this simple example above, the employee will receive 50 IF he has hours (that is the condition). However, we will reduce the salary to 0 if he has absence. The calculation will be as follows if he has hours and absence: 50 - (1 * 50) = 0.

Variables:

  • hasAbsence
  • hasSelfManagedAbsence
  • hasAnyAbsence
  • hasHours 
  • hasOvertime
  • hasAddition
  • hasTimeAddition
  • hasDeduction
  • hasPiecework
  • hasExpenses 
  • hasDayPay
  • hasMonthPay

Example of using binary variables for condition section: hasHours && addition_132.salary > 0 

Note

Find all variables that can be used in contributions in the dedicated article here.

Employment conditions

Variable name Notes
employmentStartDate Fetches the date of the beginning of employment.
1monthAgo Fetches employment condition 1 month ago.
2monthsAgo Fetches employment condition 2 months ago.
3monthsAgo Fetches employment condition 3 months ago.
6monthsAgo Fetches employment condition 6 months ago.

Mathematical symbols that are supported for all sections

  • +  -  *  / - standard symbols for multiplication, division, addition and subtraction;
  • <  > - these are more or less signs. In most cases, they are used to set the conditions for the contribution, but can also be used for the "Salary" and "Invoice" sections.
    Example: allAbsence.uniqueDays < 2 - to calculate a contribution if the number of absences is less than 2.
  • || - It denotes the logical operation "or." This allows for the combination of logical expressions.
    For example: if (a > 5 || b < 10) { ... } – the condition is true if at least one of the parts is true.
  • (  ) - parentheses are used to indicate the order of operations.
  • && - The && operator is used to denote the logical operation "and." This allows for the combination of logical expressions such that the condition will be true only when all parts are true.

How to find the article ID

In order to find {articleId}, you need to take the following steps:

  1. Open System Settings → Staffing → go to the appropriate section with types of articles, e.g., Absence articles.
  2. Find the article you need and click Edit.

    image

  3. The article ID will be displayed in the pop-up window at the top.

    image

Good to know

  • Any change to log work will start the process of analysis and recalculation of contributions (but recalculation of contributions will take place only if the changes made relate to a factor that affects the pricing of the contribution).
  • Calculation/recalculation of the contribution takes place within one minute after any actions to log work.
  • If the contribution records are approved and the registered work is edited later during the set period, the contribution will be recalculated, but a new contribution record will be created in which the salary and invoice will be compensated according to the changes made in the logged work records.
  • If the contribution records that had the status "Approved" are returned to the status "To approval", then both records will be merged into one (taking into account all changes made in logged work records).
  • Any changes made manually for already created contribution records will suspend their calculation/recalculation for the period in which the changes were made.

    Example: If the selected period "month" in the contribution rules.

    In the "Register work" module, the system automatically calculated the contribution and created a record for the current month, e.g. August. So, if you make changes to this record manually, the automatic calculation/recalculation of the contribution for the month of August will be suspended.

  • In the contribution rules, the option of choosing a date for the "Month" period and a day of the week for the "Week" period has been added. This will allow you to manually choose the date or day of the week on which to create (log) a contribution record.

Note

The date or day of the week selected for the "period" line in the contribution rules answers the question "on which day," not "when" the contribution record will be created, i.e., if the date selected for the "period" section of the contribution rules is the 17th, it will mean that a record of contributions will be registered on the 17th of the current month, immediately upon creation of any logged work records for this month (provided that these records have the types of articles that are involved in the formulas added in the contribution rules).

image

Examples

Partial pension

Contributions can be used to calculate partial pension and be able to invoice a small premium to the customer.

  • 2,4% of the normal salary in the period
  • 0,7% of the absence salary in the period
  • The customer will be invoiced a 30% premium
Salary calculation Invoice calculation
((sumPeriodSalary - sumPeriodAbsenceSalary) * 0.024) + (sumPeriodAbsenceSalary * 0.007) thisSalary * 1.3

Add a bonus for additions where there is a "minimum limit" on salary

The formula below adds salary if time-based additions have less than 70 in unit salary.

Condition: timeAddition_17.avgUnitSalary < 70

Salary: (70 - timeAddition_17.avgUnitSalary) * (timeAddition_17.hoursExclBreak)

image

image

Was this article helpful?
0 out of 0 found this helpful