Skip to main content
Measurement tags, cell batches and CAD models, and a lab utilization history

Tag your measurements

Measurements can carry free-form tags — “baseline”, “rpt”, “batch-7” — added the way you would in Notion: type to find one of the project’s existing tags or create a new one. Tags match regardless of case and reuse the project’s existing spelling. Click a tag chip in any measurement table to filter by it, and a second to narrow further; tag several measurements at once; and find measurements by tag in global search. The spec and instance pages gain the tag column and filter, plus a type filter.Through the API, measurements accept tags on create and PATCH, lists filter with tags_all / tags_any, GET /cell_measurements/tags lists the project’s tags with usage counts, and POST /cell_measurements/tags/bulk adds and removes tags on up to 1000 measurements.

Cell batches and CAD models

  • Batches are records of their own. A cell’s manufacturing lot used to be a text field on each instance. It is now a batch belonging to a cell specification, with a name, notes, manufacture date and properties. Existing batch text has been converted into batches. Deleting a batch keeps its instances. This changes the API: cell instances replace batch with a writable batch_id and a read-only batch_name, and batches have their own endpoints under /cell_specifications/{id}/cell_batches and /cell_batches/{id}.
  • Attach a CAD model to a cell specification (.step, .iges, .stl, .obj, .ply, .glb, .off, up to 100 MB). A rendered thumbnail shows on the spec page and in the Cells table.

Lab: utilization history and channel checks

  • A Utilization history page shows the cycler fleet over time as bars stacked by state (occupied, stale, free, out of service), from 30 days to 10 years, daily to annually, as a share or as a channel count. Open it from History under the utilization figure.
  • Scheduling checks channel ratings. The Schedule dialog shows the voltage and current range the protocol reaches, and flags any channel whose ratings it would exceed (“Draws 7.5 A, rated 5 A”) or whose ratings are unknown. It warns but does not block.
  • A test request shows what actually happened once it starts: the channel and window it ran on, a link to the measurement it produced, actual against estimated duration, and live channel data while it runs. Schedule is now the first row action in the Test Scheduler.
Improvements
  • Simulate a protocol from its own page. A Simulate button runs the saved protocol against a cell and model you choose, with its inputs prefilled and comma-separated values sweeping. Full setup opens the full form with the protocol preselected.
  • Looping protocols no longer need a setting raised. Max backward jumps now defaults to 1000 and has left the simulation forms; a simulation that exceeds it offers Rerun with higher limit.
  • Cycles plots for every simulation, not only Cycle Aging (EIS excepted).
  • Auto-generated analyses open on a plot suited to their kind: retention against cycle for cycling, capacity against C-rate for a rate test, resistance against SOC for a pulse sweep, charge and discharge capacity for formation.
  • Rate-capability analyses record each step’s start and end voltage, so a step that began below the upper cutoff is visible as such rather than looking like poor rate capability.
  • Analysis detection covers more test shapes. Staircase charges and pulses logged in stages are read as one load, GITT and incremental-OCV titrations are found as pulse sections, capacity-capped rate tests keep their slow and fast steps, and a record that changes voltage window between tests (formation then rate tests, for example) reads each test against its own window. Stored analyses have been re-derived.
  • Invite a member as Member or Admin. The Members invite box has a role choice defaulting to Member; inviting someone who is already a member keeps their role.
  • Faster time-series loading for large measurements, which now fetch only the part of the file a plot needs.
  • Deleting a study says its simulations are kept, and how to delete them first if you want to. Study simulation counts stay current.
  • The project members panel says clearly when everyone in the organization is already on the project.
  • Simulation actions in study, model and protocol grids now show only when you can carry them out.
  • The Cells table gives the name column most of its width; measurement tables beside a details card no longer hide their toolbar on a laptop screen.
Fixes
  • Project Contributors can create pipelines. Creating one failed for members whose organization role was Member.
  • The protocol generator no longer puts cutoffs on its own safety limits. A step ending on or past the protocol’s safety limit is now an error, so a generated test no longer aborts in its first cycle.
  • Older Data Fit and Validation results draw their plots again, for jobs from before March 2026 that showed a legend and no plots.
  • Adding a time-series plot to a simulation in a study loads it. It could sit on “Loading variables” indefinitely.
  • Comparing measurements keeps the Cycles tab when both have cycle data.
  • Table search is consistent as you type: a whole word no longer returns more loosely related rows than a partial one.
  • The specification-name filter on the Measurements list applies. It showed the pill but kept every row.
  • A material’s Used by cell specifications table no longer empties on scroll.
  • The optimizations list and the lab utilization plot fill the page height.
Improvements
  • iwp.Parameter is immutable. The set_* methods are replaced by copies: with_bounds, with_initial_value, with_fitting_scale, with_normalize, with_prior and with_initial_guess_distribution. Assigning p.bounds or p.initial_value raises, naming the method to use instead.
  • A half-cell GITTModel can start from "Initial voltage [V]". It used to fail, or, with a full-cell parameter set, start at the wrong voltage.
Fixes
  • Objective-level constraints are applied with every SciPy optimizer. ScipyMinimize (all methods) and ScipyShgo silently ignored them.
  • The regularization docs now state that a penalty contributes w * fun**2, not w * fun, so fun should not be squared beforehand.
Improvements
  • Manage memberships from the SDK. client.organization gains members(), get_member(), invite(), set_role(), deactivate(), reactivate(), resend_invite() and remove(); client.project gains roles(), add_member(), invite_member(), update_member() and remove_member(). Invites take a role and default to Member.
  • client.analysis.create(..., plots=[...]) stores plot presets for an analysis, validated against its columns.
  • The MCP server can run simulations, with run_simulation, run_simulation_batch and wait_for_simulations.
  • POST /jobs is retired and returns 410 Gone naming the endpoint to use instead: /pipelines, /simulations/with-template/batch, /optimizations or the ECM fit endpoints.
Fixes
  • A malformed id returns 400, not 500 — for example client.job.cancel(None).
  • NaN or Infinity in analysis metadata returns 400 naming the offending key, instead of 500.
Improvements
  • generate_experiment splits a CC-CV charge logged as one step into a CC step and a CV step, so long cycling replays stay within the cell’s voltage window. Pass split_cc_cv=False for the previous behaviour.
  • Step typing works for sub-mA coin-cell data. Rest and constant-current thresholds scale with the cell’s rated capacity (pass cell_spec), or with the data’s own current, instead of typing every step as Rest.
  • Unparseable numbers warn. Values like "N/A" in voltage or current columns are reported with the column and examples rather than silently becoming null.
  • Step labels and groups are removed. iwdata.steps.label_* and validate are gone, steps no longer carry Label / Group number, and the gitt_to_ocp transform is removed (use rest_to_ocp).
Fixes
  • Neware BTSDA flat CSVs map Cycle Index / Step Index, so cycles no longer collapse into one, and capacity and energy columns read as floats.
  • The empty-column warning from Excel readers is silenced.
Improvements
  • run-pipelines replaces run-simple-pipelines, steering fits to regular pipelines so they appear in the web app.
  • run-simulations covers running simulations through the MCP server.
  • discover-api lists the new membership methods; manage-cells documents analysis plot presets, measurement tags and cell batches; process-data documents passing a cell spec for coin-cell step typing.