GB demand flexibility service savingSessions

Analysis of GB electricity demand and twitter data

Author

Ben Anderson (@dataknut)

Published

March 24, 2023

1 Introduction

UK ‘demand flexibility service’ DFS experiments/trials/‘live’ events by NG-ESO and retailers such as @OctopusEnergy

  • DFS began on 1 November 2022.
  • The service will run until March 2023.

Relevant media articles:

Questions:

Q1: Is there a noticeable ‘dip’ in demand? (Can we even tell?)

Q2: Do tweets tell us anything useful about the events?

2 Code setup

Part of https://github.com/dataknut/savingSessions

[1] "Loading libraries..."
data.table      dplyr  flextable    ggplot2   hashTagR        hms      knitr 
      TRUE       TRUE       TRUE       TRUE       TRUE       TRUE       TRUE 
kableExtra  lubridate      readr     rtweet   tidytext  wordcloud 
      TRUE       TRUE       TRUE       TRUE       TRUE       TRUE 

3 Data

3.1 Electricity demand and carbon intensity data

Use the half-hourly NG-ESO ‘generation mix’ data as a reasonable proxy for ‘demand’. This also includes a useful estimate of carbon intensity.

Should probably use the demand data instead as it includes embedded wind & solar.

Variables of interest:

  • GENERATION is in MW. It has some exclusions, its just an indicator.
  • CARBON_INTENSITY is in g CO2/kWh - we’d expect this to be high during DFS events (as we’re trying to avoid the use of high carbon & expensive generation?)

3.2 Twitter data

Use rtweet to collect tweets matching:

  • #savingSession or #savingSessions (not case sensitive) - this seems to be the preferred Octopus hashtag
  • #DemandFlexibilityService (not case sensitive) - as used by NG-ESO, appears less frequently used

We keep these datasets distinct as it was not clear if all Octopus DFS events were also wider NG-ESO ‘live’ events.

We do NOT store the tweets in the repo for both ethical and practical reasons…

Note also that we may not be collecting the complete dataset of hashtagged tweets due to:

It is important to note that both datasets are therefore likely to be partial.

3.2.1 #savingSessions tweets

Figure 1 shows the cumulative number of #savingSession tweets collected and marks the relevant events. Labels are likely to overlap where events are close together.

Figure 1: Cumulative number of #savingSession tweets collected

Number of tweets: 6391

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Mon 07 Nov 2022 00:00 to Fri 24 Mar 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 366
positive 312
Number of words by sentiment
sentiment freq
negative 1603
positive 3943

3.2.2 #demandFlexibilityService tweets

Figure 2 shows the cumulative number of #DemandFlexibilityService tweets collected and marks the relevant events. Labels are likely to overlap where events are close together.

NB: data collection for this hashtag only started on 23rd January - it looks like twitter’s search API does not return tweets more than x days old. People were tweeting this hashtag earlier than January

[1] "Found 85 files matching *.csv in /Users/ben/Dropbox/data/twitter/demandFlexibilityService/"

Number of tweets: 328

Figure 2: Cumulative number of #DemandFlexibilityService tweets collected

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Sun 22 Jan 2023 00:00 to Wed 15 Mar 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 29
positive 40
Number of words by sentiment
sentiment freq
negative 92
positive 142

4 Analysis

Q1: Demand reduction

Simple comparison of the ‘demand response session’ day half-hourly demand with the mean half-hourly demand for the previous n weekdays or weekend days as appropriate. Default n is 10.

All sorts of caveats apply:

  • not all of these sessions were national ‘live’ events, some were trials by a single retailer (Octopus)
  • even though we compare with weekdays or weekend days as appropriate, we may still not be comparing like with like (cold vs warm, holiday vs non-holiday etc)
  • we can’t tell from this analysis what demand would have looked like without the demand response intervention. That would require all the retailers to aggregate the ‘savings’ they estimate… or a randomised control trial

Q2: Twitter sentiment analysis

Inspired by https://www.tidytextmining.com/sentiment.html (sentiment analysis) and https://towardsdatascience.com/create-a-word-cloud-with-r-bde3e7422e8a (word clouds)

Extract the tweets for the day of each DFS event and the day after.

Remove stop words (to, the, and, a, for, etc) & profanity etc from the tweets and sentiment them.

In each case we report the number of negative and positive codings (according to tidytext::get_sentiments("bing")) for the unique words. This will add up to the Number of unique words by sentiment. We then report the total frequency of words that are negative or positive (which will add up to the total number of words).

Remember the size of the (positive/negative) words in the word cloud is relative to the count of all (positive/negative) words in the wordcloud, not the total word count.

