TL;DR
When a train is at a station waiting to be unloaded show the progress in the schedule of the train.What ?
When a train is loading (left side) the condition is usually one of ">" or ">=" and the progress is shown as items present / items needed:When a train is unloading (right side) the condition is usually "= 0" or "<" or simply "Empty cargo inventory". The last will show a progress computed from the amount present in the train on arrival and the amount currently left in the train. The first two conditions show no progress and only turn green when they are finally met.
My suggestion is to show the progress for any condition with a count as follows:
- on arrival remember the current content of the train
- calculate the difference between the current content and the needed content = delta
- for any condition not already met the progress is: abs(needed - current) / delta
Note: On loading the progress will start at 0% even if the train already is partially loaded. I think that is a divergence from current behavior but will show the actual progress made at this station towards the goal.