Analytics (Beta)
Analytics lets you ask questions of your history across many devices at once: the average signal strength per site over the last 90 days, water use by hour of day, which devices run hottest. You build a visualization, save it to your library, and, if you like, place it on any of your dashboards as a tile.
This is a beta feature. It appears only when your plan includes it. Chart types and options will keep growing, and a few details may change as it matures. If you do not see Analytics (Beta) in the sidebar, your plan does not include it yet; ask your provider.
Where to find it: Sidebar -> Analytics (Beta) -> Visualizations.
Dashboards or Analytics?
Dashboards show what is happening now: live readings, gauges, alerts, and short time ranges of up to 30 days. Analytics looks back. It aggregates readings across devices over days, weeks, or months, and lets you group and compare them. A visualization built in Analytics can then sit on a dashboard next to your live tiles, so both views share one screen.
Who can use it
- Anyone whose role can see the Analytics section can open the library, view visualizations, and run them.
- Building, editing, and deleting visualizations needs the Manage analytics permission. Administrators have it by default. An Operator or Viewer can be given it by an administrator in Account settings under Role permissions.
The library
The Visualizations page lists everything saved in your workspace: name and description, chart type, how many dashboard tiles use it, when it last ran, and when it was last updated. Click a column heading to sort by it. Click a row to open the visualization; administrators can Duplicate or Delete a row from its end.
New visualization starts a new one. If the button reads Limit reached, your plan's cap on saved visualizations is full: delete one you no longer use, or ask your provider about a higher limit.
Building a visualization
Step 1: choose a chart type
Pick the kind of chart first. The type decides what the editor asks you for: whether it groups by a category, whether it has a time axis, and how many values it takes.
| Type | Best for | What it needs |
|---|---|---|
| Bar | Comparing a measure across sites or devices, or over time (monthly totals, daily usage) | One or more values; an optional X axis (a dimension or time buckets) and an optional Color by; can be stacked or horizontal |
| Pie | The share of a positive total across a category | One value and a Group by (positive values only) |
| Scatter | The relationship between two measures, one point per site or device | Two values (X and Y), an optional third for the point size, a Points dimension, and an optional Color by |
| Line | A trend over time | One or more values and a time grain; optional Group by for one series per site or device |
| Area | A filled trend over time, optionally stacked | Same as Line |
| Heatmap | One measure's intensity over a grid: sensors by day, sites by hour of the day, weekdays by hour | One value, a Rows choice and a Columns choice; up to 2,500 cells |
| Table | The numbers behind any binding, as rows, sortable by any column, with a totals row | One or more values; an optional time column and up to three Group by columns |
| Summary table | Rows nested by up to three levels, a subtotal on every group and a grand total: how much, by month, then by site, then by device | One or more values; one to three Rows, each a time bucket or a dimension |
You can change the type later from the picker in the editor header. What the new type can bind carries over (a time axis stays a time axis, groups stay groups, in order); anything it cannot bind, or values beyond what it takes, are removed with a notice. Nothing changes until you save.
A Line or Area chart starts at the first day (or hour) that has a value for what you charted and ends at the last one, so the axis never opens or closes on dates with nothing to show. Gaps inside that span stay visible, and the Table type and the CSV download still list every row.
A single current reading, a gauge, or a map of live positions belongs on a dashboard, where the Value, Gauge, and Map widgets show what is happening now. Analytics is for what happened over time.
Step 2: the Data tab
| Field | What it does |
|---|---|
| Devices | Which devices feed the chart: All devices, one device profile, a site, a network, or specific devices. When every selected device shares one profile, that profile's own readings (temperature, flow, and so on) become available as values. A mixed selection charts the radio signals its devices report (Signal Quality, Signal strength (RSSI), Signal-to-noise (SNR), Frame counter, and Gateways per uplink) plus the semantic fields tagged on their profiles. The value and filter lists only offer what the selected devices can produce, so a light sensor is not offered temperature, and a device that reports no signal-to-noise is not offered it. With All devices, every field is offered. A value or filter you already added that the new selection cannot produce stays in place, marked Not available for the selected devices. |
| Values | What to measure and how to summarize it: average, minimum, maximum, sum, count, first, latest, or change (last minus first, for meters that count up). Combine devices, under the values, is one choice for the whole chart: each value is worked out per device first, then Sum, Average, Minimum or Maximum combines the devices. Leave it at Not combined and each value runs over every reading, so a sensor that reports every minute weighs more than one that reports hourly, and Latest is the single most recent reading of any device. Choose Average for "the average of the sensors", or Latest values with Sum for "each meter's last reading, added up". The choice is offered when the chart covers more than one device and is not grouped by device. Most types take up to six values; Scatter two or three, Pie and Heatmap one. The same reading can be added more than once with different aggregations (average and maximum pressure side by side); the second copy is named by its aggregation until you relabel it on the Settings tab. A profile's formula and mapping fields are listed alongside its readings, each marked with its kind; see Formula and mapping fields in Analytics. A Semantic fields group lists readings that have been marked as the same kind across device profiles, such as Temperature (°F) or Humidity (%): pick one and every device whose profile has that reading contributes its own field, whatever the device selection. Devices without it contribute nothing to that value and stay in the chart's other values. A count of such a value counts the readings that carry it. |
| X axis, Color by, Slices, Points, Group by, Time column | How the chart is laid out; the type decides which of these it asks for. A dimension is site, device, network, device profile, parent site, hour of day, or day of week (and account, on partner-level charts). Network, device profile and parent site come from each device's record; a chart may group by up to 200 values of one of them. X axis on a Bar is a dimension or Time (one bar group per bucket at the time grain); on Line and Area it is always Time. Color by splits each value into one series or bar per value of a dimension. Slices and Points name the dimension behind a Pie or Scatter; a Scatter's Color by gives one series per value of a second dimension. A Heatmap takes Rows (a dimension or Time) and Columns (hours of the day, days of the week, or Time): sensors down and days across for the latest reading of each sensor, or weekdays down and hours across for a usage pattern. A heatmap with Time on an axis shows every bucket in the period, so a day with no readings is a column of empty cells and a sensor that stopped reporting shows as a run of empty cells, never as a missing column. A Table takes an optional Time column and up to three Group by columns, one per dimension, in order. |
| Sort | On Bar, Pie and Table: order the rows by one of the values (high to low or low to high) or, on a Bar, by name; Keep the top cuts the list to the first N rows in that order (a Top 10 of devices by usage). |
| Period | How far back to look. A relative period (the last 24 hours, 7, 30, 90, 180, or 365 days) ends now, every time the chart runs. A calendar period (This week, This month, Last month, This year) follows your calendar in your time zone; weeks start on Monday. Custom range fixes the chart to the days you pick, up to 366 days and never past today; use it for a report on a closed period, and a relative period for a chart that should keep moving. Viewers can be allowed to change the period; see the Filters tab. |
| Time grain | When the chart has a time axis or a time column: the bucket size, hourly, daily, weekly, or monthly. Buckets follow your time zone. |
| Description | Optional. Shown in the library so others know what the chart answers. |
The preview re-runs as you change the data. The caption under it tells you how many rows came back, which level of history served them (readings, hourly summaries, or daily summaries), how fresh hourly summaries are, how long the query took, and which time zone the times are in, or days in UTC when the chart is drawn on UTC days.
Values show with the decimals set on the field in the device profile, in the chart, in tooltips, and in the downloaded file. Signals use fixed decimals: whole numbers for signal quality and signal strength, one decimal for signal-to-noise. A field with no decimals set shows whole numbers from 100 up, one decimal from 10 up, and two below; in the downloaded file it keeps its precision, to six significant digits. A count is always a whole number.
Formula and mapping fields in Analytics
A formula field, for example a temperature in °F derived from °C, and a mapping field that yields a number chart like any other value, over any period and at any time grain. The value is computed when each reading arrives and stored with it, so Analytics shows exactly what the dashboard shows. A reading that only reports on change is carried forward into that computation, so a formula over it has a value on every reading.
A field's history starts at its first stored value. A new formula or mapping field has values from the point chosen when it was saved; readings before that show none for it. A changed field applies from the point chosen when it is saved, and readings before that keep the values they had. A reading that is calibrated per device charts with the calibration that applied to it.
When a chart would be too big
A chart holds up to 100,000 rows (time buckets times groups): a year of hourly values for about ten devices, or a year of daily values for a few hundred. A Table holds 10,000 rows, since it shows every one. Rather than quietly cutting the data short, Analytics checks the size before running and refuses a query that would not fit, naming the size it would have been and what does fit, for example "This would be about 109,500 rows (365 daily buckets x 300 groups); the most a chart can hold is 100,000. Weekly fits (15,900 rows), or keep Daily over the last 333 days (99,900 rows)."
Two more checks work the same way. A chart that would read too much history in one query is refused with the size and what fits, for example "Hourly over this range would read about 876,000 hourly summaries for 50 devices and 1 value; the most one chart may read is 200,000. Daily fits (36,500 summaries), or keep Hourly over the last 83 days." A chart grouped by hour of day along a time axis has a smaller allowance, and its fix is a shorter period: "Hourly over this range would read about 122,640 hourly summaries for 7 devices and 1 value; the most one chart may read is 50,000. Keep the period to the last 148 days." A heatmap of hours by day covers at most 92 days: "A heatmap of hours by day covers at most 92 days; this period is 365 days. Shorten the period." A heatmap draws at most 2,500 cells (rows times columns) and a scatter at most 2,000 points; a larger grid is refused the same way, with the size and what would fit. When a query is refused, the preview clears and reads "Nothing to show for these settings. See the message above.", and the visualization cannot be saved until its query fits.
Step 3: the Filters tab
| Field | What it does |
|---|---|
| Only count readings where | Conditions on the readings themselves, applied before anything is averaged, summed, or counted: for example only readings with a signal strength above -100 dBm, or only readings with a Temperature (°F) between 60 and 80. Each condition compares one signal, semantic field or, when every selected device shares one profile, one of that profile's readings, using <, ≤, >, ≥, =, ≠, between (two bounds, both included) or one of (a list of exact values). A reading that fails is left out, so "average temperature where temperature > 80" is the average of only the hot readings. These conditions read the detailed readings, which are kept for a limited time, so such a chart cannot reach beyond them, and one over many devices and a long period may be refused as too big. |
| Only show results where | Conditions on the computed results, applied after the values are worked out: for example only sites whose average temperature is above 80, or only months whose total is over 10,000. Each condition picks one of the chart's values (as you aggregated it on the Data tab) and a comparison. A group or time bucket that fails is left off the chart; the ones that pass keep their full value. These conditions work over any period, because they read nothing extra. Up to 10, all of which must hold. |
| Viewer filters | What viewers may change for themselves, on dashboard tiles and in Analytics. Let viewers choose the period adds a calendar button, with the selector you pick: a Date range (a from and a to day) or a Relative period (last 7 days, 30 days, 3, 6, or 12 months, this month, this year). Let viewers pick adds a filter button with a picker for one device, one site, or one network, offering only what lies inside the devices this chart covers, so a viewer can narrow the chart but never widen it. Let viewers set a range on adds a slider over one of the chart's values, between the bounds you type; a viewer's range is applied as a condition on the results. All three are off unless you turn them on, and what you saved is always the starting point. See Choosing the period, devices, or range yourself. |
When any viewer filter is on, a Preview as viewer switch above the preview shows you the controls your viewers get, so you can try them before saving.
Step 4: the Settings tab
Look-and-feel, and what a click does. Changing these never re-queries the data.
| Setting | What it does |
|---|---|
| Series | A color and a label for each value. On Line and Area charts, also how each value is drawn (a line, an area, or bars, so one chart can combine them) and which value axis it reads against: put a value on the Right axis when it has a different unit from the others, and each axis names its own unit. |
| Fixed lines | Reference lines and bands drawn over a Bar, Line, or Area chart: a target, a limit, a comfort band, each with a label and a color. |
| Drill-down | Whether viewers can click into the chart, the ordered steps a click takes, and whether viewers choose the next step themselves. See Drilling into a chart. |
| Data export | Whether viewers can download the rows behind the chart as a CSV file, in Analytics and on dashboard tiles. On by default. See Downloading the data. |
| Bars, Areas | Stack the values; draw bars horizontally; print the value on each bar, or the total on each stack. |
| Value colors | Bar, Table, and Summary table: By series (the default), or My ranges, your own value ranges with a color and a label each, such as green for normal and red for out of bounds. A bar takes the color of the range its value falls in and the legend lists the ranges; a table cell takes the range's color as its background. A value inside no range keeps its series color. |
| Table | A Totals row for the values that can be totaled (sums, counts, and changes; an average, a minimum, a maximum, a first or a latest value shows a dash, since a total of those is not a meaningful number), and Full figures instead of compact ones (12,912 rather than 12.9K). A value whose unit is a currency sign prints it in front ($4,764.36). Click any column heading to sort. A device or site name in the first group column opens its page when you may open it. |
| Summary table | Open to level (which levels are expanded when the table loads), Grand total, Full figures, and Sort each level by the row label or any value, the same rule inside every group. Every group row carries a subtotal of the rows beneath it (the same totaling rules as the Table) and the number of rows it holds. Viewers expand and collapse any group, or everything at once with Expand all and Collapse all. |
| Computed lines | Bar, Line, and Area: an Average line (dashed, labeled with the figure) and a Trend line (a straight line fitted by least squares), one per series. Both are worked out from the values shown on the chart, so on a chart drawn from a sample they describe the sample, and the caption says so. Series you hide from the legend are left out. |
| Series shown | Line and Area: show only the N series with the largest totals; the others stay in the data and the download. |
| Pie | Doughnut style, callouts, and how many slices to show (up to 20) before the smaller ones fold into "Other". With callouts on, slices of 5% or more get their value and share written outside the pie; the legend always carries each slice's value and share. |
| Points | Scatter: label each point with its name. |
| Colors, Cells | Heatmap: Low to high (one hue) or My ranges (your own ranges with a color and a label each, such as green for normal and red for out of bounds); Show values in cells when there is room. The rows and columns are chosen on the Data tab. |
| Axes, Legend | Axis titles, the value axis, and the legend on Bar, Line, and Area charts. Click a legend entry to hide or show that series; on a Line or Area chart split by a group, the small arrow beside an entry drills into that series. The value axis names the unit on its own when every value on the chart shares one; values with different units share one axis and the Data tab says so. On Line and Area, Slant date labels draws the dates at an angle so more of them fit; slanted dates always show their year. A dashboard tile too short for slanted labels keeps them level. |
Step 5: save
Give the visualization a name and click Save. It appears in the library straight away and can be placed on dashboards from that moment.
While you have edits that are not saved, the header says Unsaved changes and the button reads Save changes. Leaving the editor with unsaved edits, by the back arrow, the sidebar, the browser's Back button, or by closing the tab, asks you first: Discard drops the edits, Keep editing stays.
Reading a visualization
Opening a visualization from the library shows the chart on its own page: the saved period (or the period button when the author allows viewers to change it), the drill path, the download button when it is allowed, and the caption. Administrators see Edit and Duplicate in the header; everyone else reads the chart without the editor.
- Times are yours. Buckets, hours of the day, and days of the week follow the time zone in your profile, and the caption under the chart says which one. A colleague in another time zone sees the same readings grouped by their own hours.
- How far back it can look. Detailed readings are kept for a limited time, hourly summaries for about a year, and daily summaries for years. Windows of up to two days at hourly detail use the readings; anything longer uses the summaries, which hold the same numbers and are refreshed every 5 minutes, and the caption under the chart says which. Conditions on readings need the readings, so such a chart cannot reach beyond them; conditions on results do not. A daily, weekly, or monthly chart over a long period is drawn in your time zone when its devices fit the hourly summaries the chart would read (a year for up to about ten devices with one value); a larger fleet over a long period is drawn on UTC days, and the caption says so. If a period reaches further back than is kept, the chart uses what is available and notes the earliest date it could use.
- Dates show their year. Tooltips, table cells, the drill path, and the period button always name the year, for example "Nov 24, 2025". Axis labels leave it off only when the whole chart falls in the current year.
- Names, not IDs. Sites and devices show by name. Readings from devices with no site show as Unassigned.
- Large charts are drawn from a sample. A Line or Area chart with more points than the screen can show draws a chosen subset of its time buckets, keeping every peak and dip, and says "Drawn from 61,320 rows" under the chart. Dots come off dense lines. The download and the table still hold every row.
- Pie needs positive values. A measure that can be negative or zero, such as signal strength, shows a message pointing you to Bar or Table instead.
- Too many preview runs in a short burst, or Analytics is busy when many charts run at once, shows a short message and retries on its own. Give it a moment and continue.
Drilling into a chart
A chart that allows it can be clicked to look closer. Each click re-queries the data with a narrower window or a narrower group, so what you see is always real numbers, never a zoom of the picture:
- On a Line or Area chart, click a point to see that bucket at the next finer level: a day opens into its hours. On a chart drawn from a sample, the click covers the span up to the next drawn point, so every hour of a long chart stays reachable, and the path names the span. When the next step is a group, the click splits the window into one series per site or device instead, and clicking a series name in the legend narrows to that one.
- On a Bar or Pie chart, click a bar or a slice to see the devices behind that site.
- On a Heatmap whose rows are sites, networks or device profiles, click a cell or a row label to see that row's devices, one per row; when its columns are time, click a column to open that day into its hours.
A step always goes down: a chart already narrowed to one site is never offered "By Site", a chart split by device is not offered a group above devices, and a chart grouped by one of site, network or device profile goes on to devices only.
The path you have taken shows above the chart, for example "Last 30 days › Aug 16, 2026". Click an earlier crumb to step back. The caption beside it says what the next click will do, or why a step is not available: hourly detail, for example, is only kept for a limited time, so a day too far back cannot open into hours ("Hourly detail is not kept this far back."). This is decided for the day you click, so a recent day on a year-long chart still opens into its hours.
Whoever built the visualization decides all of this on its Settings tab under Drill-down: whether clicks drill at all, the order of steps (a time level, then a group), and whether viewers pick the next step themselves. When that last option is on, a click offers the available steps and you choose.
Drill-down works the same way on a dashboard tile: click into the chart there, and the path shows inside the tile. Each viewer's drill is their own and resets when the page reloads, and when you change the chart's period or pick a device, site, or network (see below) the drill starts over from there.
Choosing the period, devices, or range yourself
When the author turned on Viewer filters, one or two small buttons sit at the top of the tile, and above the chart in Analytics.
The calendar button changes the period the chart covers:
- Date range: pick a from and a to day. The window can be up to a year, and a heatmap of hours by day up to 92 days.
- Relative period: last 7 days, 30 days, 3, 6, or 12 months, this month, or this year.
The filter button narrows the chart, with whichever of these the author allowed:
- One device, site, or network: pick one from the list, which offers only what the chart already covers. Clear the pick to see the whole chart again.
- A value range: drag the two ends of the slider to keep only the groups or time buckets whose value falls inside it. The slider's ends are the bounds the author set; at the full range nothing is filtered, and Clear range returns to it.
A dot on a button shows the chart is not showing exactly what was saved, and the button's tooltip names what is applied. The choices are yours alone and are not saved: the chart returns to its saved period and devices when the page reloads, and other viewers see their own choices. When you drill into the chart, the drill starts from your period and your pick. A window that is too big for the chart is refused with what fits, the same way as in the editor.
Downloading the data
Every visualization can hand you the rows behind it as a CSV file that opens in Excel and other spreadsheet apps:
- In Analytics, click the download icon above the preview.
- On a dashboard, click the download icon in the tile's header.
The file holds exactly what is on screen: the same columns (time, the group, each value with its unit), sites and devices by name, and, when you have drilled into the chart or changed its period, only the rows at that level and window. Every row is included, even when the chart itself is drawn from a sample; a file holds up to 100,000 rows, the chart's own cap.
A chart with a time axis gives you two time columns: Time (UTC) and the same moment in your own time zone, for example Time (America/New_York). When the chart is drawn on UTC days (see Reading a visualization), the local column shows when each UTC day started where you are. If your time zone is UTC, there is one column.
Whoever built the visualization decides whether the download is offered, on its Settings tab under Data export. It is on unless they turned it off.
Downloading an image
Every chart (not a Table) can also be saved as a PNG picture, for a slide or an email: click the picture icon beside the download icon, above the chart in Analytics or in the tile's header on a dashboard. The image carries the chart's name, exactly what is drawn, the legend as you see it (hidden series are left out), and the period. It is made in your browser from the chart on screen, so it is always available.
Putting a visualization on a dashboard
- Open the dashboard and turn on Edit.
- Click + Add visualization, next to + Add widget.
- Pick a visualization from your workspace's library. The tile drops into the next open slot.
- Open the tile's settings (gear) to change which visualization it shows, how often it refreshes (every minute up to every hour), and whether the period prints under the chart.
On a dashboard shared by public link, a tile shows only when the visualization is scoped to specific devices, a site, a network, or a profile covering up to 200 devices; a chart over every device stays hidden there, and link viewers may change the period only.
The tile shows the visualization at its saved period, for example the last 90 days, and refreshes on its own schedule. It does not follow the dashboard's time-range picker, but when the author allows it, each viewer can change the tile's period from the calendar button on the tile; see Choosing the period, devices, or range yourself. Tiles are not included when a dashboard is shared by public link.
Editing and deleting
- Open a visualization from the library and click Edit to change it. Every dashboard tile that shows it picks up the change on its next refresh.
- Duplicate, from the library row, the chart's page, or the editor, saves a copy named "... (copy)" in the same workspace and opens it for editing. A copy counts toward your plan's cap like a new visualization; unsaved edits in the editor are not part of the copy.
- Delete from the library. If dashboard tiles still use the visualization, the confirmation tells you how many; those tiles then read "Visualization removed" until you point them at another visualization or remove them.
Frequently asked
Why does my Pie chart show nothing?
A Pie shows the share of a positive total. Signal strength is negative, so its slices cannot be drawn; use a Bar or a Table for that measure, or pick a positive measure such as a count.
Why does a chart say a selected device is not available?
A device picked on the Data tab is no longer active in your workspace. The chart leaves it out and notes how many devices are not shown; when none of the selected devices can be shown, it says Device not available. The device appears as Unavailable device in the device list, where you can remove it or pick another. See When a device is not available.
My hour-of-day numbers differ from a colleague's. Why?
Hours follow each viewer's own time zone, set in your profile. Both of you are looking at the same readings, grouped by your own local hours.
Can a visualization follow the dashboard's time range?
No. A tile shows its saved period so that a 90-day trend stays a 90-day trend wherever it is placed. What a tile can do, when its author turned on Viewer filters, is let you change its own period, pick one of its devices, sites, or networks, or set a value range, from the buttons on the tile. See Choosing the period, devices, or range yourself.
Can I click into a chart to see more detail?
Yes, when its author left drill-down on, in Analytics and on dashboard tiles alike. See Drilling into a chart.
Can I get the numbers behind a chart?
Yes, as a CSV file, from the download icon in Analytics or on the tile, unless the author turned data export off. See Downloading the data.