Skip to main content
This page explains why there are validations and rejections when working with a Virtual Asset, how our system checks and corrects dispatch schedules for virtual assets to make sure they follow the rules which are enforced on us by the underlying physical assets to ultimately avoid errors, and remain compliant.

Introduction: Why there are re-validations and rejections: how we connect physical constraints and virtual assets

  • Physical assets enforce certain limitations, which must be adhered to while trading
  • Prominent limitations are for example the virtual asset size in MW and MWh, Ramp rates or Unavailabilities - as listed in detail under below
  • If the physical limitations are not respected, the underlying pool of physical assets cannot dispatch what has been traded by the user and scheduled on the virtual battery
  • Since LAYR by terralayr is only the interface to seemlessly interact with the physical assets, terralayr supports by providing a schedule validation to customers, to avoid such mismatch of physical possibilities and virtual schedules
  • terralayr evaluates the physical feasibility of a schedule submission according to a set of pre-agreed rules between customer and terralayr
  • The validation can result in i) schedule rejections and ii) schedule corrections, based on timing and cause of the error
Image 32 The following chapters will 1) map physical restrictions to virtual battery restrictions 2) outline how terralayr validates and corrects schedules 3) the majority of reasons for invalid schedules, and 4) show how errors are displayed on the platform .

1. Mapping physical restrictions to virtual battery restrictions

2. Schedule validation, re-validation and corrections

Categories

Possible interventions: There are multiple types of interventions at different levels/ points in time. The following part describes how they differ and at which time they are relevant Strict (only apply to power exceeding available power, malformed requests, platform outages and submission after gate-closure)
  • Validation - rejection on submission = your schedule will be rejected
Soft, applying to most other reasons for invalid schedules
  • Correction after submission and before re-validation = your schedule will be corrected before the re-validation (e.g. typically when an unavailability starts to hit)
  • Correction on re-validation [coming Q4 2025] = your schedule will be corrected, as part of the re-validation [coming Q4 2025] 7 minute before delivery (e.g. typically when your schedule would lead to out of bounds SoC levels but the scheduled power is in the acceptable range)
  • Rejection if submitted after re-validation [coming Q4 2025] = even soft criteria, which would only lead to a correction as part of the re-validation, turn into hard criteria and therefore a rejected schedule, once the re-validation and correction has taken place
Validation process timeline: Image 33 Mapping causes of invalid schedules to the validation process Image 34

Validation process

1. Validation (strict)

  • Every schedule is validated against a strict set of rules
  • If these strict rules are not adhered to, the schedule is rejected Image 35

2. Correction after submission and before re-validation (soft)

  • After successful submission, a sucessfully accepted schedule can still become invalid in a way, that it would not have surpassed the original validation
  • That can happen as a consequence of external events such as unavailabilities
  • In such cases, terralayr intervenes through a schedule correction before the re-validation Image 36

3. Re-validation and correction (at 7min before delivery start) (soft)

Re-Validation Process At 7 minutes before delivery, the Dispatch Schedule is finally re-validated against a list of criteria such as physical deliverability or contractually agreed limitations of battery usage. You can find a list of the validation parameters in your contract Annex. Re-Validation results and subsequent actions
  • The result of your re-validation will either be positive or negative
    • “positive” result
      • your schedule and trading can proceed as normally
    • “negative” result
      • If the dispatch leads to a negative re-validation response, it will be corrected slightly until it no longer violates the set respective rule(s) → it will be corrected in the most minimal way possible, which makes sure the rules are adhered to again
Deep-dive: Negative re-validation → schedule correction
  • If your schedule leads to a negative re-validation result, because it violated one of the reasons for invalid schedules described, terralayr will slightly correct it
  • terralayr will take minimal corrective measures on the following 15 minute period schedule value to ensure feasibility, avoiding over-correction.
  • Summed up, terralayr is replacing an infeasible dispatch schedule value of the next 15min period with an adjusted dispatch schedule value that applies minimal corrections.
  • The “corrected” dispatch schedule will become the new Active Schedule, readable via API - as set out in Option 1 below
  • Example:
    • we are in q1 and it is 7 minute prior to delivery of q2
    • Your projected State of Energy is at 19MWh at the start of q2
    • Your upper SoC boundary is 100% with a maximum State of Energy available of 20MWh
    • You scheduled a charge of 10MW for q2
    • That scheduled charge would bring the asset to 21.5MWh, which would correspond to an SoC of 107.5% → which is above the SoC limit of 100%
    • The re-validation process would recognise that the schedule would lead to an SoC above the upper SoC boundary and correct the scheduled power in the minimal possible way: from 10MW charge down to 4MW charge over in q2
    • 4MW would bring the asset exactly to 20MWh SoE and thereby to the upper SoC boundary of 100% Image 37
