I am looking to develop an energy market model to evaluate different strategies for optimizing my portfolio of generation and storage assets. Could you recommend the most suitable type of production cost model for this purpose (Price Taking vs Price Forming)? What are the major pros and cons of different modelling approaches?
Hi Andres,
It’s a very important question, and I routinely use both approaches for the problem, but I think that the applications of each are usually distinct. I typically use a price-forming PCM when I’m either trying to directly forecast energy prices (especially in a large system like a full interconnection), when I’m trying to optimize a larger and more concentrated portfolio of assets in a relatively isolated system or subsystem of a grid (e.g. a utility with relatively little trading with neighbors as a percentage of generation or load or a large industrial private use network, or when I’m trying to optimize for non-market factors (e.g. transmission capex avoidance, systemwide emissions minimization, etc). The price-forming algorithm in a PCM is seeking to minimize system costs, so it is ideal for studying how individual or group asset operation impacts a broader system, as well as of course for directly calculating prices. The main downsides of a price-forming algorithm are that it does not directly seek to maximize profits at an individual asset level (which can make it imprecise when modeling organized markets like an ISO/RTO), and is more computationally intensive than a price-taking algorithm. Additionally, I have historically found that PCMs are relatively poor tools for directly calculating ancillary service prices that closely match reality, due to the impact of bidding behavior on this price formation.
I typically use a price-taking algorithm when I’m trying to model how a small generator, storage, demand, or hybrid system operates in a larger market. This algorithm is better for an individual facility who is seeking to test bid strategies into an organized market, as they can directly mimic the actions that they have control over (their bids). Unlike in a price-forming algorithm, this leads to economically optimal dispatch and energy vs. reserves operation, as a price-forming algorithm may create strategies which are ex-post economically suboptimal for an individual facility but which ex-ante minimize total system costs. An additional advantage of price-taking algorithms is that they are much less computationally intensive by reducing the number of generating and storage assets to those of direct interest. This allows for much more granular modeling of system operating parameters than can be feasible in a large price-forming algorithm. Moreover, moving outside of SAInt for a second, price-taking algorithms are substantially algorithmically simpler, and an experienced and trained model operator can feasibly write a price-taking production cost model when seeking to model very specific constraints or objective function terms unavailable in SAInt or another commercial PCMs without the resources and specialized knowledge needed for a price-forming model.
I’d add a third, hybrid modeling approach here, which I find very useful for complex hybrid generation, resource, and load systems or utility systems with relatively low levels of market trading, which is to use a price-forming algorithm for the network in question but create priced energy sources and sinks (e.g. profilized XGENs and EDEMs) to simulate market trading at external interfaces. This can often provide the best of both worlds when dealing with networks which seek to minimize production cost within their network but maximize net trading revenue or minimize net trading cost outside their network, which also is very common.
Thank you for your thoughtful response, @MattDrews!
You make a really good point in the third hybrid approach you describe. I’d like to point out that if you want to schedule flows and prices to/from markets external to the network in question, this is the perfect chance to use the Prosumer (EPS) object in SAInt! I recall during your in-person training that I’d initially steered you away from this object, but after reading your description here I realize it may be the perfect fit.
To clarify: If you want to use a simplified representation of external markets that participate in a price-forming model in SAInt, it is necessary to use XGEN and EDEM objects so that imports/exports are optimized with the rest of the model. If you want to implement fixed net trading flows and prices imposed on the network in question as part of its overall production cost minimization, I think a single EPS object with a PSET profile for power flows and profiles for VOMGPrice (cost of imports) and VOMDPrice (revenue from exports) would suffice.
Looping in my colleague @joeljose to see if he can confirm my suggestion or has any additional insights of his own.
I totally agree with @will! The EPS object is well suited for representing interfaces, and it can be profilized (I like this term @MattDrews) to suit your modeling needs.
@MattDrews, Thank you for the detailed response! Weighing the pros and cons of different modelling approaches is always important, and I found your breakdown really helpful. In my case, I will be modelling a hybrid system of renewables and storage assets. The price-taking approach would be the best bet.
That said, the hybrid approach definitely piqued my interest, especially when evaluating a diverse portfolio with various technologies and operational modes. Given the participation of assets like storage and demand response in ancillary markets, this method seems well-suited for optimizing across multiple strategies.
@will and @joeljose also appreciate the suggestion to try out the Prosumer (EPS) object as an alternative to my regular generator and demand combo, particularly for managing net trading flows.
Thank you all for the insightful input. I’m looking forward to testing out the hybrid approach when I have the chance.