AVG takes all the values you provide in between a set of brackets, each seperated by a comma, and gives you their average.
AVG can also return the average of values that are produced by another function.
AVG(p.base_fee, p_transaction_fee, p.report_fee)
This expression works in a couple of steps to bring you the result:
AVG( .... ) is the overarching function, of which you want the result. In between its brackets sits another function.
get_properties_from_instances(.......) is the function inside the
AVG brackets, which goes and fetches the property of the instances you specify.
instances(AccountHolder, personal_income) returns the personal income of all the accountholders.
These three combined, give you the average of the personal incomes for all the accountholders in the case.