Saving sessions

ID

type

start_hh

end_hh

1

octopus

2022-11-15 17:00:00

2022-11-15 17:30:00

2

octopus

2022-11-22 17:30:00

2022-11-22 18:00:00

3

octopus

2022-11-30 17:30:00

2022-11-30 18:00:00

4

octopus

2022-12-01 17:30:00

2022-12-01 18:00:00

5

octopus

2022-12-12 17:00:00

2022-12-12 17:30:00

6

octopus

2023-01-19 09:00:00

2023-01-19 09:30:00

7

NG-ESO live

2023-01-23 17:00:00

2023-01-23 17:30:00

8

NG-ESO live

2023-01-24 16:30:00

2023-01-24 17:30:00

9

octopus

2023-01-30 09:00:00

2023-01-30 09:30:00

10

octopus

2023-02-13 17:30:00

2023-02-13 18:00:00

11

octopus

2023-02-21 17:30:00

2023-02-21 18:00:00

12

NG-ESO live

2023-03-15 18:30:00

2023-03-15 19:00:00

13

octopus

2023-03-23 18:30:00

2023-03-23 19:00:00

4.1 Session 1 (Octopus: Tue 15 Nov 2022 17:00)

  • 2022-11-15 17:00:00 to
  • 2022-11-15 18:00:00

(Not all retailers may have taken part in this one)

According to https://energycentral.com/news/octopus-energy-provide-108mw-grid-flexibility-first-%E2%80%98saving-session%E2%80%99:

“Over 200,000 households reduced their energy demand by 108MW collectively, the same as a gas power station can generate in an hour. If replicated by all UK energy suppliers, this would be over 1GW.”

But https://www.current-news.co.uk/news/octopus-energy-customers-provide-108mw-of-flexibility-during-first-saving-session quotes Octopus as actually saying:

“if the program was scaled to all electric smart meter customers with all supplier[s] in Great Britain, it could create over 1GW of flexible energy load”

The following plot compares GB electricity demand during the DFS event with mean GB electricity demand over the last n similar days (i.e. weekdays or weekends as appropriate).

MW comparisons

hms

Comparison mean

Saving session

diff

pc_diff

17:00:00

41,153.5

42,925.0

1,771.5

4.3

17:30:00

41,173.7

42,736.0

1,562.3

3.8

Confounding factors:

  • recent temperature trends
  • recent holidays
  • etc

Note that the comparison plot/table shows the difference between the DFS event day and the previous similar days. This does not show what the event day energy use would have been in the absence of the intervention - we’d need a randomised control on the day for that (or a sophisticated demand model as the counterfactual).

Octopus customers’ 108 MW was 0.252 % of mean GB generation (42.925 GW) over the hour of the session (see NG-ESO data above).

108 MW over 200,000 customers is 5.4^{-4} MW per household or, more sensibly, 0.54 kW per household. A pretty reasonable reduction.

But if 200,000 produced a 108 MW power reduction (0.54 kW per household ), the 1 GW estimate implies we only have 1,851,852 GB households with a smart meter. Really? Or did they mean all suppliers taking part in the scheme?

Anyway, the latest data has 14 million domestic eletricity smart meters as of Q1 2022 - 45% of all domestic meters.

So:

  • If all ~28 million households in the UK did this it would be 1.512^{7} kW. That’s 15.12 GW…
  • If we reduce ambition a bit and assume that only the 14 million domestic GB customers with a smart meter as of Q2 2022 did this then that would provide 7.56 GW. Which would be 17.61 % of generation. Not bad aye?

The trouble is… these are octopus customers self-selecting into a trial. You just have to read the tweets to see that there are households with installed batteries, pausable heat pumps in well-insulated homes and EV V2G. At what point will we all be similarly equipped?

4.1.1 Carbon intensity

And just to keep in mind the carbon context:

Figure 3: Comparison of carbon intensity

Turning to hashtags, we only have #savingSessions tweets for this event.

4.1.2 #savingSessions tweets

Number of tweets: 642

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Tue 15 Nov 2022 00:00 to Wed 16 Nov 2022 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 87
positive 104
Number of words by sentiment
sentiment freq
negative 203
positive 349

4.2 Session 2 (Octopus: Tue 22 Nov 2022 17:30)

  • 2022-11-22 17:30:00 to
  • 2022-11-22 18:30:00

(Not all retailers may have taken part in this one)

The same caveats about the comparisons apply here…

MW comparisons

hms

Comparison mean

Saving session

diff

pc_diff

17:30:00

42,352.4

41,354.0

-998.4

-2.4

18:00:00

42,027.6

40,784.0

-1,243.6

