- The data viewer explores one measurement in depth, with flexible cycle and step filters.
- The plot drawer plots several measurements together, across cells and specifications.
- Dashboards keep a page of live plots over a project’s data, built by you or by the dashboard agent.
Accessing the data viewer
To view measurement data:- Navigate to your Cell Specification
- Select a Cell Instance
- Click on a Cell Measurement
- The measurement detail view opens with visualization tools
Visualization tabs
The data viewer has tabs for different analysis perspectives:Time series tab
The time series view shows high-resolution measurement data over time (or other x-axis variables).Axis selection
Use the dropdown menus to select which variables to plot on the x-axis and y-axis. Available options depend on the columns present in your measurement data. A derivedPower [W] column (voltage × current) appears in the axis
dropdown for any time-series measurement that carries both Voltage [V] and
Current [A], even when the source data did not include a power column —
Ionworks computes it when the measurement is processed and stores it alongside
the other channels. A measurement missing either source column gets no power
column. Select it like any other variable to plot power over time or against
another signal.
Secondary y-axis
Optionally add a secondary y-axis to overlay two variables on the same plot. Select “None” to disable.The secondary y-axis is disabled when “Stack cycles” mode is active.
Overlaying multiple series with the same unit
Both the left and right y-axes accept multiple variables, as long as the additional variables share the same unit as the primary variable on that axis. This is useful for direct visual comparison of related signals — for example, plottingVoltage [V] together with Anode potential [V] and Cathode potential [V] on the same axis.
To overlay additional series:
- Pick the primary variable for the axis (left or right) as usual.
- Click Add series with same unit under that axis.
- Use the new dropdown to choose any other variable with a matching unit.
- Repeat to stack more series, or click the × button next to a series to remove it.
Stack cycles mode
Enable Stack cycles to overlay all cycles on top of each other by resetting the x-axis to zero at the start of each cycle. This is useful for:- Comparing cycle-to-cycle variations
- Identifying degradation patterns
- Visualizing capacity fade
Show step data
Enable Show step data to display detailed step information in hover tooltips. The tooltip shows:- Cycle and step numbers
- Step metrics (duration, capacity, voltage stats)
- SQL column names for use in filters
EIS tab
When your measurement contains impedance data (Z_Re [Ohm], Z_Im [Ohm], and
Frequency [Hz] columns), an EIS tab appears automatically. This tab
displays a Nyquist plot with Z_Re [Ohm] on the x-axis and -Z_Im [Ohm] on
the y-axis.
If your data contains multiple steps, each step is plotted as a separate trace
with its own color. You can use the step filter to select which steps to display.
Differential tab
The Differential tab shows derivative curves computed from the measurement’s voltage and capacity data. It’s the standard view for incremental capacity analysis (ICA) and differential voltage analysis (DVA) — techniques used to identify electrode phase transitions, quantify loss of active material, and diagnose degradation modes. The tab appears automatically for anytime_series measurement that has
Voltage [V], Cycle count, and a supported capacity column (Charge capacity [A.h] + Discharge capacity [A.h], Net capacity [A.h], or
Capacity [A.h]).
You can switch between two curve types using the toggle at the top of the tab:
Each cycle in the measurement is plotted as its own trace so you can track
how peaks shift over cycling. Use the half-cycle control to compare charge
and discharge data, and the cycle filter to compare early- and late-life
behavior on the same axes.
Cycles tab
The cycles view shows aggregated metrics per cycle, ideal for tracking degradation and performance trends.Available cycle metrics
Relative / retention mode
For capacity and energy metrics, enable Show relative to display values as a fraction of a reference cycle:- Check “Show relative”
- Enter the reference cycle number (e.g., cycle 1 or cycle 10)
- Values are shown as
value / reference_value
Filtering data
The measurement viewer provides multiple filtering methods to focus on specific portions of your data.Cycle filter
Filter which cycles are displayed using several input methods:Custom expression
Custom expression
Enter a custom filter expression using Python slice-like syntax:
- Single cycles:
1, 5, 10, 20 - Range:
0:50(cycles 0 through 50) - Negative indexing:
-10:-1(last 10 cycles) - Combined:
0:10, 50, 100:110
First N cycles
First N cycles
Quickly select the first N cycles. Enter the count and the filter
automatically generates.
Last N cycles
Last N cycles
Select the last N cycles from your dataset.
Range with step
Range with step
Define a range with optional sampling:
- Min: Starting cycle (default: 0)
- Max: Ending cycle (default: last cycle)
- Step: Sample every Nth cycle (e.g., step=10 shows cycles 0, 10, 20…)
Step filter (within cycle)
Filter which steps within each cycle are shown. This is useful for isolating specific protocol phases:0- Show only the first step of each cycle0:2- Show steps 0, 1, and 2 of each cycle1, 3, 5- Show specific steps
Step numbers reset to 0 at the start of each cycle in this filter. So step 0
is always the first step of a cycle, regardless of the overall step count.
This filter is only available when not using Advanced mode.
Advanced step filter (AI-powered)
The Advanced filter mode lets you filter steps using natural language or SQL. Simply describe what you want to see, and the AI generates the appropriate filter.Using advanced filter mode
1
Select Advanced mode
Choose “Advanced” from the filter type dropdown. This is the default when no
filter is active.
2
Describe what you want
Type a natural language description in the text field. For example:
- “discharge steps longer than 1 hour”
- “charge steps with capacity > 2 Ah”
- “rest steps”
3
Click Apply
The AI generates the SQL filter and applies it immediately. The plot updates
to show only matching steps.
Refining your filter
When a filter is active, you can modify it with follow-up prompts:- “also filter for steps longer than 1 hour” → adds to existing filter
- “change to charge steps instead” → replaces part of the filter
- “remove the duration filter” → removes a specific condition
SQL dialog (advanced editing)
Click the code icon</> to open the SQL dialog for more control:
- AI prompt field: Describe what you want, then click “Generate”
- SQL editor: Edit the SQL WHERE clause directly
- Match mode: Choose how to apply the filter (see below)
- Example queries: Click any example to insert it
- Available columns: Full reference of filterable columns
Match modes
When filtering, choose how matches are applied:- Matching steps only: Show only the specific steps that match your query
- Full cycles: Show all steps from cycles that contain at least one matching step
Available SQL columns
The SQL dialog shows the complete list of available columns. Common columns include: Step identification:step_count- Overall step numbercycle_count- Cycle numberstep_from_cycler- Original step number from cyclercycle_from_cycler- Original cycle number from cycler
duration_s- Step duration in seconds
charge_capacity_ah- Capacity charged in this stepdischarge_capacity_ah- Capacity discharged in this step
charge_energy_wh- Energy charged in this stepdischarge_energy_wh- Energy discharged in this step
cycle_charge_capacity_ah- Total charge capacity for the cyclecycle_discharge_capacity_ah- Total discharge capacity for the cycle
start_voltage_v,end_voltage_vmin_voltage_v,max_voltage_v,mean_voltage_v
min_current_a,max_current_a,mean_current_a
min_power_w,max_power_w,mean_power_w
Plot interactions
The visualization plots support standard interactions:- Zoom: Click and drag to zoom into a region
- Pan: Hold shift and drag to pan
- Reset: Double-click to reset the view
- Hover: Move cursor over data points to see values
Automatic data loading
When you zoom into the time series plot, Ionworks Studio automatically fetches higher-resolution data for the zoomed region. A loading indicator appears while data is being fetched.For large datasets, the initial view shows downsampled data for performance.
Zooming in reveals the full resolution data for that time range.
Best practices
Start with overview, then drill down
Start with overview, then drill down
Begin with the full dataset view to understand overall trends, then use
filters to focus on specific cycles or conditions of interest.
Use stack cycles for degradation analysis
Use stack cycles for degradation analysis
Stack cycles mode makes it easy to spot changes in voltage profiles, capacity,
or other characteristics as the cell ages.
Combine filters for complex analysis
Combine filters for complex analysis
Use cycle filtering to select a range of cycles, then add Advanced filtering
to isolate specific step types within those cycles.
Use natural language for quick filtering
Use natural language for quick filtering
The Advanced filter understands plain English. Try “discharge steps over 1
hour” or “cycles with high capacity” instead of writing SQL manually.
Check step data for filter column names
Check step data for filter column names
Enable “Show step data” and hover over your data to see step metrics and
the SQL column names you can reference in filters.
Comparing measurements
To put several measurements side by side, select them in a measurements table and plot them together in the plot drawer.Selecting measurements
Tick measurements in any measurements table: the project’s Measurements page, a cell specification’s Measurements tab, or a cell instance’s measurements. The selection is shared between these tables, so you can build a comparison across specifications and cells.- It is kept across pages, filters, searches and moves between those tables, and when you reload the page.
- It is emptied when you switch to another project. A new browser tab starts with an empty selection.
- N selected opens a list of every selected measurement with its specification and cell instance. Remove measurements one by one, or use Download data (.zip), Select all N matching (everything matching the table’s current filters) or Clear all.
- Edit tags adds or removes tags on the whole selection.
- Plot opens the plot drawer.
The plot drawer
Pick Plot, then choose a plot type. The types on offer depend on what the selected measurements contain:
A plot type the selection can’t support stays visible but disabled, with the
reason, such as “4 of 12 have no cycle data”. Its tooltip names the measurements
that don’t fit. All measurements in a plot share one cycle and step filter.
The drawer sits over the table without blocking it:
- Add or remove measurements by ticking or unticking rows while the drawer is open. A measurement added to an open plot that can’t be drawn there is listed under Left out of this plot, with Remove N from plot.
- Resize the drawer by dragging its edge.
- Close it to collapse it to a tab on the edge of the page, such as “Time series · 12”. The tab reopens the same plot. While the drawer is closed, the plot keeps its own list of measurements, and Plot becomes Add N to plot, Open plot or New plot.
- The plot survives a reload and stays until you discard it. New plot, Discard and going back to the plot types ask for confirmation if the plot was never saved as a template or sent to a dashboard.
Saving a plot as a template
Save as template stores the plot type and its settings for the whole project. Templates show who made them and when, and appear as plot types in the picker, so anyone in the project can apply the same plot to a different selection.Sending a plot to a dashboard
Send to dashboard adds the plot to a new or existing dashboard. Choose what it plots:- These N measurements: exactly the measurements in the plot.
- All measurements matching the table’s filters: the filters are applied again every time the dashboard is viewed, so measurements added later that match them appear on the plot.
Dashboards
A dashboard is a page of plots over a project’s data. Each plot is saved as a recipe that says which records to read and how to draw them, so it is redrawn from the current data whenever the dashboard is viewed, under the viewer’s own project permissions. Open Dashboards in a project to list its dashboards, and create one with New dashboard. Use Edit details on a dashboard (or in its row menu on the list) to change its name and description. These describe the dashboard; they do not change its plots.Adding plots
A dashboard’s New plot offers two ways to make a plot.Build a plot
The builder uses the same plot types and controls as the plot drawer, with a live preview.- Choose the measurements. The first step shows the project’s measurements
table, with its search, filters, tag filter and columns. Filter it down, then
choose:
- These N measurements: the rows you ticked, or every current match if you ticked none.
- Anything matching these filters: a live query, re-run on every view, so measurements added later that match are plotted too. With no filter set, it plots every measurement in the project.
- Choose a plot type, including any of the project’s plot templates, and adjust it.
Ask the agent
Describe the plots you want in plain language, for example “discharge capacity retention for every cell in batch B, coloured by temperature”. The agent reads the project’s data, checks that each plot renders, and proposes it for you to review. Nothing is saved until you accept it. On an empty dashboard, the prompt leads the page, above a summary of what the project contains. Give me ideas suggests starting prompts that name the project’s real records; picking one fills in the prompt so you can edit it before sending. The conversation docks beside the dashboard, so you can watch proposals land. There is one conversation per dashboard. Each proposal appears on the dashboard itself:- A new plot can be saved or discarded.
- A change to an existing plot puts that plot into review, with a Proposed / Current toggle and a summary of what changed. Choose Apply change, Save as new, Refine (ask the agent for another pass) or Discard.
- A proposed removal fades the plot and offers Keep plot or Remove.
Builder plots and agent plots
Every plot shows a Builder or Agent chip.- Builder plots keep their builder settings. Their menu has Edit plot, which reopens the builder with the plot’s measurements or filters, and Ask the agent.
- Agent plots are changed by asking the agent, or with Edit code.
Reading a plot
- Description. A line under the title says what the plot shows. Edit it in the plot’s Configure panel.
- Data in this plot. The count at the bottom of each plot opens a list of every record it read, grouped by type and by the cell they were run on, each linking to its page. Records you can no longer open are listed as “Deleted or no access”. Copy ids copies the list.
- Filtered by. The same list shows the filters that selected the records, such as a measurement tag or an analysis type.
- Controls. Some plots have controls, such as a pulse set or a tag picker. Changing them redraws the plot for you without changing the saved plot.
Changing how a plot looks
The Appearance section of a plot’s Configure panel changes its title, axis labels and colours without asking the agent:- Title and X / Y axis labels.
- Palette: Default, Colour-blind safe, Vivid, Muted, or Sequential (ordered series). Use Sequential for ordered series such as C-rates or temperatures.
- Series colours, one per series. A cell’s measured and fitted traces share a colour.
Viewing and editing a plot’s code
Edit code in an agent plot’s menu (View code if you can’t edit the dashboard) shows its recipe in three tabs:- Transform: the JavaScript that turns the data into the figure.
- Plan: the JSON description of which records to read.
- Params: the plot’s controls and their defaults.
Next steps
Data format
Understand the data structure for better filtering.
Reading data
Retrieve and analyze data via the Python API.