Refund VS partial refund due to upgrade

Hi!

TL;DR: The main question is:

  • Is there any [reliable (I can compare expiresDate and purchaseDate of next by date transaction, but that's weird)] way to distinguish partial refund (i.e. upgrade) from simple refund in /verifyReceipt?

Details: I know that in notifications I can get information: REFUND and DID_CHANGE_RENEWAL_PREF with subtype (UPGRADE/DOWNGRADE), so I can understand, what is going on. I noticed that in case of upgrade there is partial refund of previos transaction (Upgrade. Someone purchases a subscription that offers higher level of service than their current subscription. They’re immediately upgraded and receive a refund of the prorated amount of their original subscription. If you’d like people to immediately access more content or features, rank the subscription higher to make it an upgrade.) So is there any way to determine partial/full refund using /verifyReceipt if I miss notification for example?

The main goal is to count total revenue, so it'll be less than should be, if I won't get information about partial refund and use full refund instead. (Hope that I didn't confuse you..)

Okay, finally I found some information: The field is_upgraded will be true also when cross-grading subscription of the same duration. In other words, is_upgraded = true is not actually an upgrade, but it’s changing subscription with a refund. (can't link site). SO remained question is:

  • is_upgraded means, that part of price = (expires_date_ms - cancellation_date_ms) / (expires_date_ms - purchase_date_ms) is refunded, is this right?
Refund VS partial refund due to upgrade
 
 
Q