# Flags

URL: /systems/flags · Id: `system:flags`

> Flags decides which copy or behavior each Visitor, Customer or request gets, by rules and sticky splits evaluated at the edge.

[Flags](/business/nouns/flag) decides which copy or behavior each [Visitor](/business/nouns/visitor), [Customer](/business/nouns/customer) or request gets, by rules and sticky splits evaluated at the edge. A Flag is how a [Change](/business/nouns/change) ramps, how an [Experiment](/business/nouns/experiment) splits, and how a failure switches off.

## Summary
| Part | This System |
| --- | --- |
| Group | Data and insights |
| Status | Beta: it works, and its Verbs may still change |
| Shelf | Reference: documented, never offered first |

You can ask:

- “Turn this feature on for 10% of users”
- “Turn the new checkout off now”
- “Give beta customers the new editor”

## What you get
| Part | This System |
| --- | --- |
| Starts | On for every Startup at creation, with nothing to install. |
| Built from | [Functions](/code/platform/capabilities/functions), [Event streams](/code/platform/event-streams), [Domains](/products/platform/domains), [KV and cache](/code/platform/kv-cache) |

## Nouns it owns
| Noun | Definition |
| --- | --- |
| [Flag](/business/nouns/flag) | A Flag is a switch, evaluated per Visitor, Customer, or request, that selects which copy or behavior they get. |

## Verbs
| Verb | Object | Approval | Event |
| --- | --- | --- | --- |
| [Flag.create](/business/nouns/flag/create) | [Flag](/business/nouns/flag) | None | `Flag.created` |
| [Flag.update](/business/nouns/flag/update) | [Flag](/business/nouns/flag) | None | `Flag.updated` |

## Events
| Direction | Event | How |
| --- | --- | --- |
| Emits | `Flag.created` | By [Flag.create](/business/nouns/flag/create) |
| Emits | `Flag.updated` | By [Flag.update](/business/nouns/flag/update) |

## States
None.

## Who operates it
| Part | This System |
| --- | --- |
| Accountable | [Engineering Lead](/agents/engineering/engineering-lead) |
| Team | [Engineering Team](/agents/engineering) |
| Seat | A role agent holds it until a Human is seated. |
| Autonomy | `supervised` |
| Also calls its Verbs | [Analyst](/agents/marketing/analyst) |

## Approvals and limits
None.

## Processes that use it
| Process | How it uses it |
| --- | --- |
| [Experimentation](/workflows/processes/experimentation) | A step calls [Flag.create](/business/nouns/flag/create) |

## Rail underneath
None.

## Views and dashboards
| View | Shows | Metrics |
| --- | --- | --- |
| The [Engineering Lead](/agents/engineering/engineering-lead)’s view | The Metrics its accountable Role answers for. | [Change lead time](/agents/engineering#change-lead-time) |

## Access
What each Access level may call here.

| Access level | May call |
| --- | --- |
| `owner` | Every Verb (5) |
| `admin` | Every Verb (5) |
| `member` | Every Verb (5) |
| `viewer` | Read only (2 of 5) |

## Import and export
None.

## Fees and pricing
None.

## Availability and limits
| Part | This System |
| --- | --- |
| Status | Beta: it works, and its Verbs may still change |

## Compliance notes
Controls it carries:

- [Log completeness](/systems/trust-and-governance/controls/log-completeness)
- [Append-only records](/systems/trust-and-governance/controls/append-only-records)

## Related Systems
- [Experiments](/systems/experiments)
- [Repositories](/code/systems/repositories)

## Example
A [SaaS](/products/templates/saas) for invoicing ships a new tax engine behind a Flag for 5% of accounts. Error rates hold, so the [Engineering Lead](/agents/engineering/engineering-lead) [Agent](/business/nouns/agent) ramps it to 50%, then 100%, over three days. When one region misfires, the Agent switches the Flag off for that region in one call.