Introduction
This vignette documents the workflow implemented by
cdmAcm0013 for the Clean Development Mechanism (CDM)
methodology ACM0013. The methodology covers new grid-connected fossil
fuel power plants that employ a less greenhouse gas intensive technology
than the baseline grid generation they displace.
Simulated Dataset
monitoring <- simulate_acm0013_dataset(periods = 6, seed = 2025)
knitr::kable(head(monitoring))
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
| 1 |
TRUE |
TRUE |
48087.15 |
0.9465240 |
0.7853121 |
80174152 |
7.34e-05 |
569.2827 |
0.6283929 |
38.423012 |
168.0829 |
86.41569 |
3.050059 |
| 2 |
TRUE |
TRUE |
35476.71 |
0.8951523 |
0.6047385 |
67151587 |
7.92e-05 |
457.4357 |
0.6530104 |
40.734224 |
181.1187 |
75.09143 |
14.840804 |
| 3 |
TRUE |
TRUE |
44362.46 |
0.9028432 |
0.7032556 |
71923290 |
7.78e-05 |
591.6823 |
0.8977290 |
49.891654 |
114.4853 |
74.63464 |
19.312213 |
| 4 |
TRUE |
TRUE |
52146.86 |
0.8996865 |
0.6872761 |
81293106 |
7.20e-05 |
618.2340 |
0.8715938 |
40.662285 |
210.4004 |
91.30972 |
4.348235 |
| 5 |
TRUE |
TRUE |
42301.21 |
0.9560569 |
0.7046745 |
65792501 |
7.86e-05 |
664.7624 |
0.7210183 |
37.452852 |
126.9043 |
103.55314 |
2.039359 |
| 6 |
TRUE |
TRUE |
42311.50 |
0.9008504 |
0.7571335 |
79306338 |
7.26e-05 |
445.6165 |
0.8791400 |
6.553761 |
119.7397 |
92.05448 |
15.356158 |
Equation Walkthrough
monitoring <- monitoring |>
dplyr::mutate(
baseline_emissions_tco2e = calculate_baseline_emissions_acm0013(
electricity_sent_out_mwh,
baseline_emission_factor_tco2_per_mwh
),
project_emissions_tco2e = calculate_project_emissions_acm0013(
fuel_consumed,
fuel_emission_factor_tco2_per_unit,
auxiliary_electricity_mwh = auxiliary_electricity_mwh,
auxiliary_emission_factor_tco2_per_mwh = auxiliary_emission_factor_tco2_per_mwh,
other_project_emissions_tco2e = other_project_emissions_tco2e
),
leakage_emissions_tco2e = calculate_leakage_emissions_acm0013(
upstream_fuel_emissions_tco2e,
displaced_unit_emissions_tco2e,
other_leakage_tco2e
)
)
knitr::kable(head(monitoring))
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
| 1 |
TRUE |
TRUE |
48087.15 |
0.9465240 |
0.7853121 |
80174152 |
7.34e-05 |
569.2827 |
0.6283929 |
38.423012 |
168.0829 |
86.41569 |
3.050059 |
45515.64 |
6278.446 |
257.5486 |
| 2 |
TRUE |
TRUE |
35476.71 |
0.8951523 |
0.6047385 |
67151587 |
7.92e-05 |
457.4357 |
0.6530104 |
40.734224 |
181.1187 |
75.09143 |
14.840804 |
31757.06 |
5656.777 |
271.0509 |
| 3 |
TRUE |
TRUE |
44362.46 |
0.9028432 |
0.7032556 |
71923290 |
7.78e-05 |
591.6823 |
0.8977290 |
49.891654 |
114.4853 |
74.63464 |
19.312213 |
40052.34 |
6175.139 |
208.4322 |
| 4 |
TRUE |
TRUE |
52146.86 |
0.8996865 |
0.6872761 |
81293106 |
7.20e-05 |
618.2340 |
0.8715938 |
40.662285 |
210.4004 |
91.30972 |
4.348235 |
46915.83 |
6431.929 |
306.0583 |
| 5 |
TRUE |
TRUE |
42301.21 |
0.9560569 |
0.7046745 |
65792501 |
7.86e-05 |
664.7624 |
0.7210183 |
37.452852 |
126.9043 |
103.55314 |
2.039359 |
40442.36 |
5685.960 |
232.4968 |
| 6 |
TRUE |
TRUE |
42311.50 |
0.9008504 |
0.7571335 |
79306338 |
7.26e-05 |
445.6165 |
0.8791400 |
6.553761 |
119.7397 |
92.05448 |
15.356158 |
38116.33 |
6155.646 |
227.1503 |
Monitoring Period Aggregation
monitoring <- monitoring |>
dplyr::mutate(
net_emission_reductions_tco2e = calculate_net_emission_reductions_acm0013(
baseline_emissions_tco2e,
project_emissions_tco2e,
leakage_emissions_tco2e
)
)
aggregate_monitoring_periods_acm0013(monitoring) |>
knitr::kable()
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
| 1 |
45515.64 |
6278.446 |
257.5486 |
38979.65 |
| 2 |
31757.06 |
5656.777 |
271.0509 |
25829.23 |
| 3 |
40052.34 |
6175.139 |
208.4322 |
33668.77 |
| 4 |
46915.83 |
6431.929 |
306.0583 |
40177.84 |
| 5 |
40442.36 |
5685.960 |
232.4968 |
34523.90 |
| 6 |
38116.33 |
6155.646 |
227.1503 |
31733.54 |
results <- estimate_emission_reductions_acm0013(
simulate_acm0013_dataset(periods = 12, seed = 42)
)
results$total_emission_reductions
#> # A tibble: 1 × 4
#> baseline_emissions_tco2e project_emissions_tco2e leakage_emissions_tco2e
#> <dbl> <dbl> <dbl>
#> 1 511459. 73455. 3428.
#> # ℹ 1 more variable: net_emission_reductions_tco2e <dbl>
Function Reference
reference <- tibble::tibble(
Function = c(
"check_applicability_acm0013",
"calculate_baseline_emissions_acm0013",
"estimate_emission_reductions_acm0013"
),
Signature = c(
"(data, efficiency_improvement_threshold = 0.1)",
"(electricity_generated_mwh, baseline_emission_factor_tco2_per_mwh)",
"(data)"
),
Purpose = c(
"Validate ACM0013 applicability conditions",
"Compute baseline emissions for displaced grid electricity",
"Run the end-to-end ACM0013 estimator"
)
)
knitr::kable(reference)
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
| check_applicability_acm0013 |
(data, efficiency_improvement_threshold = 0.1) |
Validate ACM0013 applicability conditions |
| calculate_baseline_emissions_acm0013 |
(electricity_generated_mwh,
baseline_emission_factor_tco2_per_mwh) |
Compute baseline emissions for displaced grid
electricity |
| estimate_emission_reductions_acm0013 |
(data) |
Run the end-to-end ACM0013 estimator |
Workflow Overview
workflow <- tibble::tibble(
Step = c(
"Confirm applicability",
"Assemble monitoring dataset",
"Run equation helpers",
"Aggregate monitoring periods",
"Report emission reductions"
),
Description = c(
"Ensure the plant is new, grid-connected, and lower-emitting than the baseline",
"Collect electricity output, fuel consumption, and leakage parameters",
"Transform monitoring data into emissions metrics",
"Summarise emissions by reporting period",
"Compile baseline, project, leakage, and net reductions"
)
)
knitr::kable(workflow)
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
| Confirm applicability |
Ensure the plant is new, grid-connected, and
lower-emitting than the baseline |
| Assemble monitoring dataset |
Collect electricity output, fuel consumption, and
leakage parameters |
| Run equation helpers |
Transform monitoring data into emissions metrics |
| Aggregate monitoring periods |
Summarise emissions by reporting period |
| Report emission reductions |
Compile baseline, project, leakage, and net
reductions |