[Experiment Rollout] change_dap_land_default_credits - Change default credits for DAP Land SKU to 25

Summary

This issue tracks the rollout and status of an experiment through to removal.

  1. Feature flag name: change_dap_land_default_credits
  2. Epic or issue link: https://gitlab.com/gitlab-org/gitlab/-/issues/619294

This is an experiment rollout issue using the scoped experiment label. As well as defining the experiment rollout and cleanup, this issue incorporates the relevant Feature Flag Roll Out steps.

Owners

  • Team: group::acquisition
  • Most appropriate slack channel to reach out to: #g_acquisition
  • Best individual to reach out to: @rliu-gl
  • Product manager (PM): NAME

Stakeholders

Expectations

What are we expecting to happen?

The candidate variant pre-fills 25 credits (instead of the Customers Portal default of 5) in the DAP Land SKU purchase flow by appending quantity=25 to the purchase-credits URL on the group billing page. We expect the higher default to reduce underpurchasing (average credits purchased closer to actual trial usage) without reducing purchase conversion.

What might happen if this goes wrong?

Low risk: the change only affects the pre-filled quantity in the purchase URL; users can still edit the quantity in the Customers Portal. Rollback is disabling the feature flag. No data loss potential.

What can we monitor to detect problems with this?

Tracked data

Note: you can use the CXL calculator to determine if your experiment has reached significance. The calculator includes an estimate for how much longer an experiment must run for before reaching significance.

Pre-staging validation (Development)

Before deploying to staging, engineers must validate event structure locally using Snowplow Micro.

Event structure validation should happen during development, not in staging or production.

After triggering all experiment events locally for each variant (control and candidate), paste the raw Snowplow Micro output below as proof that events are correctly structured.

Snowplow Micro raw dump (expand to view)

