Big one, but would be great to support metrics based off the AppEvents endpoint from the Partner API.
Ideas
Use an Events model, for all types, including payments. So convert Payments and AppEvents into a single format.
Event types
Note: A single app event or payment from shopify can result in multiple of the events above. For example “Uninstalled” may also create a “Churned” event if it was a previously paying shop.
Some events must be generated via a calculation, meaning all data must be present before those can be done correctly. Perhaps a processing pipeline lile this:
- Import from CSV (historical revenue numbers only)
- Import payments from API
- Import events from API
- Generate calculated events for these newly imported records
- Calculate rollup metrics for each day
Events model
- Date
- Revenue type (monthly, yearly, onetime, usage, none)
- Event type (from list above)
- Shop (association)
- App (association)
- Gross amount
- Shopify fee ampunt
- Net amount
- Calculated (true/false) -> Maybe needed for 2 step import + creating of additional event types..like Churned etc.
Rollup to Metric model
Events give us enough information to then
calculate daily aggregated records (with dimensions of revenue type, app & event type) for each final metric we want to display.
Monthly MRR
Monthly Churned MRR.
Monthly LTV
Monthly MRR expansion revenue
Yearly ARR…
We still don’t have a great way to track trials, BUT we can show Installs to paid conversions and “new” revenue metrics, which should be good enough.