Skip to content

Create and edit a feature

A feature is one named decision. This page covers Revenue › Decision Engine › Features: the list, the new feature form and the builder. How a feature is evaluated is on the overview.

Each row is one feature:

  • Feature: its name, which is what your site asks for. A feature left out of the next deploy is marked not in next deploy.
  • Purpose: decision or operational.
  • Shape: how many canvases and rules it has.
  • Sites: the sites it runs on, or every site.
  • State: Live (as deployed), Draft (edited since the last deploy) or Never published.

Filter by purpose, site or state, search by name, and sort by name, rules or sites.

A feature needs at least one named outcome to return, and an error outcome that does not allow. Create those first in Revenue › Decision Engine › Outcomes. See Create an outcome.

  1. Select New feature.
  2. Enter a Name: lowercase letters, digits and single hyphens, such as article-paywall. No other decision record may have the same name. See Rules every decision record follows.
  3. Pick a Purpose:
    • decision: it decides something, usually access. Its rules may count meters, and the experiment arms it reads are reported as exposures.
    • operational: a flag. It counts no meter, reports no exposure, returns no offer token, and may test only facts EdgeKit computes itself without an extra lookup. A rule that does any of these is refused at stage.
  4. Pick the Sites it runs on. Pick none for every site in your organization.
  5. Pick the Fallback: the named outcome it returns when no canvas is entered.
  6. Pick On error: the named outcome a canvas returns when a fact it needed could not be read. Outcomes that allow are not offered.
  7. Select Create. The builder opens.

The new feature has no canvases yet, and stage refuses a feature with none. Add at least one before you stage.

The builder opens on Canvases. The band at the top lists the canvases in order, then Fallback. Select one to open it. Order matters: the first canvas whose entry holds is entered, and nothing below it runs for that caller.

On a feature with no canvases, Add the first canvas adds a Blank one. Otherwise select Canvas in the band and pick what its entry starts as:

  • Anonymous, Registered or Paid: one per value of user.state.
  • A verified crawler, An AI crawler or Likely automated: crawler facts. Stage refuses these on a site with no crawler verdict, which is every site unless EdgeKit sets one up.
  • Everyone or Blank: captures everybody who reaches it. No canvas below it can be entered.

A new canvas has no rules, and its everyone else starts as the feature’s error outcome. Change it before you deploy, or everybody who enters gets that outcome.

  • entered when: the entry. It may test facts, segments and groups. It may not read a meter or an experiment arm, and a segment that reads one is listed but cannot be picked. An entry with every test removed is empty, which stage refuses: use Everyone instead.
  • Rules: each has when, its conditions, and then return, its outcome. Add one with Rule. Move a rule up or down: the first rule whose conditions all hold wins. You can also duplicate, fold and remove rules.
  • everyone else: the outcome for a caller who entered and matched no rule.
  • on error: the outcome for a caller who entered, matched no rule, and reached a rule that could not be read. Left empty, it is the feature’s own.

Move, duplicate or remove the whole canvas from its card. Moving a canvas can change the outcome for everyone after it.

Test Reads as
A fact is, is not, is under, is at most, is over, is at least, is one of, is none of, includes, does not include, contains, is present
A segment matches them, does not match them
An experiment arm puts them in, keeps them out of
A meter is under, has reached, already holds this key. See Read a meter from a rule
A group all of, any of, none of the tests inside it
Everyone always holds

The facts you can pick are the ones in Revenue › Decision Engine › Facts. Each shows its type and where its value comes from. A test for a value a fact does not declare is refused at stage.

Each then return, everyone else, on error and Fallback is a slot that returns one outcome. In a slot you can:

  • pick a named outcome. Its card says how many slots in your organization return it, because editing the outcome changes every one of them;
  • Write it here: an outcome written on the rule, with Returns (its id), Decision and Why. It cannot carry fields;
  • Name it: turn the outcome written here into a named outcome, so another rule can return it too. The named outcome is created at once, included in the next deploy, and the slot points at it when you save.

An empty slot returns no outcome: the decision’s outcome is null.

Select Preview and describe a caller: who is asking, what they hold, which site, the request, and how many reads each meter has counted. The builder marks the canvas the caller enters with entered and the rule they match with matched, as you type.

Preview runs your unsaved draft in the console. It sends no request to your sites and counts nothing on any meter.

Select Save to write the feature to the draft, or Revert to drop your unsaved edits. You can save a feature that stage would refuse. The builder lists what it found, and the findings marked stage are the ones stage refuses. It also warns about a canvas or a rule nobody can reach, because something above it captures everybody; those warnings do not stop a deploy.

A saved change reaches your sites after the next deploy, which you make in Delivery › Deployments › Versions. See Stage and deploy a change.

A feature you create starts left out of the next deploy, and the Features list shows not in next deploy. The feature screens have no control that includes it.

Open the Feature tab:

  • Name: renaming does not change what your site asks for. Pages asking for the old name get it in unknown after the next deploy.
  • Purpose: switching to operational can make rules you already wrote invalid at stage.
  • Sites: pick the sites it runs on, or none for every site. A rule that returns an offer reaching none of them is refused at stage.

On the Feature tab, select Delete feature, then Delete for good. It is a draft edit: pages asking for the feature keep getting an answer until the next deploy, and get the name back in unknown after it.