-3.0

4.2.1 Carbon intensity

And just to keep in mind the carbon context:

Figure 4: Comparison of carbon intensity

Turning to hashtags, we only have #savingSessions tweets for this event.

4.2.2 #savingSessions tweets

Number of tweets: 611

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Tue 22 Nov 2022 00:00 to Tue 22 Nov 2022 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 96
positive 92
Number of words by sentiment
sentiment freq
negative 170
positive 309

4.3 Session 3 (Octopus: Wed 30 Nov 2022 17:30)

  • 2022-11-30 17:30:00 to
  • 2022-11-30 18:30:00

(Not all retailers may have taken part in this one)

The same caveats about the comparisons apply here…

MW comparisons

hms

Comparison mean

Saving session

diff

pc_diff

17:30:00

42,851.4

41,489.0

-1,362.4

-3.2

18:00:00

42,469.4

41,011.0

-1,458.4

-3.4

4.3.1 Carbon intensity

And just to keep in mind the carbon context:

Figure 5: Comparison of carbon intensity

Turning to hashtags, we only have #savingSessions tweets for this event.

4.3.2 #savingSessions tweets

Number of tweets: 728

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Wed 30 Nov 2022 00:00 to Thu 01 Dec 2022 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 77
positive 103
Number of words by sentiment
sentiment freq
negative 206
positive 490

4.4 Session 4 (Octopus: Thu 01 Dec 2022 17:30)

  • 2022-12-01 17:30:00 to
  • 2022-12-01 18:30:00

(Not all retailers may have taken part in this one)

The same caveats about the comparisons apply here…

MW comparisons

hms

Comparison mean

Saving session

diff

pc_diff

17:30:00

42,810.5

42,194.0

-616.5

-1.4

18:00:00

42,393.3

41,516.0

-877.3

-2.1

4.4.1 Carbon intensity

And just to keep in mind the carbon context:

Figure 6: Comparison of carbon intensity

Turning to hashtags, we only have #savingSessions tweets for this event.

4.4.2 #savingSessions tweets

Number of tweets: 305

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Thu 01 Dec 2022 00:00 to Fri 02 Dec 2022 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 40
positive 62
Number of words by sentiment
sentiment freq
negative 83
positive 189

4.5 Session 5 (Octopus: Mon 12 Dec 2022 17:00)

  • 2022-12-12 17:00:00 to
  • 2022-12-12 18:00:00

(Not all retailers may have taken part in this one)

The same caveats about the comparisons apply here…

MW comparisons

hms

Comparison mean

Saving session

diff

pc_diff

17:00:00

43,741.7

47,821.0

4,079.3

9.3

17:30:00

43,777.1

48,470.0

4,692.9

10.7

4.5.1 Carbon intensity

And just to keep in mind the carbon context:

Figure 7: Comparison of carbon intensity

Turning to hashtags, we only have #savingSessions tweets for this event.

4.5.2 #savingSessions tweets

Number of tweets: 585

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Mon 12 Dec 2022 00:00 to Tue 13 Dec 2022 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 41
positive 73
Number of words by sentiment
sentiment freq
negative 138
positive 362

4.6 Session 6 (Octopus: Thu 19 Jan 2023 09:00)

  • 2023-01-19 09:00:00 to
  • 2023-01-19 10:00:00

(Not all retailers may have taken part in this one)

The same caveats about the comparisons apply here…

MW comparisons

hms

Comparison mean

Saving session

diff

pc_diff

09:00:00

40,592.8

45,823.0

5,230.2

12.9

09:30:00

41,228.5

46,740.0

5,511.5

13.4

4.6.1 Carbon intensity

And just to keep in mind the carbon context:

Figure 8: Comparison of carbon intensity

Turning to hashtags, we only have #savingSessions tweets for this event.

4.6.2 #savingSessions tweets

Number of tweets: 248

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Thu 19 Jan 2023 00:00 to Fri 20 Jan 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 22
positive 40
Number of words by sentiment
sentiment freq
negative 37
positive 85

4.7 Session 7 (NG-ESO ‘live’: Mon 23 Jan 2023 17:00)

  • 2023-01-23 17:00:00 to
  • 2023-01-23 18:00:00

This was a more generalised call for DFS

The same caveats about the comparisons apply here…

MW comparisons

hms

Comparison mean

Saving session

diff

pc_diff

17:00:00

44,751.7

46,086.0

1,334.3

3.0

17:30:00

44,894.9

45,684.0

789.1

1.8

4.7.1 Carbon intensity

And just to keep in mind the carbon context:

Figure 9: Comparison of carbon intensity

Turning to hashtags, we have both #savingSessions and #demandFlexibilityService tweets for this event.

4.7.2 #savingSessions tweets

Number of tweets: 818

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Mon 23 Jan 2023 00:00 to Tue 24 Jan 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 92
positive 94
Number of words by sentiment
sentiment freq
negative 245
positive 417

4.7.3 #demandFlexibilityService tweets

Number of tweets: 169

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Mon 23 Jan 2023 00:00 to Tue 24 Jan 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 23
positive 32
Number of words by sentiment
sentiment freq
negative 69
positive 113

4.8 Session 8 (NG-ESO ‘live’: Tue 24 Jan 2023 16:30)

  • 2023-01-24 16:30:00 to
  • 2023-01-24 18:00:00

This was another generalised call for DFS:

The same caveats about the comparisons apply here…

Also this event followed very soon after the last one so this will affect the comparison ‘baseline’ (previous n days).

MW comparisons

hms

Comparison mean

Saving session

diff

pc_diff

16:30:00

44,093.7

44,975.0

881.3

2.0

17:00:00

44,965.3

45,275.0

309.7

0.7

17:30:00

45,027.4

44,814.0

-213.4

-0.5

4.8.1 Carbon intensity

And just to keep in mind the carbon context:

Figure 10: Comparison of carbon intensity

Turning to hashtags, we have both #savingSessions and #demandFlexibilityService tweets for this event.

4.8.2 #savingSessions tweets

Number of tweets: 687

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Tue 24 Jan 2023 00:00 to Wed 25 Jan 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 82
positive 76
Number of words by sentiment
sentiment freq
negative 224
positive 324

4.8.3 #demandFlexibilityService tweets

Number of tweets: 72

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Tue 24 Jan 2023 00:00 to Wed 25 Jan 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 9
positive 19
Number of words by sentiment
sentiment freq
negative 37
positive 61

4.9 Session 9 (Octopus: Mon 30 Jan 2023 09:00)

  • 2023-01-30 09:00:00 to
  • 2023-01-30 10:00:00

The same caveats about the comparisons apply here…

MW comparisons

hms

Comparison mean

Saving session

diff

pc_diff

09:00:00

43,861.3

42,191.0

-1,670.3

-3.8

09:30:00

44,589.2

42,699.0

-1,890.2

-4.2

4.9.1 Carbon intensity

And just to keep in mind the carbon context:

Figure 11: Comparison of carbon intensity

Turning to hashtags, we have both #savingSessions and #demandFlexibilityService tweets for this event.

4.9.2 #savingSessions tweets

Number of tweets: 135

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Mon 30 Jan 2023 00:00 to Tue 31 Jan 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 21
positive 42
Number of words by sentiment
sentiment freq
negative 31
positive 85

4.9.3 #demandFlexibilityService tweets

Unlikely to be many of these as this was not a system-wide NG-ESO ‘live’ event.

Number of tweets: 12

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Mon 30 Jan 2023 00:00 to Tue 31 Jan 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 1
positive 3
Number of words by sentiment
sentiment freq
negative 2
positive 3

4.10 Session 10 (Octopus: Mon 13 Feb 2023 17:30)

  • 2023-02-13 17:30:00 to
  • 2023-02-13 18:30:00

The same caveats about the comparisons apply here…

MW comparisons

MW comparisons

hms

Comparison mean

Saving session

diff

pc_diff

17:30:00

42,913.7

40,609.0

-2,304.7

-5.4

18:00:00

42,434.7

40,555.0

-1,879.7

-4.4

MW comparisons

4.10.1 Carbon intensity

And just to keep in mind the carbon context:

Figure 12: Comparison of carbon intensity

Turning to hashtags, we have both #savingSessions and #demandFlexibilityService tweets for this event.

4.10.2 #savingSessions tweets

Number of tweets: 191

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Mon 13 Feb 2023 00:00 to Tue 14 Feb 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 19
positive 42
Number of words by sentiment
sentiment freq
negative 38
positive 174

4.10.3 #demandFlexibilityService tweets

Unlikely to be many of these as this was not a system-wide NG-ESO ‘live’ event.

Number of tweets: 15

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Mon 13 Feb 2023 00:00 to Tue 14 Feb 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 1
positive 2
Number of words by sentiment
sentiment freq
negative 2
positive 6

4.11 Session 11 (Octopus: Tue 21 Feb 2023 17:30)

  • 2023-02-21 17:30:00 to
  • 2023-02-21 18:30:00

The same caveats about the comparisons apply here…

MW comparisons

MW comparisons

hms

Comparison mean

Saving session

diff

pc_diff

17:30:00

41,665.0

39,528.0

-2,137.0

-5.1

18:00:00

41,248.7

39,276.0

-1,972.7

-4.8

MW comparisons

4.11.1 Carbon intensity

And just to keep in mind the carbon context:

Figure 13: Comparison of carbon intensity

Turning to hashtags, we have both #savingSessions and #demandFlexibilityService tweets for this event.

4.11.2 #savingSessions tweets

Number of tweets: 95

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Tue 21 Feb 2023 00:00 to Wed 22 Feb 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 4
positive 14
Number of words by sentiment
sentiment freq
negative 12
positive 35

4.11.3 #demandFlexibilityService tweets

Unlikely to be many of these as this was not a system-wide NG-ESO ‘live’ event.

Number of tweets: 4

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`
Warning in max(freq): no non-missing arguments to max; returning -Inf

Warning in max(freq): no non-missing arguments to max; returning -Inf

Error in strwidth(words[i], cex = size[i], ...) : invalid 'cex' value

Tweets from Tue 21 Feb 2023 00:00 to Wed 22 Feb 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`
Warning in max(freq): no non-missing arguments to max; returning -Inf

Warning in max(freq): no non-missing arguments to max; returning -Inf

Error in strwidth(words[i], cex = size[i], ...) : invalid 'cex' value

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 4
positive 14
Number of words by sentiment
sentiment freq
negative 12
positive 35

4.12 Session 12 (NG-ESO ‘live’ (?): Wed 15 Mar 2023 18:30)

  • 2023-03-15 18:30:00 to
  • 2023-03-15 19:30:00

The same caveats about the comparisons apply here…

MW comparisons

MW comparisons

hms

Comparison mean

Saving session

diff

pc_diff

18:30:00

42,237.6

41,357.0

-880.6

-2.1

19:00:00

40,892.1

40,730.0

-162.1

-0.4

MW comparisons

4.12.1 Carbon intensity

And just to keep in mind the carbon context:

Comparison of carbon intensity

Turning to hashtags, we have both #savingSessions and #demandFlexibilityService tweets for this event.

4.12.2 #savingSessions tweets

Number of tweets: 90

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Wed 15 Mar 2023 00:00 to Thu 16 Mar 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 13
positive 29
Number of words by sentiment
sentiment freq
negative 27
positive 63

4.12.3 #demandFlexibilityService tweets

Number of tweets: 1

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Wed 15 Mar 2023 00:00 to Wed 15 Mar 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`
Warning in max(freq): no non-missing arguments to max; returning -Inf

Warning in max(freq): no non-missing arguments to max; returning -Inf

Error in strwidth(words[i], cex = size[i], ...) : invalid 'cex' value

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
positive 1
Number of words by sentiment
sentiment freq
positive 1

4.13 Session 13 (Octopus (?): Thu 23 Mar 2023 18:30)

  • 2023-03-23 18:30:00 to
  • 2023-03-23 19:30:00

The same caveats about the comparisons apply here…

MW comparisons

MW comparisons

hms

Comparison mean

Saving session

diff

pc_diff

18:30:00

39,905.6

38,362.0

-1,543.6

-3.9

19:00:00

38,711.5

37,611.0

-1,100.5

-2.8

MW comparisons

4.13.1 Carbon intensity

And just to keep in mind the carbon context:

Comparison of carbon intensity

Turning to hashtags, we have both #savingSessions and #demandFlexibilityService tweets for this event.

4.13.2 #savingSessions tweets

Number of tweets: 108

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`


Tweets from Thu 23 Mar 2023 00:00 to Fri 24 Mar 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 19
positive 50
Number of words by sentiment
sentiment freq
negative 22
positive 75

4.13.3 #demandFlexibilityService tweets

Number of tweets: 0

Positive words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`
Warning in max(freq): no non-missing arguments to max; returning -Inf

Warning in max(freq): no non-missing arguments to max; returning -Inf

Error in strwidth(words[i], cex = size[i], ...) : invalid 'cex' value

Tweets from Thu 23 Mar 2023 00:00 to Fri 24 Mar 2023 00:00

Negative words…

Joining with `by = join_by(word)`
Joining with `by = join_by(word)`
Warning in max(freq): no non-missing arguments to max; returning -Inf

Warning in max(freq): no non-missing arguments to max; returning -Inf

Error in strwidth(words[i], cex = size[i], ...) : invalid 'cex' value

Total word and unique word counts…

Number of unique words by sentiment
Var1 Freq
negative 19
positive 50
Number of words by sentiment
sentiment freq
negative 22
positive 75

5 Future work

  • more trial days
  • use 5 days before/after as comparators? Confounded by events close together…