Balancing market price forecasts
Background
Besides the day-ahead spot market, batteries can earn revenue on Japan's balancing market, where transmission system operators procure reserve capacity to keep supply and demand balanced. For bidding, Tensor Cloud computes an ideal offer price for each slot (see Offer price). It also forecasts clearing prices for every grid area and reserve product, which are kept for reference and are not used for bidding.
Each day Tensor Cloud produces a 14-day price forecast, in 30-minute slots, for:
- 9 grid areas: Hokkaido, Tohoku, Tokyo, Chubu, Hokuriku, Kansai, Chugoku, Shikoku, and Kyushu.
- 6 reserve products: primary reserve (FCR), offered both online (via a dedicated line) and offline (via the simplified command system); secondary reserve ① and ②; and tertiary reserve ① and ②.
Each run produces two outputs per slot:
- Offer price: the ideal price to bid in that slot, chosen to maximize expected revenue. Battery optimization uses this output.
- Price quantiles: nine quantiles of the expected clearing price (p10, p20, …, p90), kept for reference. The spread between them shows how uncertain the price is.
Offer price
The balancing market is pay-as-bid: an accepted offer is paid its own offer price, so a higher offer earns more when it wins but wins less often. Each day Tensor Cloud computes, for every slot of the 14-day horizon, the offer price that balances the two to maximize expected revenue.
Battery optimization uses the offer price for offline primary reserve as its bid price in each slot.
Forecasting method
The price quantiles are a reference forecast: battery optimization does not use them. Where the day-ahead forecast uses trained machine-learning models, the balancing market forecast is a probabilistic persistence forecast, built directly from recently cleared prices.
Reserve markets are newer and thinner than the spot market, and their clearing prices follow the recent price regime in each area. Projecting recent cleared prices forward gives quantiles that follow this regime and avoids overfitting the short price history a trained model would have to learn from.
The forecast is built per (area, product) pair:
- Collect recent cleared prices. For each 30-minute slot, the balancing market publishes a cleared minimum, average, and maximum price. We read the trailing history of these minimum, average, and maximum prices for the pair.
- Turn each day into a distribution. For a given time of day, each recent day's minimum, average, and maximum prices define a triangular distribution whose range runs from the minimum to the maximum, with the cleared average used as the triangle's peak (its most likely value).
- Mix across recent days. For each slot of a day, averaging these triangular distributions over the 14 preceding days at the same time of day gives an empirical distribution, from which the p10–p90 quantiles are read off. All 14 days must have a cleared price for that slot.
- Project across the horizon. The quantiles of the latest day for which every slot has a value are repeated for each day of the 14-day horizon. Forecast prices are never below zero.
The forecast runs every morning at around 06:30 JST and covers all 54 area and product pairs. Results are saved only if every pair succeeds, after up to three retries each; otherwise the previous forecast stays in place.
Balancing market forecast FAQ
Q: Which markets and products do these forecasts cover?
A: All six reserve products traded on Japan's balancing market, in all nine grid areas: primary reserve (online and offline), secondary reserve ① and ②, and tertiary reserve ① and ②.
Q: Why is this a persistence forecast rather than a machine-learning model?
A: Reserve markets have only a short, thin price history, and their prices follow the recent clearing regime (see Forecasting method). We monitor the forecast's quality daily and will add model-based components where they clearly improve on it.
Q: How can I access balancing market price forecasts?
A: In Tensor Cloud, the EPRX tab of the Market Data page shows the cleared minimum, average, and maximum prices for offline primary reserve in each area, together with the Tensor ideal bid price (the offer price above), and lets you download them. The price quantiles are kept for reference and are not shown in the UI. If you need programmatic access to balancing market price forecasts, contact us.