Monte Carlo simulation combines the uncertainties in activity data (Chapter 3), emission factors (Chapter 2) and allometric equations (Chapter 1) into a single conservativeness deduction, the share of emission reductions withheld from credit issuance under ART-TREES. This chapter sets out a simulation design that meets the standard, presents worked examples in which uncertainty fell by 20 to 50 per cent through targeted improvement, and gives the reasoning for choosing where to invest under the Section 8 requirements.
ART-TREES Section 8 requires Monte Carlo Approach 2 with at least 10,000 iterations, 90 per cent confidence intervals, and bootstrap sampling where the probability distribution of an input is unknown (ART, 2021). The simulation calculates the uncertainty adjustment factor (UAF) from the half-width of the confidence interval around simulated emissions.
Here \(HW_{90\%}\) is the half-width of the 90 per cent confidence interval around mean emissions, and the resulting UAF sets the conservativeness deduction applied to creditable emissions.
ART-TREES permits simulation over a single year or aggregation over several years, and single-year simulation tends to give lower uncertainty because errors do not accumulate across years. The advantages and disadvantages of each design are set out in section 4.3, and the single-year function below is the recommended form.
View Code
# Single-year simulation (RECOMMENDED)simulate_single_year<-function(n_sim=10000, year_data){# Sample activity data uncertaintydeforestation_ha<-rnorm(n_sim, mean =year_data$deforestation_ha, sd =year_data$deforestation_ha*year_data$ad_uncertainty_pct/100)# Sample emission factor uncertainty ef_tco2_ha<-rnorm(n_sim, mean =year_data$ef_tco2_ha, sd =year_data$ef_tco2_ha*year_data$ef_uncertainty_pct/100)# Calculate emissions distributionemissions_tco2<-deforestation_ha*ef_tco2_ha# Compute 90% CIci_90<-quantile(emissions_tco2, probs =c(0.05, 0.95))hw_90<-(ci_90[2]-ci_90[1])/2uaf<-0.524417*(hw_90/mean(emissions_tco2))/1.645006return(list( mean_emissions =mean(emissions_tco2), hw_90_pct =(hw_90/mean(emissions_tco2))*100, uaf =uaf, simulated_emissions =emissions_tco2))}# Example year datayear_2024<-list( deforestation_ha =5000, ad_uncertainty_pct =12, # Input from Chapter 3 accuracy assessment ef_tco2_ha =200, ef_uncertainty_pct =18# Input from Chapter 2 default values)results<-simulate_single_year(year_data =year_2024)cat(sprintf("Mean Emissions: %.0f tCO2\n", results$mean_emissions))## Mean Emissions: 999597 tCO2cat(sprintf("90%% CI Half-Width: %.1f%%\n", results$hw_90_pct))## 90% CI Half-Width: 35.4%cat(sprintf("Uncertainty Adjustment Factor: %.3f\n", results$uaf))## Uncertainty Adjustment Factor: 0.113
Baseline Treatment
The baseline is the arithmetic mean of verified historical emissions, treated as a fixed value rather than a simulated one, so that it adds no variance of its own. Country X, for example, set its high forest low deforestation crediting level (HFLDCL) at 21,037,534 tCO₂ rather than simulating the variation between historical years (ART, 2021, Section 8.4).
4.2 Ranking Uncertainty Sources
Sensitivity Analysis
The sensitivity analysis below halves the activity data uncertainty, the emission factor uncertainty, and both together, and reports the UAF under each scenario so that the dominant source can be identified.
Where emission factor uncertainty dominates, as it usually does under Tier 1 defaults, investment in plot-based Tier 2 emission factors lowers the UAF by more than a small gain in classification accuracy would.
4.3 Reducing Uncertainty
Bootstrap Sampling
Where the probability distribution of an input is unknown, ART-TREES requires bootstrap resampling, which draws repeated samples from the observed errors instead of from an assumed distribution. The function below draws the true forest area from a binomial distribution set by the user’s accuracy of the map.
View Code
# Bootstrap activity data from confusion matrixbootstrap_activity_data<-function(n_sim, confusion_matrix, mapped_area_ha){# Extract user's accuracy (precision) for focal classusers_accuracy<-confusion_matrix["Forest", "Forest"]/sum(confusion_matrix["Forest", ])# Bootstrap from binomial distributiontrue_area_ha<-rbinom(n_sim, size =mapped_area_ha, prob =users_accuracy)return(true_area_ha)}
Temporal Aggregation
Design Comparison
ART-TREES permits two temporal scopes for the simulation, a single monitoring year or the whole crediting period aggregated, and recent validation work in a jurisdictional program found that the single-year design gives substantially lower uncertainty than multi-year aggregation.
Multi-Year Aggregation
View Code
# Multi-year approach: Propagates uncertainty forward through yearsmulti_year_simulation<-function(n_sim=10000, years_data){cumulative_emissions<-numeric(n_sim)for(iin1:n_sim){# Sample each year, accumulating uncertaintiesyear_emissions<-sapply(years_data, function(year){defor<-rnorm(1, year$deforestation_ha, year$deforestation_ha*year$ad_unc/100)ef<-rnorm(1, year$ef_tco2_ha, year$ef_tco2_ha*year$ef_unc/100)defor*ef})cumulative_emissions[i]<-sum(year_emissions)}# UAF from cumulative distributionci_90<-quantile(cumulative_emissions, probs =c(0.05, 0.95))hw_90<-(ci_90[2]-ci_90[1])/2uaf<-0.524417*(hw_90/mean(cumulative_emissions))/1.645006return(list(uaf =uaf, mean_emissions =mean(cumulative_emissions)))}
This design has a serious limitation, in that errors accumulate across years and widen the confidence interval, so that the half-width can exceed mean emissions in the early years of the trend and give a UA above 100 per cent.
Single-Year Design
The single-year design limits the simulation to one monitoring period, so that only that year’s errors enter the interval.
In jurisdictional program testing, switching from the multi-year to the single-year design cut the UAF by 21 percentage points, from 104 per cent to 83 per cent.
Reference Level Treatment
The HFLDCL baseline is treated as a fixed, verified value rather than a simulated one, and it stays in effect for the crediting period.
View Code
# CORRECT: Deterministic baseline (Guyana-validated approach)hfldcl_fixed<-21037534# Arithmetic mean of verified 2016-2020 period (tCO2)# Simulate only crediting period emissionsn_sim<-10000emissions_2024<-rnorm(n_sim, mean =1000000, sd =1000000*0.15)# Reductions with fixed baselinereductions_tco2<-pmax(0, hfldcl_fixed-emissions_2024)# UAF calculationci_90<-quantile(reductions_tco2, probs =c(0.05, 0.95))hw_90<-(ci_90[2]-ci_90[1])/2uaf<-0.524417*(hw_90/mean(reductions_tco2))/1.645006cat(sprintf("\nDeterministic Baseline UAF: %.1f%%\n", uaf*100))## ## Deterministic Baseline UAF: 0.4%
Either the historical mean or a reference level verified by the validation and verification body (VVB) may serve as the fixed value. Under ART’s definitions an audit statement is irreversible and an issuance is not fungible, so a verified reference level removes a compliance concern and avoids inflating the UAF through repeated revision.
Credit Recovery Provision
Every 5 years the deduction is recalculated so that credits withheld in excess can be recovered.
The provision rewards continued improvement in method, because each reduction in annual uncertainty returns credits already deducted.
4.4 Worked Example
Multi-Source Integration
The worked example below is a jurisdictional program simulation that combines the uncertainties from all three earlier chapters into one crediting period.
View Code
# Complete jurisdictional simulationjurisdictional_simulation<-function(n_sim=10000){# Activity Data (Chapter 3: ±12% from accuracy assessment)deforestation_2024_ha<-rnorm(n_sim, mean =5000, sd =5000*0.12)# Emission Factors (Chapter 2: Tier 1 ±18%)# Aboveground biomass removalagb_loss_tco2_ha<-rnorm(n_sim, mean =180, sd =180*0.18)# Belowground biomass (Chapter 2: root-shoot ratio ±15%)bgb_loss_tco2_ha<-rnorm(n_sim, mean =40, sd =40*0.15)# Total emission factortotal_ef_tco2_ha<-agb_loss_tco2_ha+bgb_loss_tco2_ha# Calculate emissions distributionemissions_tco2<-deforestation_2024_ha*total_ef_tco2_ha# Reference level (deterministic)hfldcl_tco2<-21037534# Mean of 2016-2020# Emission reductionsreductions_tco2<-pmax(0, hfldcl_tco2-emissions_tco2)# Uncertainty metricsci_90<-quantile(reductions_tco2, probs =c(0.05, 0.95))hw_90<-(ci_90[2]-ci_90[1])/2uaf<-0.524417*(hw_90/mean(reductions_tco2))/1.645006# Creditable emissions after conservativeness deductioncreditable<-mean(reductions_tco2)*(1-uaf)return(list( mean_reductions =mean(reductions_tco2), uaf =uaf, hw_90_pct =(hw_90/mean(reductions_tco2))*100, creditable_tco2 =creditable, deduction_pct =uaf*100))}# Execute simulationprogram_results<-jurisdictional_simulation()cat(sprintf("Mean Emission Reductions: %.0f tCO2\n", program_results$mean_reductions))## Mean Emission Reductions: 19937713 tCO2cat(sprintf("90%% CI Half-Width: %.1f%%\n", program_results$hw_90_pct))## 90% CI Half-Width: 1.7%cat(sprintf("Uncertainty Deduction: %.1f%%\n", program_results$deduction_pct))## Uncertainty Deduction: 0.6%cat(sprintf("Creditable Emissions: %.0f tCO2\n", program_results$creditable_tco2))## Creditable Emissions: 19827599 tCO2
4.5 Compliance Checklist
At least 10,000 iterations per crediting year
90 per cent confidence intervals from the 5th and 95th percentiles
Bootstrap sampling for unknown distributions
Conservative bias, with systematic underestimation permitted
Whole-chain integration of activity data and emission factors
Documentation of simulation code and random seed
4.6 Chapter Summary
Monte Carlo simulation combines the component uncertainties into the conservativeness deduction that sets credit issuance, and effort is best spent on the dominant source, which is the emission factor in a Tier 1 program and the activity data in a system built on high-resolution imagery. Single-year simulation, a fixed reference level and steady improvement of each input lower the deduction, raise revenue and meet the ART-TREES Section 8 requirements.
---title: "4. Monte Carlo"format: docx: reference-doc: ../references/style.docx highlight-style: github latex_engine: xelatexexecute: eval: true echo: true warning: false message: false comment: NAknitr: opts_chunk: prefer-html: true dev: "png" dpi: 300bibliography: ../references/references.bibcsl: ../references/apa.csl---## Overview {.unnumbered}Monte Carlo simulation combines the uncertainties in activity data (Chapter 3), emission factors (Chapter 2) and allometric equations (Chapter 1) into a single conservativeness deduction, the share of emission reductions withheld from credit issuance under ART-TREES. This chapter sets out a simulation design that meets the standard, presents worked examples in which uncertainty fell by 20 to 50 per cent through targeted improvement, and gives the reasoning for choosing where to invest under the Section 8 requirements.ART-TREES Section 8 requires Monte Carlo Approach 2 with at least 10,000 iterations, 90 per cent confidence intervals, and bootstrap sampling where the probability distribution of an input is unknown [@artREDDEnvironmentalExcellence2021]. The simulation calculates the uncertainty adjustment factor (UAF) from the half-width of the confidence interval around simulated emissions.$$UA_t = 0.524417 \times \frac{HW_{90\%}}{1.645006}$$Here $HW_{90\%}$ is the half-width of the 90 per cent confidence interval around mean emissions, and the resulting UAF sets the conservativeness deduction applied to creditable emissions.### Environment Setup {.unnumbered}```{r}#| comment: NA#| warning: false#| message: false#| error: false#| echo: trueeasypackages::packages("ropensci/allodb", "animation", "BIOMASS", "cols4all", "covr", "cowplot", "caret","DescTools", "dataMaid", "dplyr", "FawR", "ForestToolsRS", "forestdata", "flextable", "ggplot2", "giscoR", "ggfortify", "htmltools", "janitor", "jsonlite", "lattice", "leaflet.providers", "leaflet", "lmtest", "lwgeom", "kableExtra", "kernlab", "knitr", "mapedit", "mapview", "maptiles", "Mlmetrics", "ModelMetrics", "moments", "olsrr", "openxlsx", "plotly", "psych", "randomForest", "raster","RColorBrewer", "rmarkdown", "renv", "reticulate", "s2", "sf", "scales", "sits","spdep", "stars", "stringr", "terra", "tmap", "tmaptools", "tidymodels", "tidyverse", "tidyr", "tune", "useful",prompt = F )``````{r}#| warning: false#| message: false#| error: false#| echo: false#| comment: NAsf::sf_use_s2(use_s2 =FALSE)set.seed(8787)#renv::init()#renv::activate()#renv::snapshot()#renv::update()s#renv::restore() # Debugger#renv::install("readxl", type = "binary")options(repos =c(CRAN ="https://cloud.r-project.org"),htmltools.dir.version =FALSE, htmltools.preserve.raw =FALSE,scipen =999 )knitr::opts_chunk$set(echo =TRUE, message =FALSE, warning =FALSE,error =FALSE, comment =NA, tidy.opts =list(width.cutoff =60) ) #reticulate::use_python(required = T, # "/Users/seamus/Library/Python/3.9/bin/python3")```## 4.1 Simulation Design### Temporal DimensionsART-TREES permits simulation over a single year or aggregation over several years, and single-year simulation tends to give lower uncertainty because errors do not accumulate across years. The advantages and disadvantages of each design are set out in section 4.3, and the single-year function below is the recommended form.```{r}#| eval: true# Single-year simulation (RECOMMENDED)simulate_single_year <-function(n_sim =10000, year_data) {# Sample activity data uncertainty deforestation_ha <-rnorm(n_sim, mean = year_data$deforestation_ha,sd = year_data$deforestation_ha * year_data$ad_uncertainty_pct /100)# Sample emission factor uncertainty ef_tco2_ha <-rnorm(n_sim,mean = year_data$ef_tco2_ha,sd = year_data$ef_tco2_ha * year_data$ef_uncertainty_pct /100)# Calculate emissions distribution emissions_tco2 <- deforestation_ha * ef_tco2_ha# Compute 90% CI ci_90 <-quantile(emissions_tco2, probs =c(0.05, 0.95)) hw_90 <- (ci_90[2] - ci_90[1]) /2 uaf <-0.524417* (hw_90 /mean(emissions_tco2)) /1.645006return(list(mean_emissions =mean(emissions_tco2),hw_90_pct = (hw_90 /mean(emissions_tco2)) *100,uaf = uaf,simulated_emissions = emissions_tco2 ))}# Example year datayear_2024 <-list(deforestation_ha =5000,ad_uncertainty_pct =12, # Input from Chapter 3 accuracy assessmentef_tco2_ha =200,ef_uncertainty_pct =18# Input from Chapter 2 default values)results <-simulate_single_year(year_data = year_2024)cat(sprintf("Mean Emissions: %.0f tCO2\n", results$mean_emissions))cat(sprintf("90%% CI Half-Width: %.1f%%\n", results$hw_90_pct))cat(sprintf("Uncertainty Adjustment Factor: %.3f\n", results$uaf))```### Baseline TreatmentThe baseline is the arithmetic mean of verified historical emissions, treated as a fixed value rather than a simulated one, so that it adds no variance of its own. Country X, for example, set its high forest low deforestation crediting level (HFLDCL) at 21,037,534 tCO₂ rather than simulating the variation between historical years [@artREDDEnvironmentalExcellence2021, Section 8.4].## 4.2 Ranking Uncertainty Sources### Sensitivity AnalysisThe sensitivity analysis below halves the activity data uncertainty, the emission factor uncertainty, and both together, and reports the UAF under each scenario so that the dominant source can be identified.```{r}#| eval: true# Sensitivity analysis across uncertainty sourcessensitivity_analysis <-function(base_scenario, n_sim =10000) { scenarios <-list(baseline = base_scenario,low_ad =modifyList(base_scenario, list(ad_uncertainty_pct = base_scenario$ad_uncertainty_pct *0.5)),low_ef =modifyList(base_scenario, list(ef_uncertainty_pct = base_scenario$ef_uncertainty_pct *0.5)),low_both =modifyList(base_scenario, list(ad_uncertainty_pct = base_scenario$ad_uncertainty_pct *0.5,ef_uncertainty_pct = base_scenario$ef_uncertainty_pct *0.5)) ) results <-lapply(scenarios, function(s) { sim <-simulate_single_year(n_sim, s)data.frame(scenario =deparse(substitute(s)),uaf = sim$uaf,hw_90_pct = sim$hw_90_pct ) })do.call(rbind, results)}# Run sensitivitysensitivity_results <-sensitivity_analysis(year_2024)print(sensitivity_results)```Where emission factor uncertainty dominates, as it usually does under Tier 1 defaults, investment in plot-based Tier 2 emission factors lowers the UAF by more than a small gain in classification accuracy would.## 4.3 Reducing Uncertainty### Bootstrap SamplingWhere the probability distribution of an input is unknown, ART-TREES requires bootstrap resampling, which draws repeated samples from the observed errors instead of from an assumed distribution. The function below draws the true forest area from a binomial distribution set by the user's accuracy of the map.```{r}#| eval: true# Bootstrap activity data from confusion matrixbootstrap_activity_data <-function(n_sim, confusion_matrix, mapped_area_ha) {# Extract user's accuracy (precision) for focal class users_accuracy <- confusion_matrix["Forest", "Forest"] /sum(confusion_matrix["Forest", ])# Bootstrap from binomial distribution true_area_ha <-rbinom(n_sim, size = mapped_area_ha, prob = users_accuracy)return(true_area_ha)}```### Temporal Aggregation#### Design ComparisonART-TREES permits two temporal scopes for the simulation, a single monitoring year or the whole crediting period aggregated, and recent validation work in a jurisdictional program found that the single-year design gives substantially lower uncertainty than multi-year aggregation.#### Multi-Year Aggregation```{r}#| eval: false# Multi-year approach: Propagates uncertainty forward through yearsmulti_year_simulation <-function(n_sim =10000, years_data) { cumulative_emissions <-numeric(n_sim)for (i in1:n_sim) {# Sample each year, accumulating uncertainties year_emissions <-sapply(years_data, function(year) { defor <-rnorm(1, year$deforestation_ha, year$deforestation_ha * year$ad_unc /100) ef <-rnorm(1, year$ef_tco2_ha, year$ef_tco2_ha * year$ef_unc /100) defor * ef }) cumulative_emissions[i] <-sum(year_emissions) }# UAF from cumulative distribution ci_90 <-quantile(cumulative_emissions, probs =c(0.05, 0.95)) hw_90 <- (ci_90[2] - ci_90[1]) /2 uaf <-0.524417* (hw_90 /mean(cumulative_emissions)) /1.645006return(list(uaf = uaf, mean_emissions =mean(cumulative_emissions)))}```This design has a serious limitation, in that errors accumulate across years and widen the confidence interval, so that the half-width can exceed mean emissions in the early years of the trend and give a UA above 100 per cent.#### Single-Year DesignThe single-year design limits the simulation to one monitoring period, so that only that year's errors enter the interval.```{r}#| eval: true# Single-year approach: Isolates uncertainty to reporting period single_year_simulation <-function(n_sim =10000, year_data) {# Sample activity data deforestation_ha <-rnorm(n_sim, mean = year_data$deforestation_ha,sd = year_data$deforestation_ha * year_data$ad_uncertainty_pct /100)# Sample emission factor ef_tco2_ha <-rnorm(n_sim,mean = year_data$ef_tco2_ha,sd = year_data$ef_tco2_ha * year_data$ef_uncertainty_pct /100)# Emissions distribution emissions_tco2 <- deforestation_ha * ef_tco2_ha# Compute 90% CI ci_90 <-quantile(emissions_tco2, probs =c(0.05, 0.95)) hw_90 <- (ci_90[2] - ci_90[1]) /2 uaf <-0.524417* (hw_90 /mean(emissions_tco2)) /1.645006return(list(mean_emissions =mean(emissions_tco2),hw_90_pct = (hw_90 /mean(emissions_tco2)) *100,uaf = uaf ))}# Example: 2024 monitoring periodyear_2024 <-list(deforestation_ha =5000,ad_uncertainty_pct =12, # Chapter 3 accuracy assessmentef_tco2_ha =200,ef_uncertainty_pct =18# Chapter 2 IPCC defaults)results <-single_year_simulation(year_data = year_2024)cat(sprintf("Mean Emissions: %.0f tCO2\n", results$mean_emissions))cat(sprintf("90%% CI Half-Width: %.1f%%\n", results$hw_90_pct))cat(sprintf("Uncertainty Adjustment Factor: %.1f%%\n", results$uaf *100))```In jurisdictional program testing, switching from the multi-year to the single-year design cut the UAF by 21 percentage points, from 104 per cent to 83 per cent.#### Reference Level TreatmentThe HFLDCL baseline is treated as a fixed, verified value rather than a simulated one, and it stays in effect for the crediting period.```{r}#| eval: true# CORRECT: Deterministic baseline (Guyana-validated approach)hfldcl_fixed <-21037534# Arithmetic mean of verified 2016-2020 period (tCO2)# Simulate only crediting period emissionsn_sim <-10000emissions_2024 <-rnorm(n_sim, mean =1000000, sd =1000000*0.15)# Reductions with fixed baselinereductions_tco2 <-pmax(0, hfldcl_fixed - emissions_2024)# UAF calculationci_90 <-quantile(reductions_tco2, probs =c(0.05, 0.95))hw_90 <- (ci_90[2] - ci_90[1]) /2uaf <-0.524417* (hw_90 /mean(reductions_tco2)) /1.645006cat(sprintf("\nDeterministic Baseline UAF: %.1f%%\n", uaf *100))```Either the historical mean or a reference level verified by the validation and verification body (VVB) may serve as the fixed value. Under ART's definitions an audit statement is irreversible and an issuance is not fungible, so a verified reference level removes a compliance concern and avoids inflating the UAF through repeated revision.#### Credit Recovery ProvisionEvery 5 years the deduction is recalculated so that credits withheld in excess can be recovered.$$\text{Recovered Credits}_t = \sum_{i=1}^{5} (UA_{i,annual} - UA_{cumulative}) \times \text{Emissions}_i$$The provision rewards continued improvement in method, because each reduction in annual uncertainty returns credits already deducted.## 4.4 Worked Example### Multi-Source IntegrationThe worked example below is a jurisdictional program simulation that combines the uncertainties from all three earlier chapters into one crediting period.```{r}#| eval: true# Complete jurisdictional simulationjurisdictional_simulation <-function(n_sim =10000) {# Activity Data (Chapter 3: ±12% from accuracy assessment) deforestation_2024_ha <-rnorm(n_sim, mean =5000, sd =5000*0.12)# Emission Factors (Chapter 2: Tier 1 ±18%)# Aboveground biomass removal agb_loss_tco2_ha <-rnorm(n_sim, mean =180, sd =180*0.18)# Belowground biomass (Chapter 2: root-shoot ratio ±15%) bgb_loss_tco2_ha <-rnorm(n_sim, mean =40, sd =40*0.15)# Total emission factor total_ef_tco2_ha <- agb_loss_tco2_ha + bgb_loss_tco2_ha# Calculate emissions distribution emissions_tco2 <- deforestation_2024_ha * total_ef_tco2_ha# Reference level (deterministic) hfldcl_tco2 <-21037534# Mean of 2016-2020# Emission reductions reductions_tco2 <-pmax(0, hfldcl_tco2 - emissions_tco2)# Uncertainty metrics ci_90 <-quantile(reductions_tco2, probs =c(0.05, 0.95)) hw_90 <- (ci_90[2] - ci_90[1]) /2 uaf <-0.524417* (hw_90 /mean(reductions_tco2)) /1.645006# Creditable emissions after conservativeness deduction creditable <-mean(reductions_tco2) * (1- uaf)return(list(mean_reductions =mean(reductions_tco2),uaf = uaf,hw_90_pct = (hw_90 /mean(reductions_tco2)) *100,creditable_tco2 = creditable,deduction_pct = uaf *100 ))}# Execute simulationprogram_results <-jurisdictional_simulation()cat(sprintf("Mean Emission Reductions: %.0f tCO2\n", program_results$mean_reductions))cat(sprintf("90%% CI Half-Width: %.1f%%\n", program_results$hw_90_pct))cat(sprintf("Uncertainty Deduction: %.1f%%\n", program_results$deduction_pct))cat(sprintf("Creditable Emissions: %.0f tCO2\n", program_results$creditable_tco2))```## 4.5 Compliance Checklist- At least 10,000 iterations per crediting year- 90 per cent confidence intervals from the 5th and 95th percentiles- Bootstrap sampling for unknown distributions- Conservative bias, with systematic underestimation permitted- Whole-chain integration of activity data and emission factors- Documentation of simulation code and random seed## 4.6 Chapter SummaryMonte Carlo simulation combines the component uncertainties into the conservativeness deduction that sets credit issuance, and effort is best spent on the dominant source, which is the emission factor in a Tier 1 program and the activity data in a system built on high-resolution imagery. Single-year simulation, a fixed reference level and steady improvement of each input lower the deduction, raise revenue and meet the ART-TREES Section 8 requirements.