mPulseTM DER
Energy Manager

View Spec Sheet



  • Utility Interoperability
  • Legacy Asset Integration
  • Vendor-Agnostic
  • Load Following
  • Load Shifting
  • LoadLeveling
  • PeakShaving
  • Energy Storage Integration
  • Islanding Capability
  • Real-Time Data Visualization

What’s Your Priority?

Multi-DER deployments and microgrids can provide you with Economic Benefits, increased Sustainability through Greenhouse Gas (GHG) Reduction, and Energy Security in the event of a grid-outage. CleanSpark let’s you optimize your system’s operation for any one of those vectors. Choose how your power system operates based on your priorities.

A Complete Solution: We Support Your Design and Your Operation

CleanSpark’s PowerPlan service leverages the Microgrid Value Stream Optimizer, a proprietary tool which analyzes historical consumption with current and future utility rates and derives the optimum mix of Distributed Energy Resources along with the required control methodology to meeting your objectives for Economic Benefits, Sustainability, and Energy Security.

Once Operational, mPulse Secures Your Cash-Flows

mPulse™ is built with a forward-looking design meant to mirror evolving regional energy markets by running a virtual market at each multi-DER (Distributed Energy Resource) microgrid it controls; Multi-DER deployments self-optimize; Real-time power source decision making based on forecasted power system needs ensures the system is ready to perform the highest value function when needed; Expand the system in a modular way as technology evolves and new opportunities arise.

Economic Optimization: Cost Savings & Revenue Generation

Earn 12-18% Internal Rates of Return on your Power System. Whatever your location, utility, or rate structure, CleanSpark’s mPulse™ software maximizes Return on Investment through using lowest cost power sources at all times while remaining flexible for future over the meter opportunities.

Vendor Agnostic Integration

Power systems are expensive, reduce first costs by at least 20%. Vendor competition for high-value
components such as Solar PV, Energy Storage, and Backup Generators can significantly reduce first cost
and boost your project’s economics.

Reputable Ecosystem of Utility Proven Hardware

Utility proven substation field servers with a 10 year warranty drive CleanSpark’s software and control suite at your site along with fleet scale data services ensure your system is accessible at all times.

Flexible, Scalable, and Intelligent

mPulse™ is a massively scalable hybrid-cloud solution that puts site-specific business value into the microgrid to enable highly resilient, disconnected, intelligent site functionality while backing that functionality with cloud-honed insights drawn from not only your microgrid’s own history but industry standard modeling and AI-driven forecasts.

Cyber-Secure Energy Security

Designed from the ground up with NERC’s Critical Infrastructure Protection (CIP) standards and the United States Department of Defense Risk Management Framework (RMF) in mind and built upon Microsoft’s Azure’s platform leveraging end-to-end encryption across all data-flows.


Reduction in First Cost
due to vendor agnostic integration


Internal Rate of Return
by economic focused control


Renewable Penetration
with intelligent control algorithms

Market-Based Economic Optimization.

The objective of market-based economic optimization is to derive the best opportunities to effect control over a battery based on consumer rate structures and forecasted production and load.


The purpose of this information is to convey a foundational understanding of economic optimization as it relates to a specific rate case using tangible examples. Of course, there are tens of thousands of utility rates across the United States, each with differing criteria for operation. Domestic and global energy markets will evolve into distributed systems in their own way and CleanSpark’s thoughtful software architecture will accommodate this volatility over location and time through varying jurisdictions, changes in associated utility rates, future ISO/DSO markets, and new utility programs, all with little change required in the platform.

The objective of market-based economic optimization is to derive the best opportunities to effect control over a battery based on consumer rate structures and forecasted production and load.


Trading futures means matching “promises” to buy a given commodity at a given price at a given time in the future with a related sell promise. Futures map well into our platform given our ability to forecast solar production and facility loads. Focusing on futures trading enables us to create an operational roadmap along the time periods of our forecast.

Market Maker

The concept of a market maker is a participant who buys up commodities at one price then offers up those commodities to the broader market to sell at a (hopefully) higher price. Market makers make money on the spread between the cost that they bought the commodity at and what they can sell it for. In some ways, the way we’re using energy storage could be equated directly to a market maker, since the optimization process strives to match charging times (energy purchasing) at low cost with discharging times (energy selling) at high cost, which creates the same spread that a market maker is focused on maximizing.

