Renaud Richardet - Blog

Four quarter-hours of Swiss imbalance

A calm Tuesday morning, a Wednesday when a thunderstorm line took 1.3 GW of forecast solar away, a sunny Saturday that cost 6,885 EUR for every MWh of surplus, and a February morning when manual reserve was bought at up to 10,594 EUR/MWh. Swissgrid publishes enough to reconstruct each of them, down to the second for the first one.

I am learning to forecast the imbalance of the Swiss control area, and I know the theory: balance groups (the parties that schedule generation and consumption with Swissgrid and are billed for their deviations) trade and schedule, reality differs, Swissgrid buys reserves to close the gap and bills the difference as imbalance energy. What I did not have was a feel for what one quarter-hour of it looks like in numbers. So I took the balancing data Swissgrid publishes (every 15 minutes since November 2024, every 5 minutes and every second for the last few weeks, which I archive) and picked four quarter-hours of 2026: one ordinary, and the three extremes of the year by size of imbalance, by lowest price and by highest price. Then I pulled on every thread the data offered.

Times are Swiss local time. The first thing the data taught me is how to read it, so that comes first.

How to read one quarter-hour

The imbalance settlement period in Switzerland is 15 minutes. For every quarter-hour, Swissgrid's balance file gives a Total System Imbalance (TSI, negative when the control area is short of power, positive when it is long), the reserves it activated to cover it, and one imbalance price. The reserves come in three kinds, and three of the four quarter-hours below use all three.

What the three do not cover remains as the frequency restoration control error (FRCE), the mean control error left over the quarter-hour, which also contains the controller's frequency-bias term. This gives an identity that holds exactly, on all 27,740 quarter-hours of 2026 so far:

TSI = -(aFRR+ + aFRR- + mFRR+ + mFRR- + netting import + netting export) - FRCE

So the published imbalance is, by definition, Swissgrid's control demand: what it did about the imbalance plus what remained. It is not the sum of the balance groups' deviations, which is metered and billed but not published here; the two differ by Switzerland's frequency support to the rest of Europe (the frequency term inside the control error, a few tens of MW at an ordinary deviation) and by Swissgrid's own items such as grid losses. When I say a quarter-hour was 1,072 MW short, I mean that 1,072 MW of corrective action was needed and delivered.

The price column is in euro-cents per kWh, which I only noticed when ElCom's weekly report mentioned a price "near -7,000 EUR/MWh" on a Saturday where my series said -688. Everything below is in EUR/MWh. Since 1 January 2026 there is a single imbalance price per quarter-hour. Swissgrid's notice points to chapter 7 of its General Balance Group Provisions, which I did not find online; the only description I found is a webinar slide from the VSE (the Swiss electricity industry association) with a fallback to the day-ahead price when no activation price exists. So I reverse-engineered the rule from the data: in 99.6% of quarter-hours, the imbalance price equals the most expensive volume-weighted average activation price among aFRR and mFRR, on the side the system was on (the higher of the two upward averages when short, the lower of the two downward averages when long). A balance group that was short when the system was short pays that price per MWh; one that was long when the system was short receives it. The price is set by the reserve that happened to be the most expensive to activate, which is sometimes the automatic one and sometimes the manual one. That difference turns out to be the story of two of the four quarter-hours.

Where the four sit in 2026

Count of quarter-hours by Total System Imbalance, 50 MW bins, 1 Jan to 16 Oct 2026 (27,740 quarter-hours)

The year runs slightly short: mean TSI MW, median absolute TSI MW, 55% of quarter-hours below zero. The deficit of 1 July is about 190 MW beyond the worst quarter-hour of any other day. Some kind of manual reserve runs in 71% of all quarter-hours.

A. Business as usual: Tuesday 6 October 2026, 10:00

TSI -44 MW. Price 281 EUR/MWh. A weekday mid-morning, no manual reserve, the 2026 median in size.

