Soil organic carbon (SOC) in grasslands and savannas represents one
of the largest reservoirs of carbon on earth (Lal et al., 2007).
However, grassland management practices, such as use of fire,
fertilization, re-vegetation and restoration, etc., that can lead to net
sequestration of carbon are still poorly understood (Ritchie, 2014). In
Laikipia County, Kenya, herbivores can have dramatically different
effects on soil organic carbon (SOC), both positive and negative,
depending on soil type, precipitation, plant species composition and
grazing intensity (McSherry & Ritchie, 2013). To model soil carbon
dynamics in grasslands we use the SNAP model (Ritchie, 2014) developed
within a decisionSupport package (Luedeling & Gohring,
2017; Luedeling & Whitney, 2018). The model can make predictions of
soil carbon stocks based on mean rainfall, plant lignin and cellulose,
soil texture, fire history, and grazing intensity conditions over an
extended period of time. We use Laikipia Conservancies Association (LCA)
to support investment decision in a landscape restoration project that
aims to sequester carbon in rangelands..
The LCA project is an ecosystem-level conservation initiative that aims to protect the ecological resources and provide economic and social co-benefits for local communities in the Laikipia. The goal of LCA is to reduce emissions, restore the degraded landscape, inform grassland management options, provide alternative livelihoods for communities, build resilient conservancies, increase biodiversity conservation efforts, and enhance tourism and security.
The decisionSupport () function in the R package of the
same name requires two inputs:
input_table (in .csv format) specifying the names
and probability distributions for all variables used in the analysis. To
generate the input_table, we first describe the input
variables for the SNAP model. The SNAP model (initially developed using
data from Serengeti National Park) requires five input variables: mean
annual rainfall (mm/yr); grazing intensity (1-(grazed biomass/ungrazed
biomass)) (McNaughton, 1985); fire frequency (number of fires
recorded/number of years over which fires were monitored); lignin and
cellulose content (proportion) in aboveground herbaceous vegetation, and
sand percentage. These variables constitute the input_table
as shown in the table.#> Description lower median upper distribution
#> 1 n_years 40.00 NA 40.00 const
#> 2 general_CV 0.20 NA 0.40 tnorm_0_1
#> 3 carbon_credit_price 11.50 NA 50.80 posnorm
#> 4 mean_annual_rainfall 400.00 NA 750.00 posnorm
#> 5 buffer_credit_deduction 0.15 NA 0.30 tnorm_0_1
#> 6 discount_rate 10.00 NA 20.00 posnorm
#> 7 project_area 301896.00 NA 301896.00 const
#> 8 grazing_intensity_borana 0.65 NA 0.80 tnorm_0_1
#> 9 fire_frequency_borana 0.00 NA 0.00 const
#> 10 percentage_lignin_borana 10.00 NA 20.00 posnorm
#> 11 percentage_cellulose_borana 25.00 NA 50.00 posnorm
#> 12 sand_percentage_borana 10.00 NA 35.00 posnorm
#> 13 baseline_soc_borana 17.20 NA 39.80 posnorm
#> 14 landsize_borana 11954.00 NA 11954.00 const
#> 15 grazing_intensity_lolldaiga 0.40 NA 0.60 tnorm_0_1
#> 16 fire_frequency_lolldaiga 0.00 NA 0.00 const
#> 17 percentage_lignin_lolldaiga 5.00 NA 15.00 posnorm
#> 18 percentage_cellulose_lolldaiga 25.00 NA 40.00 posnorm
#> 19 sand_percentage_lolldaiga 35.00 NA 45.00 posnorm
#> 20 baseline_soc_lolldaiga 14.70 NA 53.00 posnorm
#> 21 landsize_lolldaiga 20609.00 NA 20609.00 const
#> 22 grazing_intensity_mayianat 0.05 NA 0.15 tnorm_0_1
#> 23 fire_frequency_mayianat 0.00 NA 0.00 const
#> 24 percentage_lignin_mayianat 5.00 NA 10.00 posnorm
#> 25 percentage_cellulose_mayianat 20.00 NA 30.00 posnorm
#> 26 sand_percentage_mayianat 37.00 NA 42.00 posnorm
#> 27 baseline_soc_mayianat 12.30 NA 34.00 posnorm
#> 28 landsize_mayianat 6799.00 NA 6799.00 const
#> 29 grazing_intensity_ole_naishu 0.40 NA 0.60 tnorm_0_1
#> 30 fire_frequency_ole_naishu 0.00 NA 0.00 const
#> 31 percentage_lignin_ole_naishu 5.00 NA 15.00 posnorm
#> 32 percentage_cellulose_ole_naishu 25.00 NA 40.00 posnorm
#> 33 sand_percentage_ole_naishu 20.00 NA 50.00 posnorm
#> 34 baseline_soc_ole_naishu 17.20 NA 37.50 posnorm
#> 35 landsize_ole_naishu 14433.00 NA 14433.00 const
#> 36 grazing_intensity_shulmai 0.10 NA 0.20 tnorm_0_1
#> 37 fire_frequency_shulmai 0.00 NA 0.00 const
#> 38 percentage_lignin_shulmai 5.00 NA 15.00 posnorm
#> 39 percentage_cellulose_shulmai 20.00 NA 35.00 posnorm
#> 40 sand_percentage_shulmai 40.00 NA 65.00 posnorm
#> 41 baseline_soc_shulmai 15.20 NA 37.90 posnorm
#> 42 landsize_shulmai 7252.00 NA 7252.00 const
#> 43 grazing_intensity_elkarama 0.65 NA 0.80 tnorm_0_1
#> 44 fire_frequency_elkarama 0.00 NA 0.00 const
#> 45 percentage_lignin_elkarama 10.00 NA 20.00 posnorm
#> 46 percentage_cellulose_elkarama 25.00 NA 45.00 posnorm
#> 47 sand_percentage_elkarama 10.00 NA 45.00 posnorm
#> 48 baseline_soc_elkarama 12.80 NA 46.30 posnorm
#> 49 landsize_elkarama 6312.00 NA 6312.00 const
#> 50 grazing_intensity_loisaba 0.65 NA 0.80 tnorm_0_1
#> 51 fire_frequency_loisaba 0.00 NA 0.00 const
#> 52 percentage_lignin_loisaba 10.00 NA 20.00 posnorm
#> 53 percentage_cellulose_loisaba 25.00 NA 40.00 posnorm
#> 54 sand_percentage_loisaba 10.00 NA 50.00 posnorm
#> 55 baseline_soc_loisaba 22.90 NA 39.00 posnorm
#> 56 landsize_loisaba 23703.00 NA 23703.00 const
#> 57 grazing_intensity_mugie 0.65 NA 0.80 tnorm_0_1
#> 58 fire_frequency_mugie 0.00 NA 0.00 const
#> 59 percentage_lignin_mugie 10.00 NA 20.00 posnorm
#> 60 percentage_cellulose_mugie 25.00 NA 45.00 posnorm
#> 61 sand_percentage_mugie 10.00 NA 23.00 posnorm
#> 62 baseline_soc_mugie 10.90 NA 17.30 posnorm
#> 63 landsize_mugie 20767.00 NA 20767.00 const
#> 64 grazing_intensity_mukutan 0.65 NA 0.85 tnorm_0_1
#> 65 fire_frequency_mukutan 0.00 NA 0.00 const
#> 66 percentage_lignin_mukutan 10.00 NA 20.00 posnorm
#> 67 percentage_cellulose_mukutan 25.00 NA 50.00 posnorm
#> 68 sand_percentage_mukutan 10.00 NA 40.00 posnorm
#> 69 baseline_soc_mukutan 24.90 NA 66.00 posnorm
#> 70 landsize_mukutan 35387.00 NA 35387.00 const
#> 71 grazing_intensity_oljogi 0.45 NA 0.60 tnorm_0_1
#> 72 fire_frequency_oljogi 0.00 NA 0.00 const
#> 73 percentage_lignin_oljogi 5.00 NA 15.00 posnorm
#> 74 percentage_cellulose_oljogi 25.00 NA 35.00 posnorm
#> 75 sand_percentage_oljogi 35.00 NA 57.00 posnorm
#> 76 baseline_soc_oljogi 18.60 NA 42.80 posnorm
#> 77 landsize_oljogi 21993.00 NA 21993.00 const
#> 78 grazing_intensity_sosian 0.45 NA 0.60 tnorm_0_1
#> 79 fire_frequency_sosian 0.00 NA 0.00 const
#> 80 percentage_lignin_sosian 5.00 NA 15.00 posnorm
#> 81 percentage_cellulose_sosian 25.00 NA 35.00 posnorm
#> 82 sand_percentage_sosian 10.00 NA 20.00 posnorm
#> 83 baseline_soc_sosian 8.70 NA 34.50 posnorm
#> 84 landsize_sosian 10011.00 NA 10011.00 const
#> 85 grazing_intensity_suyian 0.65 NA 0.85 tnorm_0_1
#> 86 fire_frequency_suyian 0.00 NA 0.00 const
#> 87 percentage_lignin_suyian 10.00 NA 20.00 posnorm
#> 88 percentage_cellulose_suyian 25.00 NA 45.00 posnorm
#> 89 sand_percentage_suyian 10.00 NA 21.00 posnorm
#> 90 baseline_soc_suyian 20.40 NA 39.90 posnorm
#> 91 landsize_suyian 18133.00 NA 18133.00 const
#> 92 grazing_intensity_mpala 0.60 NA 0.75 tnorm_0_1
#> 93 fire_frequency_mpala 0.00 NA 0.00 const
#> 94 percentage_lignin_mpala 10.00 NA 20.00 posnorm
#> 95 percentage_cellulose_mpala 25.00 NA 30.00 posnorm
#> 96 sand_percentage_mpala 8.00 NA 50.00 posnorm
#> 97 baseline_soc_mpala 8.70 NA 40.60 posnorm
#> 98 landsize_mpala 19506.00 NA 19506.00 const
#> 99 grazing_intensity_olmaisor 0.35 NA 0.50 tnorm_0_1
#> 100 fire_frequency_olmaisor 0.00 NA 0.00 const
#> 101 percentage_lignin_olmaisor 5.00 NA 15.00 posnorm
#> 102 percentage_cellulose_olmaisor 25.00 NA 35.00 posnorm
#> 103 sand_percentage_olmaisor 9.00 NA 18.00 posnorm
#> 104 baseline_soc_olmaisor 19.20 NA 38.30 posnorm
#> 105 landsize_olmaisor 12125.00 NA 12125.00 const
#> 106 grazing_intensity_segera 0.65 NA 0.80 tnorm_0_1
#> 107 fire_frequency_segera 0.00 NA 0.00 const
#> 108 percentage_lignin_segera 10.00 NA 20.00 posnorm
#> 109 percentage_cellulose_segera 25.00 NA 40.00 posnorm
#> 110 sand_percentage_segera 7.00 NA 26.00 posnorm
#> 111 baseline_soc_segera 14.40 NA 40.70 posnorm
#> 112 landsize_segera 19678.00 NA 19678.00 const
#> 113 grazing_intensity_tumaren 0.35 NA 0.60 tnorm_0_1
#> 114 fire_frequency_tumaren 0.00 NA 0.00 const
#> 115 percentage_lignin_tumaren 5.00 NA 15.00 posnorm
#> 116 percentage_cellulose_tumaren 25.00 NA 30.00 posnorm
#> 117 sand_percentage_tumaren 17.00 NA 45.00 posnorm
#> 118 baseline_soc_tumaren 14.60 NA 42.10 posnorm
#> 119 landsize_tumaren 3899.00 NA 3899.00 const
#> 120 grazing_intensity_enasoit 0.40 NA 0.60 tnorm_0_1
#> 121 fire_frequency_enasoit 0.00 NA 0.00 const
#> 122 percentage_lignin_enasoit 5.00 NA 15.00 posnorm
#> 123 percentage_cellulose_enasoit 25.00 NA 35.00 posnorm
#> 124 sand_percentage_enasoit 21.00 NA 61.00 posnorm
#> 125 baseline_soc_enasoit 14.90 NA 24.50 posnorm
#> 126 landsize_enasoit 1658.00 NA 1658.00 const
#> 127 grazing_intensity_ewaso 0.65 NA 0.80 tnorm_0_1
#> 128 fire_frequency_ewaso 0.00 NA 0.00 const
#> 129 percentage_lignin_ewaso 10.00 NA 20.00 posnorm
#> 130 percentage_cellulose_ewaso 25.00 NA 45.00 posnorm
#> 131 sand_percentage_ewaso 21.00 NA 44.50 posnorm
#> 132 baseline_soc_ewaso 17.60 NA 25.40 posnorm
#> 133 landsize_ewaso 4541.00 NA 4541.00 const
#> 134 grazing_intensity_kipepeo 0.65 NA 0.85 tnorm_0_1
#> 135 fire_frequency_kipepeo 0.00 NA 0.00 const
#> 136 percentage_lignin_kipepeo 15.00 NA 20.00 posnorm
#> 137 percentage_cellulose_kipepeo 25.00 NA 50.00 posnorm
#> 138 sand_percentage_kipepeo 10.00 NA 18.00 posnorm
#> 139 baseline_soc_kipepeo 16.30 NA 34.10 posnorm
#> 140 landsize_kipepeo 2702.00 NA 2702.00 const
#> 141 grazing_intensity_olmalo 0.65 NA 0.85 tnorm_0_1
#> 142 fire_frequency_olmalo 0.00 NA 0.00 const
#> 143 percentage_lignin_olmalo 15.00 NA 20.00 posnorm
#> 144 percentage_cellulose_olmalo 25.00 NA 45.00 posnorm
#> 145 sand_percentage_olmalo 43.00 NA 58.00 posnorm
#> 146 baseline_soc_olmalo 19.80 NA 46.60 posnorm
#> 147 landsize_olmalo 2702.00 NA 2702.00 const
#> 148 grazing_intensity_olpajeta 0.60 NA 0.80 tnorm_0_1
#> 149 fire_frequency_olpajeta 0.00 NA 0.00 const
#> 150 percentage_lignin_olpajeta 15.00 NA 20.00 posnorm
#> 151 percentage_cellulose_olpajeta 25.00 NA 40.00 posnorm
#> 152 sand_percentage_olpajeta 5.00 NA 8.00 posnorm
#> 153 baseline_soc_olpajeta 12.40 NA 55.50 posnorm
#> 154 landsize_olpajeta 36516.00 NA 36516.00 const
#> 155 grazing_intensity_naserian 0.45 NA 0.60 tnorm_0_1
#> 156 fire_frequency_naserian 0.00 NA 0.00 const
#> 157 percentage_lignin_naserian 5.00 NA 15.00 posnorm
#> 158 percentage_cellulose_naserian 25.00 NA 30.00 posnorm
#> 159 sand_percentage_naserian 19.00 NA 35.00 posnorm
#> 160 baseline_soc_naserian 15.40 NA 38.40 posnorm
#> 161 landsize_naserian 1455.00 NA 1455.00 const
#> 162 grazing_intensity_pinguan 0.65 NA 0.85 tnorm_0_1
#> 163 fire_frequency_pinguan 0.00 NA 0.00 const
#> 164 percentage_lignin_pinguan 10.00 NA 20.00 posnorm
#> 165 percentage_cellulose_pinguan 25.00 NA 45.00 posnorm
#> 166 sand_percentage_pinguan 10.00 NA 19.00 posnorm
#> 167 baseline_soc_pinguan 22.00 NA 39.90 posnorm
#> 168 landsize_pinguan 649.00 NA 649.00 const
#> 169 feasibility_study_costs 5821.00 NA 5821.00 const
#> 170 Initial_verra_fees 209.00 NA 209.00 const
#> 171 verra_mrv_and_govnt_fees 16261.00 NA 16261.00 const
#> 172 monitoring_activity_costs 111764.00 NA 111764.00 const
#> 173 validation_activity_costs 16839.00 NA 16839.00 const
#> 174 verification_activity_costs 246238.00 NA 246238.00 const
#> 175 conservancy_governance_support 21169.00 NA 21169.00 const
#> 176 grazing_governance_support 33310.00 NA 33310.00 const
#> 177 active_restoration 7069.00 NA 7069.00 const
#> 178 sustainable_water_reticulation 1064.00 NA 1064.00 const
#> 179 landscape_security_enhancement 1413.00 NA 1413.00 const
#> 180 livestock_movement_incentive 178248.00 NA 178248.00 const
#> 181 proponent_operations 512932.00 NA 512932.00 const
#> 182 proponent_budget_contingency 114651.00 NA 114651.00 const
To generate the input_data for the variables (including
those with missing information), the variable distributions are first
described by a 90% confidence interval, which are specified by lower (5%
quantile) and upper (95% quantile) bounds. To achieve this, we estimated
the bounds using lca baseline_soil_carbon_stocksdata from
ICRAF, sand_content from LDSF data that is customized for
each participating conservancy,lignin_and_cellulose_content
from LDSF data on dominant grass species, where over rested perennials
have higher lignocellulosic content compared to overgrazed annuals.
Grazing intensity was based on the grazing status in each
conservancy while the fire frequency data was automated to zero since
fire management is not an eligible project activity under VM0042. The
mean_annual rainfal from the Kenya Meteorological
Department. The process was repeated for all participating conservancies
to generate respective SNAP input_datafor each conservancy.
The project_implementation_cost data was acquired from the
project costs summery table in the feasibility study. For the shapes of
variable distribution, const describes variables that are
constant throughout, norm describes variables with normal
distribution, tnorm_0_1 describes variables with a
truncated normal distribution that can only have values between 0 and 1
(useful for probabilities) and posnorm describes variables
with normal distribution truncated at 0 (only positive values
allowed).
R_function () that predicts decision outcomes based
on the variables named in input_table. This function is
customized by the user to address a particular decision problem. For
this analysis, the function grazing_soil_carbon_dynamics ()
describing the causal relationships between the SNAP model variables
(Ritchie, 2014) was used.We could simply start translating SNAP model causal relationships
into a mathematical model. However, the model function is designed to
make use of variables provided to it externally (random numbers drawn
according to the information in the input_table). To do
this effectively, we loaded the data in R and defined sample values for
all variables and tested pieces of the function code during the model
development process. This was accomplished with the following helper
function make_variables ().
make_variables<-function(est,n=1)
{ x<-random(rho=est, n=n)
for(i in colnames(x)) assign(i,
as.numeric(x[1,i]),envir=.GlobalEnv)
make_variables(estimate_read_csv("Soil_carbon_dynamics.csv"))
}
This function isn’t included in the decisionSupport
package, because it places the desired variables in the global
environment. This isn’t allowed for functions included in packages on
R’s download servers. Applying make_variables to the
input_table (with default setting n=1) generates one random
number for each variable, which then allowed us to easily test the code
we’re developing.
The following is an example of the SNAP model used to generate SOC
stock projections for Borana conservancy. The model includes a growth
function (gompertz_yieldfunction) to adjust for carbon
sequestration potentials overtime, and a buffer credit deduction of
between 15-30 percent.
grazing_soil_carbon_dynamics <- function(x, varnames){
#Borana Conservancy
maximum_aboveground_production<-vv((0.84*mean_annual_rainfall-27.5)*
(1.33-0.0075*sand_percentage_borana),
general_CV,n=n_years)
proportion_leaf_biomass<-vv(0.6+0.24*grazing_intensity_borana,
general_CV,n=n_years)
leaf_area_index<-vv(proportion_leaf_biomass/0.6-0.015*
exp(4.6*grazing_intensity_borana),general_CV,n=n_years)
grazer_modified_production<-leaf_area_index*
maximum_aboveground_production
estimate_aboveground_productivity<-maximum_aboveground_production*
proportion_leaf_biomass/0.6-0.015*
exp(4.6*grazing_intensity_borana)
belowground_production<-vv(917.4-0.763*mean_annual_rainfall,
general_CV,n=n_years)
lignocellulosic_content_borana<-vv((percentage_lignin_borana/
percentage_cellulose_borana),
general_CV,n=n_years)
plant_derived_carbon<-0.45*(lignocellulosic_content_borana*
grazer_modified_production*
(1-grazing_intensity_borana)*(1-fire_frequency_borana)+
(lignocellulosic_content_borana+0.05)*
belowground_production)
dung_derived_carbon<-lignocellulosic_content_borana*0.45*
grazing_intensity_borana*grazer_modified_production
wetdays<-vv((0.0004*mean_annual_rainfall-0.025)*240,
general_CV,n=n_years)
#Interpreting SOC at equilibrium to be equal to baseline SOC
maximum_microb_resp_rate<-wetdays*(0.7+0.3*sand_percentage_borana/100)*
(0.00044*baseline_soc_borana-0.579)
change_soc_borana<-(plant_derived_carbon+dung_derived_carbon-
maximum_microb_resp_rate)/100
#Applying a sigmoid function to adjust for soc sequestration potential overtime
change_soc_borana_adjusted<-gompertz_yield(max_harvest=change_soc_borana,
time_to_first_yield_estimate= 4,
time_to_second_yield_estimate= 20,
first_yield_estimate_percent=20,
second_yield_estimate_percent=50,
n_years=n_years,
var_CV = 0,
no_yield_before_first_estimate = TRUE)*landsize_borana
buffer_credit_borana<-change_soc_borana_adjusted*buffer_credit_deduction
net_credits_borana<-change_soc_borana_adjusted-buffer_credit_borana
return(list(net_credits_borana=net_credits_borana))
}
To run the model, the grazing_soil_carbon_dynamics ()
function, along with the data from the input_table, were
fed into the Monte Carlo simulation (MC) function (Luedeling and
Whitney, 2018; Luedeling et al. 2021) to conduct the full analysis. See
the vignette guides on applying the mcSimulation ()
function (Fernandez et al. 2021). Below is the code we used to perform
the Monte Carlo simulation with 1,000 model runs.
SOC_simulation<- mcSimulation(
estimate = estimate_read_csv("Soil_carbon_dynamics.csv"),
model_function = grazing_soil_carbon_dynamics,
numberOfModelRuns = 1e4, # 10,000 runs
functionSyntax = "plainNames"
)
The average sequestration potential per ha across the project area was 0.86 tCO2e. The summed up sequestration potentials across the LCA project area (about 302 thousand ha spanning across 23 conservancies) was 260 thousand tCO2e per year, resulting in an average climate impact of about 10.4m tCO2e over the 40 year period. A tabulated summary of the results describing the 90% confidence interval of the cashflow over a 40 year period and the projects net present value, is as shown in the table
| variable | X0. | lower_bound | X10. | X25. | X50. | X75. | X90. | upper_bound | X100. | mean |
|---|---|---|---|---|---|---|---|---|---|---|
| y.cashflow_lca_project_NPV1 | -1.4e+06 | -1385458 | -1383975 | -1381480 | -1378715 | -1375970 | -1373397 | -1371754 | -1.4e+06 | -1378696 |
| y.cashflow_lca_project_NPV2 | -1.4e+06 | -1385520 | -1383981 | -1381491 | -1378755 | -1376108 | -1373561 | -1371895 | -1.4e+06 | -1378762 |
| y.cashflow_lca_project_NPV3 | -1.4e+06 | -1385702 | -1384070 | -1381495 | -1378787 | -1376092 | -1373498 | -1371735 | -1.4e+06 | -1378771 |
| y.cashflow_lca_project_NPV4 | -1.4e+06 | -251407 | 153004 | 876200 | 1702495 | 2553763 | 3378204 | 3862182 | 7.1e+06 | 1742856 |
| y.cashflow_lca_project_NPV5 | -1.4e+06 | -152192 | 290622 | 1074842 | 1976072 | 2904820 | 3805890 | 4328496 | 7.9e+06 | 2021227 |
| y.cashflow_lca_project_NPV6 | -1.4e+06 | -44458 | 429883 | 1286622 | 2260055 | 3263399 | 4239867 | 4810140 | 8.6e+06 | 2307924 |
| y.cashflow_lca_project_NPV7 | -1.4e+06 | 58429 | 572663 | 1496771 | 2548457 | 3634459 | 4692413 | 5302310 | 9.4e+06 | 2601443 |
| y.cashflow_lca_project_NPV8 | -1.4e+06 | 166092 | 723197 | 1713835 | 2846528 | 4009517 | 5152989 | 5803787 | 1.0e+07 | 2900717 |
| y.cashflow_lca_project_NPV9 | -1.4e+06 | 273520 | 872395 | 1934861 | 3144894 | 4395308 | 5612918 | 6315720 | 1.1e+07 | 3204245 |
| y.cashflow_lca_project_NPV10 | -1.4e+06 | 386883 | 1021980 | 2156590 | 3448046 | 4778794 | 6076671 | 6837043 | 1.2e+07 | 3510950 |
| y.cashflow_lca_project_NPV11 | -1.4e+06 | 498322 | 1173985 | 2379505 | 3750225 | 5163558 | 6549981 | 7350401 | 1.3e+07 | 3819662 |
| y.cashflow_lca_project_NPV12 | -1.4e+06 | 607673 | 1324610 | 2604501 | 4060645 | 5556186 | 7025394 | 7868051 | 1.4e+07 | 4129321 |
| y.cashflow_lca_project_NPV13 | -1.4e+06 | 720543 | 1478336 | 2826462 | 4364078 | 5946888 | 7494591 | 8392862 | 1.4e+07 | 4438915 |
| y.cashflow_lca_project_NPV14 | -1.4e+06 | 830080 | 1627129 | 3048525 | 4668795 | 6335808 | 7963634 | 8910989 | 1.5e+07 | 4747573 |
| y.cashflow_lca_project_NPV15 | -1.4e+06 | 945279 | 1778339 | 3272887 | 4972229 | 6721366 | 8430327 | 9430059 | 1.6e+07 | 5054208 |
| y.cashflow_lca_project_NPV16 | -1.4e+06 | 1055226 | 1928859 | 3490431 | 5269139 | 7102447 | 8897646 | 9942851 | 1.7e+07 | 5358521 |
| y.cashflow_lca_project_NPV17 | -1.4e+06 | 1164087 | 2081270 | 3705716 | 5568615 | 7477936 | 9350045 | 10444539 | 1.8e+07 | 5659544 |
| y.cashflow_lca_project_NPV18 | -1.4e+06 | 1269969 | 2220958 | 3922218 | 5863459 | 7860714 | 9821453 | 10941593 | 1.9e+07 | 5956874 |
| y.cashflow_lca_project_NPV19 | -1.4e+06 | 1375659 | 2368585 | 4135697 | 6150341 | 8228470 | 10253213 | 11435893 | 1.9e+07 | 6249397 |
| y.cashflow_lca_project_NPV20 | -1.4e+06 | 1479528 | 2502714 | 4337061 | 6436860 | 8588250 | 10695738 | 11923432 | 2.0e+07 | 6537586 |
| y.cashflow_lca_project_NPV21 | -1.4e+06 | 1576182 | 2650064 | 4544746 | 6714173 | 8940874 | 11124021 | 12395365 | 2.1e+07 | 6820308 |
| y.cashflow_lca_project_NPV22 | -1.4e+06 | 1679251 | 2779953 | 4744830 | 6988968 | 9290828 | 11544294 | 12868592 | 2.2e+07 | 7097327 |
| y.cashflow_lca_project_NPV23 | -1.4e+06 | 1773744 | 2917347 | 4940276 | 7252677 | 9633462 | 11959159 | 13322981 | 2.2e+07 | 7368517 |
| y.cashflow_lca_project_NPV24 | -1.4e+06 | 1871453 | 3044436 | 5134705 | 7517557 | 9968134 | 12356522 | 13766882 | 2.3e+07 | 7633453 |
| y.cashflow_lca_project_NPV25 | -1.4e+06 | 1968985 | 3173824 | 5320570 | 7772734 | 10297700 | 12761307 | 14193428 | 2.4e+07 | 7891954 |
| y.cashflow_lca_project_NPV26 | -1.4e+06 | 2053601 | 3293712 | 5497475 | 8021434 | 10618965 | 13140299 | 14609777 | 2.4e+07 | 8143736 |
| y.cashflow_lca_project_NPV27 | -1.4e+06 | 2143389 | 3414556 | 5678738 | 8261702 | 10925256 | 13522194 | 15026542 | 2.5e+07 | 8388431 |
| y.cashflow_lca_project_NPV28 | -1.4e+06 | 2232583 | 3532196 | 5848269 | 8495695 | 11228228 | 13879085 | 15430235 | 2.6e+07 | 8626560 |
| y.cashflow_lca_project_NPV29 | -1.4e+06 | 2313413 | 3645718 | 6015892 | 8727609 | 11517747 | 14227157 | 15804472 | 2.6e+07 | 8858182 |
| y.cashflow_lca_project_NPV30 | -1.4e+06 | 2388233 | 3756981 | 6178688 | 8943018 | 11797703 | 14577794 | 16181925 | 2.7e+07 | 9082235 |
| y.cashflow_lca_project_NPV31 | -1.4e+06 | 2465883 | 3860675 | 6328564 | 9156730 | 12067387 | 14905766 | 16537938 | 2.8e+07 | 9299030 |
| y.cashflow_lca_project_NPV32 | -1.4e+06 | 2554305 | 3961931 | 6484404 | 9364627 | 12340538 | 15216248 | 16899979 | 2.8e+07 | 9509176 |
| y.cashflow_lca_project_NPV33 | -1.4e+06 | 2617398 | 4061484 | 6634280 | 9564271 | 12595706 | 15530761 | 17254307 | 2.9e+07 | 9712048 |
| y.cashflow_lca_project_NPV34 | -1.4e+06 | 2686400 | 4163566 | 6771548 | 9765995 | 12835385 | 15843135 | 17580027 | 2.9e+07 | 9908147 |
| y.cashflow_lca_project_NPV35 | -1.4e+06 | 2757630 | 4251924 | 6908674 | 9946142 | 13084103 | 16123854 | 17897427 | 3.0e+07 | 10097250 |
| y.cashflow_lca_project_NPV36 | -1.4e+06 | 2821286 | 4340908 | 7044579 | 10128156 | 13311601 | 16394875 | 18212864 | 3.0e+07 | 10279746 |
| y.cashflow_lca_project_NPV37 | -1.4e+06 | 2895982 | 4430766 | 7170125 | 10302244 | 13526999 | 16670090 | 18513236 | 3.1e+07 | 10455329 |
| y.cashflow_lca_project_NPV38 | -1.4e+06 | 2953430 | 4511311 | 7293746 | 10466605 | 13735121 | 16919236 | 18783851 | 3.1e+07 | 10624654 |
| y.cashflow_lca_project_NPV39 | -1.4e+06 | 3016680 | 4587050 | 7406878 | 10626592 | 13942105 | 17161432 | 19061109 | 3.2e+07 | 10787046 |
| y.cashflow_lca_project_NPV40 | -1.4e+06 | 3075905 | 4668308 | 7521161 | 10781567 | 14139926 | 17402078 | 19311491 | 3.2e+07 | 10943477 |
| y.lca_project_NPV | -1.7e+07 | -1620168 | 1515836 | 7056097 | 13999658 | 22521617 | 33226536 | 41807787 | 1.9e+08 | 16256230 |
The distribution of outcomes when calculating the net present
value is higlighted in Figure 1
Also highlighted in Figure 2, is a graphical representation of
the cashflows over the 40 year period.
To analyse model sensitivity we performed a Partial Least Squares
Regression (PLSR) analysis of Monte Carlo simulation results. We did
this by applying a post-hoc analysis to the mcSimulation()
outputs with the plsr.mcSimulation() function in the
decisionSupport package. We used the function to determine
the Variable Importance in the Projection (VIP) score and coefficients
of a Projection to Latent Structures (PLS) regression model. This
function uses the outputs of the mcSimulation() selecting
all the input variables from the
grazing_soil_carbon_dynamics () function in the parameter
object and then runs a PLS regression with an outcome
variable defined in the parameter resultName. This
generated the bar graphs in Figure 3.
The project is viable with a climate impact of about 10.4 m tCO2e and benefiting about 11 thousand people across the LCA landscape- a significant contribution to TNCs 20230 goals. However, based on the model sensitivity analysis, the carbon price per credit, grazing patterns (sensitivity to lignocellulosic content) across the landscape, and buffer credit contributions need to be monitored closely. Successful delivery of the project will depend on proactive risk management, early carbon price security, and adaptive grazing strategies informed by lessons from existing IRM projects. With these measures in place, the project has the potential to generate durable climate benefits while delivering lasting social and ecological value across the Laikipia landscape.
Lal R, Follett F, Stewart BA, Kimble JM. 2007. Soil carbon sequestration to mitigate climate change and advance food security. Soil Science 172:943956 https://doi.org/10.1097/ss.0b013e31815cc498
Ritchie, M. E. (2014). Plant compensation to grazing and soil carbon dynamics in a tropical grassland. PeerJ, 2, e233. https://doi.org/10.7717/peerj.233
McSherry M, Ritchie ME. 2013. Effects of grazing on grassland soil carbon density: a global review. Global Change Biology 19:13471357 https://doi.org/10.1111/gcb.12144.
Luedeling, E., Gohring, L. (2017). R package decisionSupport: Quantitative support of decision making under uncertainty. https://CRAN.R-project.org/package=decisionSupport
Luedeling, E., Whitney, C. W.(2018). R package decisionSupport: Controlled burns in conifer forests. https://cran.r-project.org/web/packages/decisionSupport/vignettes/wildfire_example.html
McNaughton SJ. 1985. Ecology of a grazing ecosystem: The Serengeti. Ecological Monographs 55:259294 https://doi.org/10.2307/1942578.
Luedeling, Eike, Lutz Goehring, Katja Schiffers, Cory Whitney, and Eduardo Fernandez. 2021. decisionSupport: Quantitative Support of Decision Making Under Uncertainty. http://www.worldagroforestry.org/.
Fernandez, Eduardo, Cory Whitney, and Eike Luedeling. 2021. “Applying the mcSimulation Function in decisionSupport.” https://cran.r-project.org/web/packages/decisionSupport/vignettes/example_decision_function.html.
Okin, G. S., Sala, O. E., Vivoni, E. R., Zhang, J., and Bhattachan, A. (2018). The Interactive Role of Wind and Water in Functioning of Drylands: What Does the Future Hold. BioScience 68 (9), 670–677. https://doi.org/10.1093/biosci/biy067
Ritchie, M. E. (2015). VM0032 Methodology for the Adoption of Sustainable Grasslands through Adjustment of Fire and Grazing, v1.0. Verified Carbon Standard. https://verra.org/methodology/vm0032-methodology-for-the-adoption-of-sustainable-grasslands-through-adjustment-of-fire-and-grazing-v1-0/