Tracking consumption and cost
Date range:
2024-08-01 to 2026-01-02
STH consumption
# A tibble: 516 × 9
date `off-peak` peak op p tot mm ann mon
<date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 2026-01-02 28.0 27.1 1.96 8.12 10.6 5.59 2039. 170.
2 2026-01-01 20.9 16.5 1.46 4.95 6.89 5.59 2039. 170.
3 2025-12-30 20.6 15.8 1.44 4.75 6.66 5.59 2039. 170.
4 2025-12-29 23.0 13.3 1.61 3.99 6.06 5.59 2039. 170.
5 2025-12-28 22.0 12.2 1.54 3.67 5.68 5.59 2039. 170.
6 2025-12-27 48.0 19.5 3.36 5.84 9.67 5.59 2039. 170.
7 2025-12-26 29.9 35.3 2.10 10.6 13.2 5.59 2039. 170.
8 2025-12-25 24.3 33.2 1.70 9.95 12.1 5.59 2039. 170.
9 2025-12-24 21.8 24.1 1.53 7.23 9.23 5.59 2039. 170.
10 2025-12-23 18.3 23.3 1.28 7.00 8.75 5.59 2039. 170.
# ℹ 506 more rows
Linton consumption
# A tibble: 522 × 9
date `off-peak` peak op p tot mm ann mon
<date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 2026-01-03 1.79 NA 0.126 NA NA 0.844 308. 25.7
2 2026-01-02 6.95 2.44 0.486 0.731 1.69 0.844 308. 25.7
3 2026-01-01 7.56 2.53 0.529 0.759 1.76 0.844 308. 25.7
4 2025-12-31 7.30 1.68 0.511 0.503 1.48 0.844 308. 25.7
5 2025-12-30 7.63 2.88 0.534 0.865 1.87 0.844 308. 25.7
6 2025-12-29 6.93 3.37 0.485 1.01 1.97 0.844 308. 25.7
7 2025-12-28 7.07 3.57 0.495 1.07 2.04 0.844 308. 25.7
8 2025-12-27 7.13 2.18 0.499 0.654 1.62 0.844 308. 25.7
9 2025-12-26 7.43 1.91 0.520 0.573 1.56 0.844 308. 25.7
10 2025-12-25 7.20 1.71 0.504 0.513 1.49 0.844 308. 25.7
# ℹ 512 more rows
Gas consumption
Export
Costs
Gas tariff
get_gas_tariff <- function(property_index, out = meter_details){
res <- out$properties[[property_index]]$gas_meter_points
df <- bind_rows(res, .id = "source")
gas_tariff <- df |>
unnest_auto("agreements") |>
mutate(valid = ymd(str_sub(valid_from, 1, 10)),
valid_to = ifelse(!is.na(valid_to), ymd(str_sub(valid_to, 1, 10)), NA),
end = as.Date(ifelse(is.na(valid_to), Sys.Date(), valid_to)),
duration = end - valid
) |>
arrange(desc(valid))
gas_code <- gas_tariff[is.na(gas_tariff$valid_to), "tariff_code"]
trunc_gas <- gas_code |>
str_remove("G-1R-") |>
str_remove("-[AZ]$")
urlsgas <- paste0("https://api.octopus.energy/v1/products/", trunc_gas, "/gas-tariffs/", gas_code, "/standing-charges/")
urlugasur <- paste0("https://api.octopus.energy/v1/products/", trunc_gas, "/gas-tariffs/", gas_code, "/standard-unit-rates/")
scg <- request(urlsgas) |> req_perform() |>
resp_body_json() |>
enframe() |>
filter(name == "results") |>
unnest(value) |>
unnest_auto(value) |>
filter(payment_method == "DIRECT_DEBIT")
urg <- request(urlugasur) |> req_perform() |>
resp_body_json() |>
enframe() |>
filter(name == "results") |>
unnest(value) |>
unnest_auto(value) |>
filter(payment_method == "DIRECT_DEBIT")
return(list(gas_standing_charges = scg, gas_unit_rates = urg)
)
}Electricity tariff
get_electricity_tariff <- function(property_index, out = meter_details){
res <- out$properties[[property_index]]$electricity_meter_points
df <- bind_rows(res, .id = "source")
el_tariff <- df |>
unnest_auto("agreements") |>
mutate(valid = ymd(str_sub(valid_from, 1, 10)),
valid_to = ifelse(!is.na(valid_to), ymd(str_sub(valid_to, 1, 10)), NA),
end = as.Date(ifelse(is.na(valid_to), Sys.Date(), valid_to)),
duration = end - valid
) |>
arrange(desc(valid))
elec_code <- el_tariff[is.na(el_tariff$valid_to), "tariff_code"]
trunc_elec <- elec_code |>
mutate(code = str_remove(tariff_code, "E-1R-"),
code = str_remove(code, "-[AZ]$"),
urls_sc = paste0("https://api.octopus.energy/v1/products/", code, "/electricity-tariffs/", tariff_code, "/standing-charges/"),
urls_ur = paste0("https://api.octopus.energy/v1/products/", code, "/electricity-tariffs/", tariff_code, "/standard-unit-rates/"))
sce_import <- request(trunc_elec$urls_sc[2]) |> req_perform() |>
resp_body_json() |>
enframe() |>
filter(name == "results") |>
unnest(value) |>
unnest_auto(value)
ure_import <- request(trunc_elec$urls_ur[2]) |> req_perform() |>
resp_body_json() |>
enframe() |>
filter(name == "results") |>
unnest(value) |>
unnest_auto(value)
sce_export <- request(trunc_elec$urls_ur[1]) |> req_perform() |>
resp_body_json() |>
enframe() |>
filter(name == "results") |>
unnest(value) |>
unnest_auto(value)
return(list(elec_standing_charges = sce_import, elec_unit_rates = ure_import, elec_export_rates = sce_export
)
)
}# A tibble: 102 × 10
source name value_exc_vat value_inc_vat valid_from valid_to payment_method
<chr> <chr> <dbl> <dbl> <chr> <chr> <lgl>
1 elec_e… resu… 6.67 7.00 2026-01-0… 2026-01… NA
2 elec_e… resu… 27.8 29.2 2026-01-0… 2026-01… NA
3 elec_e… resu… 6.67 7.00 2026-01-0… 2026-01… NA
4 elec_e… resu… 27.8 29.2 2026-01-0… 2026-01… NA
5 elec_e… resu… 6.67 7.00 2026-01-0… 2026-01… NA
6 elec_e… resu… 27.8 29.2 2026-01-0… 2026-01… NA
7 elec_e… resu… 6.67 7.00 2026-01-0… 2026-01… NA
8 elec_e… resu… 27.8 29.2 2026-01-0… 2026-01… NA
9 elec_e… resu… 6.67 7.00 2026-01-0… 2026-01… NA
10 elec_e… resu… 27.8 29.2 2026-01-0… 2026-01… NA
11 elec_e… resu… 6.67 7.00 2025-12-3… 2026-01… NA
12 elec_e… resu… 27.8 29.2 2025-12-3… 2025-12… NA
13 elec_e… resu… 6.67 7.00 2025-12-3… 2025-12… NA
14 elec_e… resu… 27.8 29.2 2025-12-3… 2025-12… NA
15 elec_e… resu… 6.67 7.00 2025-12-2… 2025-12… NA
16 elec_e… resu… 27.8 29.2 2025-12-2… 2025-12… NA
17 elec_e… resu… 6.67 7.00 2025-12-2… 2025-12… NA
18 elec_e… resu… 27.8 29.2 2025-12-2… 2025-12… NA
19 elec_e… resu… 6.67 7.00 2025-12-2… 2025-12… NA
20 elec_e… resu… 27.8 29.2 2025-12-2… 2025-12… NA
21 elec_e… resu… 6.67 7.00 2025-12-2… 2025-12… NA
22 elec_e… resu… 27.8 29.2 2025-12-2… 2025-12… NA
23 elec_e… resu… 6.67 7.00 2025-12-2… 2025-12… NA
24 elec_e… resu… 27.8 29.2 2025-12-2… 2025-12… NA
25 elec_e… resu… 6.67 7.00 2025-12-2… 2025-12… NA
26 elec_e… resu… 27.8 29.2 2025-12-2… 2025-12… NA
27 elec_e… resu… 6.67 7.00 2025-12-2… 2025-12… NA
28 elec_e… resu… 27.8 29.2 2025-12-2… 2025-12… NA
29 elec_e… resu… 6.67 7.00 2025-12-2… 2025-12… NA
30 elec_e… resu… 27.8 29.2 2025-12-2… 2025-12… NA
31 elec_e… resu… 6.67 7.00 2025-12-2… 2025-12… NA
32 elec_e… resu… 27.8 29.2 2025-12-2… 2025-12… NA
33 elec_e… resu… 6.67 7.00 2025-12-2… 2025-12… NA
34 elec_e… resu… 27.8 29.2 2025-12-2… 2025-12… NA
35 elec_e… resu… 6.67 7.00 2025-12-1… 2025-12… NA
36 elec_e… resu… 27.8 29.2 2025-12-1… 2025-12… NA
37 elec_e… resu… 6.67 7.00 2025-12-1… 2025-12… NA
38 elec_e… resu… 27.8 29.2 2025-12-1… 2025-12… NA
39 elec_e… resu… 6.67 7.00 2025-12-1… 2025-12… NA
40 elec_e… resu… 27.8 29.2 2025-12-1… 2025-12… NA
41 elec_e… resu… 6.67 7.00 2025-12-1… 2025-12… NA
42 elec_e… resu… 27.8 29.2 2025-12-1… 2025-12… NA
43 elec_e… resu… 6.67 7.00 2025-12-1… 2025-12… NA
44 elec_e… resu… 27.8 29.2 2025-12-1… 2025-12… NA
45 elec_e… resu… 6.67 7.00 2025-12-1… 2025-12… NA
46 elec_e… resu… 27.8 29.2 2025-12-1… 2025-12… NA
47 elec_e… resu… 6.67 7.00 2025-12-1… 2025-12… NA
48 elec_e… resu… 27.8 29.2 2025-12-1… 2025-12… NA
49 elec_e… resu… 6.67 7.00 2025-12-1… 2025-12… NA
50 elec_e… resu… 27.8 29.2 2025-12-1… 2025-12… NA
51 elec_e… resu… 6.67 7.00 2025-12-1… 2025-12… NA
52 elec_e… resu… 27.8 29.2 2025-12-1… 2025-12… NA
53 elec_e… resu… 6.67 7.00 2025-12-1… 2025-12… NA
54 elec_e… resu… 27.8 29.2 2025-12-1… 2025-12… NA
55 elec_e… resu… 6.67 7.00 2025-12-0… 2025-12… NA
56 elec_e… resu… 27.8 29.2 2025-12-0… 2025-12… NA
57 elec_e… resu… 6.67 7.00 2025-12-0… 2025-12… NA
58 elec_e… resu… 27.8 29.2 2025-12-0… 2025-12… NA
59 elec_e… resu… 6.67 7.00 2025-12-0… 2025-12… NA
60 elec_e… resu… 27.8 29.2 2025-12-0… 2025-12… NA
61 elec_e… resu… 6.67 7.00 2025-12-0… 2025-12… NA
62 elec_e… resu… 27.8 29.2 2025-12-0… 2025-12… NA
63 elec_e… resu… 6.67 7.00 2025-12-0… 2025-12… NA
64 elec_e… resu… 27.8 29.2 2025-12-0… 2025-12… NA
65 elec_e… resu… 6.67 7.00 2025-12-0… 2025-12… NA
66 elec_e… resu… 27.8 29.2 2025-12-0… 2025-12… NA
67 elec_e… resu… 6.67 7.00 2025-12-0… 2025-12… NA
68 elec_e… resu… 27.8 29.2 2025-12-0… 2025-12… NA
69 elec_e… resu… 6.67 7.00 2025-12-0… 2025-12… NA
70 elec_e… resu… 27.8 29.2 2025-12-0… 2025-12… NA
71 elec_e… resu… 6.67 7.00 2025-12-0… 2025-12… NA
72 elec_e… resu… 27.8 29.2 2025-12-0… 2025-12… NA
73 elec_e… resu… 6.67 7.00 2025-11-3… 2025-12… NA
74 elec_e… resu… 27.8 29.2 2025-11-3… 2025-11… NA
75 elec_e… resu… 6.67 7.00 2025-11-2… 2025-11… NA
76 elec_e… resu… 27.8 29.2 2025-11-2… 2025-11… NA
77 elec_e… resu… 6.67 7.00 2025-11-2… 2025-11… NA
78 elec_e… resu… 27.8 29.2 2025-11-2… 2025-11… NA
79 elec_e… resu… 6.67 7.00 2025-11-2… 2025-11… NA
80 elec_e… resu… 27.8 29.2 2025-11-2… 2025-11… NA
81 elec_e… resu… 6.67 7.00 2025-11-2… 2025-11… NA
82 elec_e… resu… 27.8 29.2 2025-11-2… 2025-11… NA
83 elec_e… resu… 6.67 7.00 2025-11-2… 2025-11… NA
84 elec_e… resu… 27.8 29.2 2025-11-2… 2025-11… NA
85 elec_e… resu… 6.67 7.00 2025-11-2… 2025-11… NA
86 elec_e… resu… 27.8 29.2 2025-11-2… 2025-11… NA
87 elec_e… resu… 6.67 7.00 2025-11-2… 2025-11… NA
88 elec_e… resu… 27.8 29.2 2025-11-2… 2025-11… NA
89 elec_e… resu… 6.67 7.00 2025-11-2… 2025-11… NA
90 elec_e… resu… 27.8 29.2 2025-11-2… 2025-11… NA
91 elec_e… resu… 6.67 7.00 2025-11-2… 2025-11… NA
92 elec_e… resu… 27.8 29.2 2025-11-2… 2025-11… NA
93 elec_e… resu… 6.67 7.00 2025-11-2… 2025-11… NA
94 elec_e… resu… 27.8 29.2 2025-11-2… 2025-11… NA
95 elec_e… resu… 6.67 7.00 2025-11-1… 2025-11… NA
96 elec_e… resu… 27.8 29.2 2025-11-1… 2025-11… NA
97 elec_e… resu… 6.67 7.00 2025-11-1… 2025-11… NA
98 elec_e… resu… 27.8 29.2 2025-11-1… 2025-11… NA
99 elec_e… resu… 6.67 7.00 2025-11-1… 2025-11… NA
100 elec_e… resu… 27.8 29.2 2025-11-1… 2025-11… NA
101 elec_s… resu… 0 0 2024-10-2… <NA> NA
102 elec_u… resu… 15 15 2024-10-2… <NA> NA
# ℹ 3 more variables: type <chr>, peak <chr>, date <date>
Linton gas
# A tibble: 23 × 8
source name value_exc_vat value_inc_vat valid_from valid_to payment_method
<chr> <chr> <dbl> <dbl> <chr> <chr> <chr>
1 gas_sta… resu… 31.8 33.4 2026-01-0… <NA> DIRECT_DEBIT
2 gas_sta… resu… 31.2 32.7 2025-09-3… 2026-01… DIRECT_DEBIT
3 gas_sta… resu… 27.3 28.6 2025-06-3… 2025-09… DIRECT_DEBIT
4 gas_sta… resu… 29.6 31.1 2025-03-3… 2025-06… DIRECT_DEBIT
5 gas_sta… resu… 28.0 29.4 2024-09-3… 2025-03… DIRECT_DEBIT
6 gas_sta… resu… 27.6 28.9 2024-03-3… 2024-09… DIRECT_DEBIT
7 gas_sta… resu… 26.2 27.5 2024-01-0… 2024-03… DIRECT_DEBIT
8 gas_sta… resu… 26.2 27.5 2023-03-3… 2024-01… DIRECT_DEBIT
9 gas_sta… resu… 25.6 26.8 2022-11-0… 2023-03… DIRECT_DEBIT
10 gas_uni… resu… 5.59 5.87 2026-01-0… <NA> DIRECT_DEBIT
# ℹ 13 more rows
# ℹ 1 more variable: date <date>
year | month | cons | cost | tot_cost | mean_cost |
|---|---|---|---|---|---|
2,024 | 11 | 1,174.6326 | 83.26215 | 1,228.549 | 87.7535 |
2,024 | 12 | 1,004.6843 | 72.69136 | 1,228.549 | 87.7535 |
2,025 | 1 | 2,222.2344 | 148.42298 | 1,228.549 | 87.7535 |
2,025 | 2 | 2,676.3888 | 176.67138 | 1,228.549 | 87.7535 |
2,025 | 3 | 1,703.5371 | 116.16001 | 1,228.549 | 87.7535 |
2,025 | 4 | 1,173.2109 | 83.17372 | 1,228.549 | 87.7535 |
2,025 | 5 | 793.4290 | 59.55129 | 1,228.549 | 87.7535 |
2,025 | 6 | 273.3101 | 27.19989 | 1,228.549 | 87.7535 |
2,025 | 7 | 169.3819 | 20.73555 | 1,228.549 | 87.7535 |
2,025 | 8 | 219.1079 | 23.82851 | 1,228.549 | 87.7535 |
2,025 | 9 | 493.1067 | 40.87123 | 1,228.549 | 87.7535 |
2,025 | 10 | 1,269.7086 | 89.17587 | 1,228.549 | 87.7535 |
2,025 | 11 | 1,823.3929 | 123.61504 | 1,228.549 | 87.7535 |
2,025 | 12 | 2,459.6466 | 163.19002 | 1,228.549 | 87.7535 |