Behind the Meter vs. Regional Markets

In a regional market, a common approach to larger market economics is to create a double-auction market where participants broadcast their energy availability and/or consumption requirements, and the market sets a bid price for electricity such that the market will clear (all bids will be satisfied). Participants use this bid price to decide whether and how to participate in the market. This is a good strategy when the market does not have knowledge and/or control of every market participant. But in a behind-the-meter microgrid, though this approach would surely provide savings, it will likely not maximize those savings.

In a behind-the-meter grid, the market knows everything about all participants and can play the role of market maker and orchestrate the most advantageous buying and selling of futures in the day-ahead and even current-day market, matching the very lowest cost electricity with the charging cycle of a controllable resource as well as matching the very highest cost electricity with its discharging cycle.


Running a node-level futures market is dependent on a day-ahead forecast of both PV generation and facility load, broken out by consumer. This forecast should provide information at 15-minute time intervals. The forecast allows us to identify predicted times of need and excess. In addition to the forecast, a futures market requires the time-specific valuation of energy in order to derive the appropriate value for a given bid at a future time. In a cost-based optimization scenario, these valuations could include:

  • The rate structure under which each consumer (meter/facility load) operates, including consumption, time-of-use demand, and non-coincident demand costs;
  • The levelized cost of electricity for PV generation, which could include amortized installation, financing, and O&M costs; and
  • The cost of fuel if a diesel or natural-gas generator is a market participant.

Participants and Constraints

Our node-level markets contain three types of participants:

  • Consumer
  • Producer
  • Prosumer

These types can be further broken down by indicating whether a participant is a controllable resource (battery) or an uncontrollable resource (PV array). Creating these abstractions allows the market to eventually allow participants we would previously consider uncontrollable, such as load, to become controllable, in cases where we might interact with a building management system to shed load. In addition, the prosumer (both controllable and uncontrollable) abstraction can be used to model a node participant in a multi-nodal, site- or regional-level market.
Participants can also come with constraints. A prime example of these constraints would be battery operation, where constraints include:

  • Max charge/discharge rate;
  • Minimum state of charge—or the requirement of having enough available charge at the point in time when a discharge is requested; and
  • Charging/Discharging efficiency.

A different level of constraint would be enforcing operations based on rate structure or program restrictions as well as reflections of actual physical connections between pieces of infrastructure. These constraints can be configured in by indicating which market participant can trade with which other participant—for example, restricting a battery to be charged by PV instead of the utility, etc.


A futures market is dependent on time-specific buy and sell orders that the market can match ahead of actual execution. In the nodal market, each participant uses the day-ahead forecast and pricing to generate buy and/or sell bids during the duration of the day. Specifically, the PV array would create sell orders for each 15-minute increment of time, each having an amount equal to the PV generation forecasted for that time period as well as a value of the LCOE of the array. The consumer (facility load) would generate buy orders for each 15-minute increment of time that have an amount of the forecasted load at that meter and a value of the cost of that amount of power at the rate tariff applicable at that time interval. Sell orders generated by the utility represent an “unlimited” amount of power available and are not subject to the generation and load forecasts but are valued based on the rate tariff in place.

The controllable prosumer behaves slightly differently given its operational constraints. In the case of a battery, the constraint we impose at the time of bid creation is the max charge/discharge rate. Given this constraint, we will only create buy or sell orders asking for amount less than or equal to that maximum rate. The orders produced by the prosumer signify potential opportunities for buying or selling, opportunities that will be validated and filled or not based on the market matching process as well as the rest of the operating constraints. See the Matching section, below, for more information.
Buy orders differ from sell orders in that while sell orders represent the total amount a participant has to offer to the market at a given time step, buy orders come in bid increments. The bid increment amount can be configured, but whatever the increment, the bids for a consumer (or a prosumer during a potential purchase/consumption opportunity) are valued based on that increment of load at that period of time. For a concrete example, consider the following slice of load forecast:

Operational Approach

