Skip to main content
This is a quick reference. Each entry links to the page where the concept is explained in depth. The core measurement vocabulary — assignment events, unique units, enrolled units, allocations, traffic splits — is laid out on the terminology page.

A

Adaptive policy

A policy where the optimizer adjusts allocations over time based on observed rewards. Contrast with a static policy. Algorithms include Thompson Sampling, Epsilon-Greedy, UCB1, and Linear Contextual. → Optimization

Allocation

A named bundle of parameter overrides a policy serves, with a share of its traffic — defined by a bucket range. Users whose bucket falls in the range receive the overrides. → Policies

Analysis signal

Which assignment signal an analysis reads: decision events (intent-to-treat) or exposure events (treatment-on-the-treated). Warehouse-native assignment definitions declare it as their Signal — decision, exposure, or mixed when a source_type column is mapped. → Terminology

Assignment

The pairing of a user (or other unit) with an allocation. Assignments are deterministic given a stable unit key and an unchanged bundle. → Decisions & attribution

Assignment event

Every decision or exposure row produced by a running policy, repeats included — serving volume, not a sample size. The umbrella over decision events and exposure events. → Terminology

Assignment definition

SQL plus column mappings describing where assignments live in your warehouse, with a declared Signal (analysis signal). Used in warehouse-native mode when assignments come from outside Traffical. → Warehouse-native

Attribute

A registered, typed context key the SDK sends to decide()plan, device_type, cart_value. Registration drives typed condition editors, save-time coercion and validation of condition values, the per-key logging policy, and the generated TrafficalContext type. $-prefixed keys ($unit_key, $env, $country, the device keys) are system attributes. → Attributes

Attribution

Connecting a track event to the decision that preceded it. Done in two places: the SDK embeds an attribution array on each track event (cumulative session view, or a single named decisionId); the pipeline joins events to assignments on unit_key + first-exposure timestamp. → Decisions & attribution

Attribution mode

Whether a track event attributes to all layers the user has been exposed to in the session (cumulative, the default) or only to the specific decision named in the event (decision). → Decisions & attribution

Autonomy

How much of a change’s lifecycle an agent may drive without a human, per risk class. Risk-reducing actions (pause, revert, reduce traffic) always execute immediately; risk-increasing actions (start, advance, increase traffic) execute automatically only for low-risk changes and otherwise become proposals awaiting approval; promoting a new default is a human checkpoint by default at every risk class (relaxable only via an autonomy policy). → Approvals & autonomy

B

Base layer

The default layer every project has. New parameters land here unless assigned elsewhere. Cannot be deleted. → Layers

Bucket

A number in [0, bucketCount - 1] computed by hashing the unit key with the layer ID. Determines which allocation a user falls into. → How it works

Bucket count

The total number of buckets per layer (1000 by default). A project-level setting that determines allocation granularity.

Bucket range

A [start, end] pair within [0, bucketCount - 1] defining the users assigned to a given allocation. Ranges within a policy don’t overlap.

Bundle

See config bundle.

C

Certified

The reviewed-and-locked state of a measurement protocol (draftcertifieddeprecated). A change has certified coverage when every protocol its measurement plan was resolved from is currently certified — one precondition (alongside low risk and no unresolved risks) for starting traffic without waiting on human plan approval. → Measurement protocols

Change

A product initiative wrapping one or more policies across its lifecycle — intent, affected surfaces, phases, measurement plan, and audit trail in one place. States: draft, active, paused, completed, archived. Changes are enabled per organization — if you don’t see Changes in the sidebar, it isn’t enabled for you yet. → Changes

Change phase

One lifecycle step of a change: setup, canary, experiment, rollout, adaptive, or complete. Traffic-bearing phases execute as policies (usually one per phase), and each phase records an outcome when it ends. → Changes

Config bundle

A JSON document containing every parameter, layer, policy, allocation, and event definition needed for SDK resolution. SDKs fetch it once and cache it. → How it works

Conditions

Predicates on the resolution context that restrict a policy’s eligibility. → Policies

Context

