decentraland / decentraland/godot-explorer
Cross-Platform Metrics Alignment: Core KPI Definitions
- Dominant language
- Rust
- Stars
- 18
- Forks
- 19
- Avg merge
- 4d 2h
- Merged PRs (30d)
- 43
Description
## **⚠️ Problem:**
Mobile and desktop report the same KPI names off different definitions — build filter, internal-wallet exclusion, AFK treatment, session grain — so DAU, playtime and retention are not comparable across clients. Mobile's own numbers move ~11% on the `%-prod` filter alone; today nobody can tell whether a cross-client gap is behavior or definition.
## **🏁 Scope:**
One metric dictionary covering the core KPI set for mobile + desktop: per metric, one definition, or an explicit divergence with reason. Dashboards and the daily digest realigned to it. No new client events, no crash/stability metrics (#2712).
## **📝 Deliverables:**
- [ ] Core KPI list frozen: Active Users, New Users, Game Entry Completion, Concurrent Users, Playtime, Retention D1/D7/D30, Social Behavior, Version Adoption
- [ ] Per metric: grain, source mart/table, filters, denominator, window, AFK treatment
- [ ] Mobile vs desktop diff table — matched / divergent / not measured on one client
- [ ] Each divergence resolved: unified, or kept + reason documented
- [ ] Cross-client dedupe rule for a wallet active on both clients same day
- [ ] Dictionary published in a shared location, linked from #1606 and #2743
- [ ] Sign-off: data team + desktop owner + mobile PM
- [ ] Mobile KPI dashboard (#1606) + digest cards updated to signed definitions
## Metrics
- Target: `Playtime` · `Retention` · `New Users` — governs how they are computed, not their level.
- Direction: cross-client KPI disputes → 0. One number per metric per client, reconcilable.
- Measurement: Metabase Mobile KPI dashboard (#1606) + Snowflake `DCL_NEXT.MARTS`; desktop equivalents identified in the diff.
## Notes
- System of record — same mart for both clients, or two marts + reconciliation view?
- Does desktop exclude internal wallets and non-prod builds? Mobile does both.
- AFK: mobile playtime gross, scene time net. Unify or freeze before desktop copies either.
- Retention anchor: wallet, device or account? Guest sessions.
- Desktop-side owner unassigned.
## **🔗 References:**
- [decentraland/godot-explorer#1606](https://github.com/decentraland/godot-explorer/issues/1606) — mobile KPI set + Metabase dashboard (DAU/WAU/MAU, D1–D30 retention, playtime buckets, entry funnel). The definitions being reconciled.
- [decentraland/godot-explorer#2743](https://github.com/decentraland/godot-explorer/issues/2743) — daily digest reads those cards; any definition change lands here first.
- [decentraland/godot-explorer#2712](https://github.com/decentraland/godot-explorer/issues/2712) — crash/stability series, separate owner. Out of scope.
- [decentraland/unity-explorer#6933](https://github.com/decentraland/unity-explorer/issues/6933) — desktop aligned analytics event names with the dApp (closed, empty body). Ask @popuz what was aligned before re-deriving desktop definitions.
- No metric-definition issue on desktop: searched `repo:decentraland/unity-explorer metrics|analytics|KPI in:title`, 2026-09-14.
Contributor guide
Assessment
This issue has not been assessed yet.