A quarter-hour this ordinary still has a lot going on. The system was 44 MW short. Automatic reserve supplied 30 MW of it, imbalance netting imported 21 MW from a long neighbour, 4 MW of downward aFRR (a quarter-hour average) ran in the minutes when the swing inside the quarter-hour went the other way, which the 1-second data below shows, and a residual error of about 1 MW net stayed. Nobody called manual reserve. Swissgrid paid about 2,000 EUR net for the aFRR energy (the downward MW were at a positive price, so their supplier paid Swissgrid). And yet the imbalance price was 281 EUR/MWh, when the day-ahead price for that hour was 185: the aFRR bids that were activated averaged 281, and that average is the price. The settlement volume (the imbalance times a quarter-hour times the price), 44 MW times 0.25 h times 281, is about 3,100 EUR. That is a lower bound on what a median quarter-hour costs the balance groups on the wrong side: their deviations sum to the TSI only net of the groups that were on the right side, who are paid at the same price.

The day: Tuesday 6 October

Per quarter-hour: imbalance, what covered it, and the price. Highlighted: 10:00-10:15.

Imbalance and reserves in MW (mean over the quarter-hour), price in EUR/MWh. Upward reserves plotted above zero, downward below. Source: Swissgrid control-area balance file.

The day itself was unremarkable: mean absolute imbalance 67 MW, the biggest excursion 321 MW at 19:00, manual reserve in 64 of 96 quarter-hours (slightly less than the yearly 71%), price between -289 and 651 EUR/MWh. The imbalance changes sign about every hour. Nothing in it would make the news, and nothing in it would have been easy to forecast either.

Inside the quarter-hour: 09:30 to 10:45, second by second

Shortfall (-TSI, 5-minute values) and automatic reserve demand (1-second values), MW. Highlighted: 10:00-10:15.

Positive values mean the system is short and aFRR regulates upward. The 5-minute TSI is Swissgrid's 5-minute file; the 1-second series is the "covered aFRR demand" file. Both in UTC in the source, shown in local time.

The 15-minute mean hides most of it. Within 10:00-10:15 the aFRR demand dipped to -39 MW half a minute after 10:00, climbed to +106 MW at 10:05, and was back at -32 MW by 10:13. Swissgrid's 5-minute values show the same shape in three steps (56, 46 and 29 MW short). The 15-minute number, 44 MW, is a mean over a swing of 145 MW. Anyone forecasting the quarter-hour mean is forecasting the average of a sawtooth.

And it is a sawtooth in general, not just here. Over the 32 days of 1-second data I have (15 September to 16 October), I averaged the aFRR demand by minute within the quarter-hour. In quarter-hours without any manual reserve, aFRR runs to MW upward in minutes 1 to 6 and MW downward in minutes 13 and 14, on the average over the day. The hour boundary is not special: the pattern is quarter-hourly, with a stronger half-hour harmonic than an hourly one. When a manual block of 150 MW or more starts at the quarter-hour, the aFRR starts at +44 MW and decays while the block ramps in. And the tilt is additive: quarter-hours that are short, long or balanced on average all carry the same within-quarter-hour shape on top of their mean.

The day average hides that the sign depends on the time of day, and that is the explanation. Between 09:00 and 12:00 and again between 21:00 and 24:00 the swing is strong, 20 to 30 MW up in minutes 2 to 6 and 35 to 50 MW down in the last two minutes. Between 15:00 and 18:00 it is reversed: 20 to 30 MW down in minutes 2 to 6, 25 to 30 MW up around minute 10. Between 03:00 and 06:00 there is almost nothing. This is consistent with the block schedule against a smooth reality, at the quarter-hour: production and consumption are scheduled as 15-minute averages, while the sun and the load move continuously inside the block. While solar rises in the morning, or load falls in the evening and after midnight, the net position (production minus consumption) at the start of the block is below its block average, so the system is short early and long late. While solar falls in the afternoon, the net position starts above the block average, so the tilt flips. In the small hours nothing moves and there is no tilt. The production data points the same way: when Swiss production steps up by more than 300 MW at a boundary, the quarter-hour runs long early and short late; when it steps down by more than 300 MW, the usual tilt nearly doubles (production data runs to 30 September, so this rests on 16 days of overlap). Generation and import schedules step at the same boundaries and are part of the same mechanism; what the data cannot do is split the swing between sun, load and schedules.

