Skip to content

Conversation

@braddf
Copy link
Contributor

@braddf braddf commented Jan 7, 2026

Pull Request

Description

Using past 8 years of PVLive outturn data, we're adding a Seasonal Mean to the National PV charts, as well as p10/p90 quantiles.

Fixes #633

How Has This Been Tested?

If your changes affect data processing, have you plotted any changes? i.e. have you done a quick sanity check?

  • Yes

Checklist:

  • My code follows OCF's coding style guidelines
  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • I have checked my code and corrected any misspellings

@braddf braddf self-assigned this Jan 7, 2026
@vercel
Copy link

vercel bot commented Jan 7, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
nowcasting-app Ready Ready Preview, Comment Jan 7, 2026 9:21am
1 Skipped Deployment
Project Deployment Review Updated (UTC)
quartz-app Ignored Ignored Jan 7, 2026 9:21am

@braddf braddf marked this pull request as ready for review January 7, 2026 09:21
@braddf braddf requested a review from peterdudfield January 7, 2026 09:21
</p>
</div>
);

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great, could you add one for the Seasonal quanitles tool

The seasonal quantiles are calculated by taking the quantiles of the PV generation for each day of
        the year over the past 8 years.

        This provides a baseline with uncertainties for understanding typical PV generation patterns and can be useful
        for comparing against actual generation data.

