In mathematics, BODMAS (BRACKETS-OF-DIVISION-MULTIPLICATION-ADDITION-SUBTRACTION), defines the order of operations in a calculation.
Example:
1 + 2 * 3 ^ 2 + 1 would be evaluated as:
1 + (2 * (3^2) ) + 1
= 1 + (2 * 9 ) + 1
= 1 + 18 + 1 = 20.
The system does not currently follow the conventional laws of mathematics. Instead it follows a "left to right" law, and would evaluate the above formula as:
1 + 2 = 3
3 * 3 = 9
9 ^ 2 = 81
81 + 1 = 82
Note:
The conventional order can be forced by the use of brackets.
Calculations are set up in potentially many levels and the type of result specified for a product at Level n will determine the precision of the calculation performed at Level n+1. This is best explained by the examples below:
Example 1:
Suppose that the products (named Level 1, Level 2.1, etc.) have been set up as follows:
Product Name |
Type of Result |
Formula |
Result |
Level 1 |
Amount |
= Level 2.1 + Level 2.2 |
11.02 |
Level 2.1 |
Amount |
= Level 3.1 ^ Level 3.2 |
1.15 |
Level 2.2 |
Factor |
= 9.876 |
9.87600000 |
Level 3.1 |
Factor |
= 1.0345 |
1.03450000 |
Level 3.2 |
Amount |
= 5 |
5.00 |
This is explained as follows:
Level 2.1 = Level 3.1 ^ Level 3.2
Because Level 2.1 is of Type Amount, the lower level products (Level 3.1 and Level 3.2) are held as Type Amount with values 1.03 and 5.00 respectively, so that Level 2.1 = 1.03 ^ 5.00 = 1.15 (=1.15927407 truncated to 2 decimal places).
Level 1 = Level 2.1 + Level 2.2
Because Level 1 is of Type Amount, the lower level products (Level 2.1 and Level 2.2) are held as Type Amount with values 1.15 and 9.87 respectively, so that Level 1 = 1.15 + 9.87 = 11.02
Example 2:
Suppose that the products have been set up as follows (same as Example 1, but with Level 2.1 as Factor):
Product Name |
Type of Result |
Formula |
Result |
Level 1 |
Amount |
= Level 2.1 + Level 2.2 |
11.05 |
Level 2.1 |
Factor |
= Level 3.1 ^ Level 3.2 |
1.18482026 |
Level 2.2 |
Factor |
= 9.876 |
9.87600000 |
Level 3.1 |
Factor |
= 1.0345 |
1.03450000 |
Level 3.2 |
Amount |
= 5 |
5.00 |
This is explained as follows:
Level 2.1 = Level 3.1 ^ Level 3.2
Because Level 2.1 is of Type Factor, the lower level products (Level 3.1 and Level 3.2) are held as Type Factor with values 1.03450000 and 5.00000000 respectively, so that Level 2.1 = 1.03450000 ^ 5.00000000 = 1.18482026
Level 1 = Level 2.1 + Level 2.2
Because Level 1 is of Type Amount, the lower level products (Level 2.1 and Level 2.2) are held as Type Amount with values 1.18 and 9.87 respectively, so that Level 1 = 1.18 + 9.87 = 11.05
i |
= |
effective annual return (e.g. 0.12, or 12% p.a.) |
i(m) |
= |
annual return compounded m times per annum (e.g. 12% p.a. effective = 11.39% p.a. compounded monthly) i.e. 12 * im |
im |
= |
effective monthly return (e.g. 0.009489, or 0.9489% p.m.) i.e. (1 + i)(1/12) – 1 |
S(n , j) |
= |
accumulated value of R1 payable for n periods at rate j i.e. if j ≠ 0, then [ (1 + j)n - 1 ] / j or if j = 0, then n |
Note:
The above assumes that i is provided as the starting point from which the other items are derived. If im is provided instead, then i can be obtained as follows:
i = (1 + im)12 - 1
All the other formulae remain unchanged.
The practice of expressing fund values as numbers of units is sometimes used as a convenient method of keeping track of member accumulations and of allocating bonuses. This does not change the fact that the fund is still subject to conventional interest and bonus rates and the formulae are not affected in any way.
Dc |
= |
calculation date |
D1 |
= |
next salary increase date |
D2 |
= |
last salary increase date |
Dp |
= |
projection date |
|
This will be calculated for each contribution type and costs deducted from the RCS contributions. For defined benefit funds only the employee contributions are calculated, and where applicable, an enhancement factor applied depending on the member’s years of service.
Suppose
D1 – Dc |
= |
x months |
D2 – D1 |
= |
n years |
Dp – D2 |
= |
y months |
e |
= |
salary escalation rate |
i |
= |
investment return or the refund interest rate (for defined benefit funds) |
C |
= |
current (investable) annual contribution, i.e. current annual salary * (contribution rate - costs rate) |
then
Projection for contributions made from Dc to D1 |
P1 = (C / 12) * S(x , i12) * ( 1 + i12)( 12 * n + y ) |
Projection for contributions made from D1 to D2 |
ir = (1 + i) / (1 + e) -1 P2 = C * (1 + e)n * ( i / i(12) ) * S(n , ir) * ( 1 + i12) y |
Projection for contributions made from D2 to DP |
P3 = (C/12) * (1 + e)(n+1) * S(y , i12) |
Total Projection |
= P1 + P2 + P3 |
Note:
The above formulae are in respect of future service contributions. The projected value of past service contributions must be added, i.e. accumulated past service contributions * (1+i ) (12 * n + x + y) / 12 .
If there are no salary increases in the projection period (e.g. if projection period is less than a year and no increase is due in that period):
P1 |
= |
0 |
P2 |
= |
0 |
y |
= |
DP - DC |
P3 |
= |
(C/12) * S(y , i12) |
If there is just one salary increase in the projection period (i.e. if D2 = D1), then P2 = 0, and the formulae for P1 and P3 are unchanged.
Note:
- A member will never get a salary increase on date DP. If DP is the date that an increase would have been due, (if the member did not exit), then D2 should be taken as one year before date DP (assuming the projection period is greater than one year).
- If a member received a salary increase on date DC, then D1 = DC + 1 year (assuming the projection period is greater than one year).
If the voluntary contributions can be expressed as a percentage of salary continuing from the calculation date to the projection date, then the formulae for Projection of accumulated contributions and those under Variations in accumulated contribution projections (above) can be used. If the voluntary contributions are a flat amount, then the salary escalation rate (e) should be set to zero in those formulae.
The projected final salary (i.e. the rate of salary as at the projection date) is
S * (1 + e)m
where
S |
= |
current salary |
e |
= |
salary escalation rate |
m |
= |
number of increases between now and the projection date |
The projected average salary earned over the final averaging period is
Where the entire averaging period is in the future
Suppose
D2 – D1 |
= |
n years |
Dp – D2 |
= |
y months (if y = 0, then it is set to 12, and n is reduced by 1) |
e |
= |
salary escalation rate |
f |
= |
final average period |
S |
= |
current annual salary rate |
FS |
= |
final annual salary rate: S * (1 + e) (n + 1) |
then FAS (final average salary) =
FS * { y + (12 / e) * [ 1 – (1 + e) (1 - f) ] + (12 – y) / (1 + e) f } / (12 * f)
Where the averaging period spans the past and future
- If Dp – Dc < final average period and D1 does not exist:
Suppose D1 (next salary increase date) does not exist, i.e. the member will retire before his next salary increase due date. This means that the entire final average salary can be calculated using actual salary history, and without any reference to any special formulae. It is assumed that the current salary will continue to retirement.
- If Dp – Dc < final average period and D1 exists:
In addition to the previously defined parameters (viz. Dc , D1 , D2 , Dp , n , y , e , f , S and FS) let:
D1 – Dc |
= |
z months |
f – Dp + Dc |
= |
p months |
TPS |
= |
total past salary over the past p months (calculated using actual salary history) |
If n>0
then
β1 |
= |
total salary over past p months (TPS) |
β2 |
= |
total salary over next z months (z * S / 12) |
β3 |
= |
total salary over the following n years (S * { (1+e)(n + 1) - (1 + e) } / e) = { FS - S * (1 + e) } / e |
β4 |
= |
total salary over the last y months (y * FS / 12) |
FAS |
= |
( β1 + β2 + β3 + β4 ) / f |
If n>0
then
FAS = ( β1 + β2 + β4 ) / f (using same formulae as above).
Note:
When using salary history, the appropriate salary to be used (anniversary or monthly) will depend on the benefit basis.