inaturalist / iNaturalistReactNative

Cross-platform version of the iNat mobile app
MIT License
70 stars 25 forks source link

Measure Retention #1872

Open loarie opened 3 months ago

loarie commented 3 months ago

For all users of the app (not just logged in users), it would be nice to store the entire 30 day retention curve for each day - e.g.

Screenshot 2024-07-29 at 6 28 50 AM

but that requires storing 30 numbers for each dau which is alot of data

Screenshot 2024-07-29 at 6 22 30 AM

If thats too much, can we store Day 1, Day 7 and Day 30 retentions for each day and see these graphs over time like:

Screenshot 2024-07-29 at 6 29 35 AM

It would also be nice to have the same graphs for just logged in users

kueda commented 3 months ago

@loarie, what we discussed at the priorities meeting of 2024-07-23 was to make a Grafana visualization of the existing retention data we have, and maybe modify the code that populates that table to separate out iNat Next users. Since I don't really understand what retention data we have or how/where that gets collected, could you please explain that? Is there additional data that needs to be submitted by iNat Next to make that work?

If you really want a totally new data collection system that replicates the App Store's 30-day retention curve, please bring that up for discussion at the next priorities meeting, or please make it clear that you're overriding the decisions made in the last priorities meeting.

loarie commented 3 months ago

Minimum requirement is to display average 7-day retention for any user (logged in or logged out) using iNatNext for each day on the Graphana dashboard where the x-axis is time and the y-axis is 7-day retention (as %) where 7-day retention on dayX is defined as number of installations created on dayX-7 active on dayX we know that the installation ID's aren't unique so its not exactly users, but that's ok

next level of sophistication would be to define 7-day retention as the average of 7-day retentions for 7 cohorts from dayX-14 to dayX-7

next level of sophistication would be to also add 1 and 30-day retention graphs in addition to 7-day

final level of sophistication would be to store the whole 30 x 30 half-matrix of retentions as Apple does and be able to click on any day (e.g. Jun 28) show the whole average retention curve for that day (x-axis is day 1 through day 30, y-axis is % retention)

we discussed in web-ops meeting and @sylvain-morin will connect with @kueda to discuss how to go about meeting these requirements