Work with me
A paid, scoped engagement to reconcile revenue and analytics numbers that disagree across RevenueCat, Mixpanel/Amplitude, and App Store Connect.
You pull revenue for the same period from RevenueCat, your analytics tool (Mixpanel or Amplitude), and App Store Connect, and the three numbers don't match. Nobody on the team is sure which one to trust, so nobody can make a call that depends on it: a board update, a marketing spend decision, a "is this feature actually working" call.
This is for you if
This isn't for you if
"Our RevenueCat dashboard says one number, our analytics tool says another, and App Store Connect says a third, and finance is asking which one goes in the deck."
Five checks, run in order against your actual numbers. Each one either explains the delta or rules itself out before moving to the next: the same structure as the free write-up, just applied to your specific app instead of explained in general.
Gross vs. net commission reporting
Confirm whether each destination (RevenueCat, your analytics tool, App Store Connect) is configured to report gross revenue or net-of-commission revenue, and quantify how much of the gap that alone explains.
USD normalization vs. local currency
Check which source normalizes to USD at transaction time vs. report time, which FX rate each one uses, and the resulting drift for markets with meaningful non-USD volume.
Trial, pending and renewal event-type mismatches
Map which event types each destination counts as "revenue" and at what moment. Find where the same transaction is double-counted in one source and dropped in another.
Server-side receipt validation vs. client-fired events
Separate what comes from server-side receipt validation (RevenueCat, App Store Connect) from what comes from client-fired SDK events, and quantify how much of the gap is dropped or late client events.
Proceeds vs. sales timing
Compare the date each source books a transaction against (sale date vs. proceeds/payout date), and quantify how much of the delta is pure timing rather than a real discrepancy.
| Scope | One app, one revenue-reporting discrepancy |
|---|---|
| Turnaround | Set once scope is confirmed, not fixed here |
| Deliverable | Written findings report |
| Capacity | 2 at a time |
A written findings report: which of the five checks above explains your delta, the size of each contributing factor where it can be quantified, and which number to treat as ground truth: for finance, and separately for growth/marketing decisions, since those aren't always the same number.
This diagnostic is the first paid step, not the only one. It sits between the free write-up above and anything larger:
If I'm not the right person for what you need, I'll say so: on the call, before any money changes hands. Specifically:
I take two clients at a time, because I do the work myself, not a retainer team, not outsourced analysis. That's a fact about how this works, not a countdown.
Why pay for this instead of reading the free write-up?
The free write-up covers the five general causes. This engagement applies them to your actual numbers and tells you which one (or combination) is yours, quantified.
What if none of the five checks explain it?
Then the engagement did not do its job, and I refund it. Tell me the report was not useful and I send the money back. No form, no argument. That is the whole guarantee, and it is the same answer whether the cause turned out to be something rarer than the five or whether I simply did not find it.
Do you need production access or credentials?
No production access, and no credentials that can change anything. Read-only viewer access to the dashboards is the fastest route: RevenueCat, your product analytics, and App Store Connect. If your policy does not allow that, exported reports and CSVs work too. It is slower, and it is a perfectly reasonable thing to insist on.
What does this cost?
Not published here: that number comes in conversation, once the scope is confirmed against your actual situation.
No price is published here: that number comes in conversation, once the scope is real.
Book a call →