The object you pass to getParams() containing the unit key plus any fields used for targeting (locale, plan, device, etc.). Its keys can be registered as attributes. → Quickstart

Contextual bandit

An adaptive policy where allocation selection depends on user context features via a trained linear model. The SDK scores allocations locally. → Optimization

Control plane

Traffical’s management layer (configuration, bundle building, the optimizer). Users interact via the dashboard and CLI; SDKs don’t talk to it directly.

D

Decision

The SDK’s record of resolving parameters for a user — assignments, layer-by-layer allocation details, and a decisionId. Emitted as a decision event. → Decisions & attribution “Decision” carries three distinct senses in these docs: the SDK decision above (one resolution per unit, identified by its decisionId); the decision event the SDK emits, used as the assignment record for intent-to-treat analysis; and a decision record in the decision log — the audit trail of lifecycle decisions on policies and changes.

Decision event

Emitted when the SDK resolves an allocation for a unit — the intent-to-treat (ITT) signal, whether or not the unit saw it. One kind of assignment event. → Events

Decision log

The audit trail of every policy and change lifecycle decision — state transitions, allocation overrides, rollout actions, guardrail breaches. → Dashboard: Decisions

Decision record

A structured, immutable entry in the decision log capturing who did what and why at a lifecycle moment — actor, reason, the evidence records cited, and the thresholds in force at the time. Written automatically on transitions, breaches, and milestones; humans and agents add annotations and approvals. → Dashboard: Decisions

decisionId

A unique identifier the SDK generates for each decision. Threaded into track events to connect outcomes to assignments. → Decisions & attribution

Default value

The value a parameter takes when no policy overrides it. Defined both in Traffical (canonical) and in code (safety net). → Parameters

Definition

Generic term for entity, assignment, fact, or metric definitions. → Warehouse-native

Dimension

A property marked dimension: true on an event schema, usable for slicing metrics in the dashboard and the warehouse-native pipeline. → Type-safe events

DevTools

A bookmarklet that lets you inspect SDK state, current assignments, and override parameters live in any browser. → DevTools

DOM binding

A link between a parameter and a DOM element (selector + property + URL pattern). Used by the visual editor for no-code UI tests. → Visual editor

Dynamic allocations

For per-entity adaptive policies, allocations whose count comes from a context field rather than being declared in advance. → Policies

E

Edge API

The SDK-facing API at sdk.traffical.io. Serves config bundles and ingests events. → API overview

Eligible bucket range

An optional sub-range a policy is restricted to. Useful for non-overlapping policies in the same layer. → Policies

Entity

The unit of randomization or measurement (User, Company, Device). Has a keyType that matches the project’s unit key. → Warehouse-native

Entity config

Configuration on a per-entity adaptive policy that specifies entity keys, resolution mode, and optional dynamic allocations.

Entry point

A reusable, timestamped milestone that determines when a unit qualifies for measurement, with qualification rules selecting which fact rows qualify. Attaching one to a measurement narrows the sample from enrolled units to qualified units. → Terminology

Environment

A runtime instance of a project (production, staging, development, custom). Bundles and API keys are scoped per environment. → Projects & environments

Evaluation mode

How the SDK resolves parameters — bundle (local resolution from cached bundle, default) or server (request resolution per call, default for React Native). → How it works

Event definition

A declaration of a track event’s value type, unit, description, and optional property schema. → Events

Evidence record

An immutable, decision-ready snapshot of measured results for a change phase — canary health, experiment result, rollout health, adaptive status — with a rule-derived recommendation (continue, advance, pause, rollback, complete) and full provenance. Refreshing writes a new record and supersedes the old one; decision records cite evidence rather than recomputing it. → Dashboard: Changes

Enrolled units

Units attributed to the allocation of their first assignment; units seen in more than one allocation are excluded. The analysis sample when no entry point is active — with one active, the sample is qualified units. → Terminology

Exposure event

Emitted when a unit actually experiences its allocation (a parameter value is read) — the treatment-on-the-treated (TOT) signal. One kind of assignment event. → Events

F

Fact definition

SQL plus column mappings for an outcome data source in your warehouse. Powers warehouse-native metrics. → Warehouse-native

