Generation data
Loading the solar and wind generation profile the dispatch simulation runs against, and the CSV format it expects.
The π Data tab is where a generation-backed project loads the CSV that drives the simulation β one row per time step, giving the solar and wind output the plant would produce per MW installed. A 4. Standalone BESS (grid-charged) project needs none of this: its loader is disabled, and the app builds a full year's calendar internally instead.

Fields
| Field | Default | Range | What it does |
|---|---|---|---|
| CSV Path: | (empty) | β | The path to the generation CSV, filled in by Browseβ¦ |
| Browseβ¦ | β | β | Opens a file picker and sets the CSV path |
| Load & Preview CSV | β | β | Reads and validates the file at the CSV path |
| Status line | No file loaded. | β | Reports the load result; replaced by a summary once a file reads successfully |
CSV format
The file needs three columns: a datetime column, solar_pu and wind_pu.
- The datetime column is auto-detected by a keyword in its header
(
time/date/stamp/datetime), falling back to a synthetic 2025-01-01 15-minute index if none matches. - The solar and wind columns are auto-matched by keyword too β
solar,pv,sunorphotovoltaicfor solar;wind,wg,wtgorturbinefor wind β falling back to the first and second numeric column if no keyword matches. - Values are per-1-MW-installed, between 0 and 1; anything below 0 is clipped to 0 on load.
- 35,040 rows is native 15-minute data; 8,760 rows is hourly; 30-minute rows are also accepted. Resolution is auto-detected from the median datetime step β or, with no datetime column, from the row count β and upsampled to 15-minute by repeating each row across its sub-intervals.
Generation-charged Peak-Shift dispatch
The same tab also carries the project type radio group and, beneath it, a Peak-Shift dispatch checkbox β off by default. With it ticked, generation charges the battery first and any surplus is exported immediately; the battery discharges only inside the Peak window to meet the minimum delivery there, with no obligation β and no penalty β outside it. See Choosing a project type for the exact checkbox label per topology and what dispatch applies with it left off.
Standalone BESS builds its own calendar
Picking 4. Standalone BESS (grid-charged) disables this tab's CSV loader entirely β there is no generation to read a profile for. The app builds a full year's 15-minute calendar internally instead, so βΆ Simulate and β Optimise still have a timebase to run against.