The whole continent steps its blocks at the same moment, so the European grid frequency carries the same sawtooth, the well-known deterministic frequency deviation: on the same 32 days, 6 mHz below 50 Hz in the first minute of each quarter-hour, 5 mHz above in the last two (energy-charts.info, 1-second measurement in Freiburg; averaged over all quarter-hours of the day, which dilutes the larger deviations at the morning and evening full hours). The Swiss controller reacts to frequency through its bias factor, and a regression of the within-quarter-hour aFRR on the within-quarter-hour frequency gives MW/Hz, in the range one expects for Switzerland's share of the European bias. The slope is confounded, though: Swiss blocks and European blocks step at the same instant, so the Swiss imbalance and the frequency move together whether or not the controller reacts. A bias of that size times a 6 mHz deviation is about 3 MW, against a swing of 25 to 30 MW: the frequency bias accounts for at most a fifth of the Swiss swing, and the rest is Switzerland's own blocks against its own sun and load.

The quarter-hour sawtooth

Mean aFRR demand by minute within the quarter-hour, MW; the same by time of day, as deviation from the quarter-hour mean; and the Continental Europe frequency deviation, mHz. 15 Sep to 16 Oct 2026.

"No mFRR": quarter-hours with no manual reserve at all ( of ). "mFRR+ block of 150 MW or more": quarter-hours. Minute 0 is the first minute after the quarter-hour boundary. By time of day: quarter-hours without manual reserve, each series the mean deviation from its own quarter-hour mean, local hours. Frequency: Fraunhofer ISE measurement in Freiburg, 1-second values, mean deviation from 50 Hz by minute within the quarter-hour over the same days.

B. The deepest deficit: Wednesday 1 July 2026, 11:15

TSI -1,072 MW, the largest of 2026. Price 865 EUR/MWh, then 1,383 in the next quarter-hour.

The end of June 2026 brought a record 39.0 degrees in Basel, in the third-warmest June since 1864. A cold front crossed on the 29th, and on Wednesday morning, 1 July, SRF Meteo described "a strong thunderstorm line across the Mittelland". Both Beznau reactors had been off since 26 June because the Aare was too warm to cool them; the remaining nuclear output ran flat at 2.17 GW all morning (Beznau 2 came back in the evening), so no plant tripped. The day-ahead solar forecast for Switzerland (the one Swissgrid reports to ENTSO-E) had 2.0 GW of solar at 11:00 and 2.4 GW at 12:00. The estimate of what actually came out of the panels: 0.7 GW and 1.5 GW. By 13:00 the storms had passed and the sun was back: 3.3 GW against 2.7 forecast, then 4.4 against 3.1.

Solar forecast against solar actual, and the imbalance

Hourly day-ahead forecast and estimated actual solar production in Switzerland, MW; quarter-hourly TSI, MW

Solar series: energy-charts.info (Fraunhofer ISE, data ENTSO-E), hourly, drawn as steps. The "actual" is an estimate, not metered. TSI: Swissgrid.

The imbalance follows the forecast error hour by hour, including the sign flip. The system had been short since 07:15, with a first wave to -424 MW at 08:45. Then -586 MW at 10:00, a plateau, the drop to -1,072 MW at 11:15, followed by -1,049 and -1,067. At 12:45 the sign flips: +316, +348, a dip to +268, then +443 and +792 MW at 13:45 as the sun returned faster than the forecast had it. Swissgrid does not publish imbalance by cause, so this is inference, not a reported fact. But I could find no other candidate: no plant trip, no interconnector event, no market-coupling incident, and the day-ahead prices were an unremarkable 100 to 120 EUR/MWh.

The day: Wednesday 1 July

Per quarter-hour: imbalance, what covered it, and the price. Highlighted: 11:15-11:30.

Same layout as the first day chart. Note the price scale.

