CINXE.COM
<!doctype html> <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-faq" data-has-hydrated="false"> <head> <meta charset="UTF-8"> <meta name="generator" content="Docusaurus v3.5.2"> <title data-rh="true">FAQ | Statsig Docs</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://docs.statsig.com/img/docs_meta_q3_2023.png"><meta data-rh="true" name="twitter:image" content="https://docs.statsig.com/img/docs_meta_q3_2023.png"><meta data-rh="true" property="og:url" content="https://docs.statsig.com/faq"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="FAQ | Statsig Docs"><meta data-rh="true" name="description" content="SDKs and APIs"><meta data-rh="true" property="og:description" content="SDKs and APIs"><meta data-rh="true" name="keywords" content="owner:brock"><link data-rh="true" rel="icon" href="/img/favicon.svg"><link data-rh="true" rel="canonical" href="https://docs.statsig.com/faq"><link data-rh="true" rel="alternate" href="https://docs.statsig.com/faq" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.statsig.com/faq" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://JOWHDNMZRN-dsn.algolia.net" crossorigin="anonymous"><link rel="search" type="application/opensearchdescription+xml" title="Statsig Docs" href="/opensearch.xml"> <script>!function(e,t,n,a){e[a]=e[a]||[],e[a].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var r=t.getElementsByTagName(n)[0],o=t.createElement(n);o.async=!0,o.src="https://www.googletagmanager.com/gtm.js?id=GTM-NRDCWNF";var c=t.querySelector("[nonce]");c&&o.setAttribute("nonce",c.nonce||c.getAttribute("nonce")),r.parentNode.insertBefore(o,r)}(window,document,"script","dataLayer")</script> <script async defer="defer" src="https://www.googletagmanager.com/gtag/js?id=G-EM5RHE1RHW"></script> <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-EM5RHE1RHW")</script> <script src="https://www.statsig.com/js/single-id.js" onload="setupStatsigSingleId('docs')"></script> <script src="https://cdn.jsdelivr.net/npm/@statsig/js-client@3/build/statsig-js-client+session-replay+web-analytics.min.js?apikey=client-XlqSMkAavOmrePNeWfD0fo2cWcjxkZ0cJZz64w7bfHX"></script> <script>window.statsigTier="production"</script> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&display=swap"> <script src="/js/rapidoc-min.js"></script> <script src="https://cdn.koala.live/v1/daniel/sdk.js"></script> <script src="/js/koala.js"></script> <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0ff46ae2.css"> <script src="/assets/js/runtime~main.491870c8.js" defer="defer"></script> <script src="/assets/js/main.62af40f5.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/2025_Statsig_Logo_Black.svg" alt="Statsig" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/2025_Statsig_Logo_White.svg" alt="Statsig" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate"></b></a><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div><div class="navbar__item"><button class="signupCTA CTA" onclick='window.open("https://console.statsig.com","_blank").focus()'>Get Started</button></div></div><div class="navbar__items navbar__items--right"><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--active">New to Statsig?</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item doc-icon sidebar-icon"><a class="menu__link" tabindex="0" href="/">Overview</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed rocket-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/guides/first-feature">Quickstart Guides</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed lightbulb-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/understanding-platform">Core Concepts & Setup</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed doc-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/sdks/getting-started">SDKs & APIs</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed data-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/metrics/101">Data & Metrics</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item question-icon sidebar-icon"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/faq">FAQs</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link">Products</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed feature-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/feature-flags/working-with">Feature Flags</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed xp-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/experiments-plus">Experimentation</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed layer-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/guides/sidecar-experiments/introduction">Low-Code Experiments</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed chart-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/product-analytics/overview">Product Analytics</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed web-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/webanalytics/overview">Web Analytics</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed play-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/session-replay/overview">Session Replay</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed whn-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/statsig-warehouse-native/introduction">Warehouse Native</a></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link">Management & Admin</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed team-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/access-management/introduction">Workspace Management</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed integrations-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/integrations/introduction">Integrations</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed template-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/org-admin/organization_policies">Collaboration</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed admin-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/compliance/introduction">Privacy</a><button aria-label="Expand sidebar category 'Privacy'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed infra-icon sidebar-icon"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/infrastructure/introduction">Infrastructure Operations</a><button aria-label="Expand sidebar category 'Infrastructure Operations'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">New to Statsig?</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">FAQs</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>FAQ</h1></header><h2 class="anchor anchorWithStickyNavbar_LWe7" id="sdks-and-apis">SDKs and APIs<a href="#sdks-and-apis" class="hash-link" aria-label="Direct link to SDKs and APIs" title="Direct link to SDKs and APIs"></a></h2> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="how-does-bucketing-within-the-statsig-sdks-work">How does bucketing within the Statsig SDKs work?<a href="#how-does-bucketing-within-the-statsig-sdks-work" class="hash-link" aria-label="Direct link to How does bucketing within the Statsig SDKs work?" title="Direct link to How does bucketing within the Statsig SDKs work?"></a></h3> <p>Bucketing in Statsig is deterministic. Given the same user object and the same state of the experiment or feature gate, Statsig always returns the same result, even when evaluated on different platforms (client or server). Here's how it works:</p> <ol> <li><strong>Salt Creation</strong>: Each experiment or feature gate rule generates a unique salt.</li> <li><strong>Hashing</strong>: The user identifier (e.g., userId, organizationId) is passed through a SHA256 hashing function, combined with the salt, which produces a large integer.</li> <li><strong>Bucket Assignment</strong>: The large integer is then subjected to a modulus operation with 10000 (or 1000 for layers), assigning the user to a bucket.</li> <li><strong>Bucket Determination</strong>: The result defines the specific bucket out of 10000 (or 1000 for layers) where the user is placed.</li> </ol> <p>This process ensures a randomized but deterministic bucketing of users across different experiments or feature gates. The unique salt per-experiment or feature gate rule ensures that the same user can be assigned to different buckets in different experiments. This also means that if you rollout a feature gate rule to 50% - then back to 0% - then back to 50%, the same 50% of users will be re-exposed, <strong>so long as you reuse the same rule</strong> - and not create a new one. See <a href="/faq/#when-i-change-the-rollout-percentage-of-a-rule-on-a-feature-gate-will-users-who-passed-continue-to-pass">here</a>.</p> <p>A lot of times people assume that we keep track of a list of all ids and what group they were assigned to for experiments, or which IDs passed a certain feature gate. While our data pipelines keep track of which users were exposed to which experiment variant in order to generate experiment results, we do not cache previous evaluations and maintain distributed evaluation state across client and server sdks. That model doesn't scale - we've even talked to customers who were using an implementation like that in the past, and were paying more for a Redis instance to maintain that state than they ended up paying to use Statsig instead.</p> <p>For more details, check our open-source SDKs <a href="https://github.com/statsig-io/node-js-server-sdk/blob/main/src/Evaluator.ts" target="_blank" rel="noopener noreferrer">here</a>.</p> <p>This is not generally recommended, but for advanced use cases - e.g. a series of related experiments that needs to reuse the control and test buckets, we now expose the ability to copy and set the salts used for deterministic hashing. This is meant to be used with care and is only available to Project Administrators. It is available in the Overflow (...) menu in Experiments.</p> <hr> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="is-it-possible-to-add-a-layer-to-a-running-experiment">Is it possible to add a layer to a running experiment?<a href="#is-it-possible-to-add-a-layer-to-a-running-experiment" class="hash-link" aria-label="Direct link to Is it possible to add a layer to a running experiment?" title="Direct link to Is it possible to add a layer to a running experiment?"></a></h3> <p>No. Once an experiment is started, you cannot change the layer. This restriction ensures the integrity of the experiment. We may support this feature in the future.</p> <hr> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="can-you-change-an-experiment-or-gate-name-after-creating-it">Can you change an experiment or gate name after creating it?<a href="#can-you-change-an-experiment-or-gate-name-after-creating-it" class="hash-link" aria-label="Direct link to Can you change an experiment or gate name after creating it?" title="Direct link to Can you change an experiment or gate name after creating it?"></a></h3> <p>No. We've intentionally decided to not allow any Statsig config (Feature Gate, Experiment, Layer, etc.) to be renamed - as renaming a config that is already integrated in your code can have serious undesirable consequences. The exception to this is Metrics, which have display names not used in code.</p> <hr> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="why-should-i-define-parameters-for-my-experiments-instead-of-just-getting-the-group">Why should I define parameters for my experiments instead of just getting the group?<a href="#why-should-i-define-parameters-for-my-experiments-instead-of-just-getting-the-group" class="hash-link" aria-label="Direct link to Why should I define parameters for my experiments instead of just getting the group?" title="Direct link to Why should I define parameters for my experiments instead of just getting the group?"></a></h3> <p>Defining parameters for experiments provides flexibility and speed in iteration. Many companies, such as Facebook, Uber, and Airbnb, follow this approach in their experimentation platforms because it allows:</p> <ul> <li>Faster iteration (no code changes required for new experiments).</li> <li>More flexible experiment designs.</li> </ul> <p>For example:</p> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="without-parameters-group-based">Without Parameters (Group-based):<a href="#without-parameters-group-based" class="hash-link" aria-label="Direct link to Without Parameters (Group-based):" title="Direct link to Without Parameters (Group-based):"></a></h4> <div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token keyword control-flow" style="color:#00009f">if</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">otherExpEngine</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">getExperiment</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">'button_color_test'</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">getGroup</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">===</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'Control'</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> color </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'BLACK'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword control-flow" style="color:#00009f">else</span><span class="token plain"> </span><span class="token keyword control-flow" style="color:#00009f">if</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">otherExpEngine</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">getExperiment</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">'button_color_test'</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">getGroup</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">===</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'Blue'</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> color </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'BLUE'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="with-parameters-statsig-approach">With Parameters (Statsig approach):<a href="#with-parameters-statsig-approach" class="hash-link" aria-label="Direct link to With Parameters (Statsig approach):" title="Direct link to With Parameters (Statsig approach):"></a></h4> <div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">color </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> statsig</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">getExperiment</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">'button_color_test'</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">getString</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">'button_color'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'BLACK'</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> <p>In the first case, adding a new color (e.g., "Green") requires a code change. In the second case, you can modify the experiment configuration without making a code change.</p> <hr> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="why-am-i-not-seeing-my-exposures-and-custom-events-logged-in-statsig">Why am I not seeing my exposures and custom events logged in Statsig?<a href="#why-am-i-not-seeing-my-exposures-and-custom-events-logged-in-statsig" class="hash-link" aria-label="Direct link to Why am I not seeing my exposures and custom events logged in Statsig?" title="Direct link to Why am I not seeing my exposures and custom events logged in Statsig?"></a></h3> <p>In short-lived processes (e.g., scripts or edge workers), the process may exit before the event queue flushes to Statsig. To ensure that exposures and events are logged, call <code>statsig.flush()</code> before the process exits.</p> <p>For details on flushing, check the <a href="/server/nodejsServerSDK#flushing-events">Node.js Server SDK documentation</a>.</p> <hr> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="i-dont-see-my-client-or-server-language-listed-can-i-still-use-statsig">I don't see my client or server language listed. Can I still use Statsig?<a href="#i-dont-see-my-client-or-server-language-listed-can-i-still-use-statsig" class="hash-link" aria-label="Direct link to I don't see my client or server language listed. Can I still use Statsig?" title="Direct link to I don't see my client or server language listed. Can I still use Statsig?"></a></h3> <p>If none of our current SDKs meet your needs, please let us know via our <a href="https://statsig.com/slack" target="_blank" rel="noopener noreferrer">Slack community</a>!</p> <hr> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="how-do-i-get-all-exposures-for-a-user">How do I get all exposures for a user?<a href="#how-do-i-get-all-exposures-for-a-user" class="hash-link" aria-label="Direct link to How do I get all exposures for a user?" title="Direct link to How do I get all exposures for a user?"></a></h3> <p>If you're interested in historical exposures, the console's <a href="https://console.statsig.com/users" target="_blank" rel="noopener noreferrer">users tab</a> may serve your needs.</p> <p>If you need all hypothetical assignments, you can consider using the <code>getClientInitializeResponse</code> server sdk method. Statsig's SDKs should ideally be invoked at the time you're serving an experiment treatment, so that an exposure can be logged. If that's not possible in your case (perhaps you need to pass assignment information to other applications, or to use assignment information as cache-keys for the CDN + edge), this approach could work.</p> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="example-of-capturing-all-assignments-in-node">Example of capturing all assignments in Node<a href="#example-of-capturing-all-assignments-in-node" class="hash-link" aria-label="Direct link to Example of capturing all assignments in Node" title="Direct link to Example of capturing all assignments in Node"></a></h4> <p>Note, this method is designed to <a href="/client/concepts/initialize#bootstrapping-overview">bootstrap</a> client SDKs, and as such, will hash the experiment and feature keys returned in the payload, obfuscating their names for security. You can provide an optional <code>hash</code> parameter, allowing you to disable hashing and capture all values in plain text: <a href="https://github.com/statsig-io/node-js-server-sdk/blob/ea116142221c1aa83b46eff8b5f2292c8f8e2d54/src/StatsigServer.ts#L597" target="_blank" rel="noopener noreferrer">Node</a>, <a href="https://github.com/statsig-io/node-js-server-sdk/blob/ea116142221c1aa83b46eff8b5f2292c8f8e2d54/src/StatsigServer.ts#L597" target="_blank" rel="noopener noreferrer">Python</a>, <a href="https://github.com/statsig-io/java-server-sdk/blob/7443c357c78616142de9257af9e4c55c877ca700/src/main/kotlin/com/statsig/sdk/StatsigServer.kt#L83" target="_blank" rel="noopener noreferrer">Java</a>, <a href="https://github.com/statsig-io/go-sdk/blob/3d7edcbe468efb0fc7a04b0d10202243403dce5f/client.go#L282" target="_blank" rel="noopener noreferrer">Go</a>.</p> <div class="language-node codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-node codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">const assignments = statsig.getClientInitializeResponse(userObj, "client-key", {hash: "none"});</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> <hr> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="what-happens-if-i-check-a-config-with-a-non-existent-name">What happens if I check a config with a non-existent name?<a href="#what-happens-if-i-check-a-config-with-a-non-existent-name" class="hash-link" aria-label="Direct link to What happens if I check a config with a non-existent name?" title="Direct link to What happens if I check a config with a non-existent name?"></a></h3> <p>You'll receive default values - false for feature flags, and the in-code defaults for experiments or layer parameters. You should expect to see "Unrecognized" evaluation reasons - see our <a href="/sdk/debugging#evaluation-reason">Debugging Section</a>. This behavior will be the same on a non-existent config vs. one that is deleted, one that is archived, or one that your current SDK instance can't see because of <a href="/sdk-keys/target-apps/">target apps</a>.</p> <hr> <h2 class="anchor anchorWithStickyNavbar_LWe7" id="feature-flags">Feature Flags<a href="#feature-flags" class="hash-link" aria-label="Direct link to Feature Flags" title="Direct link to Feature Flags"></a></h2> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="when-i-change-the-rollout-percentage-of-a-rule-on-a-feature-gate-will-users-who-passed-continue-to-pass">When I change the rollout percentage of a rule on a feature gate, will users who passed continue to pass?<a href="#when-i-change-the-rollout-percentage-of-a-rule-on-a-feature-gate-will-users-who-passed-continue-to-pass" class="hash-link" aria-label="Direct link to When I change the rollout percentage of a rule on a feature gate, will users who passed continue to pass?" title="Direct link to When I change the rollout percentage of a rule on a feature gate, will users who passed continue to pass?"></a></h3> <p>Yes. If you increase the rollout percentage (e.g., from 10% to 20%), the original 10% will continue to pass, while an additional 10% will start passing. Reducing the percentage will restore the original 10%. The same behavior exists if you reduce then re-increase the pass percentage. To reshuffle users, you'll need to "resalt" the gate.</p> <p>This is only true of the same "rule" per gate, if you create a new rule with the same pass percentage as another one, it will pass a different set of users.</p> <p>Note - today, increasing the allocation percentage of an experiment is not guaranteed to behave the same as the above - if you'd like to have dependably deterministic allocations, we recommend using targeting gates.</p> <hr> <h2 class="anchor anchorWithStickyNavbar_LWe7" id="statistics">Statistics<a href="#statistics" class="hash-link" aria-label="Direct link to Statistics" title="Direct link to Statistics"></a></h2> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="what-statistical-tests-does-statsig-use">What statistical tests does Statsig use?<a href="#what-statistical-tests-does-statsig-use" class="hash-link" aria-label="Direct link to What statistical tests does Statsig use?" title="Direct link to What statistical tests does Statsig use?"></a></h3> <p>Statsig uses a two-sample Z test for most experiments and <a href="/stats-engine/p-value#welchs-t-test">Welch’s t-test</a> for smaller sample sizes. These methods are industry-standard and have been validated through simulations and research.</p> <hr> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="how-does-statsig-handle-low-sample-size">How does Statsig handle low sample size?<a href="#how-does-statsig-handle-low-sample-size" class="hash-link" aria-label="Direct link to How does Statsig handle low sample size?" title="Direct link to How does Statsig handle low sample size?"></a></h3> <p>For small samples, we use <a href="/stats-engine/p-value#welchs-t-test">Welch's t-test</a>, which is more suitable for unequal group sizes or variances. We also support CUPED and winsorization to increase test power.</p> <hr> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="when-should-i-use-one-sided-vs-two-sided-tests">When should I use one-sided vs two-sided tests?<a href="#when-should-i-use-one-sided-vs-two-sided-tests" class="hash-link" aria-label="Direct link to When should I use one-sided vs two-sided tests?" title="Direct link to When should I use one-sided vs two-sided tests?"></a></h3> <p>Use a one-sided test if you're confident that you're only interested in movement in a specific direction. This increases the power of the test but sacrifices insight into secondary metrics.</p> <hr> <h2 class="anchor anchorWithStickyNavbar_LWe7" id="experimentation">Experimentation<a href="#experimentation" class="hash-link" aria-label="Direct link to Experimentation" title="Direct link to Experimentation"></a></h2> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="how-can-i-get-started-with-an-ab-test">How can I get started with an A/B Test?<a href="#how-can-i-get-started-with-an-ab-test" class="hash-link" aria-label="Direct link to How can I get started with an A/B Test?" title="Direct link to How can I get started with an A/B Test?"></a></h3> <p>If your feature isn't live yet, you can start an A/B test using a <a href="/guides/first-feature">feature flag</a>. If it's already in production, you can create an <a href="/guides/abn-tests">experiment</a>. Results can be viewed in the <strong>Pulse Results</strong> tab.</p> <hr> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="can-i-target-my-experiment-to-a-subset-of-users-eg-ios-users-only">Can I target my experiment to a subset of users (e.g., iOS users only)?<a href="#can-i-target-my-experiment-to-a-subset-of-users-eg-ios-users-only" class="hash-link" aria-label="Direct link to Can I target my experiment to a subset of users (e.g., iOS users only)?" title="Direct link to Can I target my experiment to a subset of users (e.g., iOS users only)?"></a></h3> <p>Yes, you can. When setting up your experiment, select a <a href="/feature-flags/working-with">Feature Flag</a> with targeting rules. In this case, only iOS users would pass the gate.</p> <p><img decoding="async" loading="lazy" src="https://user-images.githubusercontent.com/31516123/229173350-a1795b5a-bdef-4c58-afb1-36806dc38f1a.png" alt="Targeting iOS Users" class="img_ev3q"></p> <hr> <h2 class="anchor anchorWithStickyNavbar_LWe7" id="billing">Billing<a href="#billing" class="hash-link" aria-label="Direct link to Billing" title="Direct link to Billing"></a></h2> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="what-counts-as-a-billable-event">What counts as a <a href="https://statsig.com/pricing#faq" target="_blank" rel="noopener noreferrer">billable event</a>?<a href="#what-counts-as-a-billable-event" class="hash-link" aria-label="Direct link to what-counts-as-a-billable-event" title="Direct link to what-counts-as-a-billable-event"></a></h3> <p>Billable events occur when the Statsig SDK checks if a user is exposed to a feature flag or experiment or logs an event. Pre-computed metrics from data warehouses and custom metrics created from existing data also count as billable.</p> <hr> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="how-do-i-manage-my-billable-event-volume">How do I manage my billable event volume?<a href="#how-do-i-manage-my-billable-event-volume" class="hash-link" aria-label="Direct link to How do I manage my billable event volume?" title="Direct link to How do I manage my billable event volume?"></a></h3> <ol> <li>Download a CSV from the <strong>Usage and Billing</strong> tab to review events contributing to your volume.</li> <li>Create a pivot table in Excel to identify the top event volume drivers.</li> <li>Admins receive proactive alerts at 25/50/75/100% of their contracted events.</li> </ol> <p><img decoding="async" loading="lazy" src="https://user-images.githubusercontent.com/31516123/218547079-ba33751c-43f0-4ff7-8733-501711596333.png" alt="Billing Usage" class="img_ev3q"></p> <hr> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="how-many-projects-can-i-create-with-a-single-pro-subscription">How Many Projects Can I Create With a Single Pro Subscription?<a href="#how-many-projects-can-i-create-with-a-single-pro-subscription" class="hash-link" aria-label="Direct link to How Many Projects Can I Create With a Single Pro Subscription?" title="Direct link to How Many Projects Can I Create With a Single Pro Subscription?"></a></h3> <p>Pro subscriptions are limited to one project each. You can create more projects within Statsig, but if you want to have access to pro features and 5M events, you will need to upgrade each project independently. You can read more about our Pro plans <a href="https://statsig.com/pricing" target="_blank" rel="noopener noreferrer">here</a>.</p> <p>Enterprise plans can support multiple projects. If you might be interest in this, <a href="https://statsig.com/contact/demo" target="_blank" rel="noopener noreferrer">contact us here</a>!</p> <hr> <h2 class="anchor anchorWithStickyNavbar_LWe7" id="platform-usability">Platform Usability<a href="#platform-usability" class="hash-link" aria-label="Direct link to Platform Usability" title="Direct link to Platform Usability"></a></h2> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="when-should-i-create-a-new-project">When should I create a new project?<a href="#when-should-i-create-a-new-project" class="hash-link" aria-label="Direct link to When should I create a new project?" title="Direct link to When should I create a new project?"></a></h3> <p>Projects have distinct boundaries. If you're using the same userIDs and metrics across surfaces, apps or environments, put them in the same project. Create a new project when you're managing a separate product with unique user IDs and metrics.</p> <p>For example, if you have a marketing website (anonymous users) and a product (signed-in users), you may want to separate them. However, if you want to track success across both you should manage them in the same project. (e.g. from user signup on the marketing website to user engagement within the product)</p> <p>Some reasons to NOT create a new project</p> <ul> <li>to segregate by environment. Statsig has rich support for environments - you can even customize these. You can turn features or experiments on and off by environment.</li> <li>to segregate by platform. If you have an iOS app and Web app - it's helpful to have both collect data in the same project and capture metadata on platform. This lets you look at data by platform, but also understand if you've increased the overall metric - or just cannibalized users (pushed the same users from platform to the other platform).</li> </ul> <hr></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/statsig-io/docs/edit/main/docs/faq.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2025-02-13T00:00:00.000Z" itemprop="dateModified">Feb 13, 2025</time></b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/metrics/autogenerated"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">SDK auto metrics</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/feature-flags/working-with"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Overview</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#sdks-and-apis" class="table-of-contents__link toc-highlight">SDKs and APIs</a><ul><li><a href="#how-does-bucketing-within-the-statsig-sdks-work" class="table-of-contents__link toc-highlight">How does bucketing within the Statsig SDKs work?</a></li><li><a href="#is-it-possible-to-add-a-layer-to-a-running-experiment" class="table-of-contents__link toc-highlight">Is it possible to add a layer to a running experiment?</a></li><li><a href="#can-you-change-an-experiment-or-gate-name-after-creating-it" class="table-of-contents__link toc-highlight">Can you change an experiment or gate name after creating it?</a></li><li><a href="#why-should-i-define-parameters-for-my-experiments-instead-of-just-getting-the-group" class="table-of-contents__link toc-highlight">Why should I define parameters for my experiments instead of just getting the group?</a></li><li><a href="#why-am-i-not-seeing-my-exposures-and-custom-events-logged-in-statsig" class="table-of-contents__link toc-highlight">Why am I not seeing my exposures and custom events logged in Statsig?</a></li><li><a href="#i-dont-see-my-client-or-server-language-listed-can-i-still-use-statsig" class="table-of-contents__link toc-highlight">I don't see my client or server language listed. Can I still use Statsig?</a></li><li><a href="#how-do-i-get-all-exposures-for-a-user" class="table-of-contents__link toc-highlight">How do I get all exposures for a user?</a></li><li><a href="#what-happens-if-i-check-a-config-with-a-non-existent-name" class="table-of-contents__link toc-highlight">What happens if I check a config with a non-existent name?</a></li></ul></li><li><a href="#feature-flags" class="table-of-contents__link toc-highlight">Feature Flags</a><ul><li><a href="#when-i-change-the-rollout-percentage-of-a-rule-on-a-feature-gate-will-users-who-passed-continue-to-pass" class="table-of-contents__link toc-highlight">When I change the rollout percentage of a rule on a feature gate, will users who passed continue to pass?</a></li></ul></li><li><a href="#statistics" class="table-of-contents__link toc-highlight">Statistics</a><ul><li><a href="#what-statistical-tests-does-statsig-use" class="table-of-contents__link toc-highlight">What statistical tests does Statsig use?</a></li><li><a href="#how-does-statsig-handle-low-sample-size" class="table-of-contents__link toc-highlight">How does Statsig handle low sample size?</a></li><li><a href="#when-should-i-use-one-sided-vs-two-sided-tests" class="table-of-contents__link toc-highlight">When should I use one-sided vs two-sided tests?</a></li></ul></li><li><a href="#experimentation" class="table-of-contents__link toc-highlight">Experimentation</a><ul><li><a href="#how-can-i-get-started-with-an-ab-test" class="table-of-contents__link toc-highlight">How can I get started with an A/B Test?</a></li><li><a href="#can-i-target-my-experiment-to-a-subset-of-users-eg-ios-users-only" class="table-of-contents__link toc-highlight">Can I target my experiment to a subset of users (e.g., iOS users only)?</a></li></ul></li><li><a href="#billing" class="table-of-contents__link toc-highlight">Billing</a><ul><li><a href="#what-counts-as-a-billable-event" class="table-of-contents__link toc-highlight">What counts as a billable event?</a></li><li><a href="#how-do-i-manage-my-billable-event-volume" class="table-of-contents__link toc-highlight">How do I manage my billable event volume?</a></li><li><a href="#how-many-projects-can-i-create-with-a-single-pro-subscription" class="table-of-contents__link toc-highlight">How Many Projects Can I Create With a Single Pro Subscription?</a></li></ul></li><li><a href="#platform-usability" class="table-of-contents__link toc-highlight">Platform Usability</a><ul><li><a href="#when-should-i-create-a-new-project" class="table-of-contents__link toc-highlight">When should I create a new project?</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/faq">FAQ</a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://statsig.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Statsig Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://statsig.com/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://statsig.com/slack" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack Community<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/statsig-io" target="_blank" rel="noopener noreferrer" class="footer__link-item">Code<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright (c) 2025 Statsig, Inc. | Thanks Docusaurus</div></div></div></footer></div> </body> </html>