Discover AspectCTRM: CTRM and ETRM Software
for Commodity and Energy Traders

AspectCTRM is the leading trade and risk management solution for today’s energy and commodity traders, risk managers, operations staff and back-office personnel. It’s the only multi-commodity SaaS CTRM / ETRM software delivered in the cloud.


AspectCTRM Delivers the Functionality Your Team Needs

AspectCTRM includes four feature-packed modules varying by product and industry focus. Modules include:

Visit the Industries section to learn more about your area of interest:

10 Things You Should Know
Before Buying an E/CTRM

Download White Paper

CTRM and ETRM Software That Expands With Your Business

AspectCTRM can be as simple or sophisticated as your business requires. It features three editions that scale with the needs of users: Lite, Standard and Enterprise.

The Lite Edition features front office functionality that deploys within hours out-of-the-box. Functionality includes trade capture, position keeping, profit and loss tracking and market risk reporting.

The expanded Standard and Enterprise Editions of Aspect’s CTRM and ETRM software are robust in features covering the full spectrum of functionality for trade and risk management, and physical and financial operations with advanced reporting, integration and more.

Contact us


Monitor & Execute Activities on Any Smartphone, Tablet or Desktop

“I travel 50% of the time, so the mobile service is important to me and my clients. I’m able to see where the market is to make decisions all the time.”

— Trader West Africa, Addax & Oryx Group

Powerful Functionality

Some features not available in the Lite Edition. Ask us for a full module description.

Report Builder

AspectCTRM is deployed with a series of pre-built reports. For more customized reports, Aspect Enterprise Solutions can build them for you, or train your staff.

OLAP Slice & Dice Reporting

Manipulate and analyze large amounts of data, quickly and from multiple perspectives.

Security Module

Securely define and set user and roles based parameters, and protect your business from fraud. Allow users see and update only the data approved by management.


Set alerts to notify trading and operations teams of important thresholds and events that require attention and activities.


Bookmark reports for single click access later.

XML Integration

Upload & download data (trades, costs, nodes, prices) in XML format via the user interface (UI) or via web services interface. See more on integration.

Scripting Tool

The scripting tool allows easy and quick implementation of custom fields, validations and workbenches allowing you to easily configure custom workflows based on specific business processes. Scripting allows users to complex, detailed reports.

In-Memory Database

Aspect Enterprise Solutions stores large volumes of data in memory during runtime allowing data to process quicker with no lag time.

Level 4 Reporting

Most systems provide 2 levels of reporting infrastructure compared to Aspect Enterprise Solutions’s 4, which allows our solution to meet the most complex requirements. Level 1 is standard, Level 2 incorporates OLAP, a reporting framework which allows users to slice and dice data vertically and horizontally to create hundreds of views of the data. Level 3 is more advanced OLAP, and Level 4 incorporates Aspect Enterprise Solutions’s scripting language for complex, bespoke reports by the users, which is not possible in other systems.

Distinct Advantages

Easily Configured

Customize screens, set security limits, and configure workflows and notifications to align with business processes.

Lightning Fast Deployment

While other systems can take years to develop and implement, we’re able to deliver in record time. You’re able to start working in your account in a matter of weeks, as opposed to months and even years from traditional software vendors.

Flexible Integration

Open Web Service APIs allow companies to maintain existing investments in legacy third-party and proprietary systems.

Real-Time Profits & Losses (P&L) and Position Tracking

AspectCTRM delivers a view of company market exposure and P&L in real time, enabling immediate, informed decisions. AspectCTRM empowers users to perform intra-day and real-time analysis. Most vendors perform inter-day risk calculations over many hours. Aspect Enterprise Solutions customers gain enormous confidence in the decision making process.

Market Data & ETRM/CTRM on the Same Platform

The AspectDSC market data and analytics portal sits on the same platform as AspectCTRM, allowing users to instantly upload market prices and evaluate trade portfolios.

Unique AESthetics Technology

AspectCTRM has a unique ability to be customized and tailored to different business types, as no business – even in the same industry segment – works the same. Aspect Enterprise Solutions has developed common workflows and processes in the system to address a large percentage of requirements in trading and risk – with add-on components and workflow configurations available for specific company needs. Users are able to configure their own solution or use third party partners, as opposed to paying significant amounts of money in professional services and consultancy fees.

Advanced Security

Cloud software has higher reliability and security. Since costs are shared by multiple customers, cloud vendors can afford to purchase more powerful and expensive network security systems. This is critical as security of a position keeping system can cost millions.

Lower Cost

No other vendor focuses on the mid-market, due the expense of deploying and maintaining traditional software and hardware. Aspect Enterprise Solutions is able to provide affordable subscription-based pricing due to its cloud approach to all size companies. We are the only company to publish our prices on our website.

Environmentally Friendly

Users of cloud computing have a much lower carbon footprint than their colleagues stuck with older client-server software.


Aspect Enterprise Solutions is the only CTRM/ETRM vendor that provides true Software-as-a-Service. Our customers do not need hardware, software or expensive IT teams to run their system.

