---
title: "Operator"
description: "an operator or a comparator of the closed language, as a row"
section: concepts
address: /concepts/operator
contract: 0476e35e6e275db5
---

# Operator

an operator or a comparator of the closed language, as a row

[figure: Operator is a row at platform scope. The drawing shows its fields and the objects that they point at.]

| property | value |
|---|---|
| kind | row |
| scope | platform |
| key | its name |
| store | postgres |
| family | rules_engine |



## Fields


| field | type | required | note |
|---|---|---|---|
| `name` | `text` | yes |  |
| `plain_words` | `text` | yes | the words a composer shows for the operator, in the buyers' own language; a row without them fails the register's check |
| `form` | `one of condition \| operator node \| group` | yes |  |
| `slots` | [OperatorSlot](/concepts/operatorslot) | yes | each with the type of its value |
| `cost_class` | `one of cheap \| scan \| semantic \| walk` | yes |  |
| `keeps_state` | `bool` | yes |  |
| `register_hash` | `hash` | yes |  |
| `accepts` | `[text]` | no | for a comparator, the value types of the attribute it admits, from the closed list of SourceField types |
| `rhs` | `one of none \| scalar \| many \| range \| relative window` | no | for a comparator, the shape of its right-hand value |
| `label` | `text` | no | the words the composer shows for it |
| `can_trigger` | `bool` | no | whether a unit this operator admits can by itself make a match; a tree with no such leaf cannot arm |



## Routes that use it
No route takes or returns Operator directly. The record holds it, and the objects that point at it reach it.
