It might be better to avoid mutating the original object when we are doing mapping. Since Observable does not rely on the order of the code block, it might introduce strange bugs sometimes.
In this case you can return a new object with the calculated percentage instead of setting the value then returning the original object.