Introduction

ACM0018 covers grid-connected power plants that generate electricity using biomass feedstocks in a power-only configuration. This vignette illustrates the core helpers in cdmAcm0018 for checking applicability, simulating monitoring data, walking through the emissions equations, and aggregating monitoring periods.

Applicability Checks

The methodology requires renewable biomass feedstock, a power-only plant configuration, and biomass to supply the dominant share of fuel input.

check_applicability_biomass_feedstock_acm0018(
  c("agricultural residues", "coal", "forest residues")
)
#> [1]  TRUE FALSE  TRUE
check_applicability_power_only_acm0018(
  exports_heat = c(FALSE, TRUE),
  generates_electricity = c(TRUE, TRUE)
)
#> [1]  TRUE FALSE
check_applicability_biomass_fraction_acm0018(c(0.85, 0.72, 0.9))
#> [1]  TRUE FALSE  TRUE

Simulated Monitoring Dataset

simulate_acm0018_dataset() generates tidy monitoring data with electricity output, auxiliary fossil fuel use, onsite fossil generation, biomass transport activity, and leakage assumptions.

set.seed(2024)
monitoring <- simulate_acm0018_dataset(3)
knitr::kable(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 electricity_output_mwh baseline_emission_factor auxiliary_fossil_tj auxiliary_fossil_ef onsite_generation_mwh onsite_emission_factor biomass_transport_tkm transport_emission_factor leakage_fraction
Period 01 51436.89 0.8093561 0.2013859 74 43.17973 0.7 611.5409 0.00012 0.0385189
Period 02 49640.50 0.8779049 0.1749186 74 34.92112 0.7 552.2324 0.00012 0.0307006
Period 03 47622.10 0.8846177 0.1310050 74 67.03377 0.7 159.8286 0.00012 0.0445421

Equation Walkthrough

The equation helpers mirror the ACM0018 calculation sequence. Baseline emissions are driven by net electricity exported to the grid and the combined margin emission factor. Project emissions capture auxiliary fossil firing, onsite fossil generation, and biomass transport. Leakage is modelled as a fraction of baseline emissions.

baseline <- calculate_baseline_emissions_acm0018(
  monitoring$electricity_output_mwh,
  monitoring$baseline_emission_factor
)
project <- calculate_project_emissions_acm0018(
  monitoring$auxiliary_fossil_tj,
  monitoring$auxiliary_fossil_ef,
  monitoring$onsite_generation_mwh,
  monitoring$onsite_emission_factor,
  monitoring$biomass_transport_tkm,
  monitoring$transport_emission_factor
)
leakage <- calculate_leakage_emissions_acm0018(
  monitoring$leakage_fraction,
  baseline
)
emission_reductions <- calculate_emission_reductions_acm0018(
  baseline,
  project,
  leakage
)

dplyr::tibble(
  period = monitoring$period,
  baseline,
  project,
  leakage,
  emission_reductions
)
#> # A tibble: 3 × 5
#>   period    baseline project leakage emission_reductions
#>   <chr>        <dbl>   <dbl>   <dbl>               <dbl>
#> 1 Period 01   41631.    45.2   1604.              39982.
#> 2 Period 02   43580.    37.5   1338.              42204.
#> 3 Period 03   42127.    56.6   1876.              40194.

Monitoring Period Aggregation

aggregate_monitoring_periods_acm0018() summarises monitoring observations into period-level totals following the same calculation chain.

aggregated <- aggregate_monitoring_periods_acm0018(monitoring)
aggregated
#> # A tibble: 3 × 14
#>   period    electricity_output_mwh baseline_emission_factor auxiliary_fossil_tj
#>   <chr>                      <dbl>                    <dbl>               <dbl>
#> 1 Period 01                 51437.                    0.809               0.201
#> 2 Period 02                 49641.                    0.878               0.175
#> 3 Period 03                 47622.                    0.885               0.131
#> # ℹ 10 more variables: auxiliary_fossil_ef <dbl>, onsite_generation_mwh <dbl>,
#> #   onsite_emission_factor <dbl>, biomass_transport_tkm <dbl>,
#> #   transport_emission_factor <dbl>, leakage_fraction <dbl>,
#> #   baseline_emissions <dbl>, project_emissions <dbl>, leakage_emissions <dbl>,
#> #   emission_reductions <dbl>

Portfolio Totals

For design documents or verification summaries, the portfolio helper provides total generation, emissions, and emission reductions.

estimate_emission_reductions_acm0018(monitoring)
#> # A tibble: 1 × 5
#>   total_electricity_output_mwh total_baseline_emissions total_project_emissions
#>                          <dbl>                    <dbl>                   <dbl>
#> 1                      148699.                  127338.                    139.
#> # ℹ 2 more variables: total_leakage_emissions <dbl>,
#> #   total_emission_reductions <dbl>