At 11:15 the 1,072 MW were covered like this: 645 MW of manual reserve (377 scheduled, 268 direct), 258 MW of automatic reserve and 179 MW of netting imports from neighbours, 1,080 MW in all, 8 MW more than the deficit (the control error carries the over-correction). Swiss production had fallen from 10.6 GW at 08:15 to 7.6 GW at 10:45 while consumption rose from 7.5 to 8.5 GW by 11:15, and the country's net position swung from exporting 3.1 GW to importing 1.1 GW. Suppliers noticed: the volume of upward manual bids on offer grew from 1.3 GW at 07:00 to 2.7 GW at 10:15, as hydro operators added bids into a market that was clearly going to need them.

The manual reserve ladder at 11:15

Upward mFRR bids for 11:15-11:30 sorted by price: cumulative MW on offer against bid price, EUR/MWh (log scale above 100). Filled: activated.

Source: Swissgrid TRE results file for July 2026 (one row per bid and quarter-hour). Scheduled (sa) and direct (da) products combined, sorted together.

Here is the thing that surprised me most. The manual reserve was cheap: 645 MW were bought with a marginal bid of 199 EUR/MWh and an average of 171, and 1.9 GW more sat unused on the ladder, 620 MW of it below 300 EUR/MWh (and 130 MW of it parked at the 15,000 EUR/MWh maximum, which is not a real offer). The automatic reserve was not: the 258 MW of aFRR that ran in the same quarter-hour averaged 865 EUR/MWh, and the 414 MW in the next one averaged 1,383, with the aFRR ladder itself nearly used up (414 of 564 MW on offer at 11:30, 362 of 385 at 11:45). Under the single-price rule the imbalance price is the more expensive of the two averages, so the balance groups short in 11:30-11:45 paid 1,383 EUR/MWh, when a day-ahead MWh cost 114 and a manual-reserve MWh cost 170. Swissgrid's own bill for that quarter-hour was about 143,000 EUR for the aFRR energy and 20,000 EUR for the mFRR energy; its net settlement receipt at the imbalance price (1,049 MW for a quarter-hour at 1,383) was about 363,000 EUR.

One discrepancy I cannot resolve from public data: ElCom's weekly report describes the same morning with a price "above 1,800 EUR/MWh", from scarcity surcharges on the price-setting aFRR price of nearly 1,400. Swissgrid's published price file has 1,383 for that quarter-hour and nothing higher that day, and the scarcity component Swissgrid describes (10 EUR/MWh beyond an imbalance of -1,200 or +1,000 MW) was not reached at -1,072 MW.

Why aFRR was so expensive is a separate question. The aFRR energy market has few suppliers; ElCom has capped the bids tied to contracted aFRR capacity at 1,000 EUR/MWh since March 2025, but the volume beyond that stack is uncapped up to the platform's 15,000 EUR/MWh maximum, which is where averages above 1,000 come from. For this page the point is simpler: the price a balance group pays for being short is not the cost of the reserve that covered it. It is the cost of the most expensive kind of reserve that happened to run.

The afternoon mirrored the morning. At 13:45 the system was 792 MW long, at 14:15 Swissgrid ran 648 MW of downward manual reserve, and the price was -2,676 EUR/MWh: a balance group long by 1 MWh in that quarter-hour paid 2,676 EUR for the privilege.

C. The most negative price: Saturday 28 March 2026, 10:45

TSI +455 MW. Price -6,885 EUR/MWh, the lowest of 2026 so far.

The last week of March 2026 brought winter back: more than 50 cm of fresh snow in places on 26 and 27 March, then a cold, dry, sunny Saturday. Gösgen had returned to the grid on 23 March after ten months, so nuclear was at 2.57 GW. Day-ahead prices for Switzerland were 46 EUR/MWh at 10:00 and 23 at 12:00, Germany fell to 5 to 10 from 10:30, nothing negative anywhere. The day-ahead solar forecast for Switzerland peaked at 1.7 GW. The estimated actual peaked at 4.2 GW, 2.4 times the forecast, at 12:00. A sunny late-March Saturday with snow on the ground and a forecast made for a greyer day.

Solar forecast against solar actual, and the imbalance

