Signal Trigger Rate

Prev Next

Signal Trigger Rate shows one row for each journey, step and signal combination. Use it to review signal activity, compare periods and add metrics such as rejected events or distinct accounts associated with a signal.

Read the table

  1. Add Signal Trigger Rate, or open a board that contains it.
  2. Set the node and date range.
  3. Expand the card to make the columns readable.
  4. Search for a signal or use the column filters for journey, step, signal and insight.
  5. Sort supported column headers and move between result pages.
  6. Hover over a signal value and select Search for signal to inspect contributing events.
Signal Trigger Rate table: journey, step, signal and counts
Left-hand detail of the expanded table. Each numerical cell shows the current value above the previous value.
Signal Trigger Rate table: rates and custom columns
Right-hand detail of the same rows, including rejected events, reject share, distinct accounts and device counts.

The standard columns include:

Column Meaning
Journey Name / Step Name The journey and step to which the signal result belongs
Signal The matched signal
Insights Labels such as new, stopped, high triggers, increased rate or decreased rate
Triggers Events containing this signal in that journey and step
Total Events The journey/step event population used as the denominator
Trigger Rate Triggers divided by Total Events, displayed as a percentage

Previous values use the immediately preceding interval of the same duration. Compare like-for-like periods, particularly when the current period is incomplete or traffic is seasonal.

The same event can contribute to several signal rows. Adding Triggers across signals therefore does not produce a distinct-event total. A high rate is not inherently bad: some signals describe expected or trusted behaviour.

Understand filter scope

Journey and step selections define the rows and their event populations. A signal search finds signal rows; it does not turn Total Events into a count of only that signal's events.

In the implementation examined for this guide, an additional event/query filter narrows per-signal calculations, while the built-in overall denominator is calculated for the journey and step. If you need a rate within a specific filtered cohort, explicitly apply the same cohort condition to both variables in a custom column and validate the result. Do not assume that every displayed percentage has the same denominator.

Add custom aggregate columns

  1. Open the widget settings and select Configure Aggregates.
  2. Select Add Aggregate, or edit an existing column.
  3. Enter a Display Name.
  4. Add one or more Variables. Give each a unique name, function, scope, attribute and optional filter.
  5. Write a Template that renders those variables.
  6. Save the column, then select Save Configuration to apply the configuration.
Custom signal columns
Columns can be reordered, edited, duplicated, removed or exported as configuration.
Edit a signal aggregate with two variables
The example uses two per-signal counts so its denominator is triggered events.
Variable setting Options and purpose
Aggregate Function count, count_distinct, sum, max, min, mean
Scope: Per Signal Calculate over events associated with the row's signal
Scope: Overall Calculate over the journey/step population, independently of the individual signal
Attribute The value to count or calculate; use identifier for event counts
Filter Further restrict the events for this variable

Variable names use letters, numbers and underscores, and start with a letter or underscore. Templates reference the variable names exactly. Numeric calculations require suitable numeric attributes.

Worked example: reject share among triggered events

This column answers: Of the events containing this signal, what proportion received a reject decision?

Create these two variables:

Variable Function Scope Attribute Filter
rej count Per Signal identifier outcome['CHAMPION'].decision_strategy.result = 'reject'
trig count Per Signal identifier True

Use this template:

{% if trig > 0 %}
{{ (rej / trig * 100) | round(1) }}%
{% else %}n/a{% endif %}

The condition avoids dividing by zero. If you add a cohort restriction, such as a country or channel, apply it consistently to both variables.

A high reject share shows that the signal and rejection occurred together. It does not prove the signal caused the decision: other signals, models and decision rules can contribute.

For Distinct accounts, use count_distinct on your account identifier with Per Signal scope and render its variable, for example {{ accounts }}. The result is distinct accounts associated with each signal, not the sum of event counts.

Export results

Use Download CSV, or the adjacent menu's Download JSON, to download results. The download re-queries all rows for the selected time range and configured aggregate columns. It retains the event/query filter but does not apply the table's signal search, journey/step/insight column filters, current page or current sort order. Filter the downloaded dataset if you need the same subset you were viewing.

Export config in the aggregate configuration dialog exports the column definitions, not the table's result data.