An element must be set as an output element in Live Price Grid when:
It is referred in the api.currentItemByElementName() call as a parameter. This function is used to find the value before the calculation, so in order to keep that information, the item must be visible.
It is marked as 'Allow override' (therefore it is referred in the api.getManualOverride() call as a parameter. The approach is clear: if I should be able to override a value, I need to have a field where I can write this value to.
The critical alert can be set in that element both in the UI or via api.criticalAlert(). For api.redAlert and api.yellowAlert this is not the case, since if they don't want to see the value of the element at all, then it does not matter if it can be red or yellow.
It it is referred in an alert comparison condition in another element.