For example, if you have three options available:
Apples - upgrade for $10
Bananas - upgrade for $25
Coconuts - upgrade for $50
User has purchased the Bananas upgrade and now wants to purchase Coconuts upgrade. Right now, that user would have to pay $50 despite having already paid $25 for the Bananas upgrade. Instead, I would like to see an option where the user only pays the difference between each upgrade level when they wish to move to the next level of upgrades. So in this example, the user would only pay the $25 difference between Bananas and Coconuts.
I don't think there's an add-on out there that does this but it seems like a pretty basic standard feature so I'm surprised it's not already implemented.