Feature flag

A boolean parameter controlled by a policy. Conceptually identical to any other parameter type but with conventional rollout patterns. → Feature flags

FOOC

Flash of original content. Visible UI change when client-side resolution happens after first paint. Mitigated by SSR or by embedding a localConfig bundle. → SSR patterns

G

Goal metric

The metric a policy is optimizing for. Drives adaptive allocation shifts; surfaces as the primary result. → Dashboard: Metrics

Guardrail metric

A metric you don’t want to get worse, even if the goal metric improves. Surfaced alongside results; doesn’t drive allocations. → Experiment design

H

Hashing

The deterministic function that maps a unit key to a bucket per layer. The same unit key always produces the same bucket. → How it works

Health check

A metric condition evaluated during a rollout. Can pause, roll back, or alert based on threshold violations. → Rollouts

Holdout group

A reserved fraction of users excluded from every policy for a long stretch of time, to measure cumulative program impact. → Experimentation patterns

I

identify()

The SDK method that switches a browser session’s unit key from the auto-generated stable ID to a real user ID after login. → JavaScript SDK

Intent-to-treat

Analysis approach that counts every unit assigned to an allocation, regardless of whether it actually saw it. Uses decision events. Contrast with treatment-on-treated.

L

Layer

A pool of mutually exclusive policies over a disjoint set of parameters. Concurrent policies in different layers are statistically independent. → Layers

Lifecycle template

The phase scaffold chosen when a change is created — Gradual rollout, Canary → Experiment → Rollout, or Adaptive optimization. It determines which phases are planned up front; you can still adjust them afterwards. → Changes

Linear contextual

The contextual bandit algorithm. SDK scores allocations locally using a trained linear model. → Optimization

localConfig

A bundle embedded in your application binary (typically built in CI). Used as a cold-start fallback when the SDK can’t reach Traffical. → React Native SDK

M

Management key

A traffical_mk_... API key. Creates and modifies projects, layers and policies — CLI, CI/CD, Terraform, agents. Carries permission slugs that can never exceed those of the person who created it. Must stay secret; never ship in client code. (The CLI normally uses device login instead.) An admin key (traffical_ak_...) adds organization administration on top.

Measurement plan

The per-change snapshot resolved from the matching measurement protocols: primary and secondary metrics, guardrails, diagnostics, and per-phase rules, stamped with the change’s risk class. A change can’t expose traffic until its plan is approved — low-risk plans built entirely from certified protocols with no unresolved risks approve automatically. → Measurement protocols

Measurement protocol

A reusable measurement standard: metric rules, guardrail rules, diagnostics, and per-phase requirements, plus a predicate (surfaces, parameter tags, templates, risk classes) describing which changes it applies to. Protocols are versioned and move draftcertifieddeprecated. → Measurement protocols

Metric definition

The combination of a fact (or event) and an aggregation rule (conversion_rate, sum, count). → Dashboard: Metrics

N

Namespace

A dot-prefix convention for grouping related parameters (checkout.button.color, checkout.headline). Not enforced — just a naming convention used by the CLI and dashboard. → Parameters

O

Optimizer

Traffical’s component that retrains adaptive policy state on a schedule. Reads events, updates allocation weights or model coefficients, republishes the bundle. → Optimization

Orthogonal bucketing

The property that a user’s bucket in one layer carries no information about its bucket in another. Comes from mixing the layer ID into the hash. → Layers

P

Parameter

A typed configuration value with a default — Traffical’s atomic unit. → Parameters

Per-entity adaptive policy

An adaptive policy where one bandit is learned per entity (product, merchant, etc.) rather than one global bandit. → Policies

Policy

The rule that overrides parameter values for selected users within a layer. → Policies

Project

The unit of experimentation — contains parameters, layers, policies, events, definitions, hashing configuration. → Projects & environments

Property group

A reusable bundle of typed event properties (e.g. geo: {market, country, currency}) referenced by many event definitions. → Type-safe events

Property schema

Type declarations for a track event’s payload properties. Drives codegen, edge validation, and dashboard dimension extraction. → Type-safe events