Correction process
  1. Option: no active position closing
    • terralayr corrects the schedule in the most minimal way possible
    • the customer can access information on the corrected schedule via API
    • terralayr nominates (and customer counter-nominates) that corrected schedule
    • the customer has two options
      1. close trading positions to make them align with the corrected, nominated schedule, and avoid imbalance
      2. leave the schedule as it is, but face an imbalance between terralayr’s nominations and the trading positions Example:
    • picking up the example from above, your schedule has been corrected from 10MW to 4MW
    • we are 7 minute before delivery and your algo just receives feedback from our API that a schedule correction has taken place and that terralayr will nominate 4MW charge for q2
    • now you could either correct your trading positions from 10MW to 4MW or you could accept the imbalance
  2. Option: active position closing [vBA client solution]
    • terralayr corrects the schedule in the most minimal way possible
    • terralayr does however nominate the original uncorrected schedule, which is in line with the customers trading positions
    • in order to have no imbalance in terralayr’s balancing group, terralayr closes the position of the correction via a service provider
    • the cost or benefit from this position will be billed to the customer Example:
    • picking up the example from above, your schedule has been corrected from 10MW to 4MW charge in q2
    • terralayr will however nominate 10MW, and you also leave your trading position at 10MW
    • we are 7 minute before delivery and terralayr now (via a service provider) takes a 6MW sell position on the intraday markets
    • this position assures, that
      • the balancing group is equaled out (the deviation between the scheduled 4MW charge and the nominated 10MW charge is taken care of via selling the excess energy again on the intraday markets)
      • your nominations and terralayr’s nominations are also equaled out
Note: Main difference between option 1 and option 2: In option 1, the customer can choose to either close the trading position or accepting an imbalance. In option 2 terralayr will always close a trading position on its own and the customer will never run into an imbalance; in turn customer will not have to get active + can ensure to avoid imbalances

4. Adjustments after schedule validation (Later than 7min before delivery start but before gate-closure) - (strict)

  • After the 7 minute mark has surpassed, the once “soft” validation (> 7min) turn into a “hard” validation, based on the same criteria as within the 7min validation, to maintain flexibility to update dispatch schedules, without losing their correctness as validated at 7min, part. regarding hard A.S. boundaries. A schedule which does not adhere to the validation criteria later than 7minutes before delivery (i.e. after the re-validation and correction) will be rejected. Image 38

Exemplary timeline of re-validation, correction and adjustments after schedule validation

  • This visual of the timeline set out above already includes most of the reasons for invalid schedules. Image 39
Disclaimer: We have deliberately chosen an early scheduling timepoint (knowing that this is not required in real usecases) to avoid confusion with the 4-quarter ahead imbalance rules from Virtual Asset Unavailabilities

3. Majority of reasons for invalid schedules

List of reasons:

4. Error Response

Current error string

At the moment the complete JSON response in an error state looks like:
<> indicates a placeholder.

Error Categories

For most of errors the error text reads "<category> error: <description>" The error categories at the moment are:
  • auth: the request failed authentication and/or authorisation - maps to 401 or 404 response
  • not found: the request was valid, but the requested object doesn’t exist - maps to 404 response
  • invalid operation: the request makes sense and the resources exist, but it fails some validation such as power limits - maps to 400 response
  • forbidden operation: the request is otherwise illegal by our business logic - maps to 403 response
  • error on the platform: a platform outage in some kind of shape occurred - maps to a 5XX response
Non-standard errors
  • Not all of these error texts are shown in full to the user, usually for data-protection reasons such as not showing the details of an authorisation failure if customer A tried to do something with a customer B resource. For most of those, the customer will just get an empty response with a 404 or 500 code as appropriate.
  • There are some ways to get an error that do not follow this pattern. Usually these are generic HTTP failures, such as:
    if you have an invalid body.
  • Other standard HTTP errors may apply, which should all be in the 4XX range when they amount to user error such as a malformed request, or the 5XX range when they amount to platform outages.

Terralayr specific validation errors

These are errors that happen when a request fails some kind of validation specific to the terralayr platform, usually amounting to an attempt to do something with a virtual-asset that does not make sense or is otherwise against the rules. They all fall into the categories of invalid or forbidden operation errors. As such, the JSON response follows the pattern above, and the HTTP code is usually 400 or 403. Examples:
  • ErrPowerPointStartTimeIsNotAQuarterOfAnHour, “instruction start time must be a quarter of an hour” → the user has sent a schedule update not aligned to the 15 minute grid.
  • ErrCannotUpdatePowerPointPastGateClosure, “cannot update instruction after gate closure” → the user has tried to send a schedule after gate closure.
  • ErrCannotUpdateNonWholesaleBlock, “cannot update schedule of non wholesale block: <block ID>” → the user has tried to schedule wholesale power on an ancillary block.
  • ErrCannotUpdateBlockOutsideOfBlockTimespan, “cannot update block outside of its timespan: update timespan <update timespam> is not fully contained within block timespan <block timespan>”: → the user sends schedule points outside the lifetime of their virtual-asset

Outlook

The current error responses just provide a string indicating what went wrong. As the API is developed we may look to add more structured information to these responses to allow clients to take programmatic action to address the issue.

5. Examples

  1. Example: SoC out of bounds Image 40
  2. Example: Power limits exceeded - initial submission Image 41
  3. Example: Power limits exceeded - external event Image 42

6. Details and footnotes

SoC projections

The SoC projection is calculated based on the following parameters:
  • Defined round-trip efficiencies for charging and discharging
  • The lastest SoC including FCR and aFRR activations
  • For SoC-forwarding activated virtual batteries, any corrections from the latest SoC reading.

Calculation of SoC projection - part of re-validation

  • At 7 minutes before delivery, the SoC projection of the next 15min period is validated against the given lower and upper SoC bounds.
  • If the SoC at the end of the following 15min period is projected to be below the lower SoC bound, the following correction is applied, with t being the following 15min period:
  • If the SoC at the end of the following 15min period is projected to be above the upper SoC bound, the following correction is applied, with t being the following 15min period:
Last modified on June 10, 2026