It is possible to do certain math operations using coding functions in Athennian. The data must be numbertype in order for math operations to be performed through coding. Since functions such as count
and sum
result in a numbertype value, math can be performed with the byproducts of the count
and sum
functions as well.
Order of Operations
There’s no limit to the number of operations specified, but the order of operations must adhere to BEDMAS/PEMDAS structure, and use the appropriate mathematical symbol(s). This may require additional parentheses inserted into the code to capture the correct order of operations. Common uses of math operations include, but are not limited to, share price calculations, or residency requirements (percentage of directors).
Order of Operations (BEDMAS / PEMDAS)  Symbol 
Brackets / Parentheses 
( ) 
Exponents* 

Division 
/ 
Multiplication 
* 
Addition 
+ 
Subtraction 
 
Syntax
Sample Shareholdings Data 
Fiona Forrest holds 100 Common shares bought at $1.00 per share Gemma Germinate holds 50 Common shares bought at $1.00 per share Herbert Horticulture holds 100 Common shares bought at $1.00 per share Isabella Iridescence holds 25 Common shares bought at $1.00 per share Julian Juniper holds 10 Common shares bought at $1.00 per share 
Note: In the following code snippets of syntax, {which will appear like so}
, we will use the multiplication symbol (*) to represent any of the math symbols, depending on what operations need to be performed.
Using Simple Math
{#collectionVariable}{numberVariable*numberVariable}{/}
Having opened the target collection, insert the correct math symbol between the two numbertype variables.
To get a simple list of aggregate consideration, multiply the number of shares held by each shareholder by the price paid per share.
Input  Output 
{#transactions}{shareholdingName}(${numShares*pricePerShare}) 
Fiona Forrest ($100) Gemma Germinate ($50) Herbert Horticulture ($100) Isabella Iridescence ($25) Julian Juniper ($10) 
Using Math with sum Function
{collectionVariable  sum:'numberVariable*numberVariable'}
The sum
function is not only able to add up single numbertype variables within the same collection, it is also able to add up numbertype products of math operations. For more information on summing up values, check out Getting an Aggregate Amount using Sum.
To get a list of aggregate considerate of all transactions, we may sum up the product of all of the shareholder's considerations as calculated above.
Input  Output 
The total consideration paid is ${transactions  sum:'numShares*pricePerShare'}. 
The total consideration paid is $285. 
Using Math with count Function
{(collectionVariable  count)*number}
or
{(collectionVariable  count)*numberVariable}
or
{(collectionVariable  count)*(collectionVariable  count)}
Since the count
function results in a numerical value (aka numbertype data), it may be used with math symbols to perform the calculation specified. For more information on the count
function, check out the Counting Data article.
Sample Share Classes Data 
Common  voting Class A Special  nonvoting Class A Common  voting Class B Special  nonvoting Class B Common  voting Class C Special  nonvoting Class C Common  voting Preferred  nonvoting 
To calculate the ratio of voting share classes, divide the count of voting share classes by the total count of all share classes.
Input  The ratio of voting share classes is {(shareclasses  filter:'votingRights':'true'  count)/(shareclasses  count)}. 
Calculations 

Output  The ratio of voting share classes is 0.5. 
Mixed Operations
To calculate the percentage of nonvoting share classes, divide the count of nonvoting share classes by the total count of all share classes, then multiply by a numerical value of 100 to get the percentage.
Input  The percentage of nonvoting share classes is {((shareclasses  filter:'votingRights':'!true'  count)/(shareclasses  count))*100}%. 
Calculations 

Output  The ratio of voting share classes is 50%. 