Свойство пользователя перезаписывается: ретроспектива по тарифу ломается
В продуктовой аналитике у пользователя есть свойство plan со значениями free и premium; при апгрейде оно перезаписывается новым значением.
Аналитик строит отчёт за полгода: «конверсия из просмотра урока в завершение урока в разрезе тарифа, действовавшего на момент действия». Разрез берётся из свойства пользователя.
Что получится и как считать правильно?
- Свойство пользователя хранит только текущее значение и применяется ко всей его истории задним числом: все прошлые события апгрейднувшихся окажутся помечены premium, и разница между тарифами будет искажена. Тариф на момент действия нужно писать в свойство события или восстанавливать из таблицы истории изменений
- Достаточно отфильтровать события по дате апгрейда и построить два отчёта — до неё и после: платформа хранит все версии свойства пользователя и при фильтре по периоду сама подставляет то значение, которое действовало на момент события, поэтому дополнительных полей заводить не нужно вообще, достаточно правильно выставить период в фильтре отчёта
- Свойства пользователя обновляются с задержкой, поэтому часть событий помечена старым тарифом; после переиндексации данных отчёт станет корректным
- Нужно завести события upgrade и downgrade — после этого свойство plan станет историческим и разрез заработает