How this was produced (2026-09-09, local GDK, gitlab-org/gitlab master at 2929bb01, which includes !253499 (merged) bumping the gitlab_experiment context schema to 1-0-3):

  • Tracking journey contract: spec/fixtures/snowplow_tracking_journeys/change_dap_land_default_credits.yml
  • Feature spec: ee/spec/features/experiments/change_dap_land_default_credits_events_spec.rb
  • Local run: ENABLE_RSPACK=true bin/rspec ee/spec/features/experiments/change_dap_land_default_credits_events_spec.rb2 examples, 0 failures (Finished in 2 minutes 39.3 seconds)
  • Snowplow Micro (snowplow/snowplow-micro 4.2.0, GDK snowplow_micro.enabled: true, Iglu resolver with https://gitlab-org.gitlab.io/iglu): flag change_dap_land_default_credits enabled in GDK, one fresh free top-level group per arm, arm forced with ?glex_force=change_dap_land_default_credits:<variant> on the group billing page, CTA href neutralised before clicking so the click stays on the page (tracking fires from the click handler), and the conversion event triggered by running GitlabSubscriptions::AddOnPurchases::GitlabCom::ProvisionService for the group (what the Customers Portal callback does). Micro was reset between arms.
  • Result: candidate 10 good / 0 bad, control 8 good / 0 bad across everything the pages emitted. The raw dumps below are filtered to the three experiment events per arm (assignment, click_purchase_credits_dap_land_sku, finish_purchase_credits_dap_land_sku), each shown as the complete Micro /micro/good event object; unrelated page-view, page-ping, Duo and render events are omitted. All three carry the gitlab_experiment context with the expected variant. Candidate CTA href carried quantity=25; control CTA href had no quantity.
  • Note: the same run against master before !253499 (merged) (schema 1-0-0) rejected every event carrying the experiment context with $.key: may only be 32 characters long, matching the staging bad-events finding in https://gitlab.com/gitlab-org/gitlab/-/work_items/619294#note_3783299818.
Tracking journey events.yml — candidate (from tmp/captured_snowplow_events/)
# Captured from: Change DAP land default credits experiment variant: "candidate" behaves like tracking the purchase credits funnel emits every event the journey declares for its variant
# ./ee/spec/features/experiments/change_dap_land_default_credits_events_spec.rb:44 at 2026-09-09T19:53:24Z
#
# Frontend categories are the page an event fired on, so they are rarely worth asserting.
# Also captured, not expressible in a contract: 1 page view, 1 self-describing event
---
events:
- category: change_dap_land_default_credits
  action: assignment
- category: Users::ActivityService
  action: perform_action
  label: redis_hll_counters.manage.unique_active_users_monthly
- category: groups:billings:index
  action: render
  label: free
- category: groups:billings:index
  action: click_purchase_credits_dap_land_sku
- category: groups:billings:index
  action: click_cta_on_dap_monthly_credit_card
  property: purchase_credits
- category: change_dap_land_default_credits
  action: finish_purchase_credits_dap_land_sku
Tracking journey events.yml — control (from tmp/captured_snowplow_events/)
# Captured from: Change DAP land default credits experiment variant: "control" behaves like tracking the purchase credits funnel emits every event the journey declares for its variant
# ./ee/spec/features/experiments/change_dap_land_default_credits_events_spec.rb:44 at 2026-09-09T19:53:28Z
#
# Frontend categories are the page an event fired on, so they are rarely worth asserting.
# Also captured, not expressible in a contract: 1 page view, 1 self-describing event
---
events:
- category: change_dap_land_default_credits
  action: assignment
- category: groups:billings:index
  action: render
  label: free
- category: change_dap_land_default_credits
  action: finish_purchase_credits_dap_land_sku
- category: groups:billings:index
  action: click_purchase_credits_dap_land_sku
- category: groups:billings:index
  action: click_cta_on_dap_monthly_credit_card
  property: purchase_credits
Snowplow Micro /micro/good — candidate (3 experiment events, raw)
[
 {
  "rawEvent": {
   "api": {
    "vendor": "com.snowplowanalytics.snowplow",
    "version": "tp2"
   },
   "parameters": {
    "e": "se",
    "eid": "49d8e181-7833-480c-adb5-62eb162dc9e3",
    "aid": "gitlab",
    "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMS04IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJzb3VyY2UiOiJnaXRsYWItcmFpbHMiLCJjb3JyZWxhdGlvbl9pZCI6IjAxTTIzVjZIU0dYNTg0Ulo4Sjk2NFZGV0I4IiwicGxhbiI6ImZyZWUiLCJleHRyYSI6e30sInVzZXJfaWQiOm51bGwsImdsb2JhbF91c2VyX2lkIjpudWxsLCJ1c2VyX3R5cGUiOm51bGwsImlzX2dpdGxhYl90ZWFtX21lbWJlciI6bnVsbCwibmFtZXNwYWNlX2lkIjoyMzAsInVsdGltYXRlX3BhcmVudF9uYW1lc3BhY2VfaWQiOjIzMCwicHJvamVjdF9pZCI6bnVsbCwiZmVhdHVyZV9lbmFibGVkX2J5X25hbWVzcGFjZV9pZHMiOm51bGwsInJlYWxtIjoic2FhcyIsImRlcGxveW1lbnRfdHlwZSI6Ii5jb20iLCJpbnN0YW5jZV9pZCI6ImRlNGNmODAzLTY2NzctNDc1MS1hY2VlLTAxMTk4OTJmYTU2NSIsInVuaXF1ZV9pbnN0YW5jZV9pZCI6ImMxODZiMTg4LWI4YWYtNWFmNC1iNjM3LWExYjlmZWFjY2Q3YSIsImhvc3RfbmFtZSI6Imdkay50ZXN0IiwiaW5zdGFuY2VfdmVyc2lvbiI6IjE5LjQuMCIsImNvbnRleHRfZ2VuZXJhdGVkX2F0IjoiMjAyNi0wOS0wOSAxOTo0NDozNSBVVEMiLCJvcmdhbml6YXRpb25faWQiOjF9fSx7InNjaGVtYSI6ImlnbHU6Y29tLmdpdGxhYi9naXRsYWJfZXhwZXJpbWVudC9qc29uc2NoZW1hLzEtMC0zIiwiZGF0YSI6eyJ2YXJpYW50IjoiY2FuZGlkYXRlIiwiZXhwZXJpbWVudCI6ImNoYW5nZV9kYXBfbGFuZF9kZWZhdWx0X2NyZWRpdHMiLCJrZXkiOiI3ZTYwYjI1OWYwMjAyOGI5YzM0ZjllZDc5ZGEzYmY4ZDVjYWI1OTZmZGMzMDc3MTRjMDI2ODlmY2ZiYjJiZDFhIn19XX0=",
    "tna": "gl",
    "stm": "1788983075164",
    "tv": "rb-0.8.0",
    "se_ac": "assignment",
    "se_ca": "change_dap_land_default_credits",
    "p": "srv",
    "dtm": "1788983075163"
   },
   "contentType": "application/json; charset=utf-8",
   "source": {
    "name": "ssc-4.2.0-micro-sscsink",
    "encoding": "UTF-8",
    "hostname": null
   },
   "context": {
    "timestamp": "2026-09-09T19:44:35.268Z",
    "ipAddress": "172.17.0.1",
    "useragent": "Ruby",
    "refererUri": null,
    "headers": [
     "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
     "Accept: */*",
     "User-Agent: Ruby",
     "Content-Type: application/json; charset=utf-8",
     "Connection: close",
     "Host: localhost:9091",
     "Content-Length: 1590",
     "application/json; charset=utf-8"
    ],
    "userId": "23c749ef-dc8d-479f-ac95-c4a47cbb4be8"
   }
  },
  "eventType": "struct",
  "schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
  "contexts": [
   "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
   "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3"
  ],
  "event": {
   "app_id": "gitlab",
   "platform": "srv",
   "etl_tstamp": "2026-09-09T19:44:36.285Z",
   "collector_tstamp": "2026-09-09T19:44:35.268Z",
   "dvce_created_tstamp": "2026-09-09T19:44:35.163Z",
   "event": "struct",
   "event_id": "49d8e181-7833-480c-adb5-62eb162dc9e3",
   "txn_id": null,
   "name_tracker": "gl",
   "v_tracker": "rb-0.8.0",
   "v_collector": "ssc-4.2.0-micro-sscsink",
   "v_etl": "snowplow-micro-4.2.0",
   "user_id": null,
   "user_ipaddress": "172.17.0.1",
   "user_fingerprint": null,
   "domain_userid": null,
   "domain_sessionidx": null,
   "network_userid": "23c749ef-dc8d-479f-ac95-c4a47cbb4be8",
   "geo_country": null,
   "geo_region": null,
   "geo_city": null,
   "geo_zipcode": null,
   "geo_latitude": null,
   "geo_longitude": null,
   "geo_region_name": null,
   "ip_isp": null,
   "ip_organization": null,
   "ip_domain": null,
   "ip_netspeed": null,
   "page_url": null,
   "page_title": null,
   "page_referrer": null,
   "page_urlscheme": null,
   "page_urlhost": null,
   "page_urlport": null,
   "page_urlpath": null,
   "page_urlquery": null,
   "page_urlfragment": null,
   "refr_urlscheme": null,
   "refr_urlhost": null,
   "refr_urlport": null,
   "refr_urlpath": null,
   "refr_urlquery": null,
   "refr_urlfragment": null,
   "refr_medium": null,
   "refr_source": null,
   "refr_term": null,
   "mkt_medium": null,
   "mkt_source": null,
   "mkt_term": null,
   "mkt_content": null,
   "mkt_campaign": null,
   "contexts": {
    "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
    "data": [
     {
      "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
      "data": {
       "environment": "production",
       "source": "gitlab-rails",
       "correlation_id": "01M23V6HSGX584RZ8J964VFWB8",
       "plan": "free",
       "extra": {},
       "user_id": null,
       "global_user_id": null,
       "user_type": null,
       "is_gitlab_team_member": null,
       "namespace_id": 230,
       "ultimate_parent_namespace_id": 230,
       "project_id": null,
       "feature_enabled_by_namespace_ids": null,
       "realm": "saas",
       "deployment_type": ".com",
       "instance_id": "de4cf803-6677-4751-acee-0119892fa565",
       "unique_instance_id": "c186b188-b8af-5af4-b637-a1b9feaccd7a",
       "host_name": "gdk.test",
       "instance_version": "19.4.0",
       "context_generated_at": "2026-09-09 19:44:35 UTC",
       "organization_id": 1
      }
     },
     {
      "schema": "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
      "data": {
       "variant": "candidate",
       "experiment": "change_dap_land_default_credits",
       "key": "7e60b259f02028b9c34f9ed79da3bf8d5cab596fdc307714c02689fcfbb2bd1a"
      }
     }
    ]
   },
   "se_category": "change_dap_land_default_credits",
   "se_action": "assignment",
   "se_label": null,
   "se_property": null,
   "se_value": null,
   "unstruct_event": null,
   "tr_orderid": null,
   "tr_affiliation": null,
   "tr_total": null,
   "tr_tax": null,
   "tr_shipping": null,
   "tr_city": null,
   "tr_state": null,
   "tr_country": null,
   "ti_orderid": null,
   "ti_sku": null,
   "ti_name": null,
   "ti_category": null,
   "ti_price": null,
   "ti_quantity": null,
   "pp_xoffset_min": null,
   "pp_xoffset_max": null,
   "pp_yoffset_min": null,
   "pp_yoffset_max": null,
   "useragent": "Ruby",
   "br_name": null,
   "br_family": null,
   "br_version": null,
   "br_type": null,
   "br_renderengine": null,
   "br_lang": null,
   "br_features_pdf": null,
   "br_features_flash": null,
   "br_features_java": null,
   "br_features_director": null,
   "br_features_quicktime": null,
   "br_features_realplayer": null,
   "br_features_windowsmedia": null,
   "br_features_gears": null,
   "br_features_silverlight": null,
   "br_cookies": null,
   "br_colordepth": null,
   "br_viewwidth": null,
   "br_viewheight": null,
   "os_name": null,
   "os_family": null,
   "os_manufacturer": null,
   "os_timezone": null,
   "dvce_type": null,
   "dvce_ismobile": null,
   "dvce_screenwidth": null,
   "dvce_screenheight": null,
   "doc_charset": null,
   "doc_width": null,
   "doc_height": null,
   "tr_currency": null,
   "tr_total_base": null,
   "tr_tax_base": null,
   "tr_shipping_base": null,
   "ti_currency": null,
   "ti_price_base": null,
   "base_currency": null,
   "geo_timezone": null,
   "mkt_clickid": null,
   "mkt_network": null,
   "etl_tags": null,
   "dvce_sent_tstamp": "2026-09-09T19:44:35.164Z",
   "refr_domain_userid": null,
   "refr_dvce_tstamp": null,
   "derived_contexts": {},
   "domain_sessionid": null,
   "derived_tstamp": "2026-09-09T19:44:35.267Z",
   "event_vendor": "com.google.analytics",
   "event_name": "event",
   "event_format": "jsonschema",
   "event_version": "1-0-0",
   "event_fingerprint": null,
   "true_tstamp": null
  },
  "incomplete": false
 },
 {
  "rawEvent": {
   "api": {
    "vendor": "com.snowplowanalytics.snowplow",
    "version": "tp2"
   },
   "parameters": {
    "e": "se",
    "duid": "d4983421-15be-4681-bba1-c4c088ae7576",
    "vid": "1",
    "co": "{\"schema\":\"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0\",\"data\":[{\"schema\":\"iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8\",\"data\":{\"environment\":\"production\",\"source\":\"gitlab-javascript\",\"correlation_id\":\"01M23V6HSGX584RZ8J964VFWB8\",\"plan\":\"free\",\"extra\":{},\"user_id\":130,\"global_user_id\":\"eUNQxfaG4GxISmiSuW43VWJJO8DYESkr2UMZK0vA/4g=\",\"user_type\":\"human\",\"is_gitlab_team_member\":false,\"namespace_id\":230,\"ultimate_parent_namespace_id\":230,\"project_id\":null,\"feature_enabled_by_namespace_ids\":null,\"realm\":\"saas\",\"deployment_type\":\".com\",\"instance_id\":\"de4cf803-6677-4751-acee-0119892fa565\",\"unique_instance_id\":\"c186b188-b8af-5af4-b637-a1b9feaccd7a\",\"host_name\":\"gdk.test\",\"instance_version\":\"19.4.0\",\"context_generated_at\":\"2026-09-09T19:44:35.416Z\",\"organization_id\":1,\"google_analytics_id\":\"\"}},{\"schema\":\"iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3\",\"data\":{\"experiment\":\"change_dap_land_default_credits\",\"key\":\"7e60b259f02028b9c34f9ed79da3bf8d5cab596fdc307714c02689fcfbb2bd1a\",\"variant\":\"candidate\"}},{\"schema\":\"iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0\",\"data\":{\"id\":\"14684d5a-3453-4460-a042-f739529c398d\"}},{\"schema\":\"iglu:org.w3/PerformanceTiming/jsonschema/1-0-0\",\"data\":{\"navigationStart\":1788983068443,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":1788983068444,\"domainLookupStart\":1788983068444,\"domainLookupEnd\":1788983068444,\"connectStart\":1788983068444,\"secureConnectionStart\":0,\"connectEnd\":1788983068444,\"requestStart\":1788983068445,\"responseStart\":1788983076009,\"responseEnd\":1788983076011,\"unloadEventStart\":1788983076011,\"unloadEventEnd\":1788983076011,\"domLoading\":1788983076011,\"domInteractive\":1788983080723,\"domContentLoadedEventStart\":1788983081058,\"domContentLoadedEventEnd\":1788983081058,\"domComplete\":1788983081250,\"loadEventStart\":1788983081250,\"loadEventEnd\":1788983081250}}]}",
    "eid": "67ba3ac4-bbce-4699-ad74-632be3918014",
    "url": "http://gdk.test:3000/groups/dap-credits-candidate/-/billings?glex_force=change_dap_land_default_credits:candidate",
    "aid": "gitlab",
    "tna": "gl",
    "cs": "UTF-8",
    "cd": "24",
    "stm": "1788983135602",
    "tz": "America/Toronto",
    "tv": "js-4.6.8",
    "se_ac": "click_purchase_credits_dap_land_sku",
    "vp": "1416x1119",
    "ds": "1416x1119",
    "se_ca": "groups:billings:index",
    "res": "1440x2560",
    "cookie": "1",
    "p": "web",
    "dtm": "1788983135586",
    "lang": "en-US",
    "sid": "57b4713c-5018-43cd-a9fa-c0d279fb92de"
   },
   "contentType": "application/json; charset=utf-8",
   "source": {
    "name": "ssc-4.2.0-micro-sscsink",
    "encoding": "UTF-8",
    "hostname": null
   },
   "context": {
    "timestamp": "2026-09-09T19:45:35.679Z",
    "ipAddress": "172.17.0.1",
    "useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36",
    "refererUri": "http://gdk.test:3000/",
    "headers": [
     "Host: localhost:9091",
     "Connection: keep-alive",
     "Content-Length: 5251",
     "sec-ch-ua-platform: \"macOS\"",
     "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36",
     "sec-ch-ua: \"Chromium\";v=\"152\", \"Not?A_Brand\";v=\"24\", \"Google Chrome\";v=\"152\"",
     "content-type: application/json; charset=UTF-8",
     "sec-ch-ua-mobile: ?0",
     "Accept: */*",
     "Origin: http://gdk.test:3000",
     "Sec-Fetch-Site: cross-site",
     "Sec-Fetch-Mode: cors",
     "Sec-Fetch-Dest: empty",
     "Sec-Fetch-Storage-Access: active",
     "Referer: http://gdk.test:3000/",
     "Accept-Encoding: gzip, deflate, br, zstd",
     "Accept-Language: en-US,en;q=0.9",
     "Cookie: snowplow-micro=f1a3bdfd-ab5d-4bd1-8994-5c38dfa5718e",
     "application/json; charset=utf-8"
    ],
    "userId": "f1a3bdfd-ab5d-4bd1-8994-5c38dfa5718e"
   }
  },
  "eventType": "struct",
  "schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
  "contexts": [
   "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
   "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
   "iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",
   "iglu:org.w3/PerformanceTiming/jsonschema/1-0-0"
  ],
  "event": {
   "app_id": "gitlab",
   "platform": "web",
   "etl_tstamp": "2026-09-09T19:45:36.681Z",
   "collector_tstamp": "2026-09-09T19:45:35.679Z",
   "dvce_created_tstamp": "2026-09-09T19:45:35.586Z",
   "event": "struct",
   "event_id": "67ba3ac4-bbce-4699-ad74-632be3918014",
   "txn_id": null,
   "name_tracker": "gl",
   "v_tracker": "js-4.6.8",
   "v_collector": "ssc-4.2.0-micro-sscsink",
   "v_etl": "snowplow-micro-4.2.0",
   "user_id": null,
   "user_ipaddress": "172.17.0.1",
   "user_fingerprint": null,
   "domain_userid": "d4983421-15be-4681-bba1-c4c088ae7576",
   "domain_sessionidx": 1,
   "network_userid": "f1a3bdfd-ab5d-4bd1-8994-5c38dfa5718e",
   "geo_country": null,
   "geo_region": null,
   "geo_city": null,
   "geo_zipcode": null,
   "geo_latitude": null,
   "geo_longitude": null,
   "geo_region_name": null,
   "ip_isp": null,
   "ip_organization": null,
   "ip_domain": null,
   "ip_netspeed": null,
   "page_url": "http://gdk.test:3000/groups/dap-credits-candidate/-/billings?glex_force=change_dap_land_default_credits:candidate",
   "page_title": null,
   "page_referrer": null,
   "page_urlscheme": "http",
   "page_urlhost": "gdk.test",
   "page_urlport": 3000,
   "page_urlpath": "/groups/dap-credits-candidate/-/billings",
   "page_urlquery": "glex_force=change_dap_land_default_credits:candidate",
   "page_urlfragment": null,
   "refr_urlscheme": null,
   "refr_urlhost": null,
   "refr_urlport": null,
   "refr_urlpath": null,
   "refr_urlquery": null,
   "refr_urlfragment": null,
   "refr_medium": null,
   "refr_source": null,
   "refr_term": null,
   "mkt_medium": null,
   "mkt_source": null,
   "mkt_term": null,
   "mkt_content": null,
   "mkt_campaign": null,
   "contexts": {
    "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
    "data": [
     {
      "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
      "data": {
       "environment": "production",
       "source": "gitlab-javascript",
       "correlation_id": "01M23V6HSGX584RZ8J964VFWB8",
       "plan": "free",
       "extra": {},
       "user_id": 130,
       "global_user_id": "eUNQxfaG4GxISmiSuW43VWJJO8DYESkr2UMZK0vA/4g=",
       "user_type": "human",
       "is_gitlab_team_member": false,
       "namespace_id": 230,
       "ultimate_parent_namespace_id": 230,
       "project_id": null,
       "feature_enabled_by_namespace_ids": null,
       "realm": "saas",
       "deployment_type": ".com",
       "instance_id": "de4cf803-6677-4751-acee-0119892fa565",
       "unique_instance_id": "c186b188-b8af-5af4-b637-a1b9feaccd7a",
       "host_name": "gdk.test",
       "instance_version": "19.4.0",
       "context_generated_at": "2026-09-09T19:44:35.416Z",
       "organization_id": 1,
       "google_analytics_id": ""
      }
     },
     {
      "schema": "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
      "data": {
       "experiment": "change_dap_land_default_credits",
       "key": "7e60b259f02028b9c34f9ed79da3bf8d5cab596fdc307714c02689fcfbb2bd1a",
       "variant": "candidate"
      }
     },
     {
      "schema": "iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",
      "data": {
       "id": "14684d5a-3453-4460-a042-f739529c398d"
      }
     },
     {
      "schema": "iglu:org.w3/PerformanceTiming/jsonschema/1-0-0",
      "data": {
       "navigationStart": 1788983068443,
       "redirectStart": 0,
       "redirectEnd": 0,
       "fetchStart": 1788983068444,
       "domainLookupStart": 1788983068444,
       "domainLookupEnd": 1788983068444,
       "connectStart": 1788983068444,
       "secureConnectionStart": 0,
       "connectEnd": 1788983068444,
       "requestStart": 1788983068445,
       "responseStart": 1788983076009,
       "responseEnd": 1788983076011,
       "unloadEventStart": 1788983076011,
       "unloadEventEnd": 1788983076011,
       "domLoading": 1788983076011,
       "domInteractive": 1788983080723,
       "domContentLoadedEventStart": 1788983081058,
       "domContentLoadedEventEnd": 1788983081058,
       "domComplete": 1788983081250,
       "loadEventStart": 1788983081250,
       "loadEventEnd": 1788983081250
      }
     }
    ]
   },
   "se_category": "groups:billings:index",
   "se_action": "click_purchase_credits_dap_land_sku",
   "se_label": null,
   "se_property": null,
   "se_value": null,
   "unstruct_event": null,
   "tr_orderid": null,
   "tr_affiliation": null,
   "tr_total": null,
   "tr_tax": null,
   "tr_shipping": null,
   "tr_city": null,
   "tr_state": null,
   "tr_country": null,
   "ti_orderid": null,
   "ti_sku": null,
   "ti_name": null,
   "ti_category": null,
   "ti_price": null,
   "ti_quantity": null,
   "pp_xoffset_min": null,
   "pp_xoffset_max": null,
   "pp_yoffset_min": null,
   "pp_yoffset_max": null,
   "useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36",
   "br_name": null,
   "br_family": null,
   "br_version": null,
   "br_type": null,
   "br_renderengine": null,
   "br_lang": "en-US",
   "br_features_pdf": null,
   "br_features_flash": null,
   "br_features_java": null,
   "br_features_director": null,
   "br_features_quicktime": null,
   "br_features_realplayer": null,
   "br_features_windowsmedia": null,
   "br_features_gears": null,
   "br_features_silverlight": null,
   "br_cookies": true,
   "br_colordepth": "24",
   "br_viewwidth": 1416,
   "br_viewheight": 1119,
   "os_name": null,
   "os_family": null,
   "os_manufacturer": null,
   "os_timezone": "America/Toronto",
   "dvce_type": null,
   "dvce_ismobile": null,
   "dvce_screenwidth": 1440,
   "dvce_screenheight": 2560,
   "doc_charset": "UTF-8",
   "doc_width": 1416,
   "doc_height": 1119,
   "tr_currency": null,
   "tr_total_base": null,
   "tr_tax_base": null,
   "tr_shipping_base": null,
   "ti_currency": null,
   "ti_price_base": null,
   "base_currency": null,
   "geo_timezone": null,
   "mkt_clickid": null,
   "mkt_network": null,
   "etl_tags": null,
   "dvce_sent_tstamp": "2026-09-09T19:45:35.602Z",
   "refr_domain_userid": null,
   "refr_dvce_tstamp": null,
   "derived_contexts": {},
   "domain_sessionid": "57b4713c-5018-43cd-a9fa-c0d279fb92de",
   "derived_tstamp": "2026-09-09T19:45:35.663Z",
   "event_vendor": "com.google.analytics",
   "event_name": "event",
   "event_format": "jsonschema",
   "event_version": "1-0-0",
   "event_fingerprint": null,
   "true_tstamp": null
  },
  "incomplete": false
 },
 {
  "rawEvent": {
   "api": {
    "vendor": "com.snowplowanalytics.snowplow",
    "version": "tp2"
   },
   "parameters": {
    "e": "se",
    "eid": "be77ea84-cafc-48c8-af17-6d2aa2ffa8bd",
    "aid": "gitlab",
    "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMS04IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJzb3VyY2UiOiJnaXRsYWItcmFpbHMiLCJjb3JyZWxhdGlvbl9pZCI6ImFhNmM5MDdkMjM1NGMzOTMzOWIxYjdhNzM5MTIzZDJlIiwicGxhbiI6ImZyZWUiLCJleHRyYSI6e30sInVzZXJfaWQiOm51bGwsImdsb2JhbF91c2VyX2lkIjpudWxsLCJ1c2VyX3R5cGUiOm51bGwsImlzX2dpdGxhYl90ZWFtX21lbWJlciI6bnVsbCwibmFtZXNwYWNlX2lkIjoyMzAsInVsdGltYXRlX3BhcmVudF9uYW1lc3BhY2VfaWQiOjIzMCwicHJvamVjdF9pZCI6bnVsbCwiZmVhdHVyZV9lbmFibGVkX2J5X25hbWVzcGFjZV9pZHMiOm51bGwsInJlYWxtIjoic2FhcyIsImRlcGxveW1lbnRfdHlwZSI6Ii5jb20iLCJpbnN0YW5jZV9pZCI6ImRlNGNmODAzLTY2NzctNDc1MS1hY2VlLTAxMTk4OTJmYTU2NSIsInVuaXF1ZV9pbnN0YW5jZV9pZCI6ImMxODZiMTg4LWI4YWYtNWFmNC1iNjM3LWExYjlmZWFjY2Q3YSIsImhvc3RfbmFtZSI6Imdkay50ZXN0IiwiaW5zdGFuY2VfdmVyc2lvbiI6IjE5LjQuMCIsImNvbnRleHRfZ2VuZXJhdGVkX2F0IjoiMjAyNi0wOS0wOSAxOTo0NjowOSBVVEMiLCJvcmdhbml6YXRpb25faWQiOm51bGx9fSx7InNjaGVtYSI6ImlnbHU6Y29tLmdpdGxhYi9naXRsYWJfZXhwZXJpbWVudC9qc29uc2NoZW1hLzEtMC0zIiwiZGF0YSI6eyJ2YXJpYW50IjoiY2FuZGlkYXRlIiwiZXhwZXJpbWVudCI6ImNoYW5nZV9kYXBfbGFuZF9kZWZhdWx0X2NyZWRpdHMiLCJrZXkiOiI3ZTYwYjI1OWYwMjAyOGI5YzM0ZjllZDc5ZGEzYmY4ZDVjYWI1OTZmZGMzMDc3MTRjMDI2ODlmY2ZiYjJiZDFhIn19XX0=",
    "tna": "gl",
    "stm": "1788983169538",
    "tv": "rb-0.8.0",
    "se_ac": "finish_purchase_credits_dap_land_sku",
    "se_ca": "change_dap_land_default_credits",
    "p": "srv",
    "dtm": "1788983169537"
   },
   "contentType": "application/json; charset=utf-8",
   "source": {
    "name": "ssc-4.2.0-micro-sscsink",
    "encoding": "UTF-8",
    "hostname": null
   },
   "context": {
    "timestamp": "2026-09-09T19:46:09.619Z",
    "ipAddress": "172.17.0.1",
    "useragent": "Ruby",
    "refererUri": null,
    "headers": [
     "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
     "Accept: */*",
     "User-Agent: Ruby",
     "Content-Type: application/json; charset=utf-8",
     "Connection: close",
     "Host: localhost:9091",
     "Content-Length: 1628",
     "application/json; charset=utf-8"
    ],
    "userId": "57203ca9-df57-43bc-b2ec-892faeec7258"
   }
  },
  "eventType": "struct",
  "schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
  "contexts": [
   "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
   "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3"
  ],
  "event": {
   "app_id": "gitlab",
   "platform": "srv",
   "etl_tstamp": "2026-09-09T19:46:10.629Z",
   "collector_tstamp": "2026-09-09T19:46:09.619Z",
   "dvce_created_tstamp": "2026-09-09T19:46:09.537Z",
   "event": "struct",
   "event_id": "be77ea84-cafc-48c8-af17-6d2aa2ffa8bd",
   "txn_id": null,
   "name_tracker": "gl",
   "v_tracker": "rb-0.8.0",
   "v_collector": "ssc-4.2.0-micro-sscsink",
   "v_etl": "snowplow-micro-4.2.0",
   "user_id": null,
   "user_ipaddress": "172.17.0.1",
   "user_fingerprint": null,
   "domain_userid": null,
   "domain_sessionidx": null,
   "network_userid": "57203ca9-df57-43bc-b2ec-892faeec7258",
   "geo_country": null,
   "geo_region": null,
   "geo_city": null,
   "geo_zipcode": null,
   "geo_latitude": null,
   "geo_longitude": null,
   "geo_region_name": null,
   "ip_isp": null,
   "ip_organization": null,
   "ip_domain": null,
   "ip_netspeed": null,
   "page_url": null,
   "page_title": null,
   "page_referrer": null,
   "page_urlscheme": null,
   "page_urlhost": null,
   "page_urlport": null,
   "page_urlpath": null,
   "page_urlquery": null,
   "page_urlfragment": null,
   "refr_urlscheme": null,
   "refr_urlhost": null,
   "refr_urlport": null,
   "refr_urlpath": null,
   "refr_urlquery": null,
   "refr_urlfragment": null,
   "refr_medium": null,
   "refr_source": null,
   "refr_term": null,
   "mkt_medium": null,
   "mkt_source": null,
   "mkt_term": null,
   "mkt_content": null,
   "mkt_campaign": null,
   "contexts": {
    "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
    "data": [
     {
      "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
      "data": {
       "environment": "production",
       "source": "gitlab-rails",
       "correlation_id": "aa6c907d2354c39339b1b7a739123d2e",
       "plan": "free",
       "extra": {},
       "user_id": null,
       "global_user_id": null,
       "user_type": null,
       "is_gitlab_team_member": null,
       "namespace_id": 230,
       "ultimate_parent_namespace_id": 230,
       "project_id": null,
       "feature_enabled_by_namespace_ids": null,
       "realm": "saas",
       "deployment_type": ".com",
       "instance_id": "de4cf803-6677-4751-acee-0119892fa565",
       "unique_instance_id": "c186b188-b8af-5af4-b637-a1b9feaccd7a",
       "host_name": "gdk.test",
       "instance_version": "19.4.0",
       "context_generated_at": "2026-09-09 19:46:09 UTC",
       "organization_id": null
      }
     },
     {
      "schema": "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
      "data": {
       "variant": "candidate",
       "experiment": "change_dap_land_default_credits",
       "key": "7e60b259f02028b9c34f9ed79da3bf8d5cab596fdc307714c02689fcfbb2bd1a"
      }
     }
    ]
   },
   "se_category": "change_dap_land_default_credits",
   "se_action": "finish_purchase_credits_dap_land_sku",
   "se_label": null,
   "se_property": null,
   "se_value": null,
   "unstruct_event": null,
   "tr_orderid": null,
   "tr_affiliation": null,
   "tr_total": null,
   "tr_tax": null,
   "tr_shipping": null,
   "tr_city": null,
   "tr_state": null,
   "tr_country": null,
   "ti_orderid": null,
   "ti_sku": null,
   "ti_name": null,
   "ti_category": null,
   "ti_price": null,
   "ti_quantity": null,
   "pp_xoffset_min": null,
   "pp_xoffset_max": null,
   "pp_yoffset_min": null,
   "pp_yoffset_max": null,
   "useragent": "Ruby",
   "br_name": null,
   "br_family": null,
   "br_version": null,
   "br_type": null,
   "br_renderengine": null,
   "br_lang": null,
   "br_features_pdf": null,
   "br_features_flash": null,
   "br_features_java": null,
   "br_features_director": null,
   "br_features_quicktime": null,
   "br_features_realplayer": null,
   "br_features_windowsmedia": null,
   "br_features_gears": null,
   "br_features_silverlight": null,
   "br_cookies": null,
   "br_colordepth": null,
   "br_viewwidth": null,
   "br_viewheight": null,
   "os_name": null,
   "os_family": null,
   "os_manufacturer": null,
   "os_timezone": null,
   "dvce_type": null,
   "dvce_ismobile": null,
   "dvce_screenwidth": null,
   "dvce_screenheight": null,
   "doc_charset": null,
   "doc_width": null,
   "doc_height": null,
   "tr_currency": null,
   "tr_total_base": null,
   "tr_tax_base": null,
   "tr_shipping_base": null,
   "ti_currency": null,
   "ti_price_base": null,
   "base_currency": null,
   "geo_timezone": null,
   "mkt_clickid": null,
   "mkt_network": null,
   "etl_tags": null,
   "dvce_sent_tstamp": "2026-09-09T19:46:09.538Z",
   "refr_domain_userid": null,
   "refr_dvce_tstamp": null,
   "derived_contexts": {},
   "domain_sessionid": null,
   "derived_tstamp": "2026-09-09T19:46:09.618Z",
   "event_vendor": "com.google.analytics",
   "event_name": "event",
   "event_format": "jsonschema",
   "event_version": "1-0-0",
   "event_fingerprint": null,
   "true_tstamp": null
  },
  "incomplete": false
 }
]
Snowplow Micro /micro/good — control (3 experiment events, raw)
[
 {
  "rawEvent": {
   "api": {
    "vendor": "com.snowplowanalytics.snowplow",
    "version": "tp2"
   },
   "parameters": {
    "e": "se",
    "eid": "0feaa8b5-a407-4b4e-9768-1d4dd43bdc0f",
    "aid": "gitlab",
    "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMS04IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJzb3VyY2UiOiJnaXRsYWItcmFpbHMiLCJjb3JyZWxhdGlvbl9pZCI6IjAxTTIzVkFRQzk0RzlUWlJaMlY3QjlYNTRIIiwicGxhbiI6ImZyZWUiLCJleHRyYSI6e30sInVzZXJfaWQiOm51bGwsImdsb2JhbF91c2VyX2lkIjpudWxsLCJ1c2VyX3R5cGUiOm51bGwsImlzX2dpdGxhYl90ZWFtX21lbWJlciI6bnVsbCwibmFtZXNwYWNlX2lkIjoyMzEsInVsdGltYXRlX3BhcmVudF9uYW1lc3BhY2VfaWQiOjIzMSwicHJvamVjdF9pZCI6bnVsbCwiZmVhdHVyZV9lbmFibGVkX2J5X25hbWVzcGFjZV9pZHMiOm51bGwsInJlYWxtIjoic2FhcyIsImRlcGxveW1lbnRfdHlwZSI6Ii5jb20iLCJpbnN0YW5jZV9pZCI6ImRlNGNmODAzLTY2NzctNDc1MS1hY2VlLTAxMTk4OTJmYTU2NSIsInVuaXF1ZV9pbnN0YW5jZV9pZCI6ImMxODZiMTg4LWI4YWYtNWFmNC1iNjM3LWExYjlmZWFjY2Q3YSIsImhvc3RfbmFtZSI6Imdkay50ZXN0IiwiaW5zdGFuY2VfdmVyc2lvbiI6IjE5LjQuMCIsImNvbnRleHRfZ2VuZXJhdGVkX2F0IjoiMjAyNi0wOS0wOSAxOTo0Njo0NSBVVEMiLCJvcmdhbml6YXRpb25faWQiOjF9fSx7InNjaGVtYSI6ImlnbHU6Y29tLmdpdGxhYi9naXRsYWJfZXhwZXJpbWVudC9qc29uc2NoZW1hLzEtMC0zIiwiZGF0YSI6eyJ2YXJpYW50IjoiY29udHJvbCIsImV4cGVyaW1lbnQiOiJjaGFuZ2VfZGFwX2xhbmRfZGVmYXVsdF9jcmVkaXRzIiwia2V5IjoiNWJmNDI4OWIwZGMzMjM5YmNjZmZhZmFlMzE5NGY5ZWY1YjdlNDQ0YjNjMDFhNTk5MzIwZmVjY2U5NWY0YzI2MCJ9fV19",
    "tna": "gl",
    "stm": "1788983205760",
    "tv": "rb-0.8.0",
    "se_ac": "assignment",
    "se_ca": "change_dap_land_default_credits",
    "p": "srv",
    "dtm": "1788983205759"
   },
   "contentType": "application/json; charset=utf-8",
   "source": {
    "name": "ssc-4.2.0-micro-sscsink",
    "encoding": "UTF-8",
    "hostname": null
   },
   "context": {
    "timestamp": "2026-09-09T19:46:45.844Z",
    "ipAddress": "172.17.0.1",
    "useragent": "Ruby",
    "refererUri": null,
    "headers": [
     "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
     "Accept: */*",
     "User-Agent: Ruby",
     "Content-Type: application/json; charset=utf-8",
     "Connection: close",
     "Host: localhost:9091",
     "Content-Length: 1586",
     "application/json; charset=utf-8"
    ],
    "userId": "88c43041-84be-4242-a825-209e6aea8093"
   }
  },
  "eventType": "struct",
  "schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
  "contexts": [
   "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
   "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3"
  ],
  "event": {
   "app_id": "gitlab",
   "platform": "srv",
   "etl_tstamp": "2026-09-09T19:46:46.857Z",
   "collector_tstamp": "2026-09-09T19:46:45.844Z",
   "dvce_created_tstamp": "2026-09-09T19:46:45.759Z",
   "event": "struct",
   "event_id": "0feaa8b5-a407-4b4e-9768-1d4dd43bdc0f",
   "txn_id": null,
   "name_tracker": "gl",
   "v_tracker": "rb-0.8.0",
   "v_collector": "ssc-4.2.0-micro-sscsink",
   "v_etl": "snowplow-micro-4.2.0",
   "user_id": null,
   "user_ipaddress": "172.17.0.1",
   "user_fingerprint": null,
   "domain_userid": null,
   "domain_sessionidx": null,
   "network_userid": "88c43041-84be-4242-a825-209e6aea8093",
   "geo_country": null,
   "geo_region": null,
   "geo_city": null,
   "geo_zipcode": null,
   "geo_latitude": null,
   "geo_longitude": null,
   "geo_region_name": null,
   "ip_isp": null,
   "ip_organization": null,
   "ip_domain": null,
   "ip_netspeed": null,
   "page_url": null,
   "page_title": null,
   "page_referrer": null,
   "page_urlscheme": null,
   "page_urlhost": null,
   "page_urlport": null,
   "page_urlpath": null,
   "page_urlquery": null,
   "page_urlfragment": null,
   "refr_urlscheme": null,
   "refr_urlhost": null,
   "refr_urlport": null,
   "refr_urlpath": null,
   "refr_urlquery": null,
   "refr_urlfragment": null,
   "refr_medium": null,
   "refr_source": null,
   "refr_term": null,
   "mkt_medium": null,
   "mkt_source": null,
   "mkt_term": null,
   "mkt_content": null,
   "mkt_campaign": null,
   "contexts": {
    "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
    "data": [
     {
      "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
      "data": {
       "environment": "production",
       "source": "gitlab-rails",
       "correlation_id": "01M23VAQC94G9TZRZ2V7B9X54H",
       "plan": "free",
       "extra": {},
       "user_id": null,
       "global_user_id": null,
       "user_type": null,
       "is_gitlab_team_member": null,
       "namespace_id": 231,
       "ultimate_parent_namespace_id": 231,
       "project_id": null,
       "feature_enabled_by_namespace_ids": null,
       "realm": "saas",
       "deployment_type": ".com",
       "instance_id": "de4cf803-6677-4751-acee-0119892fa565",
       "unique_instance_id": "c186b188-b8af-5af4-b637-a1b9feaccd7a",
       "host_name": "gdk.test",
       "instance_version": "19.4.0",
       "context_generated_at": "2026-09-09 19:46:45 UTC",
       "organization_id": 1
      }
     },
     {
      "schema": "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
      "data": {
       "variant": "control",
       "experiment": "change_dap_land_default_credits",
       "key": "5bf4289b0dc3239bccffafae3194f9ef5b7e444b3c01a599320fecce95f4c260"
      }
     }
    ]
   },
   "se_category": "change_dap_land_default_credits",
   "se_action": "assignment",
   "se_label": null,
   "se_property": null,
   "se_value": null,
   "unstruct_event": null,
   "tr_orderid": null,
   "tr_affiliation": null,
   "tr_total": null,
   "tr_tax": null,
   "tr_shipping": null,
   "tr_city": null,
   "tr_state": null,
   "tr_country": null,
   "ti_orderid": null,
   "ti_sku": null,
   "ti_name": null,
   "ti_category": null,
   "ti_price": null,
   "ti_quantity": null,
   "pp_xoffset_min": null,
   "pp_xoffset_max": null,
   "pp_yoffset_min": null,
   "pp_yoffset_max": null,
   "useragent": "Ruby",
   "br_name": null,
   "br_family": null,
   "br_version": null,
   "br_type": null,
   "br_renderengine": null,
   "br_lang": null,
   "br_features_pdf": null,
   "br_features_flash": null,
   "br_features_java": null,
   "br_features_director": null,
   "br_features_quicktime": null,
   "br_features_realplayer": null,
   "br_features_windowsmedia": null,
   "br_features_gears": null,
   "br_features_silverlight": null,
   "br_cookies": null,
   "br_colordepth": null,
   "br_viewwidth": null,
   "br_viewheight": null,
   "os_name": null,
   "os_family": null,
   "os_manufacturer": null,
   "os_timezone": null,
   "dvce_type": null,
   "dvce_ismobile": null,
   "dvce_screenwidth": null,
   "dvce_screenheight": null,
   "doc_charset": null,
   "doc_width": null,
   "doc_height": null,
   "tr_currency": null,
   "tr_total_base": null,
   "tr_tax_base": null,
   "tr_shipping_base": null,
   "ti_currency": null,
   "ti_price_base": null,
   "base_currency": null,
   "geo_timezone": null,
   "mkt_clickid": null,
   "mkt_network": null,
   "etl_tags": null,
   "dvce_sent_tstamp": "2026-09-09T19:46:45.760Z",
   "refr_domain_userid": null,
   "refr_dvce_tstamp": null,
   "derived_contexts": {},
   "domain_sessionid": null,
   "derived_tstamp": "2026-09-09T19:46:45.843Z",
   "event_vendor": "com.google.analytics",
   "event_name": "event",
   "event_format": "jsonschema",
   "event_version": "1-0-0",
   "event_fingerprint": null,
   "true_tstamp": null
  },
  "incomplete": false
 },
 {
  "rawEvent": {
   "api": {
    "vendor": "com.snowplowanalytics.snowplow",
    "version": "tp2"
   },
   "parameters": {
    "e": "se",
    "duid": "97450b9e-47c1-49ef-b9fc-e53d67798c59",
    "vid": "1",
    "co": "{\"schema\":\"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0\",\"data\":[{\"schema\":\"iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8\",\"data\":{\"environment\":\"production\",\"source\":\"gitlab-javascript\",\"correlation_id\":\"01M23VAQC94G9TZRZ2V7B9X54H\",\"plan\":\"free\",\"extra\":{},\"user_id\":130,\"global_user_id\":\"eUNQxfaG4GxISmiSuW43VWJJO8DYESkr2UMZK0vA/4g=\",\"user_type\":\"human\",\"is_gitlab_team_member\":false,\"namespace_id\":231,\"ultimate_parent_namespace_id\":231,\"project_id\":null,\"feature_enabled_by_namespace_ids\":null,\"realm\":\"saas\",\"deployment_type\":\".com\",\"instance_id\":\"de4cf803-6677-4751-acee-0119892fa565\",\"unique_instance_id\":\"c186b188-b8af-5af4-b637-a1b9feaccd7a\",\"host_name\":\"gdk.test\",\"instance_version\":\"19.4.0\",\"context_generated_at\":\"2026-09-09T19:46:45.853Z\",\"organization_id\":1,\"google_analytics_id\":\"\"}},{\"schema\":\"iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3\",\"data\":{\"experiment\":\"change_dap_land_default_credits\",\"key\":\"5bf4289b0dc3239bccffafae3194f9ef5b7e444b3c01a599320fecce95f4c260\",\"variant\":\"control\"}},{\"schema\":\"iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0\",\"data\":{\"id\":\"c7f5ba51-e107-4a7d-93d8-4ef008290fd7\"}},{\"schema\":\"iglu:org.w3/PerformanceTiming/jsonschema/1-0-0\",\"data\":{\"navigationStart\":1788983205236,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":1788983205237,\"domainLookupStart\":1788983205237,\"domainLookupEnd\":1788983205237,\"connectStart\":1788983205237,\"secureConnectionStart\":0,\"connectEnd\":1788983205237,\"requestStart\":1788983205238,\"responseStart\":1788983206264,\"responseEnd\":1788983206266,\"unloadEventStart\":0,\"unloadEventEnd\":0,\"domLoading\":1788983206274,\"domInteractive\":1788983206387,\"domContentLoadedEventStart\":1788983206746,\"domContentLoadedEventEnd\":1788983206747,\"domComplete\":1788983207310,\"loadEventStart\":1788983207310,\"loadEventEnd\":1788983207310}}]}",
    "eid": "5744bfd1-6bec-4a2e-963e-bec3578b98b1",
    "url": "http://gdk.test:3000/groups/dap-credits-control/-/billings?glex_force=change_dap_land_default_credits:control",
    "aid": "gitlab",
    "tna": "gl",
    "cs": "UTF-8",
    "cd": "24",
    "stm": "1788983239629",
    "tz": "America/Toronto",
    "tv": "js-4.6.8",
    "se_ac": "click_purchase_credits_dap_land_sku",
    "vp": "1416x1119",
    "ds": "1416x1119",
    "se_ca": "groups:billings:index",
    "res": "1440x2560",
    "cookie": "1",
    "p": "web",
    "dtm": "1788983239605",
    "lang": "en-US",
    "sid": "3c2e4ac0-8475-4c66-8aec-7d1c76382ea4"
   },
   "contentType": "application/json; charset=utf-8",
   "source": {
    "name": "ssc-4.2.0-micro-sscsink",
    "encoding": "UTF-8",
    "hostname": null
   },
   "context": {
    "timestamp": "2026-09-09T19:47:19.708Z",
    "ipAddress": "172.17.0.1",
    "useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36",
    "refererUri": "http://gdk.test:3000/",
    "headers": [
     "Host: localhost:9091",
     "Connection: keep-alive",
     "Content-Length: 5193",
     "sec-ch-ua-platform: \"macOS\"",
     "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36",
     "sec-ch-ua: \"Chromium\";v=\"152\", \"Not?A_Brand\";v=\"24\", \"Google Chrome\";v=\"152\"",
     "content-type: application/json; charset=UTF-8",
     "sec-ch-ua-mobile: ?0",
     "Accept: */*",
     "Origin: http://gdk.test:3000",
     "Sec-Fetch-Site: cross-site",
     "Sec-Fetch-Mode: cors",
     "Sec-Fetch-Dest: empty",
     "Sec-Fetch-Storage-Access: active",
     "Referer: http://gdk.test:3000/",
     "Accept-Encoding: gzip, deflate, br, zstd",
     "Accept-Language: en-US,en;q=0.9",
     "Cookie: snowplow-micro=f1a3bdfd-ab5d-4bd1-8994-5c38dfa5718e",
     "application/json; charset=utf-8"
    ],
    "userId": "f1a3bdfd-ab5d-4bd1-8994-5c38dfa5718e"
   }
  },
  "eventType": "struct",
  "schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
  "contexts": [
   "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
   "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
   "iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",
   "iglu:org.w3/PerformanceTiming/jsonschema/1-0-0"
  ],
  "event": {
   "app_id": "gitlab",
   "platform": "web",
   "etl_tstamp": "2026-09-09T19:47:20.715Z",
   "collector_tstamp": "2026-09-09T19:47:19.708Z",
   "dvce_created_tstamp": "2026-09-09T19:47:19.605Z",
   "event": "struct",
   "event_id": "5744bfd1-6bec-4a2e-963e-bec3578b98b1",
   "txn_id": null,
   "name_tracker": "gl",
   "v_tracker": "js-4.6.8",
   "v_collector": "ssc-4.2.0-micro-sscsink",
   "v_etl": "snowplow-micro-4.2.0",
   "user_id": null,
   "user_ipaddress": "172.17.0.1",
   "user_fingerprint": null,
   "domain_userid": "97450b9e-47c1-49ef-b9fc-e53d67798c59",
   "domain_sessionidx": 1,
   "network_userid": "f1a3bdfd-ab5d-4bd1-8994-5c38dfa5718e",
   "geo_country": null,
   "geo_region": null,
   "geo_city": null,
   "geo_zipcode": null,
   "geo_latitude": null,
   "geo_longitude": null,
   "geo_region_name": null,
   "ip_isp": null,
   "ip_organization": null,
   "ip_domain": null,
   "ip_netspeed": null,
   "page_url": "http://gdk.test:3000/groups/dap-credits-control/-/billings?glex_force=change_dap_land_default_credits:control",
   "page_title": null,
   "page_referrer": null,
   "page_urlscheme": "http",
   "page_urlhost": "gdk.test",
   "page_urlport": 3000,
   "page_urlpath": "/groups/dap-credits-control/-/billings",
   "page_urlquery": "glex_force=change_dap_land_default_credits:control",
   "page_urlfragment": null,
   "refr_urlscheme": null,
   "refr_urlhost": null,
   "refr_urlport": null,
   "refr_urlpath": null,
   "refr_urlquery": null,
   "refr_urlfragment": null,
   "refr_medium": null,
   "refr_source": null,
   "refr_term": null,
   "mkt_medium": null,
   "mkt_source": null,
   "mkt_term": null,
   "mkt_content": null,
   "mkt_campaign": null,
   "contexts": {
    "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
    "data": [
     {
      "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
      "data": {
       "environment": "production",
       "source": "gitlab-javascript",
       "correlation_id": "01M23VAQC94G9TZRZ2V7B9X54H",
       "plan": "free",
       "extra": {},
       "user_id": 130,
       "global_user_id": "eUNQxfaG4GxISmiSuW43VWJJO8DYESkr2UMZK0vA/4g=",
       "user_type": "human",
       "is_gitlab_team_member": false,
       "namespace_id": 231,
       "ultimate_parent_namespace_id": 231,
       "project_id": null,
       "feature_enabled_by_namespace_ids": null,
       "realm": "saas",
       "deployment_type": ".com",
       "instance_id": "de4cf803-6677-4751-acee-0119892fa565",
       "unique_instance_id": "c186b188-b8af-5af4-b637-a1b9feaccd7a",
       "host_name": "gdk.test",
       "instance_version": "19.4.0",
       "context_generated_at": "2026-09-09T19:46:45.853Z",
       "organization_id": 1,
       "google_analytics_id": ""
      }
     },
     {
      "schema": "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
      "data": {
       "experiment": "change_dap_land_default_credits",
       "key": "5bf4289b0dc3239bccffafae3194f9ef5b7e444b3c01a599320fecce95f4c260",
       "variant": "control"
      }
     },
     {
      "schema": "iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",
      "data": {
       "id": "c7f5ba51-e107-4a7d-93d8-4ef008290fd7"
      }
     },
     {
      "schema": "iglu:org.w3/PerformanceTiming/jsonschema/1-0-0",
      "data": {
       "navigationStart": 1788983205236,
       "redirectStart": 0,
       "redirectEnd": 0,
       "fetchStart": 1788983205237,
       "domainLookupStart": 1788983205237,
       "domainLookupEnd": 1788983205237,
       "connectStart": 1788983205237,
       "secureConnectionStart": 0,
       "connectEnd": 1788983205237,
       "requestStart": 1788983205238,
       "responseStart": 1788983206264,
       "responseEnd": 1788983206266,
       "unloadEventStart": 0,
       "unloadEventEnd": 0,
       "domLoading": 1788983206274,
       "domInteractive": 1788983206387,
       "domContentLoadedEventStart": 1788983206746,
       "domContentLoadedEventEnd": 1788983206747,
       "domComplete": 1788983207310,
       "loadEventStart": 1788983207310,
       "loadEventEnd": 1788983207310
      }
     }
    ]
   },
   "se_category": "groups:billings:index",
   "se_action": "click_purchase_credits_dap_land_sku",
   "se_label": null,
   "se_property": null,
   "se_value": null,
   "unstruct_event": null,
   "tr_orderid": null,
   "tr_affiliation": null,
   "tr_total": null,
   "tr_tax": null,
   "tr_shipping": null,
   "tr_city": null,
   "tr_state": null,
   "tr_country": null,
   "ti_orderid": null,
   "ti_sku": null,
   "ti_name": null,
   "ti_category": null,
   "ti_price": null,
   "ti_quantity": null,
   "pp_xoffset_min": null,
   "pp_xoffset_max": null,
   "pp_yoffset_min": null,
   "pp_yoffset_max": null,
   "useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36",
   "br_name": null,
   "br_family": null,
   "br_version": null,
   "br_type": null,
   "br_renderengine": null,
   "br_lang": "en-US",
   "br_features_pdf": null,
   "br_features_flash": null,
   "br_features_java": null,
   "br_features_director": null,
   "br_features_quicktime": null,
   "br_features_realplayer": null,
   "br_features_windowsmedia": null,
   "br_features_gears": null,
   "br_features_silverlight": null,
   "br_cookies": true,
   "br_colordepth": "24",
   "br_viewwidth": 1416,
   "br_viewheight": 1119,
   "os_name": null,
   "os_family": null,
   "os_manufacturer": null,
   "os_timezone": "America/Toronto",
   "dvce_type": null,
   "dvce_ismobile": null,
   "dvce_screenwidth": 1440,
   "dvce_screenheight": 2560,
   "doc_charset": "UTF-8",
   "doc_width": 1416,
   "doc_height": 1119,
   "tr_currency": null,
   "tr_total_base": null,
   "tr_tax_base": null,
   "tr_shipping_base": null,
   "ti_currency": null,
   "ti_price_base": null,
   "base_currency": null,
   "geo_timezone": null,
   "mkt_clickid": null,
   "mkt_network": null,
   "etl_tags": null,
   "dvce_sent_tstamp": "2026-09-09T19:47:19.629Z",
   "refr_domain_userid": null,
   "refr_dvce_tstamp": null,
   "derived_contexts": {},
   "domain_sessionid": "3c2e4ac0-8475-4c66-8aec-7d1c76382ea4",
   "derived_tstamp": "2026-09-09T19:47:19.684Z",
   "event_vendor": "com.google.analytics",
   "event_name": "event",
   "event_format": "jsonschema",
   "event_version": "1-0-0",
   "event_fingerprint": null,
   "true_tstamp": null
  },
  "incomplete": false
 },
 {
  "rawEvent": {
   "api": {
    "vendor": "com.snowplowanalytics.snowplow",
    "version": "tp2"
   },
   "parameters": {
    "e": "se",
    "eid": "7b0e2890-5e39-444f-9b6c-e59919532ceb",
    "aid": "gitlab",
    "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMS04IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJzb3VyY2UiOiJnaXRsYWItcmFpbHMiLCJjb3JyZWxhdGlvbl9pZCI6ImU5ZTM0MmM1MjkyNjFhYWVmOWJhMzQzZmU4NTFmOGJmIiwicGxhbiI6ImZyZWUiLCJleHRyYSI6e30sInVzZXJfaWQiOm51bGwsImdsb2JhbF91c2VyX2lkIjpudWxsLCJ1c2VyX3R5cGUiOm51bGwsImlzX2dpdGxhYl90ZWFtX21lbWJlciI6bnVsbCwibmFtZXNwYWNlX2lkIjoyMzEsInVsdGltYXRlX3BhcmVudF9uYW1lc3BhY2VfaWQiOjIzMSwicHJvamVjdF9pZCI6bnVsbCwiZmVhdHVyZV9lbmFibGVkX2J5X25hbWVzcGFjZV9pZHMiOm51bGwsInJlYWxtIjoic2FhcyIsImRlcGxveW1lbnRfdHlwZSI6Ii5jb20iLCJpbnN0YW5jZV9pZCI6ImRlNGNmODAzLTY2NzctNDc1MS1hY2VlLTAxMTk4OTJmYTU2NSIsInVuaXF1ZV9pbnN0YW5jZV9pZCI6ImMxODZiMTg4LWI4YWYtNWFmNC1iNjM3LWExYjlmZWFjY2Q3YSIsImhvc3RfbmFtZSI6Imdkay50ZXN0IiwiaW5zdGFuY2VfdmVyc2lvbiI6IjE5LjQuMCIsImNvbnRleHRfZ2VuZXJhdGVkX2F0IjoiMjAyNi0wOS0wOSAxOTo0Nzo1MiBVVEMiLCJvcmdhbml6YXRpb25faWQiOm51bGx9fSx7InNjaGVtYSI6ImlnbHU6Y29tLmdpdGxhYi9naXRsYWJfZXhwZXJpbWVudC9qc29uc2NoZW1hLzEtMC0zIiwiZGF0YSI6eyJ2YXJpYW50IjoiY29udHJvbCIsImV4cGVyaW1lbnQiOiJjaGFuZ2VfZGFwX2xhbmRfZGVmYXVsdF9jcmVkaXRzIiwia2V5IjoiNWJmNDI4OWIwZGMzMjM5YmNjZmZhZmFlMzE5NGY5ZWY1YjdlNDQ0YjNjMDFhNTk5MzIwZmVjY2U5NWY0YzI2MCJ9fV19",
    "tna": "gl",
    "stm": "1788983272986",
    "tv": "rb-0.8.0",
    "se_ac": "finish_purchase_credits_dap_land_sku",
    "se_ca": "change_dap_land_default_credits",
    "p": "srv",
    "dtm": "1788983272985"
   },
   "contentType": "application/json; charset=utf-8",
   "source": {
    "name": "ssc-4.2.0-micro-sscsink",
    "encoding": "UTF-8",
    "hostname": null
   },
   "context": {
    "timestamp": "2026-09-09T19:47:53.075Z",
    "ipAddress": "172.17.0.1",
    "useragent": "Ruby",
    "refererUri": null,
    "headers": [
     "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
     "Accept: */*",
     "User-Agent: Ruby",
     "Content-Type: application/json; charset=utf-8",
     "Connection: close",
     "Host: localhost:9091",
     "Content-Length: 1624",
     "application/json; charset=utf-8"
    ],
    "userId": "14faa0a1-cebc-45d9-9ba1-b3d2c13bfa34"
   }
  },
  "eventType": "struct",
  "schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
  "contexts": [
   "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
   "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3"
  ],
  "event": {
   "app_id": "gitlab",
   "platform": "srv",
   "etl_tstamp": "2026-09-09T19:47:54.089Z",
   "collector_tstamp": "2026-09-09T19:47:53.075Z",
   "dvce_created_tstamp": "2026-09-09T19:47:52.985Z",
   "event": "struct",
   "event_id": "7b0e2890-5e39-444f-9b6c-e59919532ceb",
   "txn_id": null,
   "name_tracker": "gl",
   "v_tracker": "rb-0.8.0",
   "v_collector": "ssc-4.2.0-micro-sscsink",
   "v_etl": "snowplow-micro-4.2.0",
   "user_id": null,
   "user_ipaddress": "172.17.0.1",
   "user_fingerprint": null,
   "domain_userid": null,
   "domain_sessionidx": null,
   "network_userid": "14faa0a1-cebc-45d9-9ba1-b3d2c13bfa34",
   "geo_country": null,
   "geo_region": null,
   "geo_city": null,
   "geo_zipcode": null,
   "geo_latitude": null,
   "geo_longitude": null,
   "geo_region_name": null,
   "ip_isp": null,
   "ip_organization": null,
   "ip_domain": null,
   "ip_netspeed": null,
   "page_url": null,
   "page_title": null,
   "page_referrer": null,
   "page_urlscheme": null,
   "page_urlhost": null,
   "page_urlport": null,
   "page_urlpath": null,
   "page_urlquery": null,
   "page_urlfragment": null,
   "refr_urlscheme": null,
   "refr_urlhost": null,
   "refr_urlport": null,
   "refr_urlpath": null,
   "refr_urlquery": null,
   "refr_urlfragment": null,
   "refr_medium": null,
   "refr_source": null,
   "refr_term": null,
   "mkt_medium": null,
   "mkt_source": null,
   "mkt_term": null,
   "mkt_content": null,
   "mkt_campaign": null,
   "contexts": {
    "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
    "data": [
     {
      "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
      "data": {
       "environment": "production",
       "source": "gitlab-rails",
       "correlation_id": "e9e342c529261aaef9ba343fe851f8bf",
       "plan": "free",
       "extra": {},
       "user_id": null,
       "global_user_id": null,
       "user_type": null,
       "is_gitlab_team_member": null,
       "namespace_id": 231,
       "ultimate_parent_namespace_id": 231,
       "project_id": null,
       "feature_enabled_by_namespace_ids": null,
       "realm": "saas",
       "deployment_type": ".com",
       "instance_id": "de4cf803-6677-4751-acee-0119892fa565",
       "unique_instance_id": "c186b188-b8af-5af4-b637-a1b9feaccd7a",
       "host_name": "gdk.test",
       "instance_version": "19.4.0",
       "context_generated_at": "2026-09-09 19:47:52 UTC",
       "organization_id": null
      }
     },
     {
      "schema": "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
      "data": {
       "variant": "control",
       "experiment": "change_dap_land_default_credits",
       "key": "5bf4289b0dc3239bccffafae3194f9ef5b7e444b3c01a599320fecce95f4c260"
      }
     }
    ]
   },
   "se_category": "change_dap_land_default_credits",
   "se_action": "finish_purchase_credits_dap_land_sku",
   "se_label": null,
   "se_property": null,
   "se_value": null,
   "unstruct_event": null,
   "tr_orderid": null,
   "tr_affiliation": null,
   "tr_total": null,
   "tr_tax": null,
   "tr_shipping": null,
   "tr_city": null,
   "tr_state": null,
   "tr_country": null,
   "ti_orderid": null,
   "ti_sku": null,
   "ti_name": null,
   "ti_category": null,
   "ti_price": null,
   "ti_quantity": null,
   "pp_xoffset_min": null,
   "pp_xoffset_max": null,
   "pp_yoffset_min": null,
   "pp_yoffset_max": null,
   "useragent": "Ruby",
   "br_name": null,
   "br_family": null,
   "br_version": null,
   "br_type": null,
   "br_renderengine": null,
   "br_lang": null,
   "br_features_pdf": null,
   "br_features_flash": null,
   "br_features_java": null,
   "br_features_director": null,
   "br_features_quicktime": null,
   "br_features_realplayer": null,
   "br_features_windowsmedia": null,
   "br_features_gears": null,
   "br_features_silverlight": null,
   "br_cookies": null,
   "br_colordepth": null,
   "br_viewwidth": null,
   "br_viewheight": null,
   "os_name": null,
   "os_family": null,
   "os_manufacturer": null,
   "os_timezone": null,
   "dvce_type": null,
   "dvce_ismobile": null,
   "dvce_screenwidth": null,
   "dvce_screenheight": null,
   "doc_charset": null,
   "doc_width": null,
   "doc_height": null,
   "tr_currency": null,
   "tr_total_base": null,
   "tr_tax_base": null,
   "tr_shipping_base": null,
   "ti_currency": null,
   "ti_price_base": null,
   "base_currency": null,
   "geo_timezone": null,
   "mkt_clickid": null,
   "mkt_network": null,
   "etl_tags": null,
   "dvce_sent_tstamp": "2026-09-09T19:47:52.986Z",
   "refr_domain_userid": null,
   "refr_dvce_tstamp": null,
   "derived_contexts": {},
   "domain_sessionid": null,
   "derived_tstamp": "2026-09-09T19:47:53.074Z",
   "event_vendor": "com.google.analytics",
   "event_name": "event",
   "event_format": "jsonschema",
   "event_version": "1-0-0",
   "event_fingerprint": null,
   "true_tstamp": null
  },
  "incomplete": false
 }
]

Staging validation

In staging, validate only that events are being received in Snowplow — not their structure (which was validated locally).

UX validation:

  • Verify the control experience renders correctly
  • Verify the candidate experience renders correctly
  • Verify transitions between control and candidate are smooth

Tracking event validation:

Production validation

In production, validate that events are flowing correctly into Snowflake.

Tracking event validation:

Note: Events may take 24+ hours to appear in Tableau dashboards.

Rollout plan

  • Runtime in days, or until we expect to reach statistical significance: 30
  • We will roll this out behind a feature flag and expose this to 50% of actors to start then ramp it up from there.

/chatops gitlab run feature set change_dap_land_default_credits 50 --actors

Status

Preferred workflow

The issue should be assigned to the Product manager (PM) or Engineer (Eng) as follows:

  1. PM determines and manages the status of the experiment (assign this issue to the PM)
  2. PM asks for initial rollout on production, or changes to the status (assign to an Eng)
  3. Eng changes the status using chatops (reassign to the PM)
  4. When concluded, PM updates the 'Roll Out Steps' and adds a milestone (assigns to an Eng)

The current status and history can be viewed using the:

In this rollout issue, ensure the scoped experiment:: label is kept accurate.

Experiment Results

Roll Out Steps

  • Confirm that end-to-end tests pass with the feature flag enabled. If there are failing tests, contact the relevant stable counterpart in the Quality department to collaborate in updating the tests or confirming that the failing tests are not caused by the changes behind the enabled feature flag.
    • See #e2e-run-staging Slack channel and look for the following messages:
      • test kicked off: Feature flag change_dap_land_default_credits has been set to true on **gstg**
      • test result: This pipeline was triggered due to toggling of change_dap_land_default_credits feature flag
  • Enable on staging (/chatops gitlab run feature set change_dap_land_default_credits true --staging)
  • Test on staging
  • Ensure that documentation has been updated
  • Enable on GitLab.com for individual groups/projects listed above and verify behaviour (/chatops gitlab run feature set --project=gitlab-org/gitlab change_dap_land_default_credits true)
  • Coordinate a time to enable the flag with the SRE oncall and release managers
    • In #production mention @sre-oncall and @release-managers. Once an SRE on call and Release Manager on call confirm, you can proceed with the rollout
  • Announce on the issue an estimated time this will be enabled on GitLab.com
  • Enable on GitLab.com by running chatops command in #production (/chatops gitlab run feature set change_dap_land_default_credits true)
  • Cross post chatops Slack command to #support_gitlab-com (more guidance when this is necessary in the dev docs) and in your team channel
  • Announce on the issue that the flag has been enabled
  • Remove experiment code and feature flag and add changelog entry - a separate cleanup issue might be required
  • After the flag removal is deployed, clean up the feature flag by running chatops command in #production channel
  • Assign to the product manager to update the knowledge base (if applicable)

Rollback Steps

  • This feature can be disabled by running the following Chatops command:
/chatops gitlab run feature set change_dap_land_default_credits false

Experiment Successful Cleanup Concerns

Items to be considered if candidate experience is to become a permanent part of GitLab

Edited by Roy Liu