Reconcile gross purchases and refunds without moving the cohort
Analysis
By Isaac Turner, Measurement Editor — 2 min read
View author profile
An acquisition report and a finance export can disagree even when both add correctly. A reproducible synthetic example with editable inputs and explicit limits.
An acquisition report and a finance export can disagree even when both add correctly. One may contain gross purchase value while the other includes subsequent refunds. This lab makes that difference explicit and keeps the original acquisition cohort fixed while inspecting the revenue bridge.
Define the calculation before using it
Use a single currency and decide whether the exercise follows transaction date or the original install cohort. Sum the gross amount, associate refunds with the relevant purchases, then subtract only the refund values included in the defined observation window. Keep taxes, platform deductions and chargebacks outside this simple model unless their treatment is documented separately; net of refunds is not automatically net cash.
Work through the synthetic example
The illustrative cohort has 5,000 currency units of purchases and 400 of refunds. The bridge reports 4,600 after refunds and an 8% refund share. If the acquisition dashboard remains at 5,000, the next question is whether refunds were sent, joined and included in the same cohort view. A later refund belongs in a later observation snapshot without changing the cohort’s install date.
| Output | Worked-example result |
|---|---|
| After-refund revenue | 4600.0000 |
| Refund share % | 8.0000 |
Use the artifact and preserve its assumptions
Open the editable calculator to change the inputs and inspect the sensitivity view. The CSV records synthetic inputs and expected outputs; the JSON fixture keeps the equations available for reproduction. These calculations have been checked against the stated example. No measured campaign data is included.
The sensitivity rows vary only refunds by 20% below and above the entered value. They are scenarios, not confidence limits or a forecast distribution. A row outside the model’s constraints is labelled rather than turned into a plausible-looking result. Save the chosen inputs with the decision so another reader can distinguish a changed assumption from a changed formula.
Evidence and limits
Google documents refund events separately from purchases and calls for currency alongside value data. The model below is our own aggregate accounting exercise, not a claim about an actual game’s exported revenue. See Measure ecommerce: purchases and refunds, especially “Make a purchase or issue a refund; Recommendations”.
No real refund rate is implied. Partial refunds, exchange-rate changes and mismatched transaction keys require transaction-level reconciliation before this aggregate exercise can resolve them.
Background: UA metrics explained: CPI, ROAS, LTV and payback and Reading an MMP dashboard without fooling yourself. These existing articles provide context; the present calculation does not verify every archived claim.
Featured
Related posts

measurement
media buying
·1 min read
Using predicted LTV in bids: disclosure checklist for the UA team

measurement
media buying
·1 min read
Blended ROAS targets that hide channel failure in F2P portfolios

measurement
media buying
·2 min read
Web-shop LTV with VAT-inclusive prices versus store net proceeds (labelled synthetic)

measurement
media buying
·1 min read
View-through attribution windows on F2P rewarded and interstitial traffic
More from the Measurement desk

measurement
·2 min read
Airbridge adds Amazon Ads as an app measurement channel

measurement
·2 min read
When to freeze a cohort for payback review (and when not to)

measurement
·1 min read
Web-shop purchaser quality vs store IAP purchaser quality

measurement
·1 min read