Fireflies

Six virtual 10 MW solar parks bid the Romanian day-ahead market (PZU) every day, against real OPCOM prices.

connecting…

Leaderboard

Cumulative live results, all parks. Final = day-ahead revenue + imbalance settlement. Only fully settled days count; imbalance prices arrive about a day after delivery.

Delivery day

Energy per 15-minute interval MWh
Prices RON/MWh
Running imbalance (produced − sold) MWh

Results for this day

Backtest

The same rule-based fireflies replayed on past days: D-1 weather forecasts from Open-Meteo previous runs, real OPCOM prices, Transelectrica estimated imbalance prices.

Final revenue per month, all parks RON

Every decision

The append-only event log, streamed live. Offers are hashed and logged before prices are published.

    LLM firefly: prompts and answers

    Every call for the selected day, in full. On any error, timeout or invalid answer the LLM firefly falls back to prudent.

    How it works

    1. 11:30 the day before delivery: each park's production is forecast from Open-Meteo weather with a pvlib PVWatts model, and every firefly commits its offers (quantity and minimum price per interval). The offers are stored and hashed before any price exists.
    2. ~13:45: OPCOM publishes the PZU clearing prices. An offer is accepted if its minimum price is at or below the clearing price.
    3. During the delivery day: "actual" production is modelled from the latest observed-weather data every 15 minutes.
    4. A day later: Transelectrica's imbalance prices settle the difference between what each park produced and what it sold.

    Perfect foresight sells the actual production at the clearing price and stays off at negative prices. It is a yardstick, not a ceiling: when imbalance prices are below the day-ahead price, being short can earn more.