Q

Qualification rate

Qualified units divided by enrolled units, shown overall and per allocation. → Terminology

Qualification rules

Conditions on source-fact dimensions that select which fact rows qualify for an entry point. → Terminology

Qualified units

Enrolled units with a qualifying fact at or after first assignment. The analysis sample when an entry point is active. → Terminology

R

Resolution

The process of computing parameter values for a user — bucket → policy → allocation → overrides → result. → How it works

Resolution mode

For per-entity adaptive policies: bundle (entity weights ship in the bundle) or edge (SDK requests fresh weights per decision). → Policies

Risk class

A computed rating of a changelow, medium, high, or critical — derived from the kinds of surfaces it touches (ranking and AI surfaces rate higher than frontend ones), bumped one rung when any surface binding can mutate behavior (a write, decision, or side-effect role). Sets the approval bar: which protocols apply and how much autonomy the system gets. → Approvals & autonomy

Rollout

A progressive ramp of a policy from a starting percentage to a target, optionally gated by health checks. → Rollouts

S

Schema enforcement

What the edge does with events that don’t match their property schema — off, warn (default), or reject.

Publishable SDK key

A traffical_pk_... API key. Safe to ship in a client bundle — browsers, mobile apps, other client devices. Fetches the config bundle for local on-device resolution and sends events; cannot modify configuration and cannot use server-side resolution.

Server-side SDK key

A traffical_sk_... API key. Everything a publishable key can do, plus server-side resolution (/v1/resolve, /v1/decide/*). Belongs on your backend only — it reads the project’s full ruleset.

Significance

The statistical confidence that an observed difference between allocations isn’t random noise. Surfaced per metric per policy in the dashboard.

Stable ID

A UUID auto-generated by browser SDKs for users without a userId. Persisted in localStorage (with cookie fallback) for stability across sessions. → JavaScript SDK

Static policy

A policy with fixed allocations. Bucket ranges only change if you change them. Contrast with adaptive policy.

Surface

A named product context where parameterized behavior appears or has impact — the checkout page, a ranking service, an onboarding email. Each surface has a kind (frontend, backend, email, notification, ranking, AI, data, or other) that feeds risk classification. A surface is product meaning, not a layer. → Surfaces

Surface binding

The link declaring that a surface consumes a parameter, with a role — read, render, write, decision, or side_effect — and a required flag. Mutating roles raise a change’s risk class; a required surface with no matching certified protocol is flagged as an unresolved risk that disables auto-approval of the measurement plan — a human must sign off with the gap recorded. → Surfaces

Synced parameter

A parameter managed by the CLI from .traffical/config.yaml. Its definition is read-only in the dashboard to prevent drift. Contrast with dashboard-only parameter.

Dashboard-only parameter

A parameter created in the dashboard, not present in code. Editable in both directions. Can be imported into code via traffical import.

T

Targeting

Restricting a policy to users whose context matches a set of conditions. → Policies

Time to qualification

How long after first assignment units reach the entry point — the gap between enrollment and qualification, shown as p50/p75/p90. → Terminology

Track event

A custom event your code emits to record an outcome (purchase, signup, click). Reward signals for adaptive policies; numerators for metrics. → Events

Traffical-native mode

Metrics computed from track events sent via Traffical SDKs (as opposed to warehouse-native). → Warehouse-native

Traffic split

How a policy’s traffic divides across its allocations. Percentages on a policy always describe traffic. → Terminology

Treatment-on-treated

Analysis approach that only counts units that actually experienced their allocation. Uses exposure events. Contrast with intent-to-treat.

U

Unique units

Distinct unit keys seen in the window. Each unit counts once, however often it appears. → Terminology

Unit key

The context field that drives bucketing — userId, companyId, deviceId, or custom. Set per project. → Projects & environments

V

Visual editor

A browser bookmarklet for creating no-code UI tests via CSS selector-based DOM bindings. → Visual editor

W

Warehouse-native

Metrics computed from SQL queries against your own data warehouse rather than from Traffical-native events. → Warehouse-native