Render the DAP Impact new vs returning panel as a bar chart

What does this MR do and why?

This changes the ee/lib/gitlab/analytics/dashboards/system/dap_impact.yaml config for the "New vs returning (WIP)" panel on the DAP Impact dashboard's Adoption tab (/explore/analytics_dashboards/dap_impact?view=1).

  • Before: the panel was a placeholder GLQL barChart plotting usersCount and returningUsersCount per week for feature = "agent_platform", added in !254195 (merged).
  • After: the panel is a horizontal bar chart with two rows, styled to match the approved design in https://gitlab.com/gitlab-org/gitlab/-/work_items/628025. Each bar is labelled with its value and share (for example "Returning · 1,555 · 78%"), gets its own solid shade, has no axis titles, and the panel has a subtitle under its title.
  • This relies on the categoryLabels, colorBy, and showAxisTitles displayConfig options and the panel subtitle option, all added by !254274 (merged). This MR only consumes them and depends on that MR being merged (it merged into master on 2026-09-14).
  • GLQL does not yet have a data source for an actual new-versus-returning split: there is no "new users" metric or dimension, and returningUsersCount only compiles with a timestamp dimension. So the two rows stand in with the "chat" and "agent_platform" features instead. The panel keeps its "(WIP)" title suffix and its tooltip saying the data is placeholder. Swapping in the real split is the remaining work once a data source exists.
  • The panel's height drops from 41 to 27 compact grid rows, since a two-row bar chart is sized from its row count. The 11 panels and section headings below it on the Adoption tab move up by 14 rows so no gap is left.
  • The panel config in this MR came from the demo integration in !254690 (closed), which showed the full Adoption view with the in-flight GLQL work applied.

References

Screenshots or screen recordings

Both screenshots are the GDK "gitlab-org" group scope in dark mode; the "After" reflects seeded local data, so the two rows are two Duo features rather than new and returning users.

Before After
nvr_before nvr_after

How to set up and validate locally

  1. Run gdk restart rails-web (the dashboard YAML is read once per process and cached).
  2. Open http://127.0.0.1:3000/explore/analytics_dashboards/dap_impact?view=1.
  3. In the scope picker, pick a group with Chat and DAP usage.
  4. Confirm the "New vs returning (WIP)" panel shows two bars, each labelled with value and share (for example "chat · 12 · 60%"), each in a different shade, with no axis titles and a subtitle under the panel title.
  5. Change the date range and confirm the bar values change accordingly.

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

🤖 Generated with Claude Code

Merge request reports

Loading
Loading