@@ -0,0 +1 @@
{"1":{"00:00:00":0.0,"00:30:00":0.0,"01:00:00":0.0,"01:30:00":0.0,"02:00:00":0.0,"02:30:00":0.0,"03:00:00":0.0,"03:30:00":0.0,"04:00:00":0.0,"04:30:00":0.0,"05:00:00":0.0,"05:30:00":0.0,"06:00:00":0.0,"06:30:00":0.0,"07:00:00":0.0,"07:30:00":0.0,"08:00:00":0.0,"08:30:00":0.0021,"09:00:00":0.0181,"09:30:00":0.0513,"10:00:00":0.0878,"10:30:00":0.1212,"11:00:00":0.148,"11:30:00":0.1673,"12:00:00":0.1786,"12:30:00":0.1801,"13:00:00":0.1745,"13:30:00":0.1606,"14:00:00":0.1385,"14:30:00":0.1114,"15:00:00":0.0809,"15:30:00":0.0472,"16:00:00":0.0176,"16:30:00":0.0027,"17:00:00":0.0,"17:30:00":0.0,"18:00:00":0.0,"18:30:00":0.0,"19:00:00":0.0,"19:30:00":0.0,"20:00:00":0.0,"20:30:00":0.0,"21:00:00":0.0,"21:30:00":0.0,"22:00:00":0.0,"22:30:00":0.0,"23:00:00":0.0,"23:30:00":0.0},"2":{"00:00:00":0.0,"00:30:00":0.0,"01:00:00":0.0,"01:30:00":0.0,"02:00:00":0.0,"02:30:00":0.0,"03:00:00":0.0,"03:30:00":0.0,"04:00:00":0.0,"04:30:00":0.0,"05:00:00":0.0,"05:30:00":0.0,"06:00:00":0.0,"06:30:00":0.0,"07:00:00":0.0,"07:30:00":0.0008,"08:00:00":0.0106,"08:30:00":0.0398,"09:00:00":0.0825,"09:30:00":0.1271,"10:00:00":0.1686,"10:30:00":0.2058,"11:00:00":0.2355,"11:30:00":0.2553,"12:00:00":0.2667,"12:30:00":0.2694,"13:00:00":0.2643,"13:30:00":0.2531,"14:00:00":0.2328,"14:30:00":0.2051,"15:00:00":0.1721,"15:30:00":0.1348,"16:00:00":0.0931,"16:30:00":0.051,"17:00:00":0.0176,"17:30:00":0.0022,"18:00:00":0.0,"18:30:00":0.0,"19:00:00":0.0,"19:30:00":0.0,"20:00:00":0.0,"20:30:00":0.0,"21:00:00":0.0,"21:30:00":0.0,"22:00:00":0.0,"22:30:00":0.0,"23:00:00":0.0,"23:30:00":0.0},"3":{"00:00:00":0.0,"00:30:00":0.0,"01:00:00":0.0,"01:30:00":0.0,"02:00:00":0.0,"02:30:00":0.0,"03:00:00":0.0,"03:30:00":0.0,"04:00:00":0.0,"04:30:00":0.0,"05:00:00":0.0,"05:30:00":0.0,"06:00:00":0.0,"06:30:00":0.0022,"07:00:00":0.0153,"07:30:00":0.0448,"08:00:00":0.0873,"08:30:00":0.1336,"09:00:00":0.1795,"09:30:00":0.2237,"10:00:00":0.262,"10:30:00":0.2946,"11:00:00":0.3204,"11:30:00":0.3375,"12:00:00":0.346,"12:30:00":0.3469,"13:00:00":0.3411,"13:30:00":0.3282,"14:00:00":0.306,"14:30:00":0.2787,"15:00:00":0.2465,"15:30:00":0.2078,"16:00:00":0.1654,"16:30:00":0.1224,"17:00:00":0.0789,"17:30:00":0.0388,"18:00:00":0.0114,"18:30:00":0.001,"19:00:00":0.0,"19:30:00":0.0,"20:00:00":0.0,"20:30:00":0.0,"21:00:00":0.0,"21:30:00":0.0,"22:00:00":0.0,"22:30:00":0.0,"23:00:00":0.0,"23:30:00":0.0},"4":{"00:00:00":0.0,"00:30:00":0.0,"01:00:00":0.0,"01:30:00":0.0,"02:00:00":0.0,"02:30:00":0.0,"03:00:00":0.0,"03:30:00":0.0,"04:00:00":0.0,"04:30:00":0.0,"05:00:00":0.0001,"05:30:00":0.0033,"06:00:00":0.0192,"06:30:00":0.0512,"07:00:00":0.0952,"07:30:00":0.1453,"08:00:00":0.1981,"08:30:00":0.251,"09:00:00":0.3022,"09:30:00":0.348,"10:00:00":0.3878,"10:30:00":0.4188,"11:00:00":0.442,"11:30:00":0.4576,"12:00:00":0.4645,"12:30:00":0.4649,"13:00:00":0.4582,"13:30:00":0.4394,"14:00:00":0.4139,"14:30:00":0.3808,"15:00:00":0.3414,"15:30:00":0.2964,"16:00:00":0.2501,"16:30:00":0.2006,"17:00:00":0.1515,"17:30:00":0.1052,"18:00:00":0.0626,"18:30:00":0.027,"19:00:00":0.0059,"19:30:00":0.0003,"20:00:00":0.0,"20:30:00":0.0,"21:00:00":0.0,"21:30:00":0.0,"22:00:00":0.0,"22:30:00":0.0,"23:00:00":0.0,"23:30:00":0.0},"5":{"00:00:00":0.0,"00:30:00":0.0,"01:00:00":0.0,"01:30:00":0.0,"02:00:00":0.0,"02:30:00":0.0,"03:00:00":0.0,"03:30:00":0.0,"04:00:00":0.0,"04:30:00":0.0008,"05:00:00":0.0091,"05:30:00":0.0306,"06:00:00":0.0625,"06:30:00":0.1019,"07:00:00":0.1472,"07:30:00":0.1966,"08:00:00":0.2476,"08:30:00":0.2978,"09:00:00":0.3446,"09:30:00":0.387,"10:00:00":0.4226,"10:30:00":0.4517,"11:00:00":0.4737,"11:30:00":0.4867,"12:00:00":0.4911,"12:30:00":0.4897,"13:00:00":0.4844,"13:30:00":0.4694,"14:00:00":0.4458,"14:30:00":0.4155,"15:00:00":0.3794,"15:30:00":0.3385,"16:00:00":0.2928,"16:30:00":0.2456,"17:00:00":0.1976,"17:30:00":0.1504,"18:00:00":0.1075,"18:30:00":0.0686,"19:00:00":0.0361,"19:30:00":0.0123,"20:00:00":0.0016,"20:30:00":0.0,"21:00:00":0.0,"21:30:00":0.0,"22:00:00":0.0,"22:30:00":0.0,"23:00:00":0.0,"23:30:00":0.0},"6":{"00:00:00":0.0,"00:30:00":0.0,"01:00:00":0.0,"01:30:00":0.0,"02:00:00":0.0,"02:30:00":0.0,"03:00:00":0.0,"03:30:00":0.0,"04:00:00":0.0,"04:30:00":0.0038,"05:00:00":0.0188,"05:30:00":0.0428,"06:00:00":0.0741,"06:30:00":0.1125,"07:00:00":0.155,"07:30:00":0.2017,"08:00:00":0.2498,"08:30:00":0.2974,"09:00:00":0.3409,"09:30:00":0.3801,"10:00:00":0.4142,"10:30:00":0.4419,"11:00:00":0.4637,"11:30:00":0.4808,"12:00:00":0.4905,"12:30:00":0.4915,"13:00:00":0.4836,"13:30:00":0.4709,"14:00:00":0.4503,"14:30:00":0.4223,"15:00:00":0.3893,"15:30:00":0.3515,"16:00:00":0.3073,"16:30:00":0.2618,"17:00:00":0.2145,"17:30:00":0.1701,"18:00:00":0.1277,"18:30:00":0.0893,"19:00:00":0.056,"19:30:00":0.029,"20:00:00":0.0095,"20:30:00":0.0008,"21:00:00":0.0,"21:30:00":0.0,"22:00:00":0.0,"22:30:00":0.0,"23:00:00":0.0,"23:30:00":0.0},"7":{"00:00:00":0.0,"00:30:00":0.0,"01:00:00":0.0,"01:30:00":0.0,"02:00:00":0.0,"02:30:00":0.0,"03:00:00":0.0,"03:30:00":0.0,"04:00:00":0.0,"04:30:00":0.0008,"05:00:00":0.009,"05:30:00":0.0286,"06:00:00":0.057,"06:30:00":0.0932,"07:00:00":0.1344,"07:30:00":0.1799,"08:00:00":0.2287,"08:30:00":0.2756,"09:00:00":0.319,"09:30:00":0.3566,"10:00:00":0.3885,"10:30:00":0.4157,"11:00:00":0.4374,"11:30:00":0.4511,"12:00:00":0.4575,"12:30:00":0.4576,"13:00:00":0.4542,"13:30:00":0.4428,"14:00:00":0.4252,"14:30:00":0.3988,"15:00:00":0.3684,"15:30:00":0.3323,"16:00:00":0.2899,"16:30:00":0.2477,"17:00:00":0.204,"17:30:00":0.1602,"18:00:00":0.1189,"18:30:00":0.0811,"19:00:00":0.0493,"19:30:00":0.0229,"20:00:00":0.006,"20:30:00":0.0003,"21:00:00":0.0,"21:30:00":0.0,"22:00:00":0.0,"22:30:00":0.0,"23:00:00":0.0,"23:30:00":0.0},"8":{"00:00:00":0.0,"00:30:00":0.0,"01:00:00":0.0,"01:30:00":0.0,"02:00:00":0.0,"02:30:00":0.0,"03:00:00":0.0,"03:30:00":0.0,"04:00:00":0.0,"04:30:00":0.0,"05:00:00":0.0003,"05:30:00":0.0056,"06:00:00":0.0241,"06:30:00":0.0559,"07:00:00":0.0962,"07:30:00":0.1416,"08:00:00":0.1894,"08:30:00":0.2378,"09:00:00":0.2838,"09:30:00":0.3235,"10:00:00":0.3575,"10:30:00":0.3841,"11:00:00":0.4057,"11:30:00":0.4184,"12:00:00":0.4263,"12:30:00":0.4295,"13:00:00":0.424,"13:30:00":0.4107,"14:00:00":0.3927,"14:30:00":0.3677,"15:00:00":0.336,"15:30:00":0.2973,"16:00:00":0.2549,"16:30:00":0.2103,"17:00:00":0.1644,"17:30:00":0.1202,"18:00:00":0.0783,"18:30:00":0.0422,"19:00:00":0.016,"19:30:00":0.0031,"20:00:00":0.0001,"20:30:00":0.0,"21:00:00":0.0,"21:30:00":0.0,"22:00:00":0.0,"22:30:00":0.0,"23:00:00":0.0,"23:30:00":0.0},"9":{"00:00:00":0.0,"00:30:00":0.0,"01:00:00":0.0,"01:30:00":0.0,"02:00:00":0.0,"02:30:00":0.0,"03:00:00":0.0,"03:30:00":0.0,"04:00:00":0.0,"04:30:00":0.0,"05:00:00":0.0,"05:30:00":0.0,"06:00:00":0.0014,"06:30:00":0.0135,"07:00:00":0.0442,"07:30:00":0.0881,"08:00:00":0.137,"08:30:00":0.1875,"09:00:00":0.237,"09:30:00":0.2834,"10:00:00":0.3218,"10:30:00":0.3518,"11:00:00":0.3736,"11:30:00":0.3869,"12:00:00":0.3921,"12:30:00":0.3898,"13:00:00":0.3801,"13:30:00":0.3622,"14:00:00":0.3366,"14:30:00":0.3033,"15:00:00":0.267,"15:30:00":0.2249,"16:00:00":0.1802,"16:30:00":0.1326,"17:00:00":0.0858,"17:30:00":0.0449,"18:00:00":0.0157,"18:30:00":0.0026,"19:00:00":0.0,"19:30:00":0.0,"20:00:00":0.0,"20:30:00":0.0,"21:00:00":0.0,"21:30:00":0.0,"22:00:00":0.0,"22:30:00":0.0,"23:00:00":0.0,"23:30:00":0.0},"10":{"00:00:00":0.0,"00:30:00":0.0,"01:00:00":0.0,"01:30:00":0.0,"02:00:00":0.0,"02:30:00":0.0,"03:00:00":0.0,"03:30:00":0.0,"04:00:00":0.0,"04:30:00":0.0,"05:00:00":0.0,"05:30:00":0.0,"06:00:00":0.0,"06:30:00":0.0,"07:00:00":0.0037,"07:30:00":0.0211,"08:00:00":0.0557,"08:30:00":0.0988,"09:00:00":0.1435,"09:30:00":0.1865,"10:00:00":0.2237,"10:30:00":0.255,"11:00:00":0.276,"11:30:00":0.2875,"12:00:00":0.2888,"12:30:00":0.2839,"13:00:00":0.2701,"13:30:00":0.2505,"14:00:00":0.2248,"14:30:00":0.1938,"15:00:00":0.1563,"15:30:00":0.1151,"16:00:00":0.0731,"16:30:00":0.0348,"17:00:00":0.0102,"17:30:00":0.0011,"18:00:00":0.0,"18:30:00":0.0,"19:00:00":0.0,"19:30:00":0.0,"20:00:00":0.0,"20:30:00":0.0,"21:00:00":0.0,"21:30:00":0.0,"22:00:00":0.0,"22:30:00":0.0,"23:00:00":0.0,"23:30:00":0.0},"11":{"00:00:00":0.0,"00:30:00":0.0,"01:00:00":0.0,"01:30:00":0.0,"02:00:00":0.0,"02:30:00":0.0,"03:00:00":0.0,"03:30:00":0.0,"04:00:00":0.0,"04:30:00":0.0,"05:00:00":0.0,"05:30:00":0.0,"06:00:00":0.0,"06:30:00":0.0,"07:00:00":0.0,"07:30:00":0.0002,"08:00:00":0.0048,"08:30:00":0.0234,"09:00:00":0.0562,"09:30:00":0.0929,"10:00:00":0.1279,"10:30:00":0.1578,"11:00:00":0.1793,"11:30:00":0.1923,"12:00:00":0.1968,"12:30:00":0.1901,"13:00:00":0.1776,"13:30:00":0.1569,"14:00:00":0.1309,"14:30:00":0.0995,"15:00:00":0.0659,"15:30:00":0.0317,"16:00:00":0.0084,"16:30:00":0.0005,"17:00:00":0.0,"17:30:00":0.0,"18:00:00":0.0,"18:30:00":0.0,"19:00:00":0.0,"19:30:00":0.0,"20:00:00":0.0,"20:30:00":0.0,"21:00:00":0.0,"21:30:00":0.0,"22:00:00":0.0,"22:30:00":0.0,"23:00:00":0.0,"23:30:00":0.0},"12":{"00:00:00":0.0,"00:30:00":0.0,"01:00:00":0.0,"01:30:00":0.0,"02:00:00":0.0,"02:30:00":0.0,"03:00:00":0.0,"03:30:00":0.0,"04:00:00":0.0,"04:30:00":0.0,"05:00:00":0.0,"05:30:00":0.0,"06:00:00":0.0,"06:30:00":0.0,"07:00:00":0.0,"07:30:00":0.0,"08:00:00":0.0,"08:30:00":0.0009,"09:00:00":0.0117,"09:30:00":0.0358,"10:00:00":0.0639,"10:30:00":0.0904,"11:00:00":0.1118,"11:30:00":0.1244,"12:00:00":0.1292,"12:30:00":0.127,"13:00:00":0.1185,"13:30:00":0.105,"14:00:00":0.085,"14:30:00":0.0607,"15:00:00":0.0343,"15:30:00":0.0114,"16:00:00":0.0009,"16:30:00":0.0,"17:00:00":0.0,"17:30:00":0.0,"18:00:00":0.0,"18:30:00":0.0,"19:00:00":0.0,"19:30:00":0.0,"20:00:00":0.0,"20:30:00":0.0,"21:00:00":0.0,"21:30:00":0.0,"22:00:00":0.0,"22:30:00":0.0,"23:00:00":0.0,"23:30:00":0.0}} No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's quite a few data files here. Are they all used? If not, might be worth only including the ones that are used.

SEASONAL_MEAN: "Seasonal Mean",
SEASONAL_P25: "Seasonal P25",
SEASONAL_P10: "Seasonal P10",
SEASONAL_P5: "Seasonal P5"
Copy link
Contributor

@peterdudfield peterdudfield Jan 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should you trim this down to just p10 and p90 now, or do you want to leave it as is? Similar in other places

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants