Derived signals
A derived signal is a calculation across your signals, saved under a name. Average order value is revenue divided by orders; a conversion rate is completed checkouts divided by started ones. Once saved, you chart and report on it like any other signal.
Nothing is sent for a derived signal. Datius calculates it from its signals' events whenever it's read, so it works on your history from the moment you create it.
Create one
On the Signals page, open the Derived tab, choose New derived signal and fill in:
- Display name and key. Widgets and reports refer to it by key. No signal or derived signal in the workspace can share it, and it can't be changed later.
- Calculation: two sides and an operator (add, subtract, multiply or divide).
- Data type: numeric, currency, percentage or duration, which sets how its values are shown.
- When it rises: whether a rise is good news, bad news, or neither.
Before you save, Today so far shows its value for today, so you can check the calculation does what you expect.
The calculation
Each side is either:
- A signal with how its events combine: sum, count, average, minimum or maximum. Average order value is Gross Revenue (sum) divided by Order Count (sum).
- A number, such as a 0.029 fee rate. At least one side must be a signal.
Only where narrows one side to events with a tag value. Both sides can use the same signal with different filters: a conversion rate is Checkout Steps (count, only where step is complete) divided by Checkout Steps (count, only where step is payment).
Its value is exactly what the calculation gives. With the Percentage data type, a ratio is shown as a percentage of 1: a conversion rate of 0.38 shows as 38%, and the API returns 0.38.
On dashboards
When you add or edit a widget, derived signals are listed in their own group under Target signal. The calculation sets how its events combine, so there's no aggregation to choose, and its values use its own data type.
A widget built with Calculation across signals can become a derived signal: choose Save as derived signal below the calculation. The widget then reads the derived signal, and you can use the same calculation on other widgets and in Reports.
In Reports
Derived signals are listed in their own group in the signal picker. Reports shows them over any range and granularity, and exports them as CSV.
- Group by offers the tags every signal in the calculation has. Grouped values sit side by side, since a ratio for each store doesn't add up to a total.
- Total events counts the events either side reads.
In Ask Datius and the API
- Ask Datius knows your derived signals and their formulas, and answers with them: "What was average order value yesterday, by channel?" reads Average Order Value. When you ask for a calculation that isn't saved yet, it suggests one with a Save derived signal button that opens the form filled in. Nothing is saved unless you save it.
- The MCP server lists them and queries them like signals.
- The read API lists them with a read key, and the reports query takes a derived signal's key like a signal's.
Analysis and alerts don't work with derived signals yet. A derived signal has no events of its own, so Live Telemetry and chat show the events of the signals it's calculated from.
The signals it uses
- If a signal it's calculated from is turned off, the derived signal keeps working on its history, and the Derived tab says that new events have stopped counting.
- A signal can't be deleted permanently while a derived signal is calculated from it. Delete or change the derived signal first.
- Deleting a derived signal doesn't touch its signals or their data. Widgets on it have nothing to show until you point them at something else; the delete confirmation names them.
Plans
Derived signals are included on some plans, each with its own limit per workspace; the pricing page shows which. If a plan changes to one without them, nothing is deleted: widgets and reports on them say derived signals aren't on the plan, and work again when they are.