Skip to content

[DOCS-155] Add accurate evaluation order documentation#3937

Open
devin-ai-integration[bot] wants to merge 3 commits intomainfrom
devin/DOCS-155-1770445563-evaluation-order-docs
Open

[DOCS-155] Add accurate evaluation order documentation#3937
devin-ai-integration[bot] wants to merge 3 commits intomainfrom
devin/DOCS-155-1770445563-evaluation-order-docs

Conversation

@devin-ai-integration
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot commented Feb 7, 2026

Description

Adds a new Evaluation Order section to sdks/how-evaluation-works.mdx documenting the rule evaluation sequence for experiments, layers, holdouts, and gates.

Relationship to PR #3933

This PR is intended as a corrected alternative to PR #3933. If this is merged, #3933 should be closed.


Link to Devin run: https://app.devin.ai/sessions/b92306d68a83463d9214e06547d88d49
Requested by: @xhuang-statsig

Best practice checklist

  • I've considered the best practices on where to put your doc and what to put in your doc
  • I've deleted and redirected old pages to this one, if any
  • I've updated links affected by this change, if any
  • I've updated screenshots affected by this change, if any

Questions?

Reach out to Brock, T̶o̶r̶e̶,̶ or Logan on Slack!

@devin-ai-integration
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

3. **Layer holdouts** — If the experiment is in a layer, layer-level holdout gates are checked
4. **Holdout gates** — Experiment-level holdout gates; users in a holdout receive default values
5. **Experiment exclusion** — Mutual exclusion segments that prevent users from being in multiple experiments
6. **Start status** — If the experiment is not started, users receive default values (with optional non-production environment exceptions)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aside: we could get rid of this
or move layer holdout and experiment start status down below to the layers section

6. **Start status** — If the experiment is not started, users receive default values (with optional non-production environment exceptions)
7. **Layer allocation** — For experiments in a layer, the user's bucket (based on the layer's universe salt) must fall within the experiment's allocated segments. This is checked **before** targeting.
8. **Targeting gate** — Users who fail the targeting gate receive default values. This is checked **after** layer allocation.
9. **Group assignment** — The user's bucket (based on the experiment salt) determines which group they fall into. Groups are cumulative ranges across 1000 buckets.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aside: don't think we need to say Groups are cumulative ranges across 1000 buckets.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant