Introduction

This vignette documents the workflow implemented by cdmAcm0010 for the Clean Development Mechanism (CDM) methodology ACM0010. The methodology targets methane emission reductions from manure management systems that install anaerobic digestion to capture and combust biogas.

Applicability Checks

library(cdmAcm0010)

check_applicability_feedstock_mix(c("manure", "wastewater"))
#> [1] TRUE
check_applicability_baseline_system(c("open lagoon", "composting"))
#> [1]  TRUE FALSE

Simulated Dataset

monitoring <- simulate_acm0010_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")
period baseline_system cod_in_mg_l cod_out_mg_l flow_m3 methane_conversion_factor methane_recovered_m3 combustion_efficiency electricity_consumed_mwh grid_emission_factor additional_leakage_tco2e
1 open lagoon 4934.016 955.3468 236.5411 0.8333512 1183.3646 0.9894701 24.96750 0.5386276 1.7596170
2 anaerobic pond 4708.593 1278.2353 353.6638 0.6597468 1236.4680 0.9833719 22.19869 0.7944010 2.9506940
3 open lagoon 4305.950 744.9812 159.9063 0.8570474 1329.5249 0.9482376 21.23586 0.5717447 3.8252244
4 manure pile 5856.979 1013.9309 328.8292 0.6778839 891.2331 0.9851327 11.96613 0.5526392 3.0038917
5 anaerobic pond 4963.073 1249.4115 234.2227 0.7269620 875.7144 0.9737922 16.80829 0.7080896 0.7625147
6 manure pile 3071.507 373.2368 379.6006 0.6430768 941.3610 0.9770279 18.11187 0.6433796 3.7102011

Equation Walkthrough

monitoring <- monitoring |>
  dplyr::mutate(
    cod_removed_kg = calculate_cod_removed_acm0010(cod_in_mg_l, cod_out_mg_l, flow_m3),
    baseline_emissions_tco2e = calculate_baseline_emissions_acm0010(cod_removed_kg, methane_conversion_factor),
    project_emissions_tco2e = calculate_project_emissions_acm0010(methane_recovered_m3, combustion_efficiency),
    leakage_emissions_tco2e = calculate_leakage_emissions_acm0010(electricity_consumed_mwh, grid_emission_factor, additional_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")
period baseline_system cod_in_mg_l cod_out_mg_l flow_m3 methane_conversion_factor methane_recovered_m3 combustion_efficiency electricity_consumed_mwh grid_emission_factor additional_leakage_tco2e cod_removed_kg baseline_emissions_tco2e project_emissions_tco2e leakage_emissions_tco2e
1 open lagoon 4934.016 955.3468 236.5411 0.8333512 1183.3646 0.9894701 24.96750 0.5386276 1.7596170 941.1190 3.678285 0.2500912 15.207800
2 anaerobic pond 4708.593 1278.2353 353.6638 0.6597468 1236.4680 0.9833719 22.19869 0.7944010 2.9506940 1213.1935 3.753878 0.4126503 20.585352
3 open lagoon 4305.950 744.9812 159.9063 0.8570474 1329.5249 0.9482376 21.23586 0.5717447 3.8252244 569.4211 2.288818 1.3812326 15.966712
4 manure pile 5856.979 1013.9309 328.8292 0.6778839 891.2331 0.9851327 11.96613 0.5526392 3.0038917 1592.5359 5.063110 0.2659381 9.616843
5 anaerobic pond 4963.073 1249.4115 234.2227 0.7269620 875.7144 0.9737922 16.80829 0.7080896 0.7625147 869.8237 2.965622 0.4606264 12.664291
6 manure pile 3071.507 373.2368 379.6006 0.6430768 941.3610 0.9770279 18.11187 0.6433796 3.7102011 1024.2649 3.089214 0.4340229 15.363008

Monitoring Period Aggregation

monitoring <- monitoring |>
  dplyr::mutate(
    net_emission_reductions_tco2e = calculate_net_emission_reductions_acm0010(
      baseline_emissions_tco2e,
      project_emissions_tco2e,
      leakage_emissions_tco2e
    )
  )
aggregate_monitoring_periods_acm0010(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")
period baseline_emissions_tco2e project_emissions_tco2e leakage_emissions_tco2e net_emission_reductions_tco2e
1 3.678285 0.2500912 15.207800 -11.779605
2 3.753878 0.4126503 20.585352 -17.244124
3 2.288818 1.3812326 15.966712 -15.059126
4 5.063110 0.2659381 9.616843 -4.819671
5 2.965622 0.4606264 12.664291 -10.159295
6 3.089214 0.4340229 15.363008 -12.707817

Meta-Function

results <- estimate_emission_reductions_acm0010(simulate_acm0010_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                     47.8                    15.3                    185.
#> # ℹ 1 more variable: net_emission_reductions_tco2e <dbl>

Function Reference

reference <- tibble::tibble(
  Function = c(
    "check_applicability_feedstock_mix",
    "calculate_baseline_emissions_acm0010",
    "estimate_emission_reductions_acm0010"
  ),
  Signature = c(
    "(feedstock, eligible = 0.7)",
    "(cod_removed_kg, methane_conversion_factor, methane_fraction = 0.67, gwp_ch4 = 28)",
    "(data, gwp_ch4 = 28, methane_density = 0.0007168)"
  ),
  Purpose = c(
    "Validate eligible feedstock composition",
    "Compute baseline emissions from COD removal",
    "Run the end-to-end ACM0010 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")
Function Signature Purpose
check_applicability_feedstock_mix (feedstock, eligible = 0.7) Validate eligible feedstock composition
calculate_baseline_emissions_acm0010 (cod_removed_kg, methane_conversion_factor, methane_fraction = 0.67, gwp_ch4 = 28) Compute baseline emissions from COD removal
estimate_emission_reductions_acm0010 (data, gwp_ch4 = 28, methane_density = 0.0007168) Run the end-to-end ACM0010 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 feedstock mix and baseline system meet ACM0010 criteria",
    "Collect COD, flow, methane recovery, and energy data",
    "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")
Step Description
Confirm applicability Ensure feedstock mix and baseline system meet ACM0010 criteria
Assemble monitoring dataset Collect COD, flow, methane recovery, and energy data
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