Configure a Chart
After adding a chart, the chart editor opens automatically. You can also open the editor any time by clicking a chart card in the workspace.
Chart editor layout
The chart editor is a full-screen view with three main areas:
- Left sidebar — Configuration panels (Data tab and Time tab). Can be toggled with the Sidebar icon in the toolbar. On mobile, opens as a slide-in drawer via the Options icon.
- Main area — Live chart preview that updates as you change settings.
- Bottom panel — Data Table view (toggled via the toolbar).
Toolbar
The toolbar at the top-right of the chart editor provides the following controls:
| Control | Description |
|---|---|
| Sidebar | Toggle the configuration panel (desktop) |
| Data Table | Show or hide the raw data table below the chart |
| Export | Download chart data as a CSV file (available once data has loaded) |
| Gear (⚙) | Duplicate or delete the chart directly; rename via Settings |
| Save | Persist configuration changes. Enabled only when there are unsaved changes. |
If you close the chart editor with unsaved changes, you will be prompted to confirm before leaving.
Data tab
The Data tab contains four configuration sections:
Metrics
Metrics define what data the chart plots. Each metric has three configurable settings:
| Setting | Options | Description |
|---|---|---|
| Metric | Any output key or calculated metric | The field from your device skill output data to visualize |
| Calculation | Last, Count, Sum, Average, Minimum, Maximum | How the raw values are aggregated per time bucket or group |
| Chart type | Bar, Bar Stacked, Line, Area, Area Stacked, Radar, Large Number, Table | How this metric is rendered visually |
You can add multiple metrics to a single chart. Composable chart types (Bar, Bar Stacked, Line, Area, Area Stacked) can be freely mixed — for example, a bar metric alongside a line metric on the same axes.
Table, Large Number, and Radar chart types are not composable. When the first metric uses one of these types, the entire chart renders in that mode.
Metric calculations:
| Calculation | Description |
|---|---|
| Last | The most recent value reported in the time period |
| Count | Number of data points (events) |
| Sum | Total of all values |
| Average | Mean of all values |
| Minimum | Lowest value in the period |
| Maximum | Highest value in the period |
Metrics can be dragged to reorder — the order affects rendering priority when multiple metrics are stacked.
See Chart Types Reference for a detailed description of each visualization type.
Metric types
Metrics come from two sources:
- Outputs — Keys emitted by skills running on your devices. These are automatically available as metrics once a device starts reporting data. The list is specific to your organization.
- Calculated Metrics — Custom metrics defined by a SQL expression over your output data. Useful for combining fields, deriving ratios, or normalizing values.
To register a new output key (useful if you want to reference a key before any device has reported it) or create a calculated metric, click the + icon at the top of the metric picker. To edit an existing calculated metric, click Edit next to it in the list.
Categories
Categories define what appears on the X-axis (horizontal axis) of the chart. Click Add to add one or more dimensions.
Time dimensions:
| Dimension | Description |
|---|---|
| Time | Timestamp bucketed by the selected granularity. Best for time-series charts. |
| Hour of Day | Groups data by hour (0–23), regardless of date. |
| Day of Week | Groups data by day (Sunday–Saturday). |
| Day of Month | Groups data by day number (1–31). |
| Month of Year | Groups data by calendar month. |
| Quarter | Groups data by quarter (Q1–Q4). |
General dimensions:
| Dimension | Description |
|---|---|
| Workflow | Groups data by workflow name. |
| Device | Groups data by device name. |
| Skill | Groups data by skill name. |
| Skill Version | Groups data by skill version (shown as "Skill Name - version"). |
| Workflow Skill | Groups data by the skill-within-workflow combination. |
| Serial Number | Groups data by device serial number. |
| Location | Groups data by assigned location. |
| Geohash | Groups data by geographic grid cell. |
Multiple categories can be added — they are combined to form a composite X-axis key. Categories can be dragged to reorder.
When you add Time as a category, the Granularity selector appears in the Time tab and defaults to Per Hour.
Data Grouping
Data Grouping splits the primary metric into multiple series — one per unique combination of values for the selected dimensions. This is sometimes called the "group by" or "break out by" in other analytics tools.
For example, grouping by Device will render one line or bar series per device, letting you compare the same metric across different devices on the same chart.
Available dimensions are the same as those in Categories. Multiple grouping dimensions can be added and reordered.
Filters
The Filters section lets you narrow the data to specific subsets. A count badge shows how many filters are currently active.
| Filter | Description |
|---|---|
| Workflow | Only include data from selected workflows |
| Device | Only include data from selected devices |
| Skill | Only include data from selected skills |
| Tag | Only include data from devices with the selected tags |
| Location | Only include data from selected locations |
Each filter supports multi-select — toggle individual items in or out.
Workspace-level filters can be set in the workspace settings (gear → Edit). These apply to all charts in the workspace as default filters. Chart-level filters add on top of them.
Time tab
The Time tab contains all time-related configuration for the chart.
Timeframe
The timeframe controls the date range for the chart query. Click the date/timeframe button at the top of the chart to open the picker.
Smart presets (calendar-based, fixed to specific periods):
| Preset | Description |
|---|---|
| Latest | Most recent data |
| Today | Current calendar day |
| Yesterday | Previous calendar day |
| This Week | Current calendar week |
| Last Week | Previous calendar week |
| This Month | Current calendar month |
| Last Month | Previous calendar month |
| This Year | Current calendar year |
| Last Year | Previous calendar year |
Rolling window presets (relative to "now"):
| Preset | Window |
|---|---|
| Past Hour | 1 hour |
| Past 24 Hours | 24 hours |
| Past 7 Days | 7 days |
| Past 14 Days | 14 days |
| Past 30 Days | 30 days |
| Past 60 Days | 60 days |
| Past 90 Days | 90 days |
| Past 180 Days | 180 days |
| Past 365 Days | 1 year |
Custom date range: Use the Start and End date pickers to set an exact date range.
Granularity
Controls the bucket size for time-series grouping. Only visible when the Time dimension is selected as a category or data grouping.
| Granularity | Description |
|---|---|
| Per Second | One data point per second |
| Per Minute | One data point per minute |
| Per Hour | One data point per hour (default) |
| Per Day | One data point per day |
| Per Week | One data point per week |
| Per Month | One data point per month |
Local Time
When enabled, chart timestamps are displayed in each device's local timezone (derived from the device's assigned location) rather than UTC. The x-axis label changes from "Time" to "Time (Local)" when this is active.
Interpolate Data
When enabled, gaps in time-series data are filled in rather than left empty. Requires the Time dimension on the x-axis.
Interpolation styles:
| Style | Description |
|---|---|
| Fill | Fills gaps with a fixed value you specify (default: 0) |
| Linear | Fills gaps by drawing a straight line between known values |
| Cubic Spline | Fills gaps using a smooth curve between known values |
| Last Observed Value | Fills gaps by repeating the last known value (LOCF) |
Discard Empty Data
When enabled, data points with a value of 0 are excluded from the chart. Useful for removing noise or sparse periods from charts that track counts or totals.
Days of Week
Select which days of the week to include in the query. By default, all 7 days are included. Toggle individual days off to exclude them — for example, to filter out weekends.
Hours of Day
Select which hours of the day to include in the query. By default, all 24 hours are included. Toggle individual hours off to exclude them — for example, to focus on business hours only.
Saving changes
Click Save in the top-right toolbar to persist your configuration. The Save button is only active when unsaved changes exist. To discard all pending changes, click Clear in the unsaved-changes notice that appears.
Data Table View
The Data Table (Rows icon in toolbar) shows a tabular view of the raw data behind the chart. It can be opened independently or opens automatically when you click a data point on the chart.
- Click a chart data point → the table filters to show only data for that specific time/category value.
- Column headers are sortable — click to toggle ascending/descending.
- Additional columns can be added using the column selector at the top of the table.
- The table supports infinite scroll and loads 30 rows at a time.
- Click Clear Selection to return to the full unfiltered data view.