Release notes March 2026

Ecoinvent 3.12, Import to multiple Reporting Periods, UX and Performance improvements, and adding/editing/deleting AI Import rows

Ecoinvent 3.12

Ecoinvent 3.12 is now available in the Emission Factor library, with an in-depth Land Emissions and Removals readout. Ecoinvent 3.12 in particular has improved coverage of chemical datasets and expanded regional coverage for industrial processes.

Note that Ecoinvent 3.12 is now the new default version. 3.11 and other older version continue to be available using the version dropdown in library or using factor references.

Performance improvements

We performed a structural change, impacting the database structure, leading to a global speedup of most of our API calls. According to our own tests, the median performance improvement is sitting around 28%. Real world results may vary by company but in general, the platform should perform all operations faster.

Import to multiple Reporting Periods at once

Importing a lot of data just got a lot easier. You can now import data across multiple Reporting Periods in the same import. With this improvement, you can upload and process data for all reporting periods at once for a single activity category.

You will notice in the first step of the import, that you no longer select what Reporting Period to import to, as this is now mapped in step 2 of the import process just like any other column.

At a later date, we will also make sure to update all of our import templates to include a column for Reporting Periods, but you can already use this feature by adding the column yourself.

Import file with Reporting Period column added

Add, remove, edit, and undo in AI Import

The AI invoice screening module now allows users to add and delete import rows, as well as use undo and redo actions for greater control during data handling. Additionally, the “Edit Checked” functionality—similar to the one available in Inventory—enables batch editing of selected entries. Together, these tools provide users with the flexibility to quickly correct misclassified or missing information, improving both accuracy and efficiency in the AI document screening process.

Update to the Sidebar layout

As we have been adding more and more features to the platform, the sidebar has become a bit crowded. To prevent unnecessary scrolling, and to make sure all features are visible even on smaller screens, we have changed the style of our sidebar.

We also decided to merge AI Import and Import into a single page called Import (AI) to save space and avoid confusion.

Before (left) and after (right) of the sidebar layout

Minor updates & fixes

Updates

  • Product Carbon Footprints and Unlimited Risk Units are now included by default in all company accounts and cannot be toggled off

Fixes

  • Fixed validation period of two emission factors in UBA Germany dataset
  • Resolved issue where Reporting Split could not be changed for custom emission factors
  • Fixed several layout issues in the French GHGP and Internal Reports
  • Fixed layout issues in Dutch GHGP and ISO Reports
  • Fixed incorrect URL for UBA emission factors
  • Resolved filtering issue in Ecoinvent Factor Library
  • Fixed not being able to filter on description in custom emission factor libraries
  • Many more minor bug fixes and improvements

API Updates

What's New

  • POST /documents/v1/documents/{document_id}/link-records - Post Document Link Records
  • POST /measurements/v1/imports/{import_id}/link-measurements - Post Import Link Measurements

What's Deleted

  • GET /accounts/v1/addons - Get Addons
  • GET /accounts/v1/companies/{company_id}/addons - Get Company Addons
  • PUT /accounts/v1/companies/{company_id}/addons/{addon_id} - Put Company Addon

What's Changed

  • GET /auth/microsoft-login
    • Parameters
      • Added parameter: email  (query)
  • GET /measurements/v1/imports/{import_id}
    • Response
      • Changed response: [200] — Successful Response
      • Schema incompatible
      • Changed body: application/json
      • Missing property: activityCategoryId  (object)
      • Missing property: reportingPeriodId  (object)
      • Added property: reportingPeriodIds  (array, optional)
      • Added property: activityCategoryIds  (array, optional)
  • PATCH /measurements/v1/imports/{import_id}
    • Response
      • Changed response: [200] — Successful Response
      • Schema incompatible
      • Changed body: application/json
      • Missing property: activityCategoryId  (object)
      • Missing property: reportingPeriodId  (object)
      • Added property: reportingPeriodIds  (array, optional)
      • Added property: activityCategoryIds  (array, optional)
  • POST /measurements/v1/imports
    • Request
      • Schema incompatible
      • Changed body: application/json
      • Changed property type: activityCategoryId  (None  → None )
        • Deprecated: None → True
      • Changed property type: reportingPeriodId  (uuid  → None )
        • Format changed: uuid  → None
        • Deprecated: None → True
  • POST /value-mappings/v1/value-mappings
    • Request
      • Changed body: application/json
      • Changed property type: field  (['string']  → ['string'] )
        • Enum values changed: added reportingPeriod
    • Response
      • Changed response: [200] — Successful Response
      • Schema incompatible
      • Changed body: application/json
      • Changed property type: field  (['string']  → ['string'] )
        • Enum values changed: added reportingPeriod
  • POST /value-mappings/v1/value-mappings/{value_mapping_id}/ai-suggest
    • Response
      • Changed response: [200] — Successful Response
      • Schema incompatible
      • Changed body: application/json
      • Changed property type: field  (['string']  → ['string'] )
        • Enum values changed: added reportingPeriod
  • PUT /value-mappings/v1/value-mappings/{value_mapping_id}
    • Request
      • Changed body: application/json
      • Changed property type: field  (['string']  → ['string'] )
        • Enum values changed: added reportingPeriod
    • Response
      • Changed response: [200] — Successful Response
      • Schema incompatible
      • Changed body: application/json
      • Changed property type: field  (['string']  → ['string'] )
        • Enum values changed: added reportingPeriod
  • POST /measurements/v1/inventory-lines
    • Request
      • Changed body: application/json
      • Added property: status  (null, optional)
        • Default value: ACTIVE
    • Response
      • Changed response: [200] — Successful Response
      • Changed body: application/json
      • Changed property type: measurement  (['object']  → ['object'] )
  • POST /measurements/v1/inventory-lines/{measurement_id}/duplicate
    • Response
      • Changed response: [200] — Successful Response
      • Changed body: application/json
      • Changed property type: measurement  (['object']  → ['object'] )
  • GET /measurements/v1/inventory-lines/{measurement_id}
    • Response
      • Changed response: [200] — Successful Response
      • Changed body: application/json
      • Changed property type: measurement  (['object']  → ['object'] )
  • PATCH /measurements/v1/inventory-lines/{measurement_id}
    • Response
      • Changed response: [200] — Successful Response
      • Changed body: application/json
      • Changed property type: measurement  (['object']  → ['object'] )
  • PATCH /measurements/v1/inventory-lines/{measurement_id}/reactivate
    • Response
      • Changed response: [200] — Successful Response
      • Changed body: application/json
      • Changed property type: measurement  (['object']  → ['object'] )
  • PUT /measurements/v1/inventory-lines/{measurement_id}/remove-status
    • Response
      • Changed response: [200] — Successful Response
      • Changed body: application/json
      • Changed property type: measurement  (['object']  → ['object'] )
Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.