
What gets logged
The log captures decisions across all kinds of policies — static, adaptive, per-entity, contextual — and both human and automated actions.| Decision type | When it fires |
|---|---|
policy_state_changed | A policy’s state moves between draft, running, paused, completed |
allocations_overridden | Allocation bucket ranges or overrides are manually edited |
policy_duplicated | A policy is forked into a new one |
policy_promoted | A winning allocation is promoted into the parameter defaults |
rollout_started / rollout_paused / rollout_resumed / rollout_completed | Lifecycle of a progressive rollout |
rollout_health_violation | A health check fired during a rollout step |
guardrail_breach | A guardrail metric crossed a threshold |
optimization_milestone | An adaptive policy moved between phases (exploring → converging → converged) |
Actors
Every decision has an actor:| Actor type | What it means |
|---|---|
user | A human via the dashboard or API |
agent | An AI agent acting through the API (the integrate-ai-tools flow uses this when an LLM-based assistant is involved) |
system | Traffical itself (cron jobs, scheduled rollout ramps, optimization engine updates) |
api_key | A direct API key call without a logged-in user |
Reading the log
Each entry shows:- Timestamp
- Decision type
- Actor (with profile photo for users)
- Policy / parameter / metric affected — clickable to navigate
- Reason — free-text rationale, often supplied at action time
- Evidence — structured data about what happened (e.g. before/after allocation ranges, metric value, threshold)
- Outcome — for actions that have a binary result (rollout step succeeded vs failed)

Filtering
Filter by:- Policy (one or many)
- Actor (a specific person or “system only”)
- Decision type
- Time range
Annotations
You can attach a free-text annotation to a decision after the fact. Useful for adding context: “we paused this because the support team flagged a regression, see ticket TR-1234”. Annotations are visible to anyone with project access and become part of the audit trail.API access
The decision log is also available via the management API for export to your own systems (data warehouse, SIEM, ticket tracker). See your dashboard’s API documentation for endpoints.Best practices
- Write reasons. When you take a manual action — pause a policy, override an allocation — type a short reason. Three months later, future-you will thank present-you.
- Watch for system pauses. A flurry of
rollout_health_violationfollowed byrollout_pausedmeans automation did its job. Investigate the metric that triggered it. - Don’t rely on it for debugging SDK issues. The decision log captures platform changes. For SDK-level debugging (which user got which assignment), use the DevTools bookmarklet or query exposure events directly.
Next steps
Layers & policies
Where most actions originate.
Rollouts
Understanding health-violation triggers.