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
- Add Signal Trigger Rate, or open a board that contains it.
- Set the node and date range.
- Expand the card to make the columns readable.
- Search for a signal or use the column filters for journey, step, signal and insight.
- Sort supported column headers and move between result pages.
- Hover over a signal value and select Search for signal to inspect contributing events.


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
- Open the widget settings and select Configure Aggregates.
- Select Add Aggregate, or edit an existing column.
- Enter a Display Name.
- Add one or more Variables. Give each a unique name, function, scope, attribute and optional filter.
- Write a Template that renders those variables.
- Save the column, then select Save Configuration to apply the configuration.


| 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.