This release delivers several improvements across invoicing, inventory handling, certificate transfers, and UI performance. Highlights include expanded inventory aggregation options by Book and Origin for multi-entity organizations, and enhanced transfer capabilities that now work with locked trades. We've also introduced counterparty trading controls, improved FX settlement reporting, and resolved several bugs and performance issues.
Inventory Improvements
Aggregate Inventory by Book and Origin - Inventory can now be grouped by Book and Origin, in addition to currency. These options are available via new account settings and can be toggled independently. When trades are linked to tickets, book and origin details are carried through. This enables more granular inventory tracking, particularly for organizations with multiple legal entities.[OME-226]
Inventory Entry Sync After Product Updates - We resolved a defect where inventory entries were not updating correctly after changes to a product's UoM or Commodity. Now, resaving trades or toggling tickets ensures entries reflect the updated product configuration—without creating duplicate entries or incorrect volumes. [OME-249]
Inventory Tickets Now Streamed to Bigbang -We've extended Bigbang to include inventory tickets, making it a more complete and powerful data and reporting platform. All create, update, and delete events for inventory tickets are now streamed using the standard Bigbang model structure. This means you can now query and analyze historical and real-time inventory ticket data via your data lake or kafka integrations—enabling deeper reporting and cross-object joins. [OME-244]
Trade Management & Controls
Counterparty Picklist Controls - An account-level flag can now restrict trade picklists to only show counterparties approved for trading. Counterparties are classified using a new trading_status field (approved, suspended_permanent, suspended_temporary). While picklists filter to approved values only, full queries and reporting remain unaffected. [OME-311]
Transfers on Locked Trades - We've expanded transfer capabilities to include trades marked as locked. If enabled via account settings, users can now perform transfers on locked trades, limited to specific editable fields. [OME-327]
Support for Better ICE Tag Mapping - We've improved ICE adapter logic to better map tags and reduce duplication. This makes it easier to reconcile ICE messages with the correct trade. [OME-265]
Invoicing & Financial
Invoice Line Items - We've introduced a new invoice_line_items data model to better support external invoicing workflows. This minimal API-only model lets you POST, PUT, and GET invoice line items—each line supports optional external_id fields for ERP mapping (e.g., Oracle). It replaces the practice of storing invoice data on trades and lays the foundation for a full invoice object in the future.[OME-266]
Improved Filtering for FX-Settled Trades - FX-settled trades now support a base_currency_realized_pnl field that's calculated using the FX rate at time of settlement. This value appears in valuations, exports, and APIs—giving customers clarity on realized FX amounts without needing to recalculate outside of Molecule. [OME-309]
Valuation & Settlement Improvements
More Accurate Valuation Explanations for Stepwise Trades - We updated the logic behind settlement_entry.explanation to better represent valuation reasons for stepwise child trades. These now appear as mtm_change instead of new_position when appropriate, avoiding confusion around routine FTR rollovers. [OME-289]
Validation for Non-Aggregating Accounts - We've tightened validation for non-aggregating accounts to ensure aggregates don't appear where not supported. This prevents data issues in downstream workflows. [OME-288]
Support for Options with Non-Matching Underlying Contracts - We've expanded our options functionality to support contracts where the underlying differs from the option's contract month. For example, ICE UKA options now correctly link to the December UKA future regardless of the option's contract month. This ensures proper pricing, valuation, and exercise logic—including financial exercise, moneyness calculations, and Greek generation—aligning Molecule with exchange contract handling for these instruments. [OME-157]
Quantity Calculation Improvements - To simplify trade and valuation configuration setup for renewable energy assets and other variable-generation sources, we've redesigned how Molecule calculates quantities for as-generated (as-gen) trades, removing legacy constraints and expanding frequency support. As-gen trades can now derive quantities directly from asset entries across any frequency combination—monthly, daily, or hourly—without requiring cascading logic or hourly-level granularity. The existing hourly_forecasted_average formula logic remains fully supported for backward compatibility. This change was released with Release 317.1 [OME-316]
Bug Fixes & Performance
Fix for Custom Field Reverting After Trade Split -We've fixed a bug where trade custom fields could unexpectedly revert to inherited product values after being edited—specifically following a trade split using the CAV2 feature. This issue was identified by Radiance, where a manually updated custom field reverted without user interaction due to a legacy script tied to ICE trade recommendations. The underlying automation has been disabled, and affected trades can now retain the correct custom field values post-split. [OME-380]
Fixed: Time Zone Bug Affected Vintage Dates in Mirage Tickets -We resolved an issue in Mirage where the vintage date of a newly created ticket could shift back by a day if the user was in a positive UTC offset time zone (e.g., Europe or Asia). This was due to the app incorrectly treating the date with a hidden time component and subtracting the time zone offset—resulting in date mismatch on save. The bug has been fixed so that the vintage field now stores and displays only the intended calendar day, regardless of time zone. [OME-247]
Valuation Fix for Node Custom Field Values - Fixed a bug where node-level custom fields were not carrying over correctly to child trades. This ensures downstream valuations apply the correct context from parent trades. [OME-271]
Exercise Price Display in Options - Fixed an error where exercised options were failing to display prices correctly in valuation exports. This resolves inconsistencies for customers analyzing exercised trades. [OME-287]
Fix for Trade Screen Hanging on Empty Valuations - Resolved an issue that caused screen timeouts when trades had no valuation data. Now, trades without valuations load quickly and gracefully. [OME-276]
Improved Load Time for Trade Filters - We improved performance when switching between filter chips on the Mirage Trades screen. Filter toggling is now smoother and significantly faster for large data sets. [OME-275]
Improved Error Handling for Trade Deletion - Previously, deleting a trade or ticket with complex links could throw an error or leave remnants in the UI. We've hardened backend checks and improved user feedback in these cases. [OME-273]





