Skip to content

Widget Calculations

Calculations define how your widget aggregates and displays data. In the widget editor, you’ll configure these using the Function dropdown.

Each data layer performs a calculation that transforms raw data into displayed values.

Dataset → Filter → Group → Aggregate → Display
  1. Dataset: Select your data source
  2. Filter: Optionally limit which records to include
  3. Group: Optionally categorize by a column (X-Axis)
  4. Aggregate: Summarize into values using a function
  5. Display: Show in the widget

These are available for most data visualization widgets. Select them from the Function dropdown in the data layer settings.

TypeDescriptionExample
Row CountNumber of records in datasetTotal tickets, Customer count
TypeDescriptionExample
SumTotal of all valuesTotal revenue, Hours worked
AverageMean valueAverage ticket time, Avg order value
MedianMiddle value (50th percentile)Median salary, Median response time
ModeMost common valueMost frequent status, Common category
MaxLargest valueMaximum order, Highest price
MinSmallest valueMinimum price, Lowest inventory
RangeDifference between max and minPrice spread, Time range
TypeDescriptionUse case
CustomCreate your own formulaComplex metrics, weighted averages
PercentagePercentage matching a filterConversion rate, Success rate

Some functions require a specific column (set via Computation Column):

FunctionRequires columnColumn type
Row CountNoN/A
SumYesNumeric
AverageYesNumeric
MedianYesNumeric
MaxYesNumeric, Date, Text
MinYesNumeric, Date, Text
ModeYesAny
RangeYesNumeric
CustomNoN/A
PercentageNoN/A

Numeric columns support all calculations.

Date columns support: Row Count, Max (latest), Min (earliest)

Text columns support: Row Count, Max, Min, Mode


  1. In the widget editor, make sure you’re on a data visualization widget
  2. Data layers appear in the left panel under “Data Layers”
  3. Click + Add Data Layer for additional calculations
  4. Each layer can have its own dataset and function
  1. In the data layer settings on the right, find the Dataset field
  2. Choose from available datasets or modified datasets
  3. Columns load automatically
  1. Enter a Layer Name for the data layer
  2. Select the Function type (Row Count, Sum, Average, etc.)
  3. If required, select the Computation Column
  4. Configure additional options like X-Axis

Apply filters to limit which records are included.

Use the Filter Builder for precise logic:

  1. In the data layer config, click Filter
  2. A filter popover opens
  3. Define conditions using columns, operators, and values
  4. Group conditions with AND/OR logic

For complete details, see Filtering Data.

  • Groups: Nest conditions for complex logic (e.g., (A OR B) AND C)
  • Dynamic Values: Compare against other columns or Dashboard Filter Variables
  • Date Logic: Use relative ranges like “Last 30 Days” or “Start of This Month”

Special options for date filtering:

FilterDescription
TodayCurrent date
This WeekCurrent week
This MonthCurrent month
This QuarterCurrent quarter
This YearCurrent year
Last N DaysRolling window
Date RangeSpecific start/end dates
Filter VariableUse dashboard filter

Groupings break down calculations by category.

For chart widgets, the X-Axis determines how data is grouped:

  1. Select a column for the X Axis field
  2. The calculation runs for each unique value
  3. Results display as separate bars, lines, or pie slices

Bar and line charts can split a single text value into multiple X-axis categories.

  1. Select an X Axis column in the data layer
  2. Enter a character in X Axis Delimiter (optional), such as , or |
  3. If the column contains multiple values in one field, the widget splits them into separate categories

If your chart uses Secondary X Axis, you can also set Secondary X Axis Delimiter (optional) to split that field the same way.

Blank, empty, and literal null values on category-based X-axes display as Blank in the chart and drilldown instead of being skipped.

X-Axis selectionResult
None (no X-axis)Single total value
Product columnValue per product
Date columnValue over time
Status columnValue per status

When using date columns as X-axis, choose time increments:

IncrementExample output
Minute2024-01-15 14:30
Hour2024-01-15 14:00
Day2024-01-15
Week2024-W03
MonthJanuary 2024
QuarterQ1 2024
Year2024

Create custom metrics using the Custom function type.

  1. Select Custom as the function type
  2. Open the Custom Calculation Editor
  3. Build formulas using columns and operations
  • Arithmetic: Add, subtract, multiply, divide
  • Functions: ABS, ROUND, CEIL, FLOOR
  • Conditionals: IF statements
  • String: Concatenate, substring, length
[Revenue] - [Cost] // Profit
[Revenue] / [Quantity] // Average price
[Price] * 1.1 // Price with 10% markup
IF([Status] = "Closed", 1, 0) // Closed count
[Amount] / [Total] * 100 // Percentage of total

Calculate what percentage of records meet specific conditions.

  1. Select Percentage as the function type
  2. Configure the Primary Filter (denominator)
  3. Configure the Percentage Filter (numerator)
  4. Result: (Matching records / Total records) x 100

Conversion rate calculation:

  • Primary Filter: All leads (status is not null)
  • Secondary Filter: Converted leads (status = “Won”)
  • Result: Percentage of leads that converted

Widgets can contain multiple calculations for richer visualizations.

WidgetMultiple layers support
Bar ChartYes - compare multiple series
Line ChartYes - overlay multiple trends
Pie ChartYes - compare datasets
MatrixYes - show multiple metrics
FunnelYes - compare funnels
NumberNo - single value only
GaugeYes - up to 2 layers (current value + dynamic max)
TableNo - single dataset only
  1. Configure your first data layer
  2. Click Add Data Layer
  3. Select a different dataset or apply different filters
  4. Configure the second calculation
  5. Repeat as needed
  • Bar Chart: Compare revenue vs. target per product
  • Line Chart: Show this year vs. last year trends
  • Pie Chart: Compare market share across regions
  • Matrix: Display multiple KPIs per employee

  • Display current state of your data
  • Update in real-time as data changes
  • Good for: Live dashboards, current metrics
  • Record values over time at scheduled intervals
  • Enable historical trend analysis
  • More resource-intensive but tracks changes
  • Good for: Trend reports, historical comparisons

Use Standard when:

  • You need live, current data
  • Your source system tracks history
  • Performance is critical

Use Snapshot when:

  • Your source doesn’t store historical data
  • You need to track changes over time
  • You’re building trend reports

  • Verify the correct column is selected
  • Check filter conditions are correct
  • Confirm aggregation type matches your intent
  • Review grouping (X-axis) settings
  • Null values are excluded from most aggregations
  • Use “Row Count” for total rows including nulls
  • Use “Min/Max” to check for null date ranges
  • Check for duplicate records in source data
  • Use appropriate grouping
  • Verify filters aren’t creating overlaps