Credits Dashboard tab clicks are untracked on two of three surfaces

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

What we need

Add tab-click tracking to the two Credits Dashboard components that don't have it:

  • free_tier_trial_app.vue
  • paid_tier_trial_period_view.vue

They should emit the same three events app.vue already emits:

  • click_usage_overview_tab_credits_dashboard
  • click_usage_by_user_tab_credits_dashboard
  • click_usage_trend_tab_credits_dashboard

The events are already defined in ee/config/events/ and need no changes, and app.vue (L286-341) has a working implementation to copy.

Why now

Only the paid non-trial component has ever had this tracking. Since late May, nearly all dashboard traffic has been trial users, so we're recording no tab engagement at all. We can see that people open the dashboard, but not whether they use Usage by user or Usage trend once they're there.

Nice to have

The current test asserts the click by calling wrapper.vm.$emit('click') directly (app_spec.js:522-548), so it passes whether or not a handler exists. A test that dispatches a DOM click would catch this if it happens again.


Supporting data

Tab clicks stopped

Weekly totals, all three events combined (PROD.COMMON_MART.MART_BEHAVIOR_STRUCTURED_EVENT, queried 2026-08-20):

Week of Events Namespaces
2026-04-20 1,267 306
2026-05-04 1,169 276
2026-05-11 1,080 276
2026-05-18 1,105 236
2026-05-25 8 3
2026-06-01 31 2
after 2026-06-01 0 0

The audience moved, the page didn't get quieter

Distinct namespaces viewing the dashboard, by plan:

Week of premium ultimate ultimate_trial
2026-05-11 257 158 63
2026-05-18 198 160 67
2026-05-25 9 2 224
2026-06-01 2 3 384
2026-06-08 3 1 1,206

Pageloads over the same weeks were 2,471, 3,041, 2,261 and 2,159, so overall traffic held steady while the audience shifted onto components that cannot emit tab clicks.

Which component tracks what

index.js mounts meta_app.vue, which forks three ways:

Surface Component Tab tracking
Paid, non-trial app.vue (L286-341) Yes
Free tier free_tier_trial_app.vue (L137-153) No
Paid tier trial paid_tier_trial_period_view.vue (L115-143) No

Both untracked components fire view_usage_billing_pageload on mount but render bare <gl-tab> elements with no @click handler. The split dates to abed1d159987 (2026-02-09).

Not a regression

Checked against 72e19e4213f7 (2026-08-11), reviewing every commit from 2026-05-18 to 06-05 touching the dashboard, tracking layer, feature flags and @gitlab/ui:

  • Event YAMLs unchanged, not deprecated, not renamed. One commit in their whole history (dafad38325f1, 2026-04-15).
  • app.vue handlers unchanged since April.
  • The @gitlab/ui 134.0.0 to 134.1.2 bump (f43597fbbc22, 2026-05-20) is byte-identical in tabs/ and vendored bootstrap-vue/tabs/.
  • 6b452720dd40 renames a path helper feeding a different component.
  • 59b2b6c85496 (2026-05-22) is an 18-11 backport and never reached .com.
  • No credits feature-flag YAML changed in the window.

Ownership

The event YAMLs say product_group: acquisition, but the components are maintained by Utilization (Kos Palchyk, Sheldon Led, Ammar Alakkad, Sharmad Nachnolkar, with Tim Noah on design). The existing tracking in app.vue was added by Kiesha Herman, outside the group. Labelled group::utilization on the basis of where the fix goes. Worth checking with Kiesha whether paid-only was deliberate.

Separate issue, noted here so it isn't lost

Dashboard pageloads have fallen from 3,584/week (2026-06-29) to 707/week (2026-08-17), with namespaces down from 975 to 104. This looks like an actual decline in use rather than an instrumentation problem, and is worth looking at separately.

Edited by 🤖 GitLab Bot 🤖