Hourly day-ahead forecast and estimated actual solar production in Switzerland, MW; quarter-hourly TSI, MW

Same sources as for 1 July.

The surplus built from 08:30 (+334, +379 MW), eased, and came back to +455 MW at 10:45. Being long is the harder side on a weekend. Only 319 MW of downward aFRR were contracted for that Saturday (weekdays have more), and at 10:15 the controller was using 297 of them, 93%. So the operators called downward manual reserve, and there the Saturday ladder was thin too: 518 MW on offer in total, when a weekend late morning in February to April typically has 800 to 900. Swissgrid activated 429 of the 518 MW, 83% of the whole national downward manual reserve. It is the only quarter-hour of 2026 where more than 80% of the offered downward mFRR was called.

The downward manual reserve ladder at 10:45

Downward mFRR bids for 10:45-11:00 sorted by price: cumulative MW on offer against bid price, EUR/MWh (symmetric log scale beyond 100). Filled: activated.

A negative price means Swissgrid pays the supplier to absorb energy (a pump, or a generator that throttles down and forgoes its market revenue). Source: Swissgrid TRE results, March 2026.

The first 100 MW of downward bids were priced down to -1,800 EUR/MWh, paid to the supplier. The 200th MW, -5,800. The 300th, -11,300. The marginal activated bid was at -14,899 EUR/MWh, and the ladder ended at -15,000, the platform's maximum bid price. The volume-weighted average of the 429 MW was -6,885 EUR/MWh, and that is the imbalance price. Swissgrid paid about 739,000 EUR for one quarter-hour of downward manual energy (ElCom's weekly chart of activation cost per 15 minutes peaks at about that value, and its text speaks of "the activation of almost all TRE bids on Saturday"). On the other side of the settlement, every balance group that was long in that quarter-hour, which on a sunny Saturday is every balance group with more solar than it had scheduled, paid 6,885 EUR for each surplus MWh. Swissgrid's net settlement receipt, 455 MW for a quarter-hour at that price, is about 783,000 EUR.

The day: Saturday 28 March

Per quarter-hour: imbalance, what covered it, and the price. Highlighted: 10:45-11:00.

Same layout as before. The price panel is dominated by six quarter-hours between 10:30 and 11:45.

Two things stand out in the day view. First, the expensive quarter-hours are not the biggest surpluses: 10:15 (+372 MW) cost -541, 10:45 (+455 MW) cost -6,885, and 11:15 (+166 MW) still cost -2,348, because the manual blocks called for the earlier quarter-hours were still running and still expensive. Second, Switzerland was a net importer of 2.9 GW from 09:00 to 10:45 (4.5 GW scheduled in from France and Germany at single-digit prices, 1.6 GW of it passing on to Italy), while its own hydro sat at a few hundred MW and its own solar overflowed. The schedules were made the day before, on a solar forecast that missed by 2.4 GW. The imbalance market is where that difference landed.

D. The most positive price: Wednesday 18 February 2026, 08:00

TSI -419 MW. Price 1,719 EUR/MWh, the highest of 2026 so far.

A winter weekday morning. Central Europe was at its morning price peak: 161 EUR/MWh in Switzerland for the 08:00 hour, 206 in Germany, where wind was heading for its daily low. Gösgen was still off (since May 2025), Swiss reservoirs were at 29%, and Swiss production ramped from 4.4 GW at 05:00 to 10.8 GW at 08:00 as the hydro plants started for the peak, exporting 1.4 GW net (the schedules: 4.0 GW to Germany, 2.4 GW in from France, 1.1 GW in from Italy). Nothing broke that morning; I found no trip, no coupling incident, no grid event. What the data shows is an escalation.

Quarter-hourTSI, MWaFRR up, MWaFRR down, MWmFRR up activated, MWmFRR up on offer, MWNetting, MWPrice, EUR/MWh

