Rule structure
Each rule consists of:- Conditions: one or more attribute checks that must all pass (AND semantics)
- Serve: the value to return when all conditions match
Conditions
A condition evaluates an attribute from the evaluation context against a configured value using an operator. Attribute names correspond to the fields inEvaluationContext, or any custom key-value pair you include.
Operators
Multiple conditions (AND)
All conditions in a rule must match. There is no built-in OR within a single rule. To express OR logic, create separate rules.Evaluation context
The evaluation context is the set of attributes you pass when calling a flag hook or method. The SDK makes these available during rule evaluation.- React / React Native
- .NET
Built-in attributes
Custom attributes
Any key-value pair you include beyond the built-in attributes is passed through to the evaluation engine and can be referenced in targeting rules by name. This lets you target on application-specific properties like subscription plan, account type, or experiment cohort, without changes to the SDK or backend.Rule ordering
Rules are evaluated top-to-bottom. The first rule whose conditions all match wins; subsequent rules are not evaluated. Order rules in the dashboard by dragging them to set priority. Example: A rule that matches a specific customer ID should appear before a broader country-level rule, or it will never be reached if the country rule matches first.Fallthrough
When no targeting rule matches, evaluation falls through in this order:- Global rollout: if rollout is configured, the user is deterministically bucketed into the traffic split. The returned reason is
ROLLOUT(boolean) orSPLIT(multi-value). - Default value: if no rollout is set, the flag’s configured default value is returned. The returned reason is
DEFAULT.