Curtailments and derates are commands received by the site or turbines issued by a power off-taker, a utility, or the asset owner. Each turbine manufacturer has their own specific method for processing these derates and making the information available to end users. SparkCognition Renewables Suite ingests data from turbine manufacturers and makes it available in a uniform method to take the guess work out of it for Site Managers, Analysts, Asset Managers or anyone interested in turbine curtailments and derates.
The Renewable Suite looks to have an alarm for a curtailment event to standardize how curtailment is viewed on the Renewable Suite regardless of OEM while still maintaining accuracy of that OEM's methodology - including codes, overlapping event priority, and energy loss methodology. Vestas and GE have different ways of correlating derates and curtailments in state tags and alarm tags. Below are the nuanced ways in which data is translated from Vestas/GE convention into the Renewable Suite.
Note that when querying for curtailments in the alarms module, you will need to select the secondary alarms checkbox in the filter. This is because derates and curtailments can occur simultaneously with equipment alarms that take precedent. More information on interacting with the module is found under documentation for the common module section for Curtailment Module.
Vestas represents curtailment through an External Derate States and Internal Derate States. External Derate States are delivered through a 309 Pause Over RCS alarm code that has around 15 states one of which corresponds with Internal Derate which then will reflect the details of the derate in the Internal Derate State codes (provided in timeseries data) of which there are around 50 of.
The specific meaning assigned to the codes may vary by equipment model and software version number so while the below images are useful for understanding the structure, asset specific documentation may be required to reference the asset's details. In the below example, External Derates States mapped to Pause over RCS alarms and the Turbine Internal (external derate state 11) aligns with the internal derate state codes. These external states descriptions are useful in aligning with curtailment category mappings.
Internal Derate States are defined by the time series tag Grd_Prod_Pwr_InternalDerateStat. This tag value for a specific time period represents the specific derate type, if any, a turbine is experiencing at that moment.
Below is an example of a time period when the Internal Derate State tag is reading greater than 0 for a specific time period. In this instance it is reading 40 which typically correlates to a derate due to a Cold Gearbox.
Below are two examples of typical Internal Derate State codes, and note that they don't fully align. This is why specific asset documentation is necessary to ensure correct mapping to curtailment categories. For example, if the turbine is experiencing a curtailment from the utility the internal derate state code might read 18 for the time period the turbine is commanded to be curtailed.
SparkCognition Renewables Suite takes this information and the time period the turbine was derated or curtailed for to create Curtailment Events that populate in our Alarms and Curtailment Modules. Because these don't have distinct alarm codes, SparkCognition has created several negative alarm codes as a way to translate the time series status codes into the alarm convention. SparkCognition works with the customers to determine internal derate status code mapping to each curtailment category.
The effective result is that the internal derate states are mapped to negative alarm codes and pause over RCS is mapped to multiple 309 codes and both sets are mapped to curtailment categories, similar to the extended alarm codes table below for example.
The Admin / Asset Configurations holds the additional configurations that assign alarm codes, including SparkCognition created negative alarm codes, alignment to curtailment categories. This configuration also includes some Pause Over RCS states that are excluded or included in technical time based availability and owner loss. The intent is to ensure that codes are either included in availability or curtailment and not double counted in energy loss calculations.

Another section of this Asset Configurations JSON includes a section for: "curtailment": [ { "field": "sliding_window_hourly", "value": 3 }, { "field": "sliding_window", "value": 12 } ]. Sliding windows are a method of data processing SparkCongnition uses to combine curtailment alarms that happen abundantly in a short interval to make the occurrence easier to interpret and manage. An example of this is Grid Curtailment that is coming from Frequency Regulation and the setpoint is changing every 4 seconds as it follows the AGC signal. This could be reported in hundreds of few second alarms that make the event structure challenging to manage. Instead, these sliding windows specify how many 10min timestamps (3 per hour for 30min and 12 per day specifying 2 hours) would get rolled up into a single event when they are experiencing back to back smaller events. While this is convenient for managing the curtailment as a unit, it makes the start time, end time, and duration expand over the full period where these events were combined and therefore be longer than the actual time the turbine was experiencing curtailment. To find the actual curtailment duration, look to the notes column for those values. Note that the tile summary of duration of all alarms filtered in the query will reflect the duration of alarms column and not the actual curtailment duration that is in the notes.
Vestas has a specific reference energy tag that is contractually required to use when calculating energy loss associated with curtailment events. This is the signal Grd_Prod_PsblePwer (PoRS_PossiblePower) that is equal to the current power production during normal operation but provides the estimate of the possible power production when the turbine is in a derate or shutdown state. This does mean that curtailment codes have a different energy loss calculation methodology than other alarm codes.
To see the configuration that set's this methodology you can find another section of this Asset Configurations JSON that would state: "curtailment": [{"field" : "enable_vestas_curtailment", "value" : "Yes"}]
Because Vestas's Grd_Prod_PsblePwer is consistent with current power production during normal operations, when the sliding window method described above occurs and the duration of the event is inflated with the combined times of multiple events and some time in between combined events, the energy loss calculation remains accurate because it would calculate zero energy loss for the added duration.
There is one exception to this, and that is for Noise Curtailment. This methodology doesn't work for noise curtailment and so noise curtailment energy loss is calculated based on the OEM power curve and measured weather.
When GE Turbines are derated or curtailed a specific alarm code is generated. These codes can be seen directly in the Alarm Codes configurations.
To view GE derate or curtailment codes, users can go to Admin settings -> Devices -> Alarm Codes and search IEC Category for Partial Performance. In the image below, you can see some derate alarm codes associated with partial performance.
When you export this alarm codes table using the download arrow on the upper right corner of the table, you will notice a few additional columns (additional_param and additional_info) exposed that can help trace how codes are processed.
- The additional_param column stores GE's classification of external power curtailment time (wfms_ct) and internal power curtailment time (int_ct). All of these codes that are logs are mapped to curtailment categories in the Renewable Suite. GE derate warnings are not categorized in the Renewable Suite. Negative alarm codes while included in the mapping, are not needed for GE assets and therefore never appear in the data sets. External power curtailment time is typically configured to map to grid curtailment and internal power curtailment to OEM except when descriptions specify environmental or noise related reasons.
- The additional_info column specifies the GE mapping to counters. These counters help determine alignment with Renewable Suite's Curtailment.

The included in curtailment category column shown above is not formally exported yet but corresponds to how these are getting mapped behind the scenes. These mappings to curtailment categories are configurable in the Asset Configurations JSON file section "curtailment_table_to_cods_map" but shown in the above table to how they would align per alarm code in table form.
For GE assets, Renewable Suite follows the OEM power curve with the measured wind speed applied. This is because the EPR method used for availability won't produce accurate losses when many devices get curtailed simultaneously the losses would be incorrectly small.