Explain one level of the forecast pyramid
kyrodata_explain_pyramid_levelExplains the pyramid's arithmetic for one commodity and horizon: the seven levels side by side (label, push %, weight share, confidence, contribution %) and, for the levels that did not enter, the reason with its ruler (hit rate vs base rate, number of origins). horizon fixes the month and shows the seven levels; levelKey flips the cut, following one level across all four horizons instead. This is the drill-down of kyrodata_get_hub_summary — the 'por quê?' behind a verdict that tool already gave. A question about the physical harvest rather than the arithmetic belongs to kyrodata_get_climate_reading. Credit class: level (any level tool in a 60-second session = 2 credits; a session is capped at 3).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| hub | Yes | Which commodity hub to read. | |
| horizon | Yes | How far ahead the forecast looks: 1, 3, 6 or 12 months from the last published month. | |
| levelKey | No | One level of the pyramid. Given, the answer follows that level across all four horizons instead of showing the seven side by side. | |
| response_format | No | How much of the answer to return. `concise` (the default) carries the headline figures; `detailed` adds the row-level series behind them and counts against the export quota. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Raw numbers behind the text. | |
| memo | Yes | true = identical call in the last 10 min, served again: 0 credits. | |
| rows | No | Table rows; detailed only, capped per tool. | |
| error | No | Failure message when status = error. | |
| links | Yes | screen = product page with these numbers. | |
| denied | No | When status = denied: reason, feature, upgradeUrl. | |
| status | Yes | ok = data; denied = plan; error = failure or timeout. | |
| window | No | Like-for-like window: from, to (YYYY-MM), label, months, crossesSeason. | |
| caveats | Yes | Reading caveats. | |
| credits | Yes | charged, balance (null = unlimited), resetAt, session {charged, endsAt} of the 60-s billing session. | |
| sources | Yes | Per source: label, nameable, asOf. | |
| dataVersion | Yes | Identity of the data that answered. |