[formidable id=2]
<div class="frm_forms with_frm_style frm_style_formidable-style" id="frm_form_2_container" > <form enctype="multipart/form-data" method="post" class="frm-show-form frm_pro_form frm_ajax_submit " id="form_popup-form" > <div class="frm_form_fields "> <fieldset> <legend class="frm_screen_reader">Aspect Decomission Popup Form</legend> <div class="frm_fields_container"> <input type="hidden" name="frm_action" value="create" /> <input type="hidden" name="form_id" value="2" /> <input type="hidden" name="frm_hide_fields_2" id="frm_hide_fields_2" value="" /> <input type="hidden" name="form_key" value="popup-form" /> <input type="hidden" name="item_meta[0]" value="" /> <input type="hidden" id="frm_submit_entry_2" name="frm_submit_entry_2" value="91c2273fb3" /><input type="hidden" name="_wp_http_referer" value="/ctrm-etrm-software/" /><div id="frm_field_6_container" class="frm_form_field form-field frm_required_field frm_none_container frm_first frm_half"> <label for="field_qh4icy2" id="field_qh4icy2_label" class="frm_primary_label">First Name <span class="frm_required" aria-hidden="true">*</span> </label> <input type="text" id="field_qh4icy2" name="item_meta[6]" value="" placeholder="Enter your first name" data-reqmsg="This field cannot be blank." aria-required="true" data-invmsg="Name is invalid" aria-invalid="false" /> </div> <div id="frm_field_7_container" class="frm_form_field form-field frm_required_field frm_none_container frm_half"> <label for="field_ocfup12" id="field_ocfup12_label" class="frm_primary_label">Last Name <span class="frm_required" aria-hidden="true">*</span> </label> <input type="text" id="field_ocfup12" name="item_meta[7]" value="" placeholder="Enter your last name" data-reqmsg="This field cannot be blank." aria-required="true" data-invmsg="Last is invalid" aria-invalid="false" /> </div> <div id="frm_field_8_container" class="frm_form_field form-field frm_required_field frm_none_container ion_email accepts_business_email"> <label for="field_29yf4d2" id="field_29yf4d2_label" class="frm_primary_label">Email <span class="frm_required" aria-hidden="true">*</span> </label> <input type="email" id="field_29yf4d2" name="item_meta[8]" value="" placeholder="Enter your business email address" data-reqmsg="This field cannot be blank." aria-required="true" data-invmsg="Please enter a valid email address" aria-invalid="false" /> </div> <div id="frm_field_9_container" class="frm_form_field form-field frm_top_container ion_company frm_hidden"> <label for="field_e6lis62" id="field_e6lis62_label" class="frm_primary_label">Company <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_e6lis62" name="item_meta[9]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_10_container" class="frm_form_field form-field frm_top_container ion_country frm_hidden frm12 frm_first"> <label for="field_otmou" id="field_otmou_label" class="frm_primary_label">Country <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_otmou" name="item_meta[10]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_11_container" class="frm_form_field form-field frm_top_container ion_utm_source frm_hidden"> <label for="field_eljps" id="field_eljps_label" class="frm_primary_label">utm_source <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_eljps" name="item_meta[11]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_12_container" class="frm_form_field form-field frm_top_container ion_utm_medium frm_hidden"> <label for="field_a8lma" id="field_a8lma_label" class="frm_primary_label">utm_medium <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_a8lma" name="item_meta[12]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_13_container" class="frm_form_field form-field frm_top_container ion_utm_campaign frm_hidden"> <label for="field_ommom" id="field_ommom_label" class="frm_primary_label">utm_campaign <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_ommom" name="item_meta[13]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_14_container" class="frm_form_field form-field frm_top_container ion_utm_content frm_hidden"> <label for="field_6kbqu" id="field_6kbqu_label" class="frm_primary_label">utm_content <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_6kbqu" name="item_meta[14]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_15_container" class="frm_form_field form-field frm_top_container ion_page_title frm_hidden"> <label for="field_fpzuk" id="field_fpzuk_label" class="frm_primary_label">Page Title <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_fpzuk" name="item_meta[15]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_16_container" class="frm_form_field form-field frm_top_container ion_page_url frm_hidden"> <label for="field_aj7hq" id="field_aj7hq_label" class="frm_primary_label">Page URL <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_aj7hq" name="item_meta[16]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_17_container" class="frm_form_field form-field frm_top_container ion_zerobouncestatus frm_hidden"> <label for="field_mrpjd" id="field_mrpjd_label" class="frm_primary_label">ZeroBounceStatus <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_mrpjd" name="item_meta[17]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_18_container" class="frm_form_field form-field frm_top_container frm_hidden ion_gftracklabel"> <label for="field_dqw7i" id="field_dqw7i_label" class="frm_primary_label">GFTrackEvent <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_dqw7i" name="item_meta[18]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_19_container" class="frm_form_field form-field frm_top_container ion_ip_address frm_hidden"> <label for="field_nzvgf" id="field_nzvgf_label" class="frm_primary_label">IP Address <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_nzvgf" name="item_meta[19]" value="" data-frmval="" data-invmsg="Text is invalid" aria-invalid="false" /> </div> <div id="frm_field_20_container" class="frm_form_field form-field frm_top_container frm_hidden ion_landing_page"> <label for="field_182c0" id="field_182c0_label" class="frm_primary_label">Landing Page <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_182c0" name="item_meta[20]" value="" data-invmsg="Text is invalid" aria-invalid="false" /> </div> <input type="hidden" name="item_key" value="" /> <div class="frm_verify" aria-hidden="true"> <label for="frm_email_2"> If you are human, leave this field blank. </label> <input type="text" class="frm_verify" id="frm_email_2" name="frm_verify" value="" /> </div> <input name="frm_state" type="hidden" value="6XJRUYckrDCUSZyvIz+Z4xbSSCYR6D6AFuf+OSbsAy4=" /><div class="frm_submit"> <button class="frm_button_submit frm_final_submit" type="submit" formnovalidate="formnovalidate">Sign up</button> </div></div> </fieldset> </div> </form> </div>