> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ionworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog — Page 3

> Ionworks Studio product updates from January to March 2026

<Update label="March 9, 2026" description="Multi-measurement comparison, cycle aging simulations, and improved optimizer convergence">
  ## Multi-measurement comparison view

  Select multiple measurements in the Cell Data table and click "Compare" to open a dedicated comparison page. The Time Series tab plots measurements on the same chart with configurable axes and a stack-cycles mode, while the Cycles tab shows cycle metrics like discharge capacity and coulombic efficiency across all selected measurements with optional retention mode. Filters can be applied globally or per-measurement.

  [Find out more →](/data/visualizing)

  ## Cycle aging simulation template

  A new cycle aging template is available for simulations, allowing you to define cycling protocols and visualize cycle-level metrics such as capacity fade and efficiency over hundreds of cycles.

  [Find out more →](/simulate/experiment-templates#9-cycle-aging)

  ## Improved optimizer convergence

  The Differential Evolution optimizer now has better initial coverage of the parameter space and improved reproducibility. These changes improve convergence reliability across a wide range of fitting problems.

  <AccordionGroup>
    <Accordion title="Studio">
      **Improvements**

      * Simulations can now be force-rerun while preserving the same simulation ID and study mappings.
      * The data list table now shows expanded specification columns (anode, cathode, electrolyte, case sub-fields), copy-on-click IDs, and a search-on-this-page feature.
      * EIS and dV/dQ data can now be viewed in dedicated tabs on measurement detail pages.
      * Cycler simulator jobs now provide live partial-result updates during execution.
      * Parameter sets are now dynamically discovered rather than hardcoded, so newly installed parameter sets appear automatically.
      * The API now includes a discovery endpoint to help programmatic clients understand available capabilities and schemas.
      * Cell creation no longer requires anode and cathode to be defined upfront, simplifying the model creation workflow.

      **Fixes**

      * Fixed stale data appearing after switching organizations.
      * Fixed a bug where model options were missing from design optimization jobs.
      * Fixed PyBaMM expression parameters not being handled correctly during parameterized model creation.
    </Accordion>

    <Accordion title="Pipeline">
      **Improvements**

      * Composite models now support nested list/tuple options (e.g. open-circuit potential configurations).
      * Capacity calculations now correctly account for the number of electrodes in parallel.
      * Validation runs now surface simulation errors immediately instead of silently filling results with sentinel values.
      * Custom initial state support added for lumped SPMr and ECM models, accepting either a voltage string or SOC float directly.

      **Fixes**

      * Fixed drive cycle step data losing interpolant data during roundtrip.
      * Fixed EIS simulation including unnecessary output variables.
      * Fixed NaN values in simulation results causing constraint actions (GreaterThan/LessThan) to crash instead of returning penalty values.
    </Accordion>

    <Accordion title="Python API">
      **Improvements**

      * Added an API discovery skill to help agents explore available endpoints and schemas.
    </Accordion>

    <Accordion title="Data Processing">
      **Improvements**

      * Data loading now accepts environment configuration for database connections.
      * Step detection now checks the last step after the first for more reliable step boundary identification.

      **Fixes**

      * Fixed a data loading issue that could fail when cloning previously loaded data.
    </Accordion>

    <Accordion title="Protocol Simulator">
      **Fixes**

      * Fixed a drive cycle temperature handling bug.
      * Added validation that safety limit minimums must be less than maximums, preventing misconfigured protocols.
      * Fixed a bug where initial SOC parameter values were not saved for later variable evaluation.
      * Fixed Maccor parser not recognizing constant-power/constant-voltage (CPCV) protocol steps.
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="March 2, 2026" description="Protocols in studies, dependent parameters, and faster data processing">
  ## Protocols in studies

  Protocol simulations can now be run directly within a study, alongside standard experiments. Protocols can be uploaded from raw cycler format or Universal Cycler Protocol, with results appearing inline alongside other study results.

  [Find out more →](/simulate/studies)

  ## Dependent parameters

  When creating a parameterized model, any parameter value can now be set to an expression referencing other parameters. Referenced parameters are automatically detected and added to the model, enabling linked or derived parameter relationships without separate configuration.

  [Find out more →](/build/parameterized-models#dependent-parameter-expressions)

  ## Faster step handling

  Cell measurement steps are now stored more efficiently, significantly improving upload and download times for measurements with thousands of steps. Existing data is migrated transparently — no action is required.

  <AccordionGroup>
    <Accordion title="Studio">
      **Improvements**

      * Pipeline status now shows detailed element-level job status, giving better visibility into running, pending, and completed pipeline elements.
      * Data uploads are now parallelized for faster ingestion of large datasets.
      * EIS result plots are now displayed after impedance fitting.
      * Updated OCP and EIS validation plots.

      **Fixes**

      * Fixed simulation creation page not loading correctly.
      * Fixed an issue where files could become temporarily unavailable during large downloads.
      * Fixed a race condition where shutting down one job could inadvertently terminate concurrent jobs.
    </Accordion>

    <Accordion title="Pipeline">
      **Improvements**

      * Pipeline objectives can now create direct entries from Studio pipeline results using a pipeline ID.
      * OCP validation plots now include dUdQ (incremental capacity) curves.

      **Fixes**

      * Fixed EIS fits failing when models contained interpolant-based function parameters.
      * Fixed a serialization bug where deep-copying parameter values could corrupt model state.
    </Accordion>

    <Accordion title="Python API">
      **Improvements**

      * OCP data can now be uploaded through the API.
    </Accordion>

    <Accordion title="Data Processing">
      **Improvements**

      * Data loading is now faster and more memory-efficient.
      * Data can now be loaded lazily — fetched only when first accessed, reducing unnecessary I/O for pipeline configurations.
      * Time series and steps can now be loaded independently, enabling efficient step filtering without downloading full time series.
      * Added support for extracting OCP from rest steps without requiring GITT labels.
      * Added Maccor CSV tab-separated file reader.

      **Fixes**

      * Fixed dUdQ computation failing on lazily-loaded data.
      * Fixed step summarization for data without a time column.
    </Accordion>

    <Accordion title="Protocol Simulator">
      **Improvements**

      * Added support for CCCV and PEIS protocols, plus anode and cathode voltage termination conditions.

      **Fixes**

      * Fixed a bug where building a model for voltage or power control modes mutated the base model, causing "overdetermined" errors on subsequent evaluation steps.
      * Fixed a Maccor protocol variable resolution bug.
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="February 23, 2026" description="Initial conditions in objectives, memory-efficient streaming, and unified drive cycles">
  ## Initial conditions in pipeline objectives

  Pipeline objectives now support a preamble mechanism for setting initial conditions — initial state of charge, temperature, and voltage — directly on each objective. Conditions are properly isolated across multiple objectives, so sweeping over different starting points no longer requires separate pipeline configurations.

  [Find out more →](/optimize/running-optimization#add-an-objective)

  ## Memory-efficient simulation streaming

  Large simulation solutions are now uploaded and downloaded in chunks, significantly reducing peak memory usage on the backend. This makes it practical to run and retrieve results from long-duration or high-resolution simulations without hitting memory limits.

  <AccordionGroup>
    <Accordion title="Studio">
      **Improvements**

      * Cell measurement plots now support flexible x-axis selection with prioritized column options.
    </Accordion>

    <Accordion title="Pipeline">
      **Improvements**

      * Initial SOC can now be set from the objective options dictionary at creation time.
    </Accordion>

    <Accordion title="Python API">
      **Improvements**

      * Added a time-monotonicity validator that checks uploaded measurement time series are strictly increasing.
    </Accordion>

    <Accordion title="Protocol Simulator">
      **Improvements**

      * Protocol solution metadata can now be extracted in memory, eliminating the need to write intermediate files to disk during simulation.
      * Unified drive cycle handling across Maccor and Arbin protocols, replacing the Maccor-specific "Waveform" abstraction with a general "DriveCycle" concept.
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="February 16, 2026" description="Permissions, optimizer selection, and Arbin protocol support">
  ## Role-based permissions for projects

  Studio now supports granular role-based permissions at the project level. Contributors and viewers see only the actions they are allowed to perform, with UI elements hidden or disabled based on their role. Admins can manage project membership directly from organization settings.

  ## Optimizer selection in optimization creation

  When creating an optimization, you can now choose from multiple optimizer algorithms — XNES, CMAES, SNES, PSO, Differential Evolution, and Nelder-Mead — and configure hyper-parameters like step size and population size directly in the UI.

  [Find out more →](/optimize/overview#optimizer-selection)

  ## Arbin protocol support

  The protocol simulator now supports Arbin cycler protocols, including variable callback rules for fine-grained control over protocol simulations.

  [Find out more →](/simulate/simulating-commercial-protocols)

  ## In-project protocol simulation

  Protocol simulations can now be run directly within a project context, using a parameterized model from that project instead of a generic one. A new Protocol Simulator page is available in the project navigation.

  [Find out more →](/simulate/simulating-commercial-protocols)

  <AccordionGroup>
    <Accordion title="Studio">
      **Improvements**

      * Optimization jobs now scale background evaluation capacity with population size for more reliable large-population runs.
      * Extended job timeout to 14 days with automatic failure cascading to child jobs.
      * The "View" button in the simulation list is now in its own column for quicker access.

      **Fixes**

      * Fixed plot loading requiring two loads — plots now initialize correctly on first view.
      * Added search functionality to simulation plot dropdowns.
      * Fixed composite plating simulation bugs with SOC calculation error handling and missing variable detection.
      * Fixed voltage components plot reliability with proper loading states and data availability checks.
      * Fixed pipeline element list showing elements from other pipelines.
      * Fixed pending job status menu not displaying for optimization and data fit jobs.
      * Fixed linked parameters in pipeline baseline construction.
      * Fixed organization member list appearing empty on the admin settings page.
      * Fixed users being redirected to project list with an error after creating a new project.
      * Fixed permission guard to wait for project data before checking permissions.
    </Accordion>

    <Accordion title="Pipeline">
      **Improvements**

      * Added a Gaussian negative log-likelihood cost function for optimization. Deprecated `MLE` in favor of `SSE`.
      * Improved reliability of loading and re-running saved solver configurations.
      * Parameter cleanup now correctly handles nested expressions and dependent parameters.
      * Flat prior format is now supported alongside the nested format for simpler configuration.
      * Added missing API documentation for Arrhenius, piecewise conversion, and piecewise interpolation classes.
    </Accordion>

    <Accordion title="Python API">
      **Improvements**

      * Standardized error parsing for the new backend error format while remaining backward-compatible. Pipeline failures are now surfaced via `raise_on_failure`.
    </Accordion>

    <Accordion title="Protocol Simulator">
      **Improvements**

      * Added cycle aging experiment template for long-duration degradation studies.
      * Additional Arbin protocol file formats can now be parsed and simulated.
      * Simulation results are now saved to disk during solve for improved reliability with long-running protocols.

      **Fixes**

      * Fixed amp-hour tracking in step charge protocols.
      * Fixed Arbin protocol parsing regression from a previous change.
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="February 9, 2026" description="Cloud storage, signed URLs, and data validation">
  ## Simulation solutions in cloud storage

  Simulation solution data is now stored in cloud storage instead of the database, significantly improving performance for large simulations and enabling more efficient data retrieval.

  ## Signed URL downloads

  Data downloads now use signed URLs for faster and more reliable file transfers. This improvement is available in both Studio and the Python API.

  ## Measurement data validation

  The Python API now validates measurement time series data before upload, catching issues like incorrect current sign conventions, non-monotonic cumulative values, and insufficient data points per step — preventing invalid data from entering the system.

  [Find out more →](/data/preparing-data)

  <AccordionGroup>
    <Accordion title="Studio">
      **Improvements**

      * Measurements table now supports server-side filtering for improved performance with large datasets.
      * Studies now load more efficiently with optimized data fetching.
      * Backend now caches API keys to reduce authentication latency.
      * Protocol documentation is now shown in experiment templates.
      * Added links to Python library documentation throughout Studio.
      * File existence checks now use signed URLs, improving upload time by \~20%.

      **Fixes**

      * Fixed voltage components display and data loading.
      * Fixed simulation creation and retrieval via the API for cloud-stored solutions.
      * Fixed steps limit in experiment configuration.
      * Fixed various data display bugs including non-numeric column handling.
    </Accordion>

    <Accordion title="Pipeline">
      **Improvements**

      * Priors are now properly parsed with support for distribution configuration.
    </Accordion>

    <Accordion title="Python API">
      **Improvements**

      * Added customizable retry and timeout configuration for the API client, with correlation ID logging on errors.

      * Added step count and time validators for uploaded data.

      * Added infinity sanitizer for DataFrames.

      * Optional strict validation mode.
        **Fixes**

      * Fixed pipeline list pagination.
    </Accordion>

    <Accordion title="Data Processing">
      **Improvements**

      * Added support for Maccor files with 4-digit suffixes.
      * Added data caching in the data loader for significantly faster repeated loads.
      * Added additional column mappings with dunders.
      * Added validation and capacity calculation options.
      * Updated README and examples.
    </Accordion>

    <Accordion title="Protocol Simulator">
      **Improvements**

      * Input expressions (e.g. `10 / input["C-rate"]`) are now supported in resolution fields for time, voltage, and current — previously only numeric values were accepted.
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="February 2, 2026" description="API documentation, simulation study management, and input expressions">
  ## API documentation

  Studio now includes a full API Reference tab. Browse available endpoints, see request/response schemas, and try out calls directly from the documentation.

  ## Simulation study management

  A new simulation study feature lets you organize related simulation runs into studies, making it easier to compare parameter sweeps, model variants, and protocol configurations side by side.

  [Find out more →](/simulate/studies)

  ## Input expressions in protocol simulations

  The protocol simulator now supports input expressions in resolution fields, such as `10 / input["C-rate"]`. This lets you define resolution relative to operating conditions, so protocols automatically adapt when C-rate or other inputs change.

  [Find out more →](/simulate/simulating-commercial-protocols#functional-expressions)

  <AccordionGroup>
    <Accordion title="Studio">
      **Improvements**

      * Fraction and C-rate inputs are now accepted, with better failure messages and links to the relevant cell and model.
      * Pinned actions column and updated single simulation plot style.
      * Updated data management documentation.

      **Fixes**

      * Fixed voltage components plot displaying both split and unsplit data incorrectly.
      * Fixed Enter key not advancing from email to password on the login page.
    </Accordion>

    <Accordion title="Pipeline">
      **Improvements**

      * Batteries 101 guide added to technical documentation.
      * Consolidated optimization documentation for easier navigation.
      * Calculation docs now link to corresponding Python API methods.
      * Technical guide figures are now included in the documentation.
      * Replaced hardcoded polish default with a configurable option.

      **Fixes**

      * Fixed equations scrollbar overflow in documentation pages.
    </Accordion>

    <Accordion title="Python API">
      **Improvements**

      * Added a documentation site for the Python API.
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="January 26, 2026" description="Pipeline table with filtering, data filter fixes, and advanced cycle aging metrics">
  ## Pipeline management with filtering and export

  The pipeline list now supports server-side filtering, pagination, and CSV download, making it much easier to find and export pipeline results across large projects.

  ## Advanced cycle aging metrics

  The pipeline now supports composed metrics for cycle aging analysis, including tools for splitting data by cycle and calculating time-since-start. These building blocks make it straightforward to track capacity fade, resistance growth, and other degradation indicators over hundreds of cycles.

  ## Real-time updates

  Studio now supports real-time connections, laying the groundwork for live status updates on running simulations and optimizations.

  <AccordionGroup>
    <Accordion title="Studio">
      **Improvements**

      * Wider application layout for better use of screen space.
      * Cell and model selections in the simulation form are now persisted across sessions.
      * Project member management at the organization level with admin pages for roles and permissions.

      **Fixes**

      * Fixed data filters — resolved infinite loading after zoom, added a clear button, and corrected reset-zoom behavior.
      * Fixed extra variables appearing in simulation outputs.
      * Fixed data display for non-numeric columns.
      * Fixed organization admin permissions and table client-side pagination.
      * Fixed cell spec handling in projects — project ID is now required and chemistry validation is more lenient.
    </Accordion>

    <Accordion title="Pipeline">
      **Improvements**

      * Added pipeline description field and unified handling of pipeline outputs.
      * Updated data loader integration.
      * Updated to ionworksdata 0.3.6.
      * Updated to PyBaMM v25.12.2.

      **Fixes**

      * Fixed an issue with setting the initial state on lumped SPMe models.
    </Accordion>

    <Accordion title="Python API">
      **Improvements**

      * List operations now accept a `limit` parameter for controlling result size.
    </Accordion>

    <Accordion title="Protocol Simulator">
      **Improvements**

      * Compound end conditions are now supported, allowing expressions like "Voltage \< 2.5 and VAR1 \< 1" to combine multiple termination criteria.
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="January 19, 2026" description="Custom model uploads, improved data UI, and project member management">
  ## Custom model uploads

  You can now upload custom PyBaMM models to Studio as serialized JSON. This lets you use your own model definitions in simulations and optimizations without being limited to the built-in model library.

  [Find out more →](/build/models)

  ## Improved data visualization

  The data UI has been redesigned with improved downsampling for faster initial rendering, automatic upsampling when you zoom in for full-resolution detail, and a larger plot layout for better readability.

  [Find out more →](/data/visualizing)

  ## Project member management

  Projects now support member management with dedicated roles and permissions. Organization admins can add and remove project members and assign roles through new CRUD operations.

  <AccordionGroup>
    <Accordion title="Studio">
      **Improvements**

      * Added the LumpedSPMeR model with electrolyte dynamics.
      * Added an auth continuation page to prevent email security scanners from consuming login tokens.
      * Updated optimization documentation.

      **Fixes**

      * Fixed lumped thermal models with the correct temperature variable and improved error messages.
      * Fixed user list to only show organization members, even for superadmins.
    </Accordion>

    <Accordion title="Pipeline">
      **Improvements**

      * Extended default optimization run limits for longer optimization runs.
      * Added a new data loading mode.
      * Added lumped SPMeR model with electrolyte dynamics.
    </Accordion>

    <Accordion title="Python API">
      **Improvements**

      * Added CI for running example notebooks.
      * Proof-of-concept support for fetching pipelines from the API.
      * Improved error handling during pipeline creation.
    </Accordion>

    <Accordion title="Protocol Simulator">
      **Improvements**

      * Added Hermite interpolation for smoother solution evaluation.
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="January 12, 2026" description="Faster data uploads, MSMR extrapolation, and performance improvements">
  ## Faster data uploads

  Data uploads now use signed URLs instead of JSON request bodies, eliminating timeouts when uploading large datasets. This is especially noticeable for files that previously failed to upload due to size limits.

  [Find out more →](/data/uploading)

  ## OCP data interpolation with MSMR extrapolation

  OCP fitting now blends measured data with MSMR physics-based fits, providing smooth interpolation within the data range and physically-grounded extrapolation outside it.

  ## Performance improvements

  Pipeline loading is significantly faster thanks to reduced unnecessary fetching and elimination of duplicate element requests. Database queries have also been optimized with new indexes and a more efficient authentication check.

  <AccordionGroup>
    <Accordion title="Studio">
      **Improvements**

      * Default model constants are now available for parameterized models.
      * API responses include a correlation ID for easier troubleshooting.
      * Route guards added for projects and cyclers to prevent unauthorized access.

      **Fixes**

      * Fixed infinite recursion when switching organizations.
      * Fixed variable names in the optimization creation form.
    </Accordion>

    <Accordion title="Pipeline">
      **Improvements**

      * Composite MSMR support for multi-particle electrode models.
      * Improved round-trip serialization support for optimizers.

      **Fixes**

      * Pchip interpolation errors are now wrapped as NumericalErrors to prevent unexpected pipeline failures.
    </Accordion>

    <Accordion title="Protocol Simulator">
      **Improvements**

      * Additional solver options can now be passed through as keyword arguments for finer control over solver behavior.

      **Fixes**

      * Fixed solver warnings during protocol simulation.
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="January 5, 2026" description="Cell metadata, gzip compression, and improved AI chat">
  ## Cell metadata support

  Cells now support rich metadata with a structured spec format, letting you attach and query detailed cell specifications alongside measurement data.

  [Find out more →](/core-concepts/cells)

  ## Gzip compression for faster uploads

  JSON file uploads to storage now use gzip compression, significantly reducing upload times for large parameter files and simulation results.

  ## Enhanced AI project chat

  The AI chat assistant has been updated with improved simulation awareness, providing more relevant answers to questions about your project data and pipeline results.

  <AccordionGroup>
    <Accordion title="Studio">
      **Improvements**

      * Automatic JSON schema generation for frontend form validation.
      * Removed old parameterization UI in favor of the new pipeline-based workflow.

      **Fixes**

      * Fixed missing .gz extension for child job parameter and metadata files.
      * Fixed pipeline list page sending unnecessary API requests.
      * Improved stale job and pipeline detection reliability.
    </Accordion>

    <Accordion title="Pipeline">
      **Improvements**

      * Metric weight renamed to action weight for clearer optimization configuration.
      * Added variable support to the design optimization schema.
    </Accordion>

    <Accordion title="Protocol Simulator">
      **Fixes**

      * Fixed current termination sign handling for charge and discharge steps.
    </Accordion>
  </AccordionGroup>
</Update>

***

<div className="flex justify-between items-center pt-2">
  <a href="/changelog/2">← Newer updates</a>
  <a href="/changelog/4">Older updates →</a>
</div>
