Limit Provenance
How did the Clearinghouse determine a limit for a given period?
To answer this question, we have to be aware of the inputs that were available. For any given period for a particular facility, these may include:
- Operator overrides
- Any Temporary AAR Exceptions applicable during that period
- One or more Segment Ratings that were provided for that period by a Ratings Provider
- Any applicable Seasonal overrides and/or Seasonal Ratings, such as when the Transmission Owner is exempt from providing AARs for the particular facility.
Taken together, we refer to this information as the provenance of the limit.
Quick Links
How TROLIE Represents Provenance
Whether you are obtaining a Real-Time or Forecast Limits Snapshot, TROLIE specifies a detailed media type that contains provenance information; these are
application/vnd.trolie.realtime-limits-detailed-snapshot.v1+json
andapplication/vnd.trolie.forecast-limits-detailed-snapshot.v1+json
, respectively.
The schema for provenance information is effectively shared between these media types. Here’s what the provenance information looks like at a high level for a given period:
1
2
3
4
5
{ // note that other fields have been elided for clarity
"proposals-considered": [],
"temporary-aar-exceptions": [],
"overrides": []
}
Note there’s no explicit indication that a particular proposal’s continuous
rating set the continuous limit or that a proposal’s emergency duration rating
was used for the emergency limit. However, this can be reconstructed by
examining the inputs, i.e., proposals-considered
, overrides
, and
temporary-aar-exceptions
. Let’s explore these three fields, starting with
proposals-considered
.
Proposals Considered
The proposals-considered
array is so-named in reference to ratings
proposals. Recall that the clearinghouse
determines a limit by examining the ratings available for a given period. Rating
Provider’s propose ratings for a given period to the Clearinghouse.
Here’s an example of a proposals-considered
entry when there is only one
Ratings Provider for the facility.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{ // several fields elided for clarity
"proposals-considered":[
{
"resource-id": "8badf00d-UTILITY-A-SEG-id", // logical segment id
"source":{
"last-updated": "2025-07-12T14:10:12-07:00",
"provider": "UTILITY-A",
"origin-id": "8badf00d-UTILITY-A-correlation-id" // from original ratings proposal message
},
"proposal-disposition": "Used",
"continuous-operating-limit": { "mva": 150 },
"emergency-operating-limits": [
{ "duration-name": "emergency",
"limit": { "mva": 165 }
}
]
}]
}
Observe that there is a resource-id
attribute of a proposals-considered
entry. This may seem redundant given that there is a resource-id
associated
with the limit itself which contains the proposals-considered
array. However,
as the example intimates, the Ratings Provider (in this case “UTILITY-A”) may
have provided a rating for just one (logical) segment of the overall
transmission facility. Therefore proposals-consider[0].resource-id
may not be
the same identifier as the resource-id
of the limit itself. On the other hand,
if proposals-consider[0].resource-id
is not provided, then it is assumed to be
the same as the limit itself.
Note: TROLIE supports facility ratings for situations where a given Ratings Provider may have multiple Ratings Obligations for a given power system resource. See Conditional Ratings and Directional Ratings.
Similarly, the source
object refers to the original Ratings Proposal message that contained
this proposal. This is exactly the same information as is contained by proposal-header.source
when submitting a forecast
or real-time proposal.
Next we have proposal-disposition
. This field is an enumeration of two values:
Used
or Rejected
. In context, this means either this proposal was
“Considered but Rejected” and so not eligible to be used by the clearinghouse
(presumably it was invalid) or it was used by the clearinghouse, though
crucially it may not have been the most limiting rating, so did not set the
limit.
Finally, we have the original ratings, i.e., the limits that were proposed. If these were most limiting, they might be reflected in the limit determined by the clearinghouse.
Scenario: Multiple Ratings Providers
There may be multiple ratings proposals for a given power system resource. This is anticipated to be the case on RC-RC interties for example, where the proposals would come from multiple Ratings Providers. Another scenario called out above is when a given Ratings Provider has multiple Ratings Obligations for given facility.
In either case, the provenance has the same structure. There’s more than one
entry in proposals-considered
for a given limit. Let’s seen an example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{ // several fields elided for clarity
"proposals-considered":[
{ "resource-id": "8badf00d-UTILITY-A-SEG-id",
"source":{
"provider": "UTILITY-A",
"origin-id": "8badf00d-UTILITY-A-correlation-id"
},
"proposal-disposition": "Used",
"continuous-operating-limit": { "mva": 150 }
},{ "resource-id": "8badf00d-UTILITY-B-SEG-id",
"source":{
"provider": "UTILITY-B",
"origin-id": "8badf00d-UTILITY-B-correlation-id"
},
"proposal-disposition": "Used",
"continuous-operating-limit": { "mva": 140 }
}
]}
This is a simple case. Without looking at any other provenance information for
this period, we might expect that UTILITY-B had the most limiting continuous
rating. Another scenario should round out our understanding of proposals-considered
.
Scenario: Rejected Proposal
It’s possible that the Clearinghouse Provider initially accepted an
on-time proposal but ultimately rejected
it during clearing. This is indicated by proposals-consider[].proposal-disposition = "Rejected"
.
Scenario: Transmission Provider Proposes a Recourse Rating
In certain situations, a Transmission Provider may be obliged to propose a recourse rating to satisfy a given Ratings Provider’s Ratings Obligation.
1
2
3
4
5
6
7
8
9
10
11
{ // several fields elided for clarity
"proposals-considered":[
{ "resource-id": "8badf00d-UTILITY-A-SEG-id", // same as above
"source":{ // but the source is different
"provider": "ISO-A",
"origin-id": "8badf00d-ISO-A-correlation-id"
},
"proposal-disposition": "Used",
"continuous-operating-limit": { "mva": 110 }
}
]}
Note that the source
is now the Transmission Provider, i.e., ISO A, and not
the owner of the Ratings Obligation associated with 8badf00d-UTILITY-A-SEG-id
,
i.e., UTILITY A. This will typically be a seasonal rating.
Temporary AAR Exceptions
However, other circumstances may result in a different static rating being used. Such is the case with Temporary AAR Exceptions.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{ // fields have been elided for clarity
"proposals-considered": [],
"temporary-aar-exceptions": [
{
"id": "https://trolie.example.com/temporary-aar-exceptions/1234",
"start-time": "2025-07-12T16:00:00-07:00",
"end-time": "2025-08-01T00:00:00-07:00", // optional
"continuous-operating-limit": { "mva": 160 },
"emergency-operating-limits": [ /* emergency limits elided */],
"source": { // optional
"origin-id": "2d8c80e8-f533-4be9-85bf-f7f81eb73d67",
"provider": "UTILITY-A",
"last-updated": "2025-07-12T16:00:00-07:00"
},
"resource": { // optional
"resource-id": "8badf00d-UTILITY-A-SEG", // segment
"alternate-identifiers": [ /* if present, must have at least one entry */]
}
}
],
"overrides": []
}
The presence of an entry in temporary-aar-exceptions
indicates that there was
an active temporary AAR exception for that period. Note that only the id
,
start-time
, and the limit values are required. The end-time
is optional to
accommodate situations where an estimate for an outage resolution is
unavailable. The source
property (if provided) would indicate what upstream
system originally created the exception, and the resource
property serves the
same function as resource-id
in proposals-considered
, i.e., it nominates the
underlying power system resource that has the exception if it is not the overall
facility.
Operator Overrides
Similar to Temporary AAR Exception, the presence of a value here indicates that an override was in place for the given period.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{ // fields have been elided for clarity
"proposals-considered": [],
"temporary-aar-exceptions": [],
"overrides": [
{
"continuous-operating-limit": {
"mva": 160
},
"emergency-operating-limits": [ /* elided for clarity */ ],
"reason": "TOI 20250701-01",
"start-time": "2025-07-12T16:00:00-07:00",
"end-time": "2025-09-12T16:00:00-07:00", // optional
"id": "ems-operator-override-id-1", // optional
"resource": { "resource-id": "8badf00d-UTILITY-A-SEG" }, // optional
"source": { // optional
"last-updated": "2025-07-12T14:10:12-07:00",
"provider": "ISO-A",
"origin-id": "8badf00d-ISO-A-outage-id"
}
}
]
}
Typically only a single override would be present if at all, but it’s possible that a jointly-owned facility might have concurrent overrides on multiple segments, for example. Most of the provenance information for the override is optional; the primary use case for that info is debugging and troubleshooting.