Transition to 13 period reporting cycle
Summary
When working with metrics at GitLab, we find PI date ranges and reporting periods to be confusing, especially since we report 28-day counters on a monthly cadence. Some of the current challenges:
- There are days that are not included in any reporting because they fall outside a 28-day window (ex: the 1st of the month). In addition, sometimes usage from outside the reporting month is included in monthly reporting (ex: the 31st of the prior month). It is also possible for usage from some dates to be counted in multiple reporting periods.
- It is challenging and confusing to communicate date ranges/reporting periods (ex:
2021-11-29 - 2021-12-27
to2021-12-05 - 2022-01-02
). Since instances send service pings on different days of the week, the 28-day reporting period differs across instances.- Aside: You can read more about how we determine the date range for xMAU/PI reporting here. The methodology to identify an instance's "last ping of the month" is being updated to become more intuitive as a part of the TD xMAU project, but the overall approach will not change.
Proposal
Change from a 12-period (monthly) reporting cadence to a 13-period (4 weeks per period) cadence. With respect to the challenges listed above:
- A 13-period cadence ensure that all days fall into some reporting period. There is no concern that usage from specific period is missed, misattributed, or included in multiple periods.
- If we use actual dates to describe the reporting period, the date ranges are still challenging to communicate. However, this opens up the opportunity to refer to the reporting window by period number (ex: period 2).
Examples / Visualizations
Below is an example of an instance who sends service ping every Saturday. There are 3 different visualizations for how that service ping data could be used in 2021-early 2022 reporting.
-
CurrentLegacy Monthly Logic (left): This is the old legacy logic and shows how this installation's data was reported in the old models. It uses a methodology to identify the "last ping of the month" that is anchored on the date at the beginning of the week (Monday). - New Monthly Logic (center): This version uses the new TD data models. In this version, we identify the "last ping of the month" based on the actual calendar month. See this handbook page for more details on the methodology.
- New 13 Period Logic (right): This version uses 13 28-day periods.
You can see how entire weeks are excluded from reporting using a monthly cadence where all days are included in a 13-period cadence.
Contributing Teams
-
Data -
Product Intelligence -
Product Data Analysis -
Customer Success -
Product -
Business Analytics and Insights
Project Update
as of 2022-04-12
Thank you everyone for your feedback! Based on the conversation, interest and initial modeling in this issue, we will move forward to a design validation phase during Q2.
The intent of the validation is for the DRI teams who own downstream effects of this decision to research the impacts if we make this change. That will allow each of the teams to estimate the level of effort, cost and time to deliver such a change.
Once we have this information, we will ask @justinfarris and @david whether we are approved to proceed. With their approval, work to cut dashboards and models over to the 13 period cycle will be conducted in Q3.