Issues monthly active users (MAU) in usage ping
What
Send via usage ping, how many users in the instance have accessed an issue at least once in a given month.
Why
Currently we get object counts via the usage ping. But this is not direct usage data from users. A better type of metric that products like GitLab would use is count if active users. This gives a more direct measure of active users (and ultimately customers) are getting value.
This gives the product team a better metric to measure adoption. Also, once we have issues MAU, we can then easily expand to category MAU (e.g. Project Management MAU) and then from there we can calculate Stage MAUs. E.g. if a user uses at least an issue or an issue board once a month, it contributes to the Project Management MAU.
This is also good for investor relations. We need to eventually report on business metrics and this would be a good way to subdivide our business across different stage or categories for reporting purposes.
-
IssuesMAU
:= Count of users who access at least one page in the given month. -
ProjectManagementMAU
:= maximum {IssuesMAU
} (which in this case means =IssuesMAU
) -
TeamPlanningMAU
:= maximum {ProjectManagementMAU
,KanbanBoardsMAU
,TimeTrackingMAU
} -
PlanMAU
:= maximum {TeamPlanningMAU
,EnterprisePlanningMau
,CertifyMAU
}
How
We currently send the usage ping about once a week in an instance. So this change can be implemented independently of this cadence. And so the updated issues MAU can be sent in each usage ping.
Every time a user accesses an issue, store that user associated with a timestamp (or at least the month of that time). When it is time to calculate issues MAU, take that stored data and calculate it. Ideally we can store many months of data in the past and send it each time. But at a minimum, we should the store the timestamp (or month) of the last issue access of every user. And so when you calculate the latest MAU for the latest month, you can calculate it.
Only feature level metrics in usage ping
We should only send feature level metrics in the usage ping. Category level and stage level metrics can be inferred on the GitLab side in our various ETL and reporting mechanisms. So in the above example, only IssuesMAU should be in the usage ping and not the higher level ones.