From 07:15 the system was 360, 451, 491 MW short, and the automatic reserve was carrying 283, 261, then 102 MW of it, out of about 540 MW on offer. The operators escalated manual reserve: 53 MW for 07:30, 221 for 07:45, 657 for 08:00. But 08:00 on 18 February had the thinnest upward manual ladder of any February weekday morning: 891 MW had been bid (112 scheduled, 779 direct), 89 MW of them withdrawn as "no longer available", leaving 802 MW, against a median of 2,116 at that hour that month. My reading, not a sourced fact: the hydro capacity that would normally offer reserve was busy selling into a 161 EUR/MWh day-ahead peak. Swissgrid bought 657 of the 802 MW still available, 82% of the ladder, with the last bids at 9,998 and 10,594 EUR/MWh. ElCom's weekly report notes the same morning: two large swings "during a small TRE+ offer at very high activation prices of over 1,700 EUR/MWh".

The upward manual reserve ladder at 08:00

Upward mFRR bids for 08:00-08:15 sorted by price: cumulative MW bid against bid price, EUR/MWh (log scale above 100). Filled: activated. Faint: bids marked "no longer available".

Source: Swissgrid TRE results, February 2026. Sixteen bids (89 MW) were marked "nicht mehr verfügbar" and skipped, twelve of them priced between 171 and 599 EUR/MWh.

By the time the 657 MW block ran, the deficit itself had eased to 419 MW. The block overshot by about 230 MW, partly by design (a TSO over-orders manual reserve to free the automatic reserve, which had been carrying up to 283 of its 540 MW), and the rest of the system absorbed the overshoot: the automatic reserve regulated 101 MW downward (for the first time since 07:15), and netting exported 131 MW to neighbours. The identity still holds: 657 up, 101 down, 131 exported, 6 MW of over-correction in the control error, equals 419 short. The volume-weighted average of the 657 MW was 1,719 EUR/MWh, so that was the imbalance price. Cost to Swissgrid: about 281,000 EUR net for the quarter-hour of reserve energy. Its net settlement receipt at the imbalance price: about 180,000 EUR. Of the four quarter-hours this is the only one where the reserve cost more than the imbalance price brought in.

This pattern of a manual block running against the direction of the remaining error is not rare. In 2026 so far, 194 of the 1,220 quarter-hours with a deficit beyond 200 MW have more downward than upward automatic reserve running: the manual block arrived, and the controller was pulling back. Manual reserve is ordered a quarter-hour ahead on an expectation of what the deficit will be; when the deficit moves faster than the order, the automatic reserve absorbs the difference in the other direction.

The day: Wednesday 18 February

Per quarter-hour: imbalance, what covered it, and the price. Highlighted: 08:00-08:15.

Same layout as before.

The four side by side

What covered the imbalance

Mean MW over the quarter-hour, by kind of correction. Bars to the right cover a deficit, bars to the left cover a surplus.

Netting = IGCC imbalance netting with neighbouring TSOs. Residual = FRCE, net of its two signed columns. In each row the segments sum to the TSI with the sign reversed.
Quarter-hourTSI, MWPrice, EUR/MWhSet byDay-ahead, EUR/MWhReserve energy bought, EURNet settlement receipt, EURReceipt minus reserve, EUR

Reserve energy bought: activated MW times the average activation price times a quarter-hour, aFRR plus mFRR, net of downward energy sold at a positive price. Net settlement receipt: |TSI| times a quarter-hour times the imbalance price, what Swissgrid collects from the balance groups net; their deviations always sum to the TSI, so with groups on both sides the wrong side pays more than this and the right side receives the difference. The B row is the 11:15 quarter-hour; the text above also quotes 11:30. Over 2026 to 11 October, the net settlement receipts come to 80 MEUR against 67 MEUR of reserve energy; capacity payments and the netting settlement are outside both, and the balance flows into the ancillary-services tariff. Day-ahead: EPEX Swiss hourly price from energy-charts.info.

What I take from this

The imbalance is a residual of forecasts. In both big events the cause I could find was a solar forecast that missed by 1.3 to 2.4 GW, the first under a thunderstorm line, the second on a bright day after snow. That is the thing to forecast: not the weather, but the error of the forecast everybody scheduled on.

