TABLE OF CONTENTS
- Set-up
- Out-of-the-box Custom Fields in Inventor Remuneration
- Out-of-the-box Expressions in Inventor Remuneration
Set-up
To set up Inventor Remuneration, go to System -> System Preferences -> Cases. Then, under Inventor Remuneration, tick the “Enable” box.
Ticking this will:
- Add a Rewards tab to Patent and Utility Model cases
- Add a new report type for reporting on Rewards
- Create several custom fields at the Case level and the Inventor on Case level and add them to ‘Case Fields to show on rewards page’ and ‘Inventor Fields to show on rewards page’
- Create three expressions to calculate rewards according to the German Employee Inventions Act using the license analogy
- See section below Out-of-the-box Custom Fields and Expressions in Inventor Remuneration for more information on these expressions
This out-of-the-box configuration will get you started with adding rewards as a flat amount, or with adding rewards according to the calculations specific to German Employee Inventor law. You can add or adjust custom fields or expressions to meet your remuneration laws and standard practices.
Out-of-the-box Custom Fields in Inventor Remuneration
Equinox provides some out-of-the-box custom fields and expressions to get you started upon enabling Inventor Remuneration. These fields and expressions are completely customizable. They meet the basic requirements of determining the remuneration using the license analogy method from the German Inventor Remuneration guidelines.
Note that these only come out-of-the-box beginning with v2025.3.1. If you enabled Inventor Remuneration in your system prior to v2025.3.1 and would like these fields and expressions added to your system, please reach out to support.
Custom Fields - Case:
The following custom fields are at the case level:
Field Name | Field Type | Field Reference (for Expressions) | Description |
Reference Size/Total Sales | Text | reference_size | The reference size, B, to be used in the calculation E =B * L |
License Rate | Text | license_rate | The reference size, L, to be used in the calculation E =B * L |
Invention Value | Text | invention_value | The final invention value, E, calculated fromm E = B * L. To be used in the remuneration calculation V =E * A |
Custom Fields - Inventor on Case:
The following custom fields are at the Inventor on Case level:
Field Name | Field Type | Field Reference | Description |
Employee Position in Company | Dropdown | employee_position_in_company | Values 1-8. This is used in calculation for Employee Share Factor, a + b + c |
Employee Solution Contribution | Dropdown | employee_solution_contribution | Values 1-6. This is used in the calculation for Employee Share Factor, a + b + c |
Employee Task Assignment | Dropdown | employee_task_assignment | Values 1-6. This is used in the calculation for Employee Share Factor, a + b + c |
Employee's Share Factor | Text | employee_share_factor | The final employee share factor A, resulting from a + b + c, and corresponding value in table. To be used in the remuneration caluculation V = E * A |
Co-inventorship Percentage | Text | inventorship_percentage | Represents percentage ownership of the invention, P, used in calculation for remuneration V = E * A * P |
Out-of-the-box Expressions in Inventor Remuneration
The following expressions are added upon enabling Inventor Remuneration. They utilize the Field References of each of the custom fields.
Default Invention Value Calculation
This expression calculates the Invention Value (E) utilizing the following custom fields:
- Reference Size/Total Sales (B)
- License Rate (L)
- Invention Value (E)
The formula is E = B * L.
The logic for gradation, or sales staggering (Abstaffelung) is applied to the value entered for B.
{% set license_rate = matter.CustomFieldByReferenceName('license_rate').getActualValue %} {% if license_rate is empty %} {% set license_rate = 0 %} {% endif %} {% if '%' in license_rate %} {% set license_rate = license_rate * 0.01 %} {% else %} {% set license_rate = license_rate * 1 %} {% endif %} {% set final_reference_size = false %} {% set reference_size = matter.CustomFieldByReferenceName('reference_size').value %} {% if reference_size is empty %} {% set reference_size = 0 %} {% endif %} {% set tier_1 = 1533875.64 %} {% set tier_2 = 2556459.41 %} {% set tier_3 = 5112918.81 %} {% set tier_4 = 10225837.62 %} {% set tier_5 = 15338756.44 %} {% set tier_6 = 20451675.25 %} {% set tier_7 = 25564594.06 %} {% set tier_8 = 30677512.87 %} {% set tier_9 = 40903350.50 %} {% set tier_10 = 51129188.12 %} {# tier 11 #} {% if (final_reference_size is empty) and (reference_size > tier_10) %} {% set final_reference_size = ( (tier_1 * 1) + ((tier_2 - tier_1) * 0.9) + ((tier_3 - tier_2) * 0.8) + ((tier_4 - tier_3) * 0.7) + ((tier_5 - tier_4) * 0.6) + ((tier_6 - tier_5) * 0.5) + ((tier_7 - tier_6) * 0.4) + ((tier_8 - tier_7) * 0.35) + ((tier_9 - tier_8) * 0.3) + ((tier_10 - tier_9) * 0.25) + ((reference_size - tier_10) * 0.20) ) %} {% endif %} {# tier 10 #} {% if (final_reference_size is empty) and (reference_size > tier_9) %} {% set final_reference_size = ( (tier_1 * 1) + ((tier_2 - tier_1) * 0.9) + ((tier_3 - tier_2) * 0.8) + ((tier_4 - tier_3) * 0.7) + ((tier_5 - tier_4) * 0.6) + ((tier_6 - tier_5) * 0.5) + ((tier_7 - tier_6) * 0.4) + ((tier_8 - tier_7) * 0.35) + ((tier_9 - tier_8) * 0.3) + ((reference_size - tier_9) * 0.25) ) %} {% endif %} {# tier 9 #} {% if (final_reference_size is empty) and (reference_size > tier_8) %} {% set final_reference_size = ( (tier_1 * 1) + ((tier_2 - tier_1) * 0.9) + ((tier_3 - tier_2) * 0.8) + ((tier_4 - tier_3) * 0.7) + ((tier_5 - tier_4) * 0.6) + ((tier_6 - tier_5) * 0.5) + ((tier_7 - tier_6) * 0.4) + ((tier_8 - tier_7) * 0.35) + ((reference_size - tier_8) * 0.3) ) %} {% endif %} {# tier 8 #} {% if (final_reference_size is empty) and (reference_size > tier_7) %} {% set final_reference_size = ( (tier_1 * 1) + ((tier_2 - tier_1) * 0.9) + ((tier_3 - tier_2) * 0.8) + ((tier_4 - tier_3) * 0.7) + ((tier_5 - tier_4) * 0.6) + ((tier_6 - tier_5) * 0.5) + ((tier_7 - tier_6) * 0.4) + ((reference_size - tier_7) * 0.35) ) %} {% endif %} {# tier 7 #} {% if (final_reference_size is empty) and (reference_size > tier_6) %} {% set final_reference_size = ( (tier_1 * 1) + ((tier_2 - tier_1) * 0.9) + ((tier_3 - tier_2) * 0.8) + ((tier_4 - tier_3) * 0.7) + ((tier_5 - tier_4) * 0.6) + ((tier_6 - tier_5) * 0.5) + ((reference_size - tier_6) * 0.4) ) %} {% endif %} {# tier 6 #} {% if (final_reference_size is empty) and (reference_size > tier_5) %} {% set final_reference_size = ( (tier_1 * 1) + ((tier_2 - tier_1) * 0.9) + ((tier_3 - tier_2) * 0.8) + ((tier_4 - tier_3) * 0.7) + ((tier_5 - tier_4) * 0.6) + ((reference_size - tier_5) * 0.5) ) %} {% endif %} {# tier 6 #} {% if (final_reference_size is empty) and (reference_size > tier_4) %} {% set final_reference_size = ( (tier_1 * 1) + ((tier_2 - tier_1) * 0.9) + ((tier_3 - tier_2) * 0.8) + ((tier_4 - tier_3) * 0.7) + ((reference_size - tier_4) * 0.6) ) %} {% endif %} {# tier 5 #} {% if (final_reference_size is empty) and (reference_size > tier_3) %} {% set final_reference_size = ( (tier_1 * 1) + ((tier_2 - tier_1) * 0.9) + ((tier_3 - tier_2) * 0.8) + ((reference_size - tier_3) * 0.7) ) %} {% endif %} {# tier 4 #} {% if (final_reference_size is empty) and (reference_size > tier_2) %} {% set final_reference_size = ( (tier_1 * 1) + ((tier_2 - tier_1) * 0.9) + ((reference_size - tier_2) * 0.8) ) %} {% endif %} {# tier 3 #} {% if (final_reference_size is empty) and (reference_size > tier_1) %} {% set final_reference_size = ( (tier_1 * 1) + ((reference_size - tier_1) * 0.9) ) %} {% endif %} {# tier 2 #} {% if (final_reference_size is empty) %} {% set final_reference_size = (reference_size) %} {% endif %} {{ (final_reference_size * license_rate)|round(2) }}
This expression calculates the Employee Share Factor (A) using the following custom fields:
- Employee Position in Company (a)
- Employee Solution Contribution (b)
- Employee Task Assignment (c)
- Employee's Share Factor (A)
The formula is a + b + c, and takes the value from the Employee Share Factor table for A.
{% set tmp_sum = ( (inventorContact.CustomFieldByReferenceName('employee_position_in_company').getActualValue * 1) + (inventorContact.CustomFieldByReferenceName('employee_solution_contribution').getActualValue * 1) + (inventorContact.CustomFieldByReferenceName('employee_task_assignment').getActualValue * 1) ) %} {% set employee_share_factor = 0 %} {% if tmp_sum == 3 %} {% set employee_share_factor = 2 %} {% elseif tmp_sum == 4 %} {% set employee_share_factor = 4 %} {% elseif tmp_sum == 5 %} {% set employee_share_factor = 7 %} {% elseif tmp_sum == 6 %} {% set employee_share_factor = 10 %} {% elseif tmp_sum == 7 %} {% set employee_share_factor = 13 %} {% elseif tmp_sum == 8 %} {% set employee_share_factor = 15 %} {% elseif tmp_sum == 9 %} {% set employee_share_factor = 18 %} {% elseif tmp_sum == 10 %} {% set employee_share_factor = 21 %} {% elseif tmp_sum == 11 %} {% set employee_share_factor = 25 %} {% elseif tmp_sum == 12 %} {% set employee_share_factor = 32 %} {% elseif tmp_sum == 13 %} {% set employee_share_factor = 39 %} {% elseif tmp_sum == 14 %} {% set employee_share_factor = 47 %} {% elseif tmp_sum == 15 %} {% set employee_share_factor = 55 %} {% elseif tmp_sum ==16 %} {% set employee_share_factor = 63 %} {% elseif tmp_sum == 17 %} {% set employee_share_factor = 72 %} {% elseif tmp_sum == 18 %} {% set employee_share_factor = 81 %} {% elseif tmp_sum == 19 %} {% set employee_share_factor = 90 %} {% elseif tmp_sum == 20 %} {% set employee_share_factor = 100 %} {% endif %} {{ employee_share_factor ~ '%' }}
Default Inventor Reward Calculation
This expression calculates the Inventor Remuneration (V) using the following custom fields:
- Invention Value (E)
- Employee's Share Factor (A)
- Co-inventorship Percentage (P)
The formula is V = E * A * P
{% set employee_share_factor = inventorContact.CustomFieldByReferenceName('employee_share_factor').getActualValue %} {% if '%' in employee_share_factor %} {% set employee_share_factor = employee_share_factor * 0.01 %} {% else %} {% set employee_share_factor = employee_share_factor * 1 %} {% endif %} {% set inventorsip_percentage = inventorContact.CustomFieldByReferenceName('inventorsip_percentage').getActualValue %} {% if '%' in inventorsip_percentage %} {% set inventorsip_percentage = inventorsip_percentage * 0.01 %} {% else %} {% set inventorsip_percentage = inventorsip_percentage * 1 %} {% endif %} {{ (employee_share_factor) * (inventorsip_percentage) * (matter.CustomFieldByReferenceName('invention_value').value * 1) }}
TABLE OF CONTENTS