Reconciliation with Limit Snapshots

A central concept in TROLIE is the Clearinghouse. Ratings Providers propose ratings, and the Clearinghouse Provider determines operating limits: ratings in, limits out.

Reconciliation Diagram

Crucially, the limits determined by the Clearinghouse Provider may differ from the ratings proposed by any individual Ratings Provider. In this article we will briefly describe the API affordances that support reconciliation of limits (produced by the Clearinghouse) with the ratings proposed by the Ratings Provider. Our example with focus on real-time ratings, but the basic approach applies to forecast ratings as well.

We have discussed Real-Time Rating Submittal and Querying in-use Real-Time Limits elsewhere. Here we will focus on making use of the provenance information in application/vnd.trolie.realtime-limits-detailed-snapshot.v1+json. For more details on the different response messages available in TROLIE, see the article on Media Types.

Request

1
2
curl -H "Accept: application/vnd.trolie.realtime-limits-detailed-snapshot.v1+json" \
  $TROLIE_SERVER_URL/limits/realtime-snapshot?monitoring-set=my-monitoring-set

Response

Some headers are elided for clarity, but a successful response will start with:

1
2
HTTP/1.1 200 OK
Content-Type: application/vnd.trolie.realtime-limits-detailed-snapshot.v1+json

Here’s an example of the body of the response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
{
  "snapshot-header": {
    "snapshot-provenance": {
      "provider": "X-AMPL-RC",
      "last-updated": "2023-07-12T15:05:43.044267100-07:00",
      "origin-id": "//trolie.example.com/snapshots/2024-08-05T11%3a00%3a00-07%3a00"
    },
    "default-emergency-durations": [
      {
        "name": "lte",
        "duration-minutes": 240
      },
      {
        "name": "ste",
        "duration-minutes": 30
      },
      {
        "name": "dal",
        "duration-minutes": 5
      }
    ],
    "power-system-resources": [
      {
        "resource-id": "8badf00d",
        "alternate-identifiers": [
          {
            "name": "segmentX",
            "authority": "TO-NERC-ID"
          },
          {
            "name": "LINE1 SEG-X",
            "authority": "RC-NERC-ID",
            "mrid": "8badf00d"
          }
        ]
      }
    ]
  },
  "limits": [
    {
      "resource-id": "8badf00d",
      "period-start":"2025-07-12T15:00:00-07:00",
      "period-end":"2025-07-12T16:00:00-07:00",
      "proposals-considered": [
        {
          "source":{
            "last-updated": "2025-07-12T14:10:12-07:00",
            "provider": "UTILITY-A"
          },
          "period-start":"2025-07-12T15:00:00-07:00",
          "period-end":"2025-07-12T16:00:00-07:00",
          "proposal-disposition": "Used",
          "continuous-operating-limit": {
                "mva": 150
          },
          "emergency-operating-limits": [
            {
              "duration-name": "lte",
              "limit": {
                "mva": 165
              }
            },
            {
              "duration-name": "ste",
              "limit": {
                "mva": 170
              }
            },
            {
              "duration-name": "dal",
              "limit": {
                "mva": 180
              }
            }
          ]
        },{
          "source":{
            "last-updated": "2025-07-12T14:10:12-07:00",
            "provider": "UTILITY-B"
          },
          "period-start":"2025-07-12T15:00:00-07:00",
          "period-end":"2025-07-12T16:00:00-07:00",
          "proposal-disposition": "Used",
          "continuous-operating-limit": {
                "mva": 150
          },
          "emergency-operating-limits": [
            {
              "duration-name": "lte",
              "limit": {
                "mva": 166
              }
            },
            {
              "duration-name": "ste",
              "limit": {
                "mva": 171
              }
            },
            {
              "duration-name": "dal",
              "limit": {
                "mva": 175
              }
            }
          ]
        }
      ],
      "temporary-aar-exceptions": [
        "2d8c80e8-f533-4be9-85bf-f7f81eb73d67"
      ],
      "override-reason": "Any reason entered by the operator for an override.",
      "additional-data": {
        "vendor-specific-data": {}
      },
      "continuous-operating-limit": {
        "mva": 160
      },
      "emergency-operating-limits": [
        {
          "duration-name": "lte",
          "limit": {
            "mva": 165
          }
        },
        {
          "duration-name": "ste",
          "limit": {
            "mva": 170
          }
        },
        {
          "duration-name": "dal",
          "limit": {
            "mva": 175
          }
        }
      ]
    }
  ]
}

Discussion

The proposals-considered array contains the salient details of the ratings proposals that were considered. Note that in this example the continuous, “lte”, and “ste” limits were determined by UTILITY-A but the “dal” limit was set by UTILITY-B.