In order to create a trade, an ask and bid have to be matched. An ask can only be matched with a bid if all the matching criteria explained above are met. All the different criteria that have to match make this exchange very different from a regular commodity exchange. To better grasp what happens when asks and bids are matched, it makes sense to envision the market being sliced into many different segments with asks and bids all participating in some of these market segments but not in others depending on their criteria. Each combination of different matching criteria creates its own market segment. There would, for example, be a market segment for: wind onshore, vintage of 2015 or newer, in distribution grid X and a generation time of Jan 2020. Asks with underlying EACs that have these characteristics participate in the market. Equally, bids that have their product defined as these criteria. A bid, on the other hand, that has all the criteria described above but only specifies “wind” instead of “wind onshore” would participate in both markets for onshore and offshore with otherwise the same characteristics.
It becomes clear that the more specific the requirements of the buyer, the narrower the possible field of EACs and the smaller the number asks that it can be matched with. It can be expected that the number of available asks for very specific requirements can become quite low. A bid that does not specify any specific characteristics, so “any” device type, device vintage, location and generation time, would participate in all existing market segments. As a result, it could be matched with all available asks and is not limited by any criteria.
To simplify the explanation, it can be said that first, the different market slices are created by the criteria combinations of the existing bids and asks. In a second step, there is a simple price matching similar to any other commodity exchange in every one of these market segments. The defined EAC criteria restrict which bids and asks can actually “see” each other and two orders can only be matched if they both participate in the same market segment. Between these bids and asks that could possibly match, the price decides which matches with which, creating a trade. A solar ask e.g. only “competes” with other solar asks to be matched with a solar bid. The same solar ask, however, competes with solar and wind asks for a bid that specifies both solar and wind. This means that if this solar ask is the cheapest among solar asks, it would be matched with the solar bid. It would, however, not be matched with a combined solar and wind bid because there might exist a cheaper wind ask. This example illustrates very well how slicing up the market only allows specific orders to be matched and how the price within these slices decides if a trade actually happens. A bid that only specifies wind would never match with a solar ask, even if the prices would otherwise create a match. The solar ask is not visible to the wind bid, it is, however, visible to solar bids and solar & wind bids.
In a functioning market, very specific bids should match with asks that have these characteristics, over more general bids that compete over the same asks. It can be expected that asks with more highly valued criteria have a higher price and that bids that specify these highly valued criteria put a higher price than bids that e.g. just specify “any”. Expansive asks with highly valued criteria compete with many other asks over very general bids and will not be the cheapest and therefore will not match. If a very specialized bid with a higher price and similar criteria appears on the market, the ask will be one of the only asks available and is more likely to be the cheapest one in this segment and therefore match with the bid. As an example, you can consider a buyer that only optimizes price and wants any kind of EAC that costs below 50¢. This bid will not match with a “solar rooftop” ask that has a price of 2.50$ even though the EAC criteria do not prevent them from matching, only the price does. The “solar rooftop” ask competes with “hydro” asks that may be below 50¢ and match with the buyer’s bid. Then there is a second buyer that specifically wants “solar rooftop” and is willing to pay a premium for it. This buyer specifies “solar rooftop” as a criterion and therefore does not even see the cheap “hydro” asks. The buyer only sees all the “solar rooftop” asks and, if the bid specifies a price of 2.50$, it will match with the solar rooftop ask described above.
If the price is the same, the time that an order is published to the exchange becomes relevant. Orders that were put on the market first have priority and therefore are ordered before later orders. This means that it will be the one to match first if a fitting bid or ask appears on the market. This is true for bids and asks.
The volumes do not influence the matching directly. The orders are filtered by EAC criteria and ordered by price. They just represent how many EACs (i.e., each 1 MWh) are offered in an ask and how many are requested by the buyer. Depending on the volumes of the matched bids and asks, there are three options: First, if both volumes are the same, they completely fill each other. This means that both requirements were met entirely and both orders disappear from the exchange.
Secondly, it is possible that the ask volume is bigger than the bid volume. This means that the buyer does not want to buy all EACs that are offered by the seller. In the case of a match, the buyer only buys a part of the ask volume. After the successful trade, the bid disappears from the Exchange because it has been filled completely. The asks stays in the order book but the volume is updated to the remaining EAC volume. If the ask has a volume of 1,000 (meaning 1,000 EACs, or 1,000 MWh) and the bid a volume of 700, after the trade there would be the same ask with the same criteria and price but only a volume of 300.
The third option is that the bid volume is greater than the ask volume. This means that the buyer wants to buy more EACs than the seller has to offer. After the trade, the ask will be gone from the Exchange as all offered EACs have been bought. To reflect the needs of the buyer, the bid is automatically updated to the remaining volume. Depending on the bid, it is possible that the updated bid is automatically matched with the next ask in line. If the buyer needs a volume of 1,000 and there are two asks, one with a price of 2$ and a volume of 600 and second in line an ask with a price of 2.5$ and a volume of 400, it is realistic that the buyer might choose to create a bid with a maximum price of 2.5$ and a volume of 1,000. The buyer will first match with the cheaper ask and buy 600 EACs for 2$, the system will automatically update the bid with the remaining volume of 400 which matches with the next ask so that the buyer buys 400 EACs for 2.5$. In the end, the buyer has bought both asks by creating just one bid.
Trades are recorded in the “trade” data structure that records the time of the trade, the order IDs, the price, and the traded volume. The trade triggers the EACs to be moved from one Exchange user account of the seller to the one of the buyer.