EMK:Entity.Traits
When a run is executed a set of binary files is created in a 'database' folder under the results directory (see Physical Architecture). These files are collectively called the Results database, and their internal structure reflects EMarket's Entity.Trait data model. This model captures EMarket's approach to data handling in which objects of interest - such as Generators or Nodes - are called entities, and the values describing an entity are its traits (e.g. Nodal Price or Generator Name).
An entity is a logical concept that represents a 'thing' about which EMarket needs to keep data. Things with similar modelling characteristics are classed under the same Entity type. In other words, Entities are typed by the object they represent in the 'modelled' world (e.g. 'Node' or 'Generator'). Different objects of the same entity type are called instances of the entity. So, for example, ABY and TKU are instances of the entity type: Node.
The characteristics describing an entity are its traits. In data handling terms it is the traits that differentiate Instances of the same entity type. The trait 'Node.Name', for example, differentiates the 'ABY' Node entity instance from the 'TKU' Node entity instance.
In EMarket entities and traits are given names that can be used to reference specific data items in the Run Definitions and their values in the associated output. Within a Run Definition Entity.Trait references can be used in any data entry field that accepts a formula expression (the Schedule and all Resource editors). The value of these expressions is calculated at run time and may vary significantly from Tick to Tick, especially if the formula refers to traits derived during the previous Tick.
Entity.Traits syntax: <entity>:<name of particular entity>.<trait>
E.g. Reference to the electricity generated by Generator: GEN01 for a specific period would look like this: Generator:GEN01.Generation
Warning: Entity.Trait references are case sensitive.
A complete list of EMarket Entity.Traits can be found in the Entity.Trait List below.
Special cases exist for the following Entity.Trait types:
Offer Band Entity
Offer Band entities must be referred to using the name of the Generator to which the Offers belong, as follows:
OfferBand:<Generator name>_<Offer type><Offer Band number>.<Trait>
where Offer type is E, FR, SR for energy, Fast reserve and Slow Reserve respectively.
Global Traits
Global Traits are user-defined variables that extend EMarket's Entity.Trait model. Global traits can be referred to in formulae in a similar manner as entity traits. Global variables can be defined through the:
- Run Window - through the Volatility Matrix, the File Data or MRJD features; or
- Schedule Window
The syntax for referring to Global traits is: Global.<Global variable name>
Demand Elasticity
Demand elasticity is controlled through an internal variable in EMarket. The syntax is: Region:<RegionName>.DemandElast
where RegionName is the name of a Demand Region defined in the Regions Resource Instance.
For example, if NI and SI are regions for your Run, their Demand elasticity might be given in the schedule as:
Variable | Definition |
Region:NI.DemandElast | 0.8 |
Region:SI.DemandElast | 0.2 |
Note: Demand elasticity is defined as a proportion of the usual Demand, so a Demand elasticity setting of 0.8 sets the Demand to 0.8 of its usual value. The PieceWiseLinear function can be used to define the Demand elasticity.
Entity.Trait List
EMarket Entity.Traits are listed below. Traits marked with an asterisk (*) are either currently not used or are not accessible to users. Some traits should also be regarded as "read-only" traits, in the sense that their values are derived within the model and attempts to change the values are ignored. Such traits are indicated by a hashtag (#). Traits marked with a ^ are "static", that is, although their values are user-defined they cannot be altered during a Run.
Node
Each node represents a market or non market node on the electricity network
Region* | Region name if Node is defined in a Demand Region |
Injection# | Total MW being injected at Node this Tick |
Price# | Nodal price in $/MWh this Tick |
Demand# | Total Demand off-take at this Tick in MW. Node.Demand represents the Demand - after the losses have been added |
LocalDemand | Demand at the retail side can be accessed via the Node.LocalDemand trait |
Resistance | the resistance between the retail supply Nodes and those on the grid |
DirectDemand | Non-profile demand - i.e. an amount of demand in MW applied at a Node in addition to that calculated through the Demand Profile for the Node |
ResRegion
The ResRegions represent the sets of nodes for which reserve requirements are calculated and met
RefNode* | Reference Node for the Reserve Region, e.g. HAY2201 for North Island of New Zealand |
RAFFR | RAF for Fast Reserve Class this Tick |
RAFSR | RAF for Slow Reserve Class this Tick |
BaseRisk | Reserve Risk this Tick in MW |
PriceFR# | Fast Reserve price this Tick in $/MWh |
PriceSR# | Slow reserve price this Tick in $/MWh |
ImportSubtractor | Where electricity is imported (via the HVDC) this quantity is subtracted from the risk represented by the import quantity. |
Generator
Generators represent energy and reserve offering entities, each of which can be associated with a number of OfferBand entities
Node* | Node at which Generator injects |
Capacity | Maximum generating capacity in MW |
CommDate | Commissioning date |
MothDate | Mothball date |
Outage | The proportion of capacity currently taken out of service |
CurrentCapacity# | Current Capacity of the plant. Zero before Comm.Date and after Moth.Date, and also if the plant has an outage during the run |
UnitSize | Unit size in MW. Used in determining the risk set by a Generator when modelling Reserves |
Ramp_Rate* | Currently not used in EMarket |
Generation# | This is the dispatched generation for the Generator in the current Tick in MW |
Cost# | Aggregated cost of supplying energy and Reserve supply over all Offer Bands |
ReserveCost# | The cost of Reserve provision calculated from the marginal costs for each Offer Band |
Efficiency | Plant generation efficiency as a percentage |
NonFuelMC | Non-fuel marginal cost in $/MWh |
GenType* | Descriptive text only |
FuelType* | Descriptive text only |
Revenue# | Revenue earned by sales from generation and Reserve provision |
PLSRSlope^ | Used to determine the amount of Reserve that can be provided by a Generic Generator based on energy Offers. This trait is only accessible when the Dispatch Mode field in the Run Window is set to Nodal+Reserves |
DispatchFR# | The quantity of Fast Reserve dispatched this Tick in MW |
DispatchSR# | The quantity of Slow Reserve dispatched this Tick in MW |
HydroStation
HydroStations represent the hydro management aspects of hydro generators. They will always be associated with a generator entity, which could be either a hydro system class generator or a generic hydro class generator
HydroRelease# | The amount of water (in cumecs), passing through a station. The figure includes spill |
Hydrospill# | The amount of water (in cumecs) spilled by a hydro station |
Diversion | Used to set the amount of water (in cumecs) that is diverted past a station. Care should be taken when assigning values to this trait, for example, when a large diversion figure (say 1,000 cumecs) is entered for a station at the head of a Hydro System. Although the model will make every attempt to meet minimum flow requirements for station downstream, if there is simply not enough water an infeasibility will occur and such things as negative system storages can result. Note that you can also enter negative diversion values and divert water into a station's reservoir. |
MinGen | The MinGen trait defines a minimum generation in (MW) that the station must meet. It is not possible to control the minimum output of a hydro station that is part of a group. |
MaxGen | Defines the maximum output of a hydro station in MW. It is not possible to control the maximum outage of a hydro station that is part of a group. |
Inflows | The amount of water (in cumecs) into the reservoir |
MaxStorage | Maximum storage capacity of a hydro reservoir in Mm3 |
HydroStorage# | The storage capacity of the reservoir in Mm3 |
MWperCumec | The conversion rate of the station in MW/Cumec |
MinFlow | Minimum release of water immediately below the station in (cumecs). |
OfferBand
Each OfferBand entity corresponds to a single offer, analogous to one line on an Electricity Market offering form. OfferBands are named <generator name>_<offer type code><band no (two digit)> where the offer type codes are E for electricity, FR for fast reserve and SR for sustained reserve. For example and OfferBand name might be "HLY_FR02", which will be the second band of fast reserve offered by the "HLY" generator.
Generator* | Name of Generator to which this band applies |
BandNo* | Offer Band number |
OfferType* | 0, 1, 2 for energy, Fast Reserve and Slow Reserve respectively |
InitPrice | The initial price set for the Offer in $/MWh. This can differ from the final price when Company Optimisation operating |
InitQuantity | The initial quantity set for the Offer in MW. This can differ from the final quantity when Offer quantities exceed current capacity |
Price | The price offered into the market in $/MWh |
Quantity | The quantity offered into the market in MW |
MarginalCost | The marginal cost of the Offer Band in $/MWh |
Dispatch | The quantity of dispatch attributed to the Offer Band in MW |
Cost | Dispatch * Marginal Cost (in $/hr) |
Line Lines are used to represent all circuits in the transmission network, including transformers and switches. They are automatically named <Node From>_<Node To>. Resistance, Reactance and FixedLosses traits are static but can be changed by altering the version number of the line
Version | The version of the line determines which definition (as set up in the grid resource) is used to set the line characteristics. Versions are numbered from 0 upward. By default the version is 0. |
NodeFrom* | First Node defined at end of line |
NodeTo* | Second Node defined at other end of line |
Resistance^ | Per unit resistance of the line |
Reactance^ | Per unit reactance of the line |
Capacity | Forward capacity of the line in MW |
RevCapacity | Capacity of the line in MW in the 'reverse' direction as defined by the line name |
FixedLosses*^ | Fixed losses in MW associated with the line, e.g. transformer losses |
PowerFlow# | Power flowing on the line this Tick - can be either positive or negative |
LM# | Lagrange multiplier for this Tick in $/MWh. This is the additional price differential across the line if it is constrained, i.e. at its limit. LM is zero when the line is unconstrained. |
Company
The company entity represents the financial structure of a market trader. This entity can be used to track financial performance and to determine market optimisation
Name* | Company's full |
RetailCost# | Total retail cost for the Company this Tick in $/hr |
RetailRevenue# | Total retail revenue for the Company this Tick in $/hr |
ContractRevenue# | Total revenue/cost from all hedging contracts this Tick in $/hr |
GeneratorCost# | Total cost of generation for the Company this Tick in $/hr |
GeneratorRevenue# | Total generation revenue for the Company this Tick in $/hr |
GrossProfit# | The total of revenues less costs above this Tick in $/hr |
OptOn# | 1 if Company optimisation is being done on this company, zero otherwise |
Region
Regions are user defined node groups which can be used to apply demand profiles using annual demand values
Name* | Region Name |
AnnualDemand | User defined annual demand in GWh for all Nodes in the region |
Demand# | Annual demand in GWh for all Nodes in the region after adjustments have been made |
DemandAdj | Load multiplier for the purposes of general load adjustment as a proportion, e.g. setting Region:<Region name>.DemandAdj to 1.13 in the schedule will increase overall Demand for that Region by 13% |
DemandElast | Load multiplier for the purposes of modelling Demand elasticity. Applied as a proportion of the current Demand as per DemandAdj |
Global
All traits that are applied to the entire model
<user-defined variable name> | User-defined |