In general, the operational approach uses the same primary methods as the day-ahead approach, consisting of:

  • Running the futures market for a defined interval of forecasted time, which
  • Outputs a set of matches between buyers (consumers) and sellers (producers), which
  • Informs intended operation of the system to optimize the value spread between buying and selling.

The major differences between the day-ahead approach, which creates a roadmap, and the operational approach, which creates equipment commands, are around actual vs. forecasted load and generation values as well as execution frequency.

Actual Versus Forecasted

The futures market based on forecasted production and load produces an operational roadmap, but real-time operation must be informed by actual production and load observations. The market always runs from “now” until the forecast horizon, a time period that depends on where “now” is in the current day as well as the horizon of the latest forecast the site has received from the cloud. This duration will depend on whether we receive only a single day-ahead forecast or multiple forecasts during the day, each informed by actual observations for that day. We will likely start with a single day-ahead forecast and move to more frequent forecasts from there.

In the case of a single, day-ahead forecast, the site must modify the forecast based on its recent observations before the re-forecasted market is run again to determine the operational commands that should be executed for the next run interval. There are several different ways to modify the forecast, each with varying degrees of sophistication as well as implementation difficulty.

1. Percentage difference: Track the ongoing % difference in actual vs forecasted and apply that % difference to the remaining forecast before running the market. For example, say our PV production has been 10% below forecasted from midnight until 1 PM on average, we would then reduce forecasted PV production from 1 PM until the next midnight by 10%.

2. Trend: Track the % difference for each interval during the time period, analyze that time series of differences for a trend, and project that trend over the forecasted data. For example, consider the case where the PV starts out close to forecasted, but for the intervals between noon and 2 PM, the actual generation continues to drift lower than the forecasted by a % difference that increases at a 10% per hour rate. This rate would be projected over the rest of the day’s forecasted generation to show that trend of deviation over the rest of the forecasted data.

Market Frequency

While primary control of the microgrid equipment will be accomplished via the underlying SCADA system at an interval of seconds, the market should be run as frequently as is feasible to ensure the optimization process can adjust to current conditions as they arise and potentially deviate from forecasted conditions. This is especially important given our need to “game” utility billing 12-minute intervals.

Market Interval Monitoring

From a demand perspective, facilities are billed by the average demand recorded during a given 15- minute interval. This enables the possibility of compensating for potential spikes in demand during the interval by deploying more renewables within the same interval to reduce the load enough below the target to average out the spike. For each billing interval (:00 – :15, :15 – :30, :30 – :45, :45 – :00), the average actual demand will be tracked and projected forward in the forecast for that interval. The regular market logic will use that projected demand the same way it uses a regularly forecasted demand for energy valuation and trading, and it will respond based on the weight given to that load with respect to other market participant valuations. In the case of trying to stay below a non-coincident demand, the portion of the load above that high-water mark carries a very high value, which means it will take first precedence in the matching algorithm.

SCADA Communication

While SCADA control of renewable resources often fall into a set of common modes (peak shave, load shift, load follow), the outputs from a market execution come in the form of trades, which consist of the following information:

  • Seller (where is the energy coming from)
  • Buyer (where is the energy going to)
  • Amount (how much power in kW)

Though we trade in small increments of energy, the last step in market execution is to aggregate these trades for each period by Buyer and Seller to come up with the total amount of kW in that period that should be exchanged between the two participants. Ideally, we would be able to take these aggregated trades and pass them directly to the SCADA system, which will understand how to make those trades actionable in terms of deriving set points for equipment and communicating them via the appropriate protocol.

That said, there are times when we might want to be able to tell the SCADA system which entity in a given trade should have the priority with respect to their set point. Consider, for example, a trade that indicates peak shaving by discharging the battery. Assume the following:

1. Previous high-water non-coincident demand of 2103 kW

2. Forecasted load of 2278 kW

3. Trade of 180 kW from the battery to the load

4. Trade of 2098 kW from the utility to the load

Ideally, the SCADA system would create a setpoint on an inverter to keep the load at 2098 kW and let the battery discharge float within operational constraints to match that load, i.e. peak shave to 2098 kW. To do this, the trade from the utility to the load should have a higher weighting for priority than the trade from the battery to load.

Here you can define the content that will be placed within the current tab.