The price is not the imbalance. The deepest deficit of the year (-1,072 MW) was priced at 865 EUR/MWh; a deficit of -419 MW six months earlier was priced at 1,719, and a surplus of +455 at -6,885. The price is the average bid of the most expensive kind of reserve that ran, and that depends on how thin the ladder was that morning, and on whether the automatic or the manual reserve happened to be the expensive one. A model of the imbalance price needs the reserve ladders as much as the imbalance.

Weekends and peaks are thin. The two extreme prices happened when 82% and 83% of the manual ladder still available was activated. My reading of the two mornings: the ladder is thin when the plants that could offer reserve are busy elsewhere, selling into a 161 EUR/MWh morning peak, or idle on a Saturday with nothing worth pumping for.

The quarter-hour mean hides a sawtooth. Inside an ordinary quarter-hour the automatic reserve swings over 100 MW with a shape that repeats every fifteen minutes: the 15-minute block schedule against a sun and a load that move continuously, short early and long late while solar rises or load falls, the reverse while solar falls. Europe's frequency carries the same deviation, and at most a fifth of the Swiss swing is the controller reacting to it. The 1-second data exists for 12 days at a time before Swissgrid overwrites it. I keep it.

Sources and method

Files, conventions and checks
  • Swissgrid, current grid data: control-area balance (15 min, UTC), total system imbalance (5 min, UTC, overwritten every quarter-hour), covered aFRR demand (1 s, UTC, 12 days rolling), Ausgleichsenergie und Regelenergie (15 min, local time; offered and activated volumes and average prices), TRE results (every mFRR bid per quarter-hour, with status), EnergieUebersichtCH (production, consumption, cross-border flows, 15 min, local time). I archive the overwritten files with a poller since 27 September 2026.
  • Swissgrid, prices for balance energy: monthly XML files in euro-cents per kWh. They match the balance file's price column to the last digit on all 23,324 quarter-hours from January to August 2026, which is how I found the unit.
  • energy-charts.info (Fraunhofer ISE, CC BY 4.0): hourly Swiss solar (estimated actual and ENTSO-E day-ahead forecast), load, cross-border balance, hydro, nuclear, and day-ahead prices, for the four days; and the 1-second grid frequency of Continental Europe measured in Freiburg, 15 September to 16 October 2026.
  • ElCom weekly market reports (Marktbericht) of 24 February, 24 and 31 March, 7 April, 30 June, 7 July and 13 October 2026; MeteoSwiss climate bulletins for March and June 2026; SRF reports on the 1 July storms and the Gösgen restart; Axpo release on the Beznau shutdown of 26 June 2026; ENSI incident list (nothing between 15 June and 15 July); EPEX and NEMO committee notices (no decoupling on any of the three days).
  • Time zones were verified by matching activated aFRR across the UTC and local-time files (correlation 1.000 in January and April). Sign conventions from the 2024 and 2025 file headers ("positive = long, negative = short").
  • The identity TSI = -(activations) - FRCE holds to the rounding on every quarter-hour of 2026. The single-price rule (most expensive average activation price on the imbalance side) reproduces the published price to 0.1 EUR/MWh on 27,139 of 27,260 quarter-hours with reserve data, using the averages of the Ausgleichsenergie file. Of the 121 exceptions, 7 have no activation price on the imbalance side (3 of them equal the day-ahead price, the fallback the VSE slide describes), and most of the rest are extreme quarter-hours where the published price sits 1 to 2% inside the file's mFRR average: there the small PV-TRE product (a downward manual product for photovoltaic plants, which the file's average leaves out) enters the price, as the 28 March bid ladder reproduces exactly. The energy-weighted average Swissgrid uses cannot be rebuilt from the bid ladders alone, so a few dozen quarter-hours stay unexplained. The scarcity component Swissgrid describes (plus or minus 10 EUR/MWh beyond -1,200 and +1,000 MW) was never triggered in 2026.
  • Open: a quantitative split of the within-quarter-hour sawtooth between solar, load and the frequency bias; the 121 price exceptions; why the 18 February ladder was so thin (25 February had an 853 MW morning too).
Published on October 17th, 2026