The Process Sequence

In this section we take you step by step through the process, and then provide you with an example.

The processing sequence involves these steps:

  1. User enters the bonus amount by positive input as the earning BONUS NET.

  2. BONUS NET earning gets resolved in the EARN - OTHER section and adds to accumulator GRS UP EARNINGS.

  3. The EARN - GROSS UP subprocess section in the NZL PAYROLL process list has the conditional formula GUP FM CALC REQD.

    If the formula finds that the GRS UP EARNINGS accumulator is not zero and that there is, therefore, a grossing up to be done on the BONUS NET earning, it invokes the EARN - GROSS UP subprocess section.

  4. The formula GUP FM INIT VALUE, the first element in the EARN - GROSS UP section, sets the variable GUP VR TARGET NET to the value of the GRS UP EARNINGS accumulator (the BONUS NET amount). This value remains constant during subsequent processing.

  5. The deduction XE GRS UP—the second element in the EARN - GROSS UP section—runs the formula TAX FM XE TAX which calculates the employee's Extra Emolument tax amount.

  6. The conditional formula GUP FM COMPARE NET in the EARN - GROSS UP section compares the constant value of GUP VR TARGET NET (set at step 4) with the value of the GRS UP NET accumulator that has the XE GRS UP deduction subtracting from it and the GRS UP EARNINGS accumulator adding to it.

  7. If the formula returns FALSE, meaning that there is no difference between GUP VR TARGET NET and GRS UP NET, the process stops.

    If the formula returns TRUE, the formula GUP FM ALTER GROSS runs and works out a new BONUS GRS UP value. The BONUS GRS UP value is the amount by which the net is increased to get a taxable gross.

  8. The XE GRS UP deduction recalculates the employee's Extra Emoluments tax balance for the GRS UP NET accumulator which now contains the original BONUS NET value and the new BONUS GRS UP value.

    The tax deductions are calculated to produce a new actual net.

  9. The loop of calculating a new gross then deducting the taxes to get a new balance in the GRS UP NET accumulator and comparing it to the constant GUP VR TARGET NET continues until the actual net is equal to the target net.

  10. When the looping stops, formula GUP FM CHECK AMT runs and checks that the GUP FM COMPARE NET formula has resolved to FALSE indicating that the system has calculated the correct gross up figure.

    If it returns TRUE, the payee goes into error and a message is sent to Payee Messages. The system goes through the loop a maximum of fifteen times. If it fails to correctly calculate the gross amount within that limit, you would need to remove the BONUS NET earning amount, calculate the gross manually and pay it as an earning of your choice.

The following example is based on a positive input entry of 500 to the BONUS NET earning. The 500 becomes the value of GUP VR TARGET NET.

For our example tax deductions are a flat amount of 20 percent; therefore, the first time the GUP TAX DEDUCTION section is called, it calculates tax deductions of 100.

The conditional formula, GUP FM COMPARE NET, resolves to true as the target net is 500 and the actual net is 400. The looping process begins:

First Loop

The difference is calculated by subtracting the actual net from the target net.

500 − 400 = 100.00

The gross amount is increased at the first attempt to find the eventual BONUS GRS UP earning amount using the following calculation:

((1 − net/gross) × difference) + current BONUS GRS UP + difference

((1 − 400/500) × 100) + 0 + 100 = 120 (new BONUS GRS UP)

The gross is increased on the first loop by 120 and is now 620.

Tax is deducted from the gross of 620 and the new net is 496.

The target net of 500 is compared to the actual net of 496.

As the amounts are not equal, and the correct gross has not been found, a second loop occurs.

Note: The GRS UP EARNINGS accumulator is "self correcting," which means that the previous value is "reversed out" and the new value added. The accumulator can adjust up or down as needed. This occurs for each loop in the process.

Second Loop

The difference is calculated by subtracting the actual net from the target net.

500 − 496 = 4

The gross amount is increased at the second attempt to find the eventual BONUS GRS UP earning amount using the following calculation:

((1 − net/gross) × difference) + current BONUS GRS UP + difference

((1 − 496/620) × 4) + 120 + 4 = 124.8 (new BONUS GRS UP)

Gross is increased by 124.8 to 624.80.

Tax is deducted from the gross of 624.80 and the new net is 499.84.

The target net of 500 is compared to the actual net of 499.84.

As the amounts are not equal, the correct gross has not been found, so a third loop occurs.

Third Loop

The difference is calculated by subtracting actual net from the target net.

500 − 499.84 = 0.16

The gross amount is increased at the third attempt to find the eventual BONUS GRS UP earning amount using the following calculation:

((1− net/gross) × difference) + current BONUS GRS UP + difference

((1 − 499.84/624.8) × 0.16) + 124.8+0.16 = 124.99 new BONUS GRS UP rounded to 2 decimal places)

Gross is increased by 124.99 to 624.99.

Tax is deducted from the gross of 624.99 and the new net is 499.99.

The target net of 500 is compared to the actual net of 499.99.

As the amounts are not equal, the correct gross has not been found, so a fourth loop occurs.

Fourth Loop

The difference is calculated by subtracting the actual net from the target net.

500 − 499.99 = 0.01

The gross amount is increased at the fourth attempt to find the eventual BONUS GRS UP earning amount using the following calculation:

((1− net/gross) × difference) + eventual BONUS GRS UP + difference

((1− 499.99/624.99) × 0.01) + 124.99 + 0.01 = 125.00 (new BONUS GRS UP rounded to 2 decimal places)

Gross is increased by 125 and is now 625.

Tax is deducted from the gross of 625 and the new net is 500.

The target net of 500 is compared to the actual net of 500.

The compare formula now resolves to false, and the looping process ceases. At this point:

  • Gross pay is 625.

  • Net pay is 500.

  • BONUS GRS UP is 125.

  • BONUS NET is 500.