knitr::opts_chunk$set(echo = FALSE, message=FALSE, warning = FALSE) # 

event = params$event
event_start= event$start_date
owner_name <- params$owner_name
utility = params$utility

event_start = event$start_date
event_end = ifelse(is.na(event$end_date), Sys.Date(), event$end_date)
event_name = event$name


  #  css: style.css

Summary of Impact

Depending on the business of your organisation, consumption of some meters may increase, some may be relatively unaffected, whilst others may fall.

For example, some individual supermarkets legitimately see increased consumption as do many residential properties, whilst others and especially hotels, restaurants, pubs and universities see dramatic decreases.

In short, the report is objective and should be considered within context. What it will do at least is highlight which meters are performing relatively and absolutely better than others.

Note: Total meters considered are limited to the definition provided to us and those having a clear performance history. In some cases meter readings problems may be exhibited as our AI to filter for problems has not yet been integrated with this currently provisional report.

kWh_kg_CO2g_UK <- function(x)
  paste0(format(round(x*0.185),big.mark   = ","), " kg.CO2g")

x = params$meter_events_summaries %>% mutate(change = ifelse(turndown >100, 1, -1)) %>%
  summarise(meters = n(),
            increased = sum(change>0,na.rm=TRUE),
            decreased = sum(change<0,na.rm=TRUE),
            actual =  round(sum(actual,na.rm=TRUE),1),
            expected =  round(sum(expected,na.rm=TRUE),1),
            weighted_average = round(100 * actual / expected, 1),
            median_turndown = round(median(turndown,na.rm=TRUE),1),
            co2 = kWh_kg_CO2g_UK((actual - expected) * 1000)
            )

colnames(x) <- c("# Meters", "# Increased", "# Decreased", "Actual Total (MWh)", "Expected Total (MWh)", "Median Turndown to %", "Weighted Turndown %", "CO2g kg")

  knitr::kable(x,format.args = list(big.mark = ",")) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), font_size = 11, fixed_thead = T)

Timeline of Impact

This chart shows how actual r params$owner_name consumption has changed relative to normal for the day of week and weather conditions since the event started on r event_start (the event period is indicated in green and the change is indicated by arrows).

params$owner_utility_history_plot

Timeline in recent year context

The event can be seen 'zoomed-out' in context of the rolling year, with dark lines indicating expected vs actual consumption.

params$owner_utility_history_plot_in_context

Reponse with respect to Outside Air Temperature

A chart of consumption rate (power) vs outside air temperature shows highlighted days during the event with days outside the event during the last year shown as grey points.

params$oat_e_plot

Range of responses

The following chart shows a distribution of responses, it is naturally more meaningful given large numbers of meters. Simplistically meters to the left of 100% have reduced energy consumption in contrast with seasonally normalised expectations.

Note: If there are any meters where consumption has increased by over two-fold these will be shown on the extreme right side of the chart. Complete values are recorded in the detail table below, which can be exported to .csv or spreadsheet.

params$ae_dist_plot

Response to event by individual meters

A simple plot of each meter (where adequate data exists) indicates whether consumption in the period has risen or fallen relative to expected consumption. Those with reduced consumption lie within the green area. Depending on your results distribution it may be necessary to zoom by dragging and/or double-clicking to reset.

Meters with typically lower consumption are on the left, and more significant consumption on the right.

Scope for savings is indicated by the vertical position - shown by the second number of the tooltip that is shown on 'hover'.

By hovering on high purple markers the relatively poor performing meters can be identified.

Interactive versions of analysis allow meter detail to be explored by clicking to drill down.

params$a_vs_e_plot

Impact by day of week

The impact will not typically be the same for each day of the week. So cumulative costs or savings relative to automated budgets can be seen to diverge. This is simply because on days of lower consumption (often weekends in workplaces or Tuesdays in retail spaces) - there is less scope for consumption to fall.

params$owner_utility_cusum_plot

Typical impacts

Unexpected deviations relative to normal, for time of week given weather, take place continually. Typically around half of meters will be higher than normal and half will be lower. Meters with high errors (indicating over-consumption) and low errors (indicating under-consumption) are counted and displayed over time.

During a 'global' event (i.e. one effecting all meters in the same sense) many errors move in the same direction (high or low) so forecast errors in total tend to trace the same path as either the high or the low errors.

params$owner_utility_error_history_plot

Individual meter response Expected vs Actual

The table below is fairly self-explanatory. Points to note are as follows:

Expected and Actual figures are in kW. Energy in kWh can be calculated by multiplying by (24 * number of days).

'Ref' and 'address' columns may be duplicated - this is simply that some clients use encoding and others do not for sites. 'mid' is our internal meter identification number, this is internationally unique (unlike MPR) and can be cited for support purposes.

Some meters may show a turndown of NaN - this stands for 'Not a Number' and will represent divide-by-zero errors and is typically due to corrupt data.

Some meters may show a high number of 'zeroes' - these are meters that have been reporting zero for a number of days. If longer than the reporting period it is likely that these are 'flatlining meters' - i.e. reporting zero despite real consumption - these should be checked with your AMR provider.

Otherwise the table is ranked in descending turndown order - i.e. priorities are at the top, and the potential for energy saving can be deduced from the expected and actual columns displayed.

params$meter_events_summaries %>% arrange(desc(turndown)) %>% 
  mutate(expected = round(expected), actual = round(actual)) %>% 
  DT::datatable(
      extensions = 'Buttons', options = list(
        dom = 'Bfrtip',
        buttons = c('copy', 'csv', 'excel'),
        lengthMenu = list(c(10,25,50,-1), c(10,25,50,"All")))
      )

Further Support

This report by kWIQly remains experimental and was developed with a view to supporting clients during and following Covid-19. Note: if you are only in receipt of this as a static webpage, an interactive app that shows supports drill-down and diagnosis is available.

We believe energy managers haves a tough time ahead, after the first wave of Covid-19. This will involve deciding how much to buy and negotiating the basis, whether hedging is necessary, while allowing for potential further waves of infection and/or systematic changes to business 'as normal'.

We hope to develop some scenario planning tools for our clients and to develop this specific solution further, also to report on user-defined 'exceptional periods' to cover arbitrary periods or events e.g. holidays in schools and universities etc.

Accordingly, we welcome feedback.

kind regards,

the kWIQly team.

 


Please contact your distribution partner for support or kWIQly direct @

info@kWIQly.com

Join us at Building Energy Intelligence Group on LinkedIn ...

 



james-ferguson/servicedenergymanagement documentation built on June 17, 2020, 3:41 p.m.