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. → OptimizationAllocation
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. → PoliciesAnalysis 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 asource_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 & attributionAssignment 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. → TerminologyAssignment 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-nativeAttribute
A registered, typed context key the SDK sends todecide() — 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 anattribution 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 & autonomyB
Base layer
The default layer every project has. New parameters land here unless assigned elsewhere. Cannot be deleted. → LayersBucket
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 (draft → certified → deprecated). 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 worksConditions
Predicates on the resolution context that restrict a policy’s eligibility. → PoliciesContext
The object you pass togetParams() 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. → OptimizationControl 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 adecisionId. 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. → EventsDecision log
The audit trail of every policy and change lifecycle decision — state transitions, allocation overrides, rollout actions, guardrail breaches. → Dashboard: DecisionsDecision 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: DecisionsdecisionId
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). → ParametersDefinition
Generic term for entity, assignment, fact, or metric definitions. → Warehouse-nativeDimension
A property markeddimension: 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. → DevToolsDOM 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 editorDynamic allocations
For per-entity adaptive policies, allocations whose count comes from a context field rather than being declared in advance. → PoliciesE
Edge API
The SDK-facing API atsdk.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. → PoliciesEntity
The unit of randomization or measurement (User, Company, Device). Has akeyType 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. → TerminologyEnvironment
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. → EventsEvidence 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. → TerminologyExposure 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. → EventsF
Fact definition
SQL plus column mappings for an outcome data source in your warehouse. Powers warehouse-native metrics. → Warehouse-nativeFeature flag
A boolean parameter controlled by a policy. Conceptually identical to any other parameter type but with conventional rollout patterns. → Feature flagsFOOC
Flash of original content. Visible UI change when client-side resolution happens after first paint. Mitigated by SSR or by embedding alocalConfig bundle. → SSR patterns
G
Goal metric
The metric a policy is optimizing for. Drives adaptive allocation shifts; surfaces as the primary result. → Dashboard: MetricsGuardrail metric
A metric you don’t want to get worse, even if the goal metric improves. Surfaced alongside results; doesn’t drive allocations. → Experiment designH
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 worksHealth check
A metric condition evaluated during a rollout. Can pause, roll back, or alert based on threshold violations. → RolloutsHoldout group
A reserved fraction of users excluded from every policy for a long stretch of time, to measure cumulative program impact. → Experimentation patternsI
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. → LayersLifecycle 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. → ChangesLinear contextual
The contextual bandit algorithm. SDK scores allocations locally using a trained linear model. → OptimizationlocalConfig
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
Atraffical_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 protocolsMeasurement 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 movedraft → certified → deprecated. → 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. → OptimizationOrthogonal 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. → LayersP
Parameter
A typed configuration value with a default — Traffical’s atomic unit. → ParametersPer-entity adaptive policy
An adaptive policy where one bandit is learned per entity (product, merchant, etc.) rather than one global bandit. → PoliciesPolicy
The rule that overrides parameter values for selected users within a layer. → PoliciesProject
The unit of experimentation — contains parameters, layers, policies, events, definitions, hashing configuration. → Projects & environmentsProperty 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 eventsQ
Qualification rate
Qualified units divided by enrolled units, shown overall and per allocation. → TerminologyQualification rules
Conditions on source-fact dimensions that select which fact rows qualify for an entry point. → TerminologyQualified units
Enrolled units with a qualifying fact at or after first assignment. The analysis sample when an entry point is active. → TerminologyR
Resolution
The process of computing parameter values for a user — bucket → policy → allocation → overrides → result. → How it worksResolution 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 change —low, 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. → RolloutsS
Schema enforcement
What the edge does with events that don’t match their property schema —off, warn (default), or reject.
Publishable SDK key
Atraffical_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
Atraffical_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 auserId. 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. → SurfacesSurface 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 viatraffical import.
T
Targeting
Restricting a policy to users whose context matches a set of conditions. → PoliciesTime to qualification
How long after first assignment units reach the entry point — the gap between enrollment and qualification, shown as p50/p75/p90. → TerminologyTrack event
A custom event your code emits to record an outcome (purchase, signup, click). Reward signals for adaptive policies; numerators for metrics. → EventsTraffical-native mode
Metrics computed from track events sent via Traffical SDKs (as opposed to warehouse-native). → Warehouse-nativeTraffic split
How a policy’s traffic divides across its allocations. Percentages on a policy always describe traffic. → TerminologyTreatment-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. → TerminologyUnit key
The context field that drives bucketing —userId, companyId, deviceId, or custom. Set per project. → Projects & environments