A solar or wind asset can be modelled using your own generation data - a spreadsheet of how much the site generates over a year. The file format is the same for both technologies.
- Solar: A custom profile is optional. It replaces Modo Energy’s modelled profile. See Solar and Co-location for how it feeds into clipping, cannibalisation, and revenue calculations.
- Wind: A custom profile is required. There is no modelled fallback, because wind output is far more site-specific than solar. See Wind for how it is used.
This page explains what the file needs to look like.
Download a template
Start from a template rather than building the file from scratch. Each one has the correct headers already in place, with a full year of 30-minute timestamps and a power column of zeros to fill in.
The same template covers both solar and wind.
Templates for the other custom uploads - degradation, grid charges, curtailment, power prices - are listed on Custom Forecast Options.
What does the file look like?
It is a CSV (comma-separated values) file with two columns - a time, and the power generated at that time:
| Timestamp (UTC) | Power (MW) |
|---|---|
| 01/01/2024 00:00 | 0 |
| 01/01/2024 09:00 | 9.9 |
| 01/01/2024 12:00 | 27.0 |
| … | … |
The column headers must be written exactly as Timestamp (UTC) and Power (MW).
What goes in each column?
- Timestamp (UTC): The date and time of each reading, in
dd/mm/yyyy HH:MMformat (for example01/01/2024 13:30), kept consistent all the way down. Enter the times in the local time of your site - no conversion is needed despite the UTC (Coordinated Universal Time) label on the header. - Power (MW): The actual power the site produces at that moment, in megawatts (MW). This is the real output of your system, as it would be measured at the grid connection, so any inverter, turbine, wiring, and other losses are already included.
The Power column is not the following:
- Not the rated size: It is not the peak or nameplate rating of the site. That is entered separately when the asset is set up.
- Not a fraction: It is not a percentage or a fraction of capacity. A 50 MW site running at half output is
25, not0.5or50%.
What data does the file need to cover?
- One full year, starting at 00:00 on 1 January.
- Consistent spacing, with readings every 15, 30, or 60 minutes - pick one and keep it the same throughout.
- No gaps and no repeats: every interval from the start to the end of the year should appear once, in order.
In a leap year, 29 February can either be included or left out - both work.
Examples
A valid solar file sits at 0 overnight, climbs through the morning, peaks around midday, and drops back to 0 in the evening:
Timestamp (UTC),Power (MW)
01/01/2024 00:00,0
01/01/2024 06:00,0
01/01/2024 09:00,9.9
01/01/2024 10:00,19.2
01/01/2024 12:00,27.0
01/01/2024 15:00,6.0
01/01/2024 18:00,0
...continues for the rest of the year...
A wind file has no daily shape - output varies through the day and night with the weather:
Timestamp (UTC),Power (MW)
01/01/2024 00:00,12.4
01/01/2024 01:00,8.1
01/01/2024 02:00,15.7
01/01/2024 03:00,21.3
01/01/2024 04:00,18.9
01/01/2024 05:00,6.2
...continues for the rest of the year...
Solar: PVsyst files
If a solar site is modelled in PVsyst (a photovoltaic system simulation tool), the PVsyst output file can be uploaded directly - there is no need to reformat it into the two-column layout above. The generation is read from it automatically.
Weather year: any year can be uploaded
The model reshuffles both solar and wind profiles to align them with the forecast weather year, so the profile does not need to come from that year. Solar is reordered by day within each month. Wind is reordered period by period across the full year, against local wind speeds at the site. See Solar and Wind for the method.
The reshuffle keeps the annual energy of a wind upload, so the profile should reflect the expected long-term yield of the site.
Quick checklist
- A CSV file.
- Two columns named exactly
Timestamp (UTC)andPower (MW). - Power is the site’s actual output in MW - not its nameplate size, not a percentage.
- Times in one consistent format, spaced every 15, 30, or 60 minutes.
- Covers a full year starting 00:00 on 1 January, with no gaps or repeats.