Thanks for the help.
Ok, i've had a bit of time to test your suggestions.
The first option does not work. The distribute-loss function has no conditions and therefore runs every cycle. The cancel was therefore triggering immediately.
The second option seems to work. This is the one in which we create a separate trigger which is conditional on the distribute-loss having triggered. The fact that this works challenges my understanding of when a trigger has run. I thought if the conditions, as defined in the right-hand side of the trigger were met it was deemed to have been executed. But now this is not the complete story: its also dependent on the specific action i.e. distribute-loss, green-up.
As an aside I created a trigger containing a green-up followed by a distribute-loss... I also selected execute to "once per selection". The interesting fact (well to me it was interesting) was this trigger could execute twice per selection... once for the green-up and once for the distribute-loss at different cycle times. I, however, was expecting it to execute once only i.e. either the green-up or the distributive-loss.
It what i'm describing how it should work?
Chat soon,
Drab