Skip to main content
Component blueprints are reusable templates of equations and inputs that calculate a transfer of CO₂e into or out of the atmosphere. They represent small discrete parts of carbon accounting that can be combined like building blocks to create custom and rigorous accounting for GHG entries, GHG statements and entire projects. This page provides an overview of all component blueprints.
Read the guide to identifying components for an introduction to how components work and their different types.

Component Types

Component blueprints are labelled with a Type. The type represents a carbon accounting category and flux direction, either CO₂e sequestered or emitted.

Inputs, Quantity Kind and Compatible Units

Each component blueprint has inputs: the datapoints you need to provide for its calculation. Each input is a numerically measurable property, which is called the Quantity Kind. For example: mass, volume, concentration or density. An input can accept different units as long as they are compatible with its quantity kind. For transparency, data should be reported with the same value and units as shown in your attached sources. Components handle unit transformations automatically. Some inputs take lists of values, for example a set of soil samples. In this case, each value in a list input must be compatible with the input’s quantity kind. The output of the component calculation is always a mass of CO₂e (with the Quantity Kind mass_carbon). This is typically in units of either kgCO₂e or tCO₂e.

Fixed and Monitored inputs

Component inputs can either be fixed or monitored values:
  • Fixed inputs: are defined once in an LCA template and reused in each GHG entry. These are typically emission factors, standard ratios or intrinsic measurements of a material with low variability.
  • Monitored inputs: are provided as new datapoints with each GHG entry. These are measurements that vary during a project’s operation, such as masses of a specific product batch, transport leg distances, volumes of fuel or material characteristics that have higher variability.
Fixed inputs should be entered in the LCA Builder. They will then be automatically applied for GHG entries created either in Certify, or via the API if the GHG entry template is included in the API request.

Activity Component Blueprints

Aggregated sample transport

key: aggregated_sample_transport tags: Transportation Constant aggregated emissions, related to transporting sample material. Calculations result=aggregated_sample_transport\text{result} = aggregated\_sample\_transport Monitored inputs

Area-based emissions

key: area_based_emissions tags: Embodied emissions Energy use Emissions based on multiplying an area by its carbon emission factor. Applicable to quantifying emissions from standardized processes applied to a project area. Calculations result=area×emission_factor\text{result} = area \times emission\_factor Fixed inputs Monitored inputs

Constant emissions

key: constant_activity_emissions Emissions based on a constant value. Calculations result=constant_activity_emissions\text{result} = constant\_activity\_emissions Monitored inputs

Count-based emissions

key: count_based_emissions Emissions based on multiplying a per-instance emission value by a count of the number of instances. Applicable to projects using a number of items where the per-item emissions are known, or a number of recurring events where the per-event emissions are known. Calculations result=emissions_per_count×count\text{result} = emissions\_per\_count \times count Monitored inputs

Currency-based CI emissions

key: currency_based_ci_emissions tags: Embodied emissions Emissions based on multiplying a currency by a carbon emission factor. Applicable to quantifying embodied emissions or emissions related to services when data of higher quality cannot be sourced. Calculations result=amount_spent×carbon_intensity\text{result} = amount\_spent \times carbon\_intensity Fixed inputs Monitored inputs

Distance-based emissions

key: distance_based_ci_emissions tags: Transportation Emissions based on multiplying a distance by a carbon emission factor. Applicable to quantifying transportation emissions when only the distance traveled is known, this is acceptable for transportation by passenger car or airplane. Calculations result=distance×carbon_intensity\text{result} = distance \times carbon\_intensity Fixed inputs Monitored inputs

Electricity use emissions with low-carbon procurement

key: grid_electricity_use_with_recs tags: Electricity Energy use Emissions related to electric energy use, using market-based accounting for procurement of low-carbon power. Calculations result=grid_emissions+procured_power_emissions\text{result} = grid\_emissions + procured\_power\_emissions
grid_emissions=net_grid_electricity_use×grid_carbon_intensity\text{grid\_emissions} = net\_grid\_electricity\_use \times grid\_carbon\_intensity

net_grid_electricity_use=grid_electricity_useprocured_power_electricity_use\text{net\_grid\_electricity\_use} = grid\_electricity\_use - procured\_power\_electricity\_use

procured_power_emissions=procured_power_electricity_use×procured_power_carbon_intensity\text{procured\_power\_emissions} = procured\_power\_electricity\_use \times procured\_power\_carbon\_intensity
Fixed inputs Monitored inputs

Electricity-ratio based emissions

key: electricity_ratio_based_emissions tags: Electricity Energy use Calculates emissions based on an amount of electricity used per unit feedstock mass. Applicable to quantifying electricity emissions when electricity consumption is derived from an efficiency, such as the amount of electricity consumed by a piece of equipment per tonne of feedstock processed. Calculations result=mass_feedstock×energy×carbon_intensity\text{result} = mass\_feedstock \times energy \times carbon\_intensity Fixed inputs Monitored inputs

Embodied emissions

key: embodied_emissions tags: Embodied emissions Constant embodied emissions. Applicable to embodied emissions reported as a single value, for example in the case where emissions are evidenced by an Environmental Product Declaration. Calculations result=embodied_emissions\text{result} = embodied\_emissions Monitored inputs

Energy-based CI emissions

key: energy_based_ci_emissions tags: Electricity Energy use Emissions based on multiplying an energy by its carbon emission factor. If more specific information is known regarding the fuel or electricity consumed use other component blueprints that are more accurate. Calculations result=energy×carbon_intensity\text{result} = energy \times carbon\_intensity Fixed inputs Monitored inputs

Fuel consumption based transport emissions

key: fuel_consumption_based_transport tags: Transportation Emissions related to transporting a load, based on a fuel-consumption method. Applicable to quantifying transportation emissions when the volume of fuel consumed is derived from a vehicle efficiency. If the volume of fuel has been measured, use the component blueprints ‘Fuel usage by mass’ or ‘Fuel usage by volume’. Calculations result=distance×fuel_carbon_intensityfuel_economy\text{result} = \frac{distance \times fuel\_carbon\_intensity}{fuel\_economy} Fixed inputs Monitored inputs

Fuel usage by area

key: fuel_usage_by_area tags: Energy use Fuel Calculates emissions based on consumption of a volume of fuel per unit area, multiplied by the total area. Applicable, for example, to spreading of a feedstock, carbon-rich product or site preparation. Calculations result=volume_fuel_per_area×emission_factor×area\text{result} = volume\_fuel\_per\_area \times emission\_factor \times area Fixed inputs Monitored inputs

Fuel usage by distance emissions, accounting for BCU claims

key: distance_based_transport_bcu tags: Transportation Emissions based on a distance traveled for a specific journey, accounting for BCU claims. Calculations result=fuel_usage_accountable_emissions+bcu_fuel_usage_emissions\text{result} = fuel\_usage\_accountable\_emissions + bcu\_fuel\_usage\_emissions
fuel_usage_accountable_emissions=fuel_combustion_carbon_intensity×(distance×mass×emission_factor_transportfuel_combustion_carbon_intensitysubtractable_mass_of_bcu_fuel)\text{fuel\_usage\_accountable\_emissions} = fuel\_combustion\_carbon\_intensity \times \left(distance \times mass \times \frac{emission\_factor\_transport}{fuel\_combustion\_carbon\_intensity} - subtractable\_mass\_of\_bcu\_fuel\right)

subtractable_mass_of_bcu_fuel=mass_of_bcu_fuel×energy_density_bcu_fuelenergy_density_fuel_used\text{subtractable\_mass\_of\_bcu\_fuel} = mass\_of\_bcu\_fuel \times \frac{energy\_density\_bcu\_fuel}{energy\_density\_fuel\_used}

bcu_fuel_usage_emissions=bcu_fuel_combustion_carbon_intensity×mass_of_bcu_fuel\text{bcu\_fuel\_usage\_emissions} = bcu\_fuel\_combustion\_carbon\_intensity \times mass\_of\_bcu\_fuel
Fixed inputs Monitored inputs

Fuel usage by mass emissions

key: fuel_usage_by_mass tags: Energy use Fuel Transportation Emissions based on multiplying a fuel mass by the carbon emission factor of combustion. Calculations result=mass_of_fuel×fuel_combustion_carbon_intensity\text{result} = mass\_of\_fuel \times fuel\_combustion\_carbon\_intensity Fixed inputs Monitored inputs

Fuel usage by mass emissions, accounting for BCU claims

key: fuel_usage_by_mass_bcu tags: Energy use Fuel Transportation Emissions based on a mass of fuel used for a journey, accounting for BCU claims. Calculations result=fuel_usage_accountable_emissions+bcu_fuel_usage_emissions\text{result} = fuel\_usage\_accountable\_emissions + bcu\_fuel\_usage\_emissions
fuel_usage_accountable_emissions=fuel_combustion_carbon_intensity×(mass_of_fuel_usedsubtractable_mass_of_bcu_fuel)\text{fuel\_usage\_accountable\_emissions} = fuel\_combustion\_carbon\_intensity \times \left(mass\_of\_fuel\_used - subtractable\_mass\_of\_bcu\_fuel\right)

subtractable_mass_of_bcu_fuel=mass_of_bcu_fuel×energy_density_bcu_fuelenergy_density_fuel_used\text{subtractable\_mass\_of\_bcu\_fuel} = mass\_of\_bcu\_fuel \times \frac{energy\_density\_bcu\_fuel}{energy\_density\_fuel\_used}

bcu_fuel_usage_emissions=bcu_fuel_combustion_carbon_intensity×mass_of_bcu_fuel\text{bcu\_fuel\_usage\_emissions} = bcu\_fuel\_combustion\_carbon\_intensity \times mass\_of\_bcu\_fuel
Fixed inputs Monitored inputs

Fuel usage by volume emissions

key: fuel_usage_by_volume tags: Energy use Fuel Transportation Emissions based on multiplying a fuel volume by the carbon emission factor of combustion. Calculations result=volume_of_fuel×fuel_combustion_carbon_intensity\text{result} = volume\_of\_fuel \times fuel\_combustion\_carbon\_intensity Fixed inputs Monitored inputs

Fuel usage by volume emissions, accounting for BCU claims

key: fuel_usage_by_volume_bcu tags: Energy use Fuel Transportation Emissions based on a volume of fuel used for a journey, accounting for BCU claims. Calculations result=fuel_usage_accountable_emissions+bcu_fuel_usage_emissions\text{result} = fuel\_usage\_accountable\_emissions + bcu\_fuel\_usage\_emissions
fuel_usage_accountable_emissions=fuel_combustion_carbon_intensity×(volume_of_fuel_usedvolume_of_bcu_fuel×energy_density_bcu_fuelenergy_density_fuel_used)\text{fuel\_usage\_accountable\_emissions} = fuel\_combustion\_carbon\_intensity \times \left(volume\_of\_fuel\_used - volume\_of\_bcu\_fuel \times \frac{energy\_density\_bcu\_fuel}{energy\_density\_fuel\_used}\right)

bcu_fuel_usage_emissions=bcu_fuel_combustion_carbon_intensity×volume_of_bcu_fuel\text{bcu\_fuel\_usage\_emissions} = bcu\_fuel\_combustion\_carbon\_intensity \times volume\_of\_bcu\_fuel
Fixed inputs Monitored inputs

GHG direct emissions

key: ghg_direct_emissions tags: Direct emissions Direct emissions from a pyrolysis process where pyrolysis gases are emitted to the atmosphere or combusted. Calculations result=mass_flow×concentration×global_warming_potential\text{result} = mass\_flow \times concentration \times global\_warming\_potential Fixed inputs Monitored inputs

GHG leakage emissions

key: ghg_leakage_by_energy tags: Direct emissions Emissions due to usage of a greenhouse gas leakage into the atmosphere, based on gas energy used. Calculations result=gas_energy_used×global_warming_potential×leakage_fractiongas_energy_density\text{result} = \frac{gas\_energy\_used \times global\_warming\_potential \times leakage\_fraction}{gas\_energy\_density} Fixed inputs Monitored inputs

Grid electricity use emissions

key: grid_electricity_use tags: Electricity Energy use Emissions related to electric energy use. Applicable to quantifying electricity emissions when the quantity of electricity consumed is reported as a single number. If electricity consumption has been measured from a meter, use the component blueprint ‘Metered electricity use emissions’. Calculations result=electricity_use×grid_carbon_intensity\text{result} = electricity\_use \times grid\_carbon\_intensity Fixed inputs Monitored inputs

Grid electricity use, full lifecycle with loss emission factor

key: grid_electricity_full_lifecycle_ef tags: Electricity Energy use Emissions related to electric energy use. Applicable to quantifying electricity emissions where the electricity consumed is reported as a single value and where transmission and distribution losses are published as an emission factor. Calculations result=electricity_use×grid_lifecycle_emission_factor\text{result} = electricity\_use \times grid\_lifecycle\_emission\_factor
grid_lifecycle_emission_factor=grid_consumption_emission_factor+wtt_emission_factor+transmission_distribution_loss_ef\text{grid\_lifecycle\_emission\_factor} = grid\_consumption\_emission\_factor + wtt\_emission\_factor + transmission\_distribution\_loss\_ef
Fixed inputs Monitored inputs

Grid electricity use, full lifecycle with percentage losses

key: grid_electricity_full_lifecycle_percent tags: Electricity Energy use Emissions related to electric energy use. Applicable to quantifying electricity emissions where the electricity consumed is reported as a single value and where transmission and distribution losses are published as a percentage. If electricity consumption has been measured from a meter, use the component blueprint ‘Metered electricity use emissions’. Calculations result=electricity_use×grid_lifecycle_emission_factor×loss_uplift\text{result} = electricity\_use \times grid\_lifecycle\_emission\_factor \times loss\_uplift
grid_lifecycle_emission_factor=grid_consumption_emission_factor+wtt_emission_factor\text{grid\_lifecycle\_emission\_factor} = grid\_consumption\_emission\_factor + wtt\_emission\_factor

loss_uplift=1.0One+transmission_distribution_losses\text{loss\_uplift} = \overset{One}{\text{1.0}} + transmission\_distribution\_losses
Fixed inputs Monitored inputs

Grid electricity use, with low carbon procurement, full lifecycle with percentage losses

key: grid_electricity_with_recs_full_lifecycle_percent tags: Electricity Energy use Emissions related to electric energy use with procurement of low-carbon power. Applicable where distribution losses are published as a percentage. Calculations result=grid_emissions+procured_power_emissions\text{result} = grid\_emissions + procured\_power\_emissions
grid_emissions=net_grid_electricity_use×grid_lifecycle_emission_factor×loss_uplift\text{grid\_emissions} = net\_grid\_electricity\_use \times grid\_lifecycle\_emission\_factor \times loss\_uplift

net_grid_electricity_use=total_grid_electricity_uselow_carbon_procured_power_electricity_use\text{net\_grid\_electricity\_use} = total\_grid\_electricity\_use - low\_carbon\_procured\_power\_electricity\_use

grid_lifecycle_emission_factor=grid_consumption_emission_factor+wtt_emission_factor\text{grid\_lifecycle\_emission\_factor} = grid\_consumption\_emission\_factor + wtt\_emission\_factor

loss_uplift=1.0One+transmission_distribution_losses\text{loss\_uplift} = \overset{One}{\text{1.0}} + transmission\_distribution\_losses

procured_power_emissions=low_carbon_procured_power_electricity_use×low_carbon_procured_power_emission_factor×loss_uplift\text{procured\_power\_emissions} = low\_carbon\_procured\_power\_electricity\_use \times low\_carbon\_procured\_power\_emission\_factor \times loss\_uplift
Fixed inputs Monitored inputs

Mass-based CI emissions

key: mass_based_ci_emissions tags: Embodied emissions Energy use Emissions based on multiplying a mass by its carbon emission factor. Applicable to quantifying embodied emissions of materials and consumables when the mass consumed is known. This component is generic to any material, for fuel use see the ‘Fuel usage by mass emissions’ component blueprint . Calculations result=mass×carbon_intensity\text{result} = mass \times carbon\_intensity Fixed inputs Monitored inputs

Mass-distance-based CI emissions

key: mass_distance_based_ci_emissions tags: Transportation Emissions related to transporting a load, based on a distance-mass method. This component should be used when it’s impossible to disambiguate the mass transported from the distance traveled. For example, where multiple small trips with different masses and distances are aggregated prior to submitting them to Isometric Certify. Calculations result=mass_distance×carbon_intensity\text{result} = mass\_distance \times carbon\_intensity Fixed inputs Monitored inputs

Mass-ratio based emissions

key: mass_ratio_based_emissions tags: Embodied emissions Energy use Fuel Transportation Calculates emissions based on a mass of material used per unit feedstock mass. Applicable to quantifying embodied emissions of materials and consumables when the mass consumed is derived from an efficiency value. Calculations result=mass_ratio×emissions_factor×feedstock_mass\text{result} = mass\_ratio \times emissions\_factor \times feedstock\_mass Fixed inputs Monitored inputs

Metered electricity use emissions

key: metered_energy_based_ci_emissions tags: Electricity Energy use Emissions based on electricity use between two meter readings multiplied by its carbon emission factor. Applicable to quantifying electricity emissions when the final and initial meter readout is known. Calculations result=energy_use×carbon_intensity\text{result} = energy\_use \times carbon\_intensity
energy_use=final_readoutinitial_readout\text{energy\_use} = final\_readout - initial\_readout
Fixed inputs Monitored inputs

Proportional and additional mine emissions

key: proportional_and_additional_mine_energy_emissions tags: Electricity Energy use Fuel Emissions related to fuel, emulsion and electricity use, based on proportion of rock powder used and overall electricity use amplifications. Calculations result=electricity_use_for_deployed_rock_powder×electricity_carbon_intensity\text{result} = electricity\_use\_for\_deployed\_rock\_powder \times electricity\_carbon\_intensity
electricity_use_for_deployed_rock_powder=rock_powder_deployedtotal_rock_output×proportional_electricity_use+rock_powder_deployed_proportion×additional_electricity_use\text{electricity\_use\_for\_deployed\_rock\_powder} = \frac{rock\_powder\_deployed}{total\_rock\_output} \times proportional\_electricity\_use + rock\_powder\_deployed\_proportion \times additional\_electricity\_use

proportional_electricity_use=total_electricity_use×(1energy_use_amplification)\text{proportional\_electricity\_use} = total\_electricity\_use \times \left(1 - energy\_use\_amplification\right)

rock_powder_deployed_proportion=rock_powder_deployedrock_powder_output\text{rock\_powder\_deployed\_proportion} = \frac{rock\_powder\_deployed}{rock\_powder\_output}

additional_electricity_use=total_electricity_use×energy_use_amplification\text{additional\_electricity\_use} = total\_electricity\_use \times energy\_use\_amplification
Fixed inputs Monitored inputs

Time-based emissions

key: time_based_emissions Emissions based on multiplying an emission value for a standard length of time by the duration of activity. Applicable to projects including processes where emission factors are known for a time-based measurement of a process, such as use of machinery. Calculations result=emissions_per_unit_time×time\text{result} = emissions\_per\_unit\_time \times time Fixed inputs Monitored inputs

Time-based grid electricity use emissions

key: time_based_grid_electricity_use tags: Electricity Energy use Amount of CO₂ emitted, given a time, average power draw and energy carbon emission factor. Calculations result=time×average_power×grid_carbon_intensity\text{result} = time \times average\_power \times grid\_carbon\_intensity Fixed inputs Monitored inputs

Transport emissions

key: transport tags: Transportation Emissions related to transporting a load, based on a distance-mass method. Applicable to quantifying transportation emissions when the mass and distance traveled for an individual journey is known. Calculations result=mass×distance×carbon_intensity\text{result} = mass \times distance \times carbon\_intensity Fixed inputs Monitored inputs

Volume per feedstock-unit mass based emissions

key: specific_volume_based_emissions tags: Energy use Fuel Transportation Calculates emissions based on a volume of material used per unit feedstock mass. Applicable to quantifying emissions related to consumables when the volume consumed is derived from an efficiency value. Calculations result=volume_material_per_mass×emissions_factor×feedstock_mass\text{result} = volume\_material\_per\_mass \times emissions\_factor \times feedstock\_mass Fixed inputs Monitored inputs

Volume-based emissions

key: volume_based_ci_emissions tags: Embodied emissions Energy use Emissions based on multiplying a volume by its carbon emission factor. Applicable to quantifying emissions related to consumables, for example water. This component is generic to any liquid or gas, for fuel use specifically see the ‘Fuel usage by volume emissions’ component blueprint. Calculations result=volume×carbon_intensity\text{result} = volume \times carbon\_intensity Fixed inputs Monitored inputs

Volume-based emissions per unit area

key: volume_based_emissions_by_area tags: Embodied emissions Calculates emissions based on multiplying a rate of application of a material to a project area. Applicable, for example, to spreading of a feedstock, fertilizer, carbon-rich product or site preparation. For fuel consumption by unit area see the Fuel Usage By Area component. Calculations result=volume_material_per_area×emission_factor×area\text{result} = volume\_material\_per\_area \times emission\_factor \times area Fixed inputs Monitored inputs

Volume-distance based emissions

key: volume_distance_based_emissions tags: Embodied emissions Energy use Transportation Emissions based on multiplying a volume and distance by its carbon emission factor. Applicable to quantifying emissions related to transporting volume-based consumables or goods, for example water, gases, or solids in standardized shipping containers. Calculations result=volume×distance×emission_factor\text{result} = volume \times distance \times emission\_factor Fixed inputs Monitored inputs

Adjustment Component Blueprints

Constant CO₂ reduction

key: constant_reduction Amount of CO₂ activity emissions that have been reduced by other claims, such as Book and Claim Units. Calculations result=constant_reduction\text{result} = constant\_reduction Monitored inputs

Loss Component Blueprints

CO₂e lost to strong acid weathering

key: ew_loss_strong_acid_from_fertilizer_use CO₂e lost to strong acid from fertilizer use Calculations result=fertilizer_application_rate×rock_spread_area×44.01g/molCO2 molar mass×nitrogen_density28.02g/molNitrogen molar mass×fertilizer_density\text{result} = \frac{fertilizer\_application\_rate \times rock\_spread\_area \times \overset{CO₂\ molar\ mass}{\text{44.01g/mol}} \times nitrogen\_density}{\overset{Nitrogen\ molar\ mass}{\text{28.02g/mol}} \times fertilizer\_density} Monitored inputs

Cation exchange capacity loss

key: ew_cec_loss Enhanced weathering cation exchange capacity loss Calculations result=all__cation_concentration_increase_over_control×soil_density×soil_sampling_depth×rock_spread_area×44.01g/molCO2 molar mass\text{result} = all\_\_cation\_concentration\_increase\_over\_control \times soil\_density \times soil\_sampling\_depth \times rock\_spread\_area \times \overset{CO₂\ molar\ mass}{\text{44.01g/mol}}
all__cation_concentration_increase_over_control=all__cation_concentration_increase_in_deploymentall__cation_concentration_increase_in_control\text{all\_\_cation\_concentration\_increase\_over\_control} = all\_\_cation\_concentration\_increase\_in\_deployment - all\_\_cation\_concentration\_increase\_in\_control

all__cation_concentration_increase_in_deployment=end_of_reporting_period_all__in_treatmentbaseline_all__in_treatment\text{all\_\_cation\_concentration\_increase\_in\_deployment} = \overline{end\_of\_reporting\_period\_all\_\_in\_treatment} - \overline{baseline\_all\_\_in\_treatment}

all__cation_concentration_increase_in_control=end_of_reporting_period_all__in_controlbaseline_all__in_control\text{all\_\_cation\_concentration\_increase\_in\_control} = \overline{end\_of\_reporting\_period\_all\_\_in\_control} - \overline{baseline\_all\_\_in\_control}
Monitored inputs

Constant CO₂ loss

key: constant_loss Amount of CO₂ lost before it reached permanent storage. Calculations result=constant_loss\text{result} = constant\_loss Monitored inputs

Removal Counterfactual Component Blueprints

Biomass counterfactual storage

key: biomass_counterfactual_storage The CO₂ stored in the biomass feedstock that would have remained durably stored in the biomass in the absence of the project. Calculations result=feedstock_co2e_contentcounterfactual_emissions\text{result} = feedstock\_co2e\_content - counterfactual\_emissions
feedstock_co2e_content=feedstock_mass×feedstock_carbon_content×3.667CO2 equivalent of pure carbon\text{feedstock\_co2e\_content} = feedstock\_mass \times feedstock\_carbon\_content \times \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}}

counterfactual_emissions=Minimum(counterfactual_emissions_15_years,counterfactual_emissions_50_years)\text{counterfactual\_emissions} = \text{Minimum}(counterfactual\_emissions\_15\_years,\allowbreak counterfactual\_emissions\_50\_years)

counterfactual_emissions_50_years=(1retained_carbon_fraction_50_years)×feedstock_co2e_content\text{counterfactual\_emissions\_50\_years} = \left(1 - retained\_carbon\_fraction\_50\_years\right) \times feedstock\_co2e\_content
Monitored inputs

Constant removal counterfactual adjustment

key: constant_removal_counterfactual Baseline carbon removal adjustment based on a counterfactual calculated off-platform. Calculations result=constant_removal_counterfactual\text{result} = constant\_removal\_counterfactual Monitored inputs

Counterfactual carbon storage via river export

key: river_export_counterfactual Counterfactual CO₂ sequestration via drawdown in rivers, resulting in CO₂ ocean storage as dissolved inorganic carbon (DIC). This component is used to model the counterfactual baseline scenario alongside the ocean carbon storage via river export sequestration component. Calculations result=co2e_net_exportco2e_feedstock\text{result} = co2e\_net\_export - co2e\_feedstock
co2e_net_export=3.667CO2 equivalent of pure carbon×river_dic_export×ocean_retention\text{co2e\_net\_export} = \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}} \times river\_dic\_export \times ocean\_retention

river_dic_export=dic_downstream_t×river_retention×12.011g/molMolar mass of carbon\text{river\_dic\_export} = \sum dic\_downstream\_t \times river\_retention \times \overset{Molar\ mass\ of\ carbon}{\text{12.011g/mol}}

dic_downstream_t=dic_concentration_t×density_downstream_t×flow_downstream_t×time_interval_t\text{dic\_downstream\_t} = dic\_concentration\_t \times density\_downstream\_t \times flow\_downstream\_t \times time\_interval\_t

co2e_feedstock=3.667CO2 equivalent of pure carbon×feedstock_carbon_content\text{co2e\_feedstock} = \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}} \times feedstock\_carbon\_content

feedstock_carbon_content=feedstock_mass×feedstock_carbon_fraction\text{feedstock\_carbon\_content} = feedstock\_mass \times feedstock\_carbon\_fraction
Monitored inputs

Counterfactual feedstock weathering via OAE

key: feedstock_weathering_oae_counterfactual Counterfactual CO₂ sequestration via weathering of feedstock, resulting in CO₂ ocean storage through OAE processes. Calculations result=feedstock_dissolved×additional_feedstock×air_sea_efficiency×feedstock_cdr_potential\text{result} = feedstock\_dissolved \times additional\_feedstock \times air\_sea\_efficiency \times feedstock\_cdr\_potential Monitored inputs

Feedstock replacement emissions

key: feedstock_replacement_emissions Replacement emissions based on multiplying a mass of feedstock by its replacement emissions factor. Calculations result=mass_of_feedstock×replacement_emissions_factor\text{result} = mass\_of\_feedstock \times replacement\_emissions\_factor Fixed inputs Monitored inputs

Sequestration Component Blueprints

Air-sea CO₂ uptake, DIC inputs

key: air_sea_co2_uptake CO₂ stored via air-sea gas exchange, determined by the difference in uptake under project intervention and baseline conditions, measured via DIC. The calculation uses quantification outlined in the Air-sea CO₂ uptake protocol module. Calculations result=co2_net_uptake_t2co2_net_uptake_t1\text{result} = co2\_net\_uptake\_t2 - co2\_net\_uptake\_t1
co2_net_uptake_t2=3.667CO2 equivalent of pure carbon×dic_delta_t2\text{co2\_net\_uptake\_t2} = \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}} \times dic\_delta\_t2

dic_delta_t2=dic_intervention_t2dic_baseline_t2\text{dic\_delta\_t2} = dic\_intervention\_t2 - dic\_baseline\_t2

co2_net_uptake_t1=3.667CO2 equivalent of pure carbon×dic_delta_t1\text{co2\_net\_uptake\_t1} = \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}} \times dic\_delta\_t1

dic_delta_t1=dic_intervention_t1dic_baseline_t1\text{dic\_delta\_t1} = dic\_intervention\_t1 - dic\_baseline\_t1
Monitored inputs

Air-sea CO₂ uptake, flux inputs

key: air_sea_co2_uptake_flux CO₂ stored via air-sea gas exchange, determined by the difference in cumulative air-sea CO₂ flux under project intervention and baseline conditions. The calculation uses quantification outlined in the Air-sea CO₂ uptake protocol module. Calculations result=flux_delta_t2flux_delta_t1\text{result} = flux\_delta\_t2 - flux\_delta\_t1
flux_delta_t2=flux_intervention_t2flux_baseline_t2\text{flux\_delta\_t2} = flux\_intervention\_t2 - flux\_baseline\_t2

flux_delta_t1=flux_intervention_t1flux_baseline_t1\text{flux\_delta\_t1} = flux\_intervention\_t1 - flux\_baseline\_t1
Monitored inputs

Air-sea CO₂ uptake, mass inputs

key: air_sea_co2_uptake_mass CO₂ stored via air-sea gas exchange, determined by the mass of alkalinity added, alkalinity content and modelled efficiency of CO₂ uptake. Calculations result=total_dosed_alkalinity×uptake_efficiency\text{result} = total\_dosed\_alkalinity \times uptake\_efficiency
total_dosed_alkalinity=feedstock_mass×feedstock_alkalinity_mass_fraction\text{total\_dosed\_alkalinity} = feedstock\_mass \times feedstock\_alkalinity\_mass\_fraction

uptake_efficiency=gross_cdrtotal_dosed_alkalinity\text{uptake\_efficiency} = \frac{gross\_cdr}{total\_dosed\_alkalinity}

gross_cdr=modelled_cdr×alkalinity_correction_factor\text{gross\_cdr} = modelled\_cdr \times alkalinity\_correction\_factor

modelled_cdr=near_field_cdr+far_field_cdr\text{modelled\_cdr} = near\_field\_cdr + far\_field\_cdr

near_field_cdr=near_field_flux_delta_t2near_field_flux_delta_t1\text{near\_field\_cdr} = near\_field\_flux\_delta\_t2 - near\_field\_flux\_delta\_t1

far_field_cdr=far_field_flux_delta_t2far_field_flux_delta_t1\text{far\_field\_cdr} = far\_field\_flux\_delta\_t2 - far\_field\_flux\_delta\_t1

alkalinity_correction_factor=feedstock_alkalinity_mass_fractionfeedstock_alkalinity_mass_fraction_pre\text{alkalinity\_correction\_factor} = \frac{feedstock\_alkalinity\_mass\_fraction}{feedstock\_alkalinity\_mass\_fraction\_pre}
Monitored inputs

Biochar sequestration, 1000 year durability

key: biochar_sequestration_1000_year_f_durable_max Amount of CO₂ stored via biochar sequestration, given biochar mass and samples evidencing random reflectance properties and carbon content. Applicable to the 1000 year durability option from the Biochar Storage in Agricultural Soils module based on assessment of biochar permanence according to Sanei et al. (2024). Durable fraction capped at 0.95 per protocol requirements. Calculations result=product_mass×carbon_contents×durable_fraction×3.667CO2 equivalent of pure carbon\text{result} = product\_mass \times \overline{carbon\_contents} \times durable\_fraction \times \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}}
carbon_contents=total_carbon_contentsinorganic_carbon_contents\text{carbon\_contents} = total\_carbon\_contents - inorganic\_carbon\_contents

durable_fraction=Minimum(durable_fraction_calc,0.95Max durable fraction)\text{durable\_fraction} = \text{Minimum}(durable\_fraction\_calc,\allowbreak \overset{Max\ durable\ fraction}{\text{0.95}})

durable_fraction_calc=s_fractions_standard_error\text{durable\_fraction\_calc} = \overline{s\_fraction} - s\_standard\_error

s_standard_error=s_fraction×(1s_fraction)num_samples\text{s\_standard\_error} = \sqrt{\frac{\overline{s\_fraction} \times \left(1 - \overline{s\_fraction}\right)}{num\_samples}}

num_samples=s_fraction\text{num\_samples} = \left| {s\_fraction} \right|
Monitored inputs

Biochar sequestration, 1000 year durability, unsampled batch

key: biochar_sequestration_1000_year_unsampled Amount of CO₂ stored via biochar sequestration of unsampled batches where carbon content and durable fraction are calculated based on historically sampled batches. Applicable to projects sampling using Method B and the 1000 year durability option from the Biochar Storage in Agricultural Soils module. Durable fraction based on assessment of biochar permanence according to Sanei et al. (2024). Calculations result=product_mass×calculated_carbon_content×durable_fraction×3.667CO2 equivalent of pure carbon\text{result} = product\_mass \times calculated\_carbon\_content \times durable\_fraction \times \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}}
calculated_carbon_content=WinsorizedMean(carbon_contents,carbon_contents)WinsorizedStandardError(carbon_contents,carbon_contents)\text{calculated\_carbon\_content} = \text{WinsorizedMean}(carbon\_contents,\allowbreak carbon\_contents) - \text{WinsorizedStandardError}(carbon\_contents,\allowbreak carbon\_contents)

carbon_contents=total_carbon_contentsinorganic_carbon_contents\text{carbon\_contents} = total\_carbon\_contents - inorganic\_carbon\_contents

durable_fraction=Minimum(durable_fraction_calc,0.95Max durable fraction)\text{durable\_fraction} = \text{Minimum}(durable\_fraction\_calc,\allowbreak \overset{Max\ durable\ fraction}{\text{0.95}})

durable_fraction_calc=s_fractions_standard_error\text{durable\_fraction\_calc} = \overline{s\_fraction} - s\_standard\_error

s_standard_error=s_fraction×(1s_fraction)num_samples\text{s\_standard\_error} = \sqrt{\frac{\overline{s\_fraction} \times \left(1 - \overline{s\_fraction}\right)}{num\_samples}}

num_samples=s_fraction\text{num\_samples} = \left| {s\_fraction} \right|
Monitored inputs

Biochar sequestration, 200 year durability

key: biochar_sequestration_200_year_c_org Amount of CO₂ stored via biochar sequestration, given a carbon content, mass and durable fraction measurement. Applicable to the 200 year durability option from the Biochar Storage in Agricultural Soils module v1.2. Parameters a, b and c from Woolf et al. (2021). Calculations result=product_mass×carbon_contents×durable_fraction×3.667CO2 equivalent of pure carbon\text{result} = product\_mass \times \overline{carbon\_contents} \times durable\_fraction \times \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}}
carbon_contents=total_carbon_contentsinorganic_carbon_contents\text{carbon\_contents} = total\_carbon\_contents - inorganic\_carbon\_contents

durable_fraction=Minimum(durable_fraction_calc,0.95Max durable fraction)\text{durable\_fraction} = \text{Minimum}(durable\_fraction\_calc,\allowbreak \overset{Max\ durable\ fraction}{\text{0.95}})

durable_fraction_calc=1non_durable_fraction_calc\text{durable\_fraction\_calc} = 1 - non\_durable\_fraction\_calc

non_durable_fraction_calc=-0.048Parameter c+(-0.383Parameter a+0.35Parameter b×log_mean_soil_temp)×h_c_molar_ratios\text{non\_durable\_fraction\_calc} = \overset{Parameter\ c}{\text{-0.048}} + \left(\overset{Parameter\ a}{\text{-0.383}} + \overset{Parameter\ b}{\text{0.35}} \times log\_mean\_soil\_temp\right) \times \overline{h\_c\_molar\_ratios}

log_mean_soil_temp=ln(normalized_mean_soil_temp)\text{log\_mean\_soil\_temp} = \ln \left(normalized\_mean\_soil\_temp\right)

normalized_mean_soil_temp=soil_temp_delta1.0Δ°CCelsius unit\text{normalized\_mean\_soil\_temp} = \frac{soil\_temp\_delta}{\overset{Celsius\ unit}{\text{1.0$\Delta$°C}}}

soil_temp_delta=soil_temp0.0°CZero celsius\text{soil\_temp\_delta} = soil\_temp - \overset{Zero\ celsius}{\text{0.0°C}}
Monitored inputs

Biochar sequestration, 200 year durability, unsampled batch

key: biochar_sequestration_200_year_unsampled Amount of CO₂ stored via biochar sequestration of unsampled batches where carbon content and durable fraction are calculated based on historically sampled batches. Applicable to projects sampling using Method B and the 200 year durability option from the Biochar Storage in Agricultural Soils module v1.2. Parameters a, b and c from Woolf et al. (2021). Calculations result=product_mass×calculated_carbon_content×durable_fraction×3.667CO2 equivalent of pure carbon\text{result} = product\_mass \times calculated\_carbon\_content \times durable\_fraction \times \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}}
calculated_carbon_content=WinsorizedMean(carbon_contents,carbon_contents)WinsorizedStandardError(carbon_contents,carbon_contents)\text{calculated\_carbon\_content} = \text{WinsorizedMean}(carbon\_contents,\allowbreak carbon\_contents) - \text{WinsorizedStandardError}(carbon\_contents,\allowbreak carbon\_contents)

carbon_contents=total_carbon_contentsinorganic_carbon_contents\text{carbon\_contents} = total\_carbon\_contents - inorganic\_carbon\_contents

durable_fraction=Minimum(durable_fraction_calc,0.95Max durable fraction)\text{durable\_fraction} = \text{Minimum}(durable\_fraction\_calc,\allowbreak \overset{Max\ durable\ fraction}{\text{0.95}})

durable_fraction_calc=1non_durable_fraction_calc\text{durable\_fraction\_calc} = 1 - non\_durable\_fraction\_calc

non_durable_fraction_calc=-0.048Parameter c+(-0.383Parameter a+0.35Parameter b×log_mean_soil_temp)×calculated_h_c_ratio\text{non\_durable\_fraction\_calc} = \overset{Parameter\ c}{\text{-0.048}} + \left(\overset{Parameter\ a}{\text{-0.383}} + \overset{Parameter\ b}{\text{0.35}} \times log\_mean\_soil\_temp\right) \times calculated\_h\_c\_ratio

log_mean_soil_temp=ln(normalized_mean_soil_temp)\text{log\_mean\_soil\_temp} = \ln \left(normalized\_mean\_soil\_temp\right)

normalized_mean_soil_temp=soil_temp_delta1.0Δ°CCelsius unit\text{normalized\_mean\_soil\_temp} = \frac{soil\_temp\_delta}{\overset{Celsius\ unit}{\text{1.0$\Delta$°C}}}

soil_temp_delta=soil_temp0.0°CZero celsius\text{soil\_temp\_delta} = soil\_temp - \overset{Zero\ celsius}{\text{0.0°C}}

calculated_h_c_ratio=WinsorizedMean(h_c_molar_ratios,h_c_molar_ratios)+WinsorizedStandardError(h_c_molar_ratios,h_c_molar_ratios)\text{calculated\_h\_c\_ratio} = \text{WinsorizedMean}(h\_c\_molar\_ratios,\allowbreak h\_c\_molar\_ratios) + \text{WinsorizedStandardError}(h\_c\_molar\_ratios,\allowbreak h\_c\_molar\_ratios)
Monitored inputs

Biomass burial with moisture correction

key: biomass_burial_with_moisture_correction Amount of CO₂ stored, given a carbon concentration, mass and moisture contents. Applicable to quantifying CO₂ stored for the protocol Subsurface Biomass Carbon Removal and Storage. Calculations result=carbon_content×buried_mass×co2e_of_carbon×moisture_correction\text{result} = carbon\_content \times buried\_mass \times co2e\_of\_carbon \times moisture\_correction
moisture_correction=1average_material_moisture_content1average_sampled_moisture_content\text{moisture\_correction} = \frac{1 - average\_material\_moisture\_content}{1 - average\_sampled\_moisture\_content}
Fixed inputs Monitored inputs

Biomass injection from winsorized mean

key: biomass_injection_from_winsorized_mean Amount of CO₂ stored, given a mass and multiple measured carbon concentration values, from which a mean is calculated. Outliers for the mean are accounted for by winsorizing the measured carbon contents with mean and standard deviation calculated from historical carbon contents from the same feedstock. Applicable to quantifying CO₂ stored for the protocols Biomass Geological Storage and Bio-oil Geological Storage. Calculations result=injectant_mass×mean_carbon_content×co2e_of_carbon\text{result} = injectant\_mass \times mean\_carbon\_content \times co2e\_of\_carbon
mean_carbon_content=WinsorizedMean(injectant_carbon_content_measurements,historical_carbon_content_measurements)\text{mean\_carbon\_content} = \text{WinsorizedMean}(injectant\_carbon\_content\_measurements,\allowbreak historical\_carbon\_content\_measurements)
Fixed inputs Monitored inputs

Blended bio oil injection

key: blended_bio_oil_injection Amount of CO₂ stored, given a carbon concentration and mass. Applicable to quantifying CO₂ stored for Bio-oil Geological Storage when batches of bio-oil are blended prior to injection. Calculations result=unblended_bio_oil_carbon_contents×unblended_bio_oil_mass×co2e_of_carbon\text{result} = \overline{unblended\_bio\_oil\_carbon\_contents} \times unblended\_bio\_oil\_mass \times co2e\_of\_carbon
unblended_bio_oil_mass=blended_bio_oil_massliquid_caustic_soda_masssalt_mass\text{unblended\_bio\_oil\_mass} = blended\_bio\_oil\_mass - liquid\_caustic\_soda\_mass - salt\_mass
Fixed inputs Monitored inputs

CO₂ removed from weathering using TICAT method

key: enhanced_weathering_sequestration_ticat CO₂ removed from weathering using the TICAT method described in Reershemius et al 2023. Calculations result=ca_co2_removed+mg_co2_removed+na_co2_removed\text{result} = ca\_co2\_removed + mg\_co2\_removed + na\_co2\_removed
ca_co2_removed=feedstock_mass×ca_feedstock_mass_fraction×conservative_mean_ca_weathered_fraction40.078g/molCalcium molar mass×44.01g/molCO2 molar mass×2.0Calcium charge\text{ca\_co2\_removed} = \frac{feedstock\_mass \times ca\_feedstock\_mass\_fraction \times conservative\_mean\_ca\_weathered\_fraction}{\overset{Calcium\ molar\ mass}{\text{40.078g/mol}}} \times \overset{CO₂\ molar\ mass}{\text{44.01g/mol}} \times \overset{Calcium\ charge}{\text{2.0}}

conservative_mean_ca_weathered_fraction=ConservativeMeanBootstrapEstimator(outlier_detection_ca_weathered_fraction)\text{conservative\_mean\_ca\_weathered\_fraction} = \text{ConservativeMeanBootstrapEstimator}(outlier\_detection\_ca\_weathered\_fraction)

outlier_detection_ca_weathered_fraction=ModifiedZScoreOutlierDetection(ca_weathered_fraction)\text{outlier\_detection\_ca\_weathered\_fraction} = \text{ModifiedZScoreOutlierDetection}(ca\_weathered\_fraction)

ca_weathered_fraction=DivideAndFilterZeroDenominator(ca_lost,ca_added)\text{ca\_weathered\_fraction} = \text{DivideAndFilterZeroDenominator}(ca\_lost,\allowbreak ca\_added)

ca_lost=ca_added+ca_end_soil_mass_fractionca_baseline_soil_mass_fraction\text{ca\_lost} = ca\_added + ca\_end\_soil\_mass\_fraction - ca\_baseline\_soil\_mass\_fraction

ca_added=mass_ratio_of_feedstock_to_soil×ca_feedstock_mass_fraction_surplus\text{ca\_added} = mass\_ratio\_of\_feedstock\_to\_soil \times ca\_feedstock\_mass\_fraction\_surplus

mass_ratio_of_feedstock_to_soil=tracer_soil_mass_fraction_increasetracer_feedstock_baseline_diff\text{mass\_ratio\_of\_feedstock\_to\_soil} = \frac{tracer\_soil\_mass\_fraction\_increase}{tracer\_feedstock\_baseline\_diff}

tracer_soil_mass_fraction_increase=tracer_end_soil_mass_fractiontracer_baseline_soil_mass_fraction\text{tracer\_soil\_mass\_fraction\_increase} = tracer\_end\_soil\_mass\_fraction - tracer\_baseline\_soil\_mass\_fraction

tracer_feedstock_baseline_diff=tracer_feedstock_mass_fractiontracer_end_soil_mass_fraction\text{tracer\_feedstock\_baseline\_diff} = tracer\_feedstock\_mass\_fraction - tracer\_end\_soil\_mass\_fraction

ca_feedstock_mass_fraction_surplus=ca_feedstock_mass_fractionca_baseline_soil_mass_fraction\text{ca\_feedstock\_mass\_fraction\_surplus} = ca\_feedstock\_mass\_fraction - ca\_baseline\_soil\_mass\_fraction

mg_co2_removed=feedstock_mass×mg_feedstock_mass_fraction×conservative_mean_mg_weathered_fraction24.305g/molMagnesium molar mass×44.01g/molCO2 molar mass×2.0Magnesium charge\text{mg\_co2\_removed} = \frac{feedstock\_mass \times mg\_feedstock\_mass\_fraction \times conservative\_mean\_mg\_weathered\_fraction}{\overset{Magnesium\ molar\ mass}{\text{24.305g/mol}}} \times \overset{CO₂\ molar\ mass}{\text{44.01g/mol}} \times \overset{Magnesium\ charge}{\text{2.0}}

conservative_mean_mg_weathered_fraction=ConservativeMeanBootstrapEstimator(outlier_detection_mg_weathered_fraction)\text{conservative\_mean\_mg\_weathered\_fraction} = \text{ConservativeMeanBootstrapEstimator}(outlier\_detection\_mg\_weathered\_fraction)

outlier_detection_mg_weathered_fraction=ModifiedZScoreOutlierDetection(mg_weathered_fraction)\text{outlier\_detection\_mg\_weathered\_fraction} = \text{ModifiedZScoreOutlierDetection}(mg\_weathered\_fraction)

mg_weathered_fraction=DivideAndFilterZeroDenominator(mg_lost,mg_added)\text{mg\_weathered\_fraction} = \text{DivideAndFilterZeroDenominator}(mg\_lost,\allowbreak mg\_added)

mg_lost=mg_added+mg_end_soil_mass_fractionmg_baseline_soil_mass_fraction\text{mg\_lost} = mg\_added + mg\_end\_soil\_mass\_fraction - mg\_baseline\_soil\_mass\_fraction

mg_added=mass_ratio_of_feedstock_to_soil×mg_feedstock_mass_fraction_surplus\text{mg\_added} = mass\_ratio\_of\_feedstock\_to\_soil \times mg\_feedstock\_mass\_fraction\_surplus

mg_feedstock_mass_fraction_surplus=mg_feedstock_mass_fractionmg_baseline_soil_mass_fraction\text{mg\_feedstock\_mass\_fraction\_surplus} = mg\_feedstock\_mass\_fraction - mg\_baseline\_soil\_mass\_fraction

na_co2_removed=feedstock_mass×na_feedstock_mass_fraction×conservative_mean_na_weathered_fraction22.99g/molSodium molar mass×44.01g/molCO2 molar mass×1.0Sodium charge\text{na\_co2\_removed} = \frac{feedstock\_mass \times na\_feedstock\_mass\_fraction \times conservative\_mean\_na\_weathered\_fraction}{\overset{Sodium\ molar\ mass}{\text{22.99g/mol}}} \times \overset{CO₂\ molar\ mass}{\text{44.01g/mol}} \times \overset{Sodium\ charge}{\text{1.0}}

conservative_mean_na_weathered_fraction=ConservativeMeanBootstrapEstimator(outlier_detection_na_weathered_fraction)\text{conservative\_mean\_na\_weathered\_fraction} = \text{ConservativeMeanBootstrapEstimator}(outlier\_detection\_na\_weathered\_fraction)

outlier_detection_na_weathered_fraction=ModifiedZScoreOutlierDetection(na_weathered_fraction)\text{outlier\_detection\_na\_weathered\_fraction} = \text{ModifiedZScoreOutlierDetection}(na\_weathered\_fraction)

na_weathered_fraction=DivideAndFilterZeroDenominator(na_lost,na_added)\text{na\_weathered\_fraction} = \text{DivideAndFilterZeroDenominator}(na\_lost,\allowbreak na\_added)

na_lost=na_added+na_end_soil_mass_fractionna_baseline_soil_mass_fraction\text{na\_lost} = na\_added + na\_end\_soil\_mass\_fraction - na\_baseline\_soil\_mass\_fraction

na_added=mass_ratio_of_feedstock_to_soil×na_feedstock_mass_fraction_surplus\text{na\_added} = mass\_ratio\_of\_feedstock\_to\_soil \times na\_feedstock\_mass\_fraction\_surplus

na_feedstock_mass_fraction_surplus=na_feedstock_mass_fractionna_baseline_soil_mass_fraction\text{na\_feedstock\_mass\_fraction\_surplus} = na\_feedstock\_mass\_fraction - na\_baseline\_soil\_mass\_fraction
Monitored inputs

CO₂ removed from weathering using tracer ratio method

key: enhanced_weathering_sequestration_ticat_ratio CO₂ removed from weathering using the tracer ratio method. Calculations result=average_f_d×feedstock_mass×cation_feedstock_concentration×cation_charge×co2_molar_masscation_molar_mass\text{result} = \frac{average\_f\_d \times feedstock\_mass \times cation\_feedstock\_concentration \times cation\_charge \times co2\_molar\_mass}{cation\_molar\_mass}
average_f_d=ConservativeMeanBootstrapEstimator(f_d_no_outliers)\text{average\_f\_d} = \text{ConservativeMeanBootstrapEstimator}(f\_d\_no\_outliers)

f_d_no_outliers=ModifiedZScoreOutlierDetection(f_d)\text{f\_d\_no\_outliers} = \text{ModifiedZScoreOutlierDetection}(f\_d)

f_d=cation_added_from_feedstock+cation_baseline_soil_concentrationcation_post_application_concentrationcation_feedstock_concentration×feedstock_mass_fraction\text{f\_d} = \frac{cation\_added\_from\_feedstock + cation\_baseline\_soil\_concentration - cation\_post\_application\_concentration}{cation\_feedstock\_concentration \times feedstock\_mass\_fraction}

cation_added_from_feedstock=feedstock_mass_fraction×(cation_feedstock_concentrationcation_baseline_soil_concentration)\text{cation\_added\_from\_feedstock} = feedstock\_mass\_fraction \times \left(cation\_feedstock\_concentration - cation\_baseline\_soil\_concentration\right)

feedstock_mass_fraction=feedstock_mass_fraction_numeratorfeedstock_mass_fraction_denominator\text{feedstock\_mass\_fraction} = \frac{feedstock\_mass\_fraction\_numerator}{feedstock\_mass\_fraction\_denominator}

feedstock_mass_fraction_numerator=immobile_tracer_ratio×tracer_2_baseline_soil_concentrationtracer_1_baseline_soil_concentration\text{feedstock\_mass\_fraction\_numerator} = immobile\_tracer\_ratio \times tracer\_2\_baseline\_soil\_concentration - tracer\_1\_baseline\_soil\_concentration

immobile_tracer_ratio=tracer_1_post_application_concentrationtracer_2_post_application_concentration\text{immobile\_tracer\_ratio} = \frac{tracer\_1\_post\_application\_concentration}{tracer\_2\_post\_application\_concentration}

feedstock_mass_fraction_denominator=tracer_1_feedstock_concentrationtracer_1_baseline_soil_concentrationimmobile_tracer_ratio×(tracer_2_feedstock_concentrationtracer_2_baseline_soil_concentration)\text{feedstock\_mass\_fraction\_denominator} = tracer\_1\_feedstock\_concentration - tracer\_1\_baseline\_soil\_concentration - immobile\_tracer\_ratio \times \left(tracer\_2\_feedstock\_concentration - tracer\_2\_baseline\_soil\_concentration\right)
Fixed inputs Monitored inputs

CO₂ stored via mineralization

key: dac_mineralized_co2 CO₂ stored via mineralization, determined by the difference in mass of carbonated material at the start and end of the batch process. Calculations result=co2_mineralized_delta×(1reversal_risk)\text{result} = co2\_mineralized\_delta \times \left(1 - reversal\_risk\right)
co2_mineralized_delta=co2_mineralized_t2co2_mineralized_t1\text{co2\_mineralized\_delta} = co2\_mineralized\_t2 - co2\_mineralized\_t1

co2_mineralized_t2=material_dry_weight_t2×carbon_content_t2×3.667CO2 equivalent of pure carbon\text{co2\_mineralized\_t2} = material\_dry\_weight\_t2 \times carbon\_content\_t2 \times \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}}

material_dry_weight_t2=material_weight_t2×(1moisture_content_t2)\text{material\_dry\_weight\_t2} = material\_weight\_t2 \times \left(1 - moisture\_content\_t2\right)

co2_mineralized_t1=material_dry_weight_t1×carbon_content_t1×3.667CO2 equivalent of pure carbon\text{co2\_mineralized\_t1} = material\_dry\_weight\_t1 \times carbon\_content\_t1 \times \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}}

material_dry_weight_t1=material_weight_t1×(1moisture_content_t1)\text{material\_dry\_weight\_t1} = material\_weight\_t1 \times \left(1 - moisture\_content\_t1\right)
Monitored inputs

CO₂e stored via logged to protected intervention

key: ifm_logged_to_protected_sequestration CO₂e stored in an IFM project in aboveground woody biomass, determined by baselining the increase in total stored carbon against a business-as-usual scenario where logging takes place within the project area. Calculations result=net_c_stored_per_area×3.667CO2 equivalent of pure carbon×project_area\text{result} = net\_c\_stored\_per\_area \times \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}} \times project\_area
net_c_stored_per_area=c_stored_per_area_projc_stored_per_area_bau\text{net\_c\_stored\_per\_area} = c\_stored\_per\_area\_proj - c\_stored\_per\_area\_bau

c_stored_per_area_proj=agc_per_area_proj_tnagc_per_area_t0\text{c\_stored\_per\_area\_proj} = agc\_per\_area\_proj\_tn - agc\_per\_area\_t0

c_stored_per_area_bau=agc_per_area_bau_tnagc_per_area_t0\text{c\_stored\_per\_area\_bau} = agc\_per\_area\_bau\_tn - agc\_per\_area\_t0
Fixed inputs Monitored inputs

Calculated sequestration

key: calculated_sequestration Sequestration quantified by a code calculation either using a code component in Certify or calculated by the Supplier with supporting documentation. Calculations result=calculated_sequestration\text{result} = calculated\_sequestration Monitored inputs

Carbon rich substance sequestration

key: carbon_rich_substance_sequestration Amount of CO₂ stored, given a carbon concentration and mass. Applicable to quantifying CO₂ stored for the protocols Biomass Geological Storage, Bio-oil Geological Storage, Subsurface Biomass Carbon Removal and Storage and Biochar Production and Storage. Calculations result=product_mass×carbon_content×3.667CO2 equivalent of pure carbon\text{result} = product\_mass \times carbon\_content \times \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}} Monitored inputs

Carbon rich substance sequestration from mean

key: carbon_rich_substance_sequestration_from_mean Amount of CO₂ stored, given a mass and multiple supplied carbon concentration values, from which a mean is calculated. Applicable to quantifying CO₂ stored for the protocols Biomass Geological Storage, Bio-oil Geological Storage, Subsurface Biomass Carbon Removal and Storage and Biochar Production and Storage. Calculations result=product_mass×carbon_contents×3.667CO2 equivalent of pure carbon\text{result} = product\_mass \times \overline{carbon\_contents} \times \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}} Monitored inputs

Carbon rich substance sequestration with estimate

key: carbon_rich_substance_sequestration_with_estimate Amount of CO₂ stored. The carbon content is calculated from carbon content samples of the same feedstock from different removals. The carbon concentration is then calculated by winsorizing using a three standard deviation limit, then taking the mean and subtracting one standard error to account for sample variability. Applicable to quantifying CO₂ stored for the protocols Biomass Geological Storage, Bio-oil Geological Storage, Subsurface Biomass Carbon Removal and Storage and Biochar Production and Storage. Calculations result=product_mass×estimated_discounted_carbon_content×3.667CO2 equivalent of pure carbon\text{result} = product\_mass \times estimated\_discounted\_carbon\_content \times \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}}
estimated_discounted_carbon_content=WinsorizedMean(carbon_contents,carbon_contents)WinsorizedStandardError(carbon_contents,carbon_contents)\text{estimated\_discounted\_carbon\_content} = \text{WinsorizedMean}(carbon\_contents,\allowbreak carbon\_contents) - \text{WinsorizedStandardError}(carbon\_contents,\allowbreak carbon\_contents)
Monitored inputs

Carbon rich substance sequestration with estimate, wet basis

key: carbon_rich_substance_sequestration_with_estimation_wet_basis Amount of CO₂ stored: total carbon content and biomass is estimated based on measured samples of the carbon and moisture content from the biomass being sequestered. Samples are winsorized using a three standard deviation limit, then discounting by one standard error to account for sample variability. Applicable to quantifying CO₂ stored for the protocols Biomass Geological Storage and Bio-oil Geological Storage. Calculations result=estimated_dry_biomass×estimated_carbon_content×3.667CO2 equivalent of pure carbon\text{result} = estimated\_dry\_biomass \times estimated\_carbon\_content \times \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}}
estimated_dry_biomass=biomass_dry_fraction×biomass_wet_basis\text{estimated\_dry\_biomass} = biomass\_dry\_fraction \times biomass\_wet\_basis

biomass_dry_fraction=1estimated_moisture_content\text{biomass\_dry\_fraction} = 1 - estimated\_moisture\_content

estimated_moisture_content=WinsorizedMean(moisture_contents,moisture_contents)+WinsorizedStandardError(moisture_contents,moisture_contents)\text{estimated\_moisture\_content} = \text{WinsorizedMean}(moisture\_contents,\allowbreak moisture\_contents) + \text{WinsorizedStandardError}(moisture\_contents,\allowbreak moisture\_contents)

estimated_carbon_content=WinsorizedMean(carbon_contents,carbon_contents)WinsorizedStandardError(carbon_contents,carbon_contents)\text{estimated\_carbon\_content} = \text{WinsorizedMean}(carbon\_contents,\allowbreak carbon\_contents) - \text{WinsorizedStandardError}(carbon\_contents,\allowbreak carbon\_contents)
Monitored inputs

DAC sequestration

key: dac_sequestration_constant_co2_mass Amount of CO₂ stored via direct air capture. Calculated from the time integrated product of time series sensor data for the mass flow rate and mass fraction of CO₂. Calculations result=dac_sequestration_constant_co2_mass\text{result} = dac\_sequestration\_constant\_co2\_mass Monitored inputs

DAC sequestration from calculated mass flow

key: dac_sequestration_calculated_mass_flow Amount of CO₂ stored via direct air capture. Calculated by deriving mass flow rate from temperature, pressure, and volume flow rate sensors, alongside fluid composition information. Mass flow rate is then multiplied by the mass concentration of CO₂ and the duration of flow rate to calculate CO₂ sequestered. Calculations result=SumProduct(mass_flow_rate_co2,sequestration_period)\text{result} = \text{SumProduct}(mass\_flow\_rate\_co2,\allowbreak sequestration\_period)
mass_flow_rate_co2=calculated_mass_flow_rate×concentration_co2\text{mass\_flow\_rate\_co2} = calculated\_mass\_flow\_rate \times concentration\_co2

calculated_mass_flow_rate=density_sequestration_fluid×volume_flow_rate_sequestration_fluid\text{calculated\_mass\_flow\_rate} = density\_sequestration\_fluid \times volume\_flow\_rate\_sequestration\_fluid

density_sequestration_fluid=HeosDensity(temperature_sensor_result,pressure_sensor_result,co2_mole_fraction,o2_mole_fraction,n2_mole_fraction,h2o_mole_fraction,h2_mole_fraction)\text{density\_sequestration\_fluid} = \text{HeosDensity}(temperature\_sensor\_result,\allowbreak pressure\_sensor\_result,\allowbreak co2\_mole\_fraction,\allowbreak o2\_mole\_fraction,\allowbreak n2\_mole\_fraction,\allowbreak h2o\_mole\_fraction,\allowbreak h2\_mole\_fraction)

co2_mole_fraction=moles_co2_per_unit_masstotal_moles_per_unit_mass\text{co2\_mole\_fraction} = \frac{moles\_co2\_per\_unit\_mass}{total\_moles\_per\_unit\_mass}

moles_co2_per_unit_mass=concentration_co244.01g/molCO2 molar mass\text{moles\_co2\_per\_unit\_mass} = \frac{concentration\_co2}{\overset{CO₂\ molar\ mass}{\text{44.01g/mol}}}

total_moles_per_unit_mass=moles_co2_per_unit_mass+moles_o2_per_unit_mass+moles_n2_per_unit_mass+moles_h2o+moles_h2_per_unit_mass\text{total\_moles\_per\_unit\_mass} = moles\_co2\_per\_unit\_mass + moles\_o2\_per\_unit\_mass + moles\_n2\_per\_unit\_mass + moles\_h2o + moles\_h2\_per\_unit\_mass

moles_o2_per_unit_mass=concentration_o232.0g/molO2 molar mass\text{moles\_o2\_per\_unit\_mass} = \frac{concentration\_o2}{\overset{O₂\ molar\ mass}{\text{32.0g/mol}}}

moles_n2_per_unit_mass=concentration_n228.014g/molN2 molar mass\text{moles\_n2\_per\_unit\_mass} = \frac{concentration\_n2}{\overset{N₂\ molar\ mass}{\text{28.014g/mol}}}

moles_h2o=concentration_h2o18.015g/molH2O molar mass\text{moles\_h2o} = \frac{concentration\_h2o}{\overset{H₂O\ molar\ mass}{\text{18.015g/mol}}}

moles_h2_per_unit_mass=concentration_h22.016g/molH2 molar mass\text{moles\_h2\_per\_unit\_mass} = \frac{concentration\_h2}{\overset{H₂\ molar\ mass}{\text{2.016g/mol}}}

o2_mole_fraction=moles_o2_per_unit_masstotal_moles_per_unit_mass\text{o2\_mole\_fraction} = \frac{moles\_o2\_per\_unit\_mass}{total\_moles\_per\_unit\_mass}

n2_mole_fraction=moles_n2_per_unit_masstotal_moles_per_unit_mass\text{n2\_mole\_fraction} = \frac{moles\_n2\_per\_unit\_mass}{total\_moles\_per\_unit\_mass}

h2o_mole_fraction=moles_h2ototal_moles_per_unit_mass\text{h2o\_mole\_fraction} = \frac{moles\_h2o}{total\_moles\_per\_unit\_mass}

h2_mole_fraction=moles_h2_per_unit_masstotal_moles_per_unit_mass\text{h2\_mole\_fraction} = \frac{moles\_h2\_per\_unit\_mass}{total\_moles\_per\_unit\_mass}
Monitored inputs

DAC sequestration with volumetric fraction and fossil capture discount

key: dac_sequestration_co2_volume Amount of CO₂ stored via direct air capture. Calculated from the time integrated product of time series sensor data for the mass flow rate of injectate and volume fraction of CO₂. Calculations result=weighted_co2_mass×44.01g/molCO2 molar massinjectate_molar_mass×air_capture_ratio\text{result} = weighted\_co2\_mass \times \frac{\overset{CO₂\ molar\ mass}{\text{44.01g/mol}}}{injectate\_molar\_mass} \times air\_capture\_ratio Monitored inputs

Dissolved carbon sequestration

key: dissolved_carbon_storage_solid_phase_steady_state Mass of CO₂ converted to bicarbonate ions in the wastewater stream, determined using direct measurements within the treatment plant and subtracting any potential losses upon effluent discharge. The calculation uses quantification of dissolved feedstock in the solid phase (Option 1 in the WAE protocol), and assumes a steady state of feedstock mass in the control volume. Calculations result=co2_removed_from_feedstock_dissolutionco2_release_from_non_carbonic_acid_weathering\text{result} = co2\_removed\_from\_feedstock\_dissolution - co2\_release\_from\_non\_carbonic\_acid\_weathering
co2_removed_from_feedstock_dissolution=mass_of_dissolved_feedstock_rp×molar_mass_ratio×undissolved_fs_non_carb×molar_ratio_carbonic_weathering×losses\text{co2\_removed\_from\_feedstock\_dissolution} = mass\_of\_dissolved\_feedstock\_rp \times molar\_mass\_ratio \times undissolved\_fs\_non\_carb \times molar\_ratio\_carbonic\_weathering \times losses

mass_of_dissolved_feedstock_rp=mass_dosing_rpmass_effluent_rpmass_was_rp\text{mass\_of\_dissolved\_feedstock\_rp} = mass\_dosing\_rp - mass\_effluent\_rp - mass\_was\_rp

mass_dosing_rp=total_flow_dosing×mean_feedstock_concentration_dosing\text{mass\_dosing\_rp} = total\_flow\_dosing \times mean\_feedstock\_concentration\_dosing

mass_effluent_rp=total_flow_effluent×tss_effluent×mean_tic_effluent\text{mass\_effluent\_rp} = total\_flow\_effluent \times tss\_effluent \times mean\_tic\_effluent

mass_was_rp=total_flow_was×tss_was×mean_tic_was\text{mass\_was\_rp} = total\_flow\_was \times tss\_was \times mean\_tic\_was

molar_mass_ratio=44.01g/molCO2 molar massfeedstock_molar_mass\text{molar\_mass\_ratio} = \frac{\overset{CO₂\ molar\ mass}{\text{44.01g/mol}}}{feedstock\_molar\_mass}

undissolved_fs_non_carb=1dissolved_fs_non_carb\text{undissolved\_fs\_non\_carb} = 1 - dissolved\_fs\_non\_carb

co2_release_from_non_carbonic_acid_weathering=mass_of_dissolved_feedstock_rp×molar_mass_ratio×dissolved_fs_non_carb×molar_ratio_non_carbonic_weathering\text{co2\_release\_from\_non\_carbonic\_acid\_weathering} = mass\_of\_dissolved\_feedstock\_rp \times molar\_mass\_ratio \times dissolved\_fs\_non\_carb \times molar\_ratio\_non\_carbonic\_weathering
Monitored inputs

Dissolved carbon sequestration, aqueous phase

key: dissolved_carbon_storage_aqueous_phase Mass of CO₂ converted to bicarbonate ions in the wastewater stream, determined using direct measurements within the treatment plant and subtracting any potential losses upon effluent discharge. Feedstock quantified in aqueous phase as total molar flows. Calculations result=co2_removed_from_feedstock_dissolutionco2_release_from_non_carbonic_acid_weathering\text{result} = co2\_removed\_from\_feedstock\_dissolution - co2\_release\_from\_non\_carbonic\_acid\_weathering
co2_removed_from_feedstock_dissolution=mass_of_dissolved_feedstock_rp×molar_mass_ratio×undissolved_fs_non_carb×molar_ratio_carbonic_weathering×losses\text{co2\_removed\_from\_feedstock\_dissolution} = mass\_of\_dissolved\_feedstock\_rp \times molar\_mass\_ratio \times undissolved\_fs\_non\_carb \times molar\_ratio\_carbonic\_weathering \times losses

mass_of_dissolved_feedstock_rp=feedstock_molar_mass×(molar_flow_effluent_rp+molar_flow_was_rpmolar_flow_influent_rp)\text{mass\_of\_dissolved\_feedstock\_rp} = feedstock\_molar\_mass \times \left(molar\_flow\_effluent\_rp + molar\_flow\_was\_rp - molar\_flow\_influent\_rp\right)

molar_mass_ratio=44.01g/molCO2 molar massfeedstock_molar_mass\text{molar\_mass\_ratio} = \frac{\overset{CO₂\ molar\ mass}{\text{44.01g/mol}}}{feedstock\_molar\_mass}

undissolved_fs_non_carb=1dissolved_fs_non_carb\text{undissolved\_fs\_non\_carb} = 1 - dissolved\_fs\_non\_carb

co2_release_from_non_carbonic_acid_weathering=mass_of_dissolved_feedstock_rp×molar_mass_ratio×dissolved_fs_non_carb×molar_ratio_non_carbonic_weathering\text{co2\_release\_from\_non\_carbonic\_acid\_weathering} = mass\_of\_dissolved\_feedstock\_rp \times molar\_mass\_ratio \times dissolved\_fs\_non\_carb \times molar\_ratio\_non\_carbonic\_weathering
Fixed inputs Monitored inputs

Dissolved carbon sequestration, manual dosing

key: dissolved_carbon_storage_manual_dosing Mass of CO₂ converted to bicarbonate ions in the wastewater stream, determined using direct measurements within the treatment plant and subtracting any potential losses upon effluent discharge. Feedstock is dosed manually and measured as a total mass value. Calculations result=co2_removed_from_feedstock_dissolutionco2_release_from_non_carbonic_acid_weathering\text{result} = co2\_removed\_from\_feedstock\_dissolution - co2\_release\_from\_non\_carbonic\_acid\_weathering
co2_removed_from_feedstock_dissolution=mass_of_dissolved_feedstock_rp×molar_mass_ratio×undissolved_fs_non_carb×molar_ratio_carbonic_weathering×losses\text{co2\_removed\_from\_feedstock\_dissolution} = mass\_of\_dissolved\_feedstock\_rp \times molar\_mass\_ratio \times undissolved\_fs\_non\_carb \times molar\_ratio\_carbonic\_weathering \times losses

mass_of_dissolved_feedstock_rp=mass_dosing_rpmass_effluent_rpmass_was_rp\text{mass\_of\_dissolved\_feedstock\_rp} = mass\_dosing\_rp - mass\_effluent\_rp - mass\_was\_rp

mass_effluent_rp=total_flow_effluent×tss_effluent×mean_tic_effluent\text{mass\_effluent\_rp} = total\_flow\_effluent \times tss\_effluent \times mean\_tic\_effluent

mass_was_rp=total_flow_was×tss_was×mean_tic_was\text{mass\_was\_rp} = total\_flow\_was \times tss\_was \times mean\_tic\_was

molar_mass_ratio=44.01g/molCO2 molar massfeedstock_molar_mass\text{molar\_mass\_ratio} = \frac{\overset{CO₂\ molar\ mass}{\text{44.01g/mol}}}{feedstock\_molar\_mass}

undissolved_fs_non_carb=1dissolved_fs_non_carb\text{undissolved\_fs\_non\_carb} = 1 - dissolved\_fs\_non\_carb

co2_release_from_non_carbonic_acid_weathering=mass_of_dissolved_feedstock_rp×molar_mass_ratio×dissolved_fs_non_carb×molar_ratio_non_carbonic_weathering\text{co2\_release\_from\_non\_carbonic\_acid\_weathering} = mass\_of\_dissolved\_feedstock\_rp \times molar\_mass\_ratio \times dissolved\_fs\_non\_carb \times molar\_ratio\_non\_carbonic\_weathering
Monitored inputs

Dissolved carbon sequestration, mass inputs

key: dissolved_carbon_storage_mass_inputs Mass of CO₂ converted to bicarbonate ions in the wastewater stream, determined using direct measurements within the treatment plant and subtracting any potential losses upon effluent discharge. Feedstock measurements for dosing and waste streams provided as mass inputs. Calculations result=co2_removed_from_feedstock_dissolutionco2_release_from_non_carbonic_acid_weathering\text{result} = co2\_removed\_from\_feedstock\_dissolution - co2\_release\_from\_non\_carbonic\_acid\_weathering
co2_removed_from_feedstock_dissolution=mass_of_dissolved_feedstock_rp×molar_mass_ratio×undissolved_fs_non_carb×molar_ratio_carbonic_weathering×losses\text{co2\_removed\_from\_feedstock\_dissolution} = mass\_of\_dissolved\_feedstock\_rp \times molar\_mass\_ratio \times undissolved\_fs\_non\_carb \times molar\_ratio\_carbonic\_weathering \times losses

mass_of_dissolved_feedstock_rp=mass_dosing_rpmass_effluent_rpmass_was_rp\text{mass\_of\_dissolved\_feedstock\_rp} = mass\_dosing\_rp - mass\_effluent\_rp - mass\_was\_rp

molar_mass_ratio=44.01g/molCO2 molar massfeedstock_molar_mass\text{molar\_mass\_ratio} = \frac{\overset{CO₂\ molar\ mass}{\text{44.01g/mol}}}{feedstock\_molar\_mass}

undissolved_fs_non_carb=1dissolved_fs_non_carb\text{undissolved\_fs\_non\_carb} = 1 - dissolved\_fs\_non\_carb

co2_release_from_non_carbonic_acid_weathering=mass_of_dissolved_feedstock_rp×molar_mass_ratio×dissolved_fs_non_carb×molar_ratio_non_carbonic_weathering\text{co2\_release\_from\_non\_carbonic\_acid\_weathering} = mass\_of\_dissolved\_feedstock\_rp \times molar\_mass\_ratio \times dissolved\_fs\_non\_carb \times molar\_ratio\_non\_carbonic\_weathering
Monitored inputs

Enhanced weathering - 3-plot, unpaired single immobile tracer element method

key: iemt_2026_01 CO₂ removed from weathering using the immobile element method described in Reershemius et al 2023, using a single immobile tracer. This component specifically handles three plots with unpaired Ca and Mg measurements using Cu as the tracer. Accounts for losses from strong acids, plant uptake, CEC loss, and river and ocean networks. Calculations result=co2e_after_in_field_losses×river_retention_factor×ocean_retention_factor\text{result} = co2e\_after\_in\_field\_losses \times river\_retention\_factor \times ocean\_retention\_factor
co2e_after_in_field_losses=co2_sequesteredstrong_acid_weathering_losscounterfactual_liming_loss\text{co2e\_after\_in\_field\_losses} = co2\_sequestered - strong\_acid\_weathering\_loss - counterfactual\_liming\_loss
Monitored inputs

Enhanced weathering in closed engineered systems, carbonic acid measurements

key: engineered_enhanced_weathering_carbonic_acid Sequestration via weathering of a rock or mineral feedstock with CO₂ gas in an engineered reactor, with final storage as DIC in the ocean, accounting for miscellaneous and downstream losses. This blueprint applies to projects where downstream losses are quantified via carbonic acid system measurements. Calculations result=upstream_net_storage×(1downstream_loss_factor)\text{result} = upstream\_net\_storage \times \left(1 - downstream\_loss\_factor\right)
upstream_net_storage=co2_weathered_effluent_tco2_weathered_influent_tmisc_losses\text{upstream\_net\_storage} = \sum co2\_weathered\_effluent\_t - \sum co2\_weathered\_influent\_t - misc\_losses

co2_weathered_effluent_t=time_interval_t×concentration_delta_effluent_t×flow_rate_effluent_t×weathering_molar_ratio×44.01g/molCO2 molar mass\text{co2\_weathered\_effluent\_t} = time\_interval\_t \times concentration\_delta\_effluent\_t \times flow\_rate\_effluent\_t \times weathering\_molar\_ratio \times \overset{CO₂\ molar\ mass}{\text{44.01g/mol}}

co2_weathered_influent_t=time_interval_t×concentration_delta_influent_t×flow_rate_influent_t×weathering_molar_ratio×44.01g/molCO2 molar mass\text{co2\_weathered\_influent\_t} = time\_interval\_t \times concentration\_delta\_influent\_t \times flow\_rate\_influent\_t \times weathering\_molar\_ratio \times \overset{CO₂\ molar\ mass}{\text{44.01g/mol}}
Fixed inputs Monitored inputs

Enhanced weathering soil-based quantification with losses

key: iemt_2025_11_modelled Calculates CO₂ removed from weathering using soil sample measurements. Accounts for losses from strong acids, plant uptake, and river and ocean networks. Calculations result=co2e_after_in_field_losses×river_retention_factor×ocean_retention_factor\text{result} = co2e\_after\_in\_field\_losses \times river\_retention\_factor \times ocean\_retention\_factor
co2e_after_in_field_losses=co2_sequesteredtotal_cec_lossstrong_acid_weathering_lossplant_uptake_losscounterfactual_liming_loss\text{co2e\_after\_in\_field\_losses} = co2\_sequestered - total\_cec\_loss - strong\_acid\_weathering\_loss - plant\_uptake\_loss - counterfactual\_liming\_loss
Monitored inputs

Enhanced weathering soil-based quantification with losses, incremental reporting period

key: iemt_incremental_reporting_period_2026_06_modelled Calculates CO₂ removed from weathering during a single reporting period by retracting the cumulative gross CDR measured from t0 to the end of the previous reporting period from the cumulative gross CDR measured from t0 to the end of this reporting period, then applying losses from strong acids, plant uptake, CEC, counterfactual liming, and river and ocean networks. Calculations result=co2e_after_in_field_losses×river_retention_factor×ocean_retention_factor\text{result} = co2e\_after\_in\_field\_losses \times river\_retention\_factor \times ocean\_retention\_factor
co2e_after_in_field_losses=cumulative_gross_cdrprevious_gross_cdrtotal_cec_lossstrong_acid_weathering_lossplant_uptake_losscounterfactual_liming_loss\text{co2e\_after\_in\_field\_losses} = cumulative\_gross\_cdr - previous\_gross\_cdr - total\_cec\_loss - strong\_acid\_weathering\_loss - plant\_uptake\_loss - counterfactual\_liming\_loss
Monitored inputs

Ocean carbon storage via river export

key: ocean_carbon_storage_river_export CO₂ sequestered via increased drawdown in rivers and reduced outgassing, resulting in CO₂ ocean storage as dissolved inorganic carbon (DIC). The calculation uses quantification outlined in the River Alkalinity Enhancement protocol. Calculations result=co2e_net_exportco2e_feedstock\text{result} = co2e\_net\_export - co2e\_feedstock
co2e_net_export=3.667CO2 equivalent of pure carbon×river_dic_export×ocean_retention\text{co2e\_net\_export} = \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}} \times river\_dic\_export \times ocean\_retention

river_dic_export=dic_downstream_t×river_retention×12.011g/molMolar mass of carbon\text{river\_dic\_export} = \sum dic\_downstream\_t \times river\_retention \times \overset{Molar\ mass\ of\ carbon}{\text{12.011g/mol}}

dic_downstream_t=dic_concentration_t×density_downstream_t×flow_downstream_t×time_interval_t\text{dic\_downstream\_t} = dic\_concentration\_t \times density\_downstream\_t \times flow\_downstream\_t \times time\_interval\_t

co2e_feedstock=3.667CO2 equivalent of pure carbon×feedstock_carbon_content\text{co2e\_feedstock} = \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}} \times feedstock\_carbon\_content

feedstock_carbon_content=feedstock_mass×feedstock_carbon_fraction\text{feedstock\_carbon\_content} = feedstock\_mass \times feedstock\_carbon\_fraction
Monitored inputs

Off-platform sequestration

key: off_platform_sequestration Constant sequestration representing a calculation that is done outside of the Isometric system. This blueprint should be used for testing sequestration values before we can represent them with a more detailed blueprint, and not for ‘production’ removal data. Calculations result=off_platform_sequestration\text{result} = off\_platform\_sequestration Monitored inputs

Two plot, unpaired single immobile tracer element

key: iemt_2025_04_two_plot_ca_mg_non_paired_single_tracer CO₂ removed from weathering using the immobile element method described in Reershemius et al 2023, using an immobile tracer. Accounts for losses from strong acids, plant uptake, and river and ocean networks. Can accept multiple feedstock measurements for each element, and the mean will be used. Will also accept multiple soil measurements and take the average of the baseline and end of reporting period measurements for each element before performing the TiCAT calculation. This method allows us to use data where soil measurements are not taken at the same location in baseline and end of reporting period. Calculations result=ExpectedValue(co2_sequestered×strong_acid_retention_factor×plant_retention_factor×river_retention_factor×ocean_retention_factor)\text{result} = \text{ExpectedValue}(co2\_sequestered \times strong\_acid\_retention\_factor \times plant\_retention\_factor \times river\_retention\_factor \times ocean\_retention\_factor)
co2_sequestered=ca_co2_removed+mg_co2_removed\text{co2\_sequestered} = ca\_co2\_removed + mg\_co2\_removed

ca_co2_removed=feedstock_mass×ca_feedstock_mass_fraction×ca_weathered_fraction_mean40.078g/molCalcium molar mass×44.01g/molCO2 molar mass×2.0Calcium charge\text{ca\_co2\_removed} = \frac{feedstock\_mass \times \overline{ca\_feedstock\_mass\_fraction} \times ca\_weathered\_fraction\_mean}{\overset{Calcium\ molar\ mass}{\text{40.078g/mol}}} \times \overset{CO₂\ molar\ mass}{\text{44.01g/mol}} \times \overset{Calcium\ charge}{\text{2.0}}

ca_weathered_fraction_mean=ExpectedValueMinusStddev(ca_weathered_fraction)\text{ca\_weathered\_fraction\_mean} = \text{ExpectedValueMinusStddev}(ca\_weathered\_fraction)

ca_weathered_fraction=DivideAndFilterZeroDenominator(ca_lost,ca_added)\text{ca\_weathered\_fraction} = \text{DivideAndFilterZeroDenominator}(ca\_lost,\allowbreak ca\_added)

ca_lost=ca_added+ca_end_soil_mass_fraction+ca_soil_mass_fraction_control_correctionca_baseline_soil_mass_fraction\text{ca\_lost} = ca\_added + \overline{ca\_end\_soil\_mass\_fraction} + \overline{ca\_soil\_mass\_fraction\_control\_correction} - \overline{ca\_baseline\_soil\_mass\_fraction}

ca_added=mass_ratio_of_feedstock_to_soil×ca_feedstock_mass_fraction_surplus\text{ca\_added} = mass\_ratio\_of\_feedstock\_to\_soil \times ca\_feedstock\_mass\_fraction\_surplus

mass_ratio_of_feedstock_to_soil=tracer_soil_mass_fraction_increasetracer_feedstock_baseline_diff\text{mass\_ratio\_of\_feedstock\_to\_soil} = \frac{tracer\_soil\_mass\_fraction\_increase}{tracer\_feedstock\_baseline\_diff}

tracer_soil_mass_fraction_increase=tracer_end_soil_mass_fractiontracer_baseline_soil_mass_fraction\text{tracer\_soil\_mass\_fraction\_increase} = \overline{tracer\_end\_soil\_mass\_fraction} - \overline{tracer\_baseline\_soil\_mass\_fraction}

tracer_feedstock_baseline_diff=tracer_feedstock_mass_fractiontracer_end_soil_mass_fraction\text{tracer\_feedstock\_baseline\_diff} = \overline{tracer\_feedstock\_mass\_fraction} - \overline{tracer\_end\_soil\_mass\_fraction}

ca_feedstock_mass_fraction_surplus=ca_feedstock_mass_fractionca_baseline_soil_mass_fraction\text{ca\_feedstock\_mass\_fraction\_surplus} = \overline{ca\_feedstock\_mass\_fraction} - \overline{ca\_baseline\_soil\_mass\_fraction}

ca_soil_mass_fraction_control_correction=ca_baseline_soil_mass_fraction_controlca_end_soil_mass_fraction_control\text{ca\_soil\_mass\_fraction\_control\_correction} = ca\_baseline\_soil\_mass\_fraction\_control - ca\_end\_soil\_mass\_fraction\_control

mg_co2_removed=feedstock_mass×mg_feedstock_mass_fraction×mg_weathered_fraction_mean24.305g/molMagnesium molar mass×44.01g/molCO2 molar mass×2.0Magnesium charge\text{mg\_co2\_removed} = \frac{feedstock\_mass \times \overline{mg\_feedstock\_mass\_fraction} \times mg\_weathered\_fraction\_mean}{\overset{Magnesium\ molar\ mass}{\text{24.305g/mol}}} \times \overset{CO₂\ molar\ mass}{\text{44.01g/mol}} \times \overset{Magnesium\ charge}{\text{2.0}}

mg_weathered_fraction_mean=ExpectedValueMinusStddev(mg_weathered_fraction)\text{mg\_weathered\_fraction\_mean} = \text{ExpectedValueMinusStddev}(mg\_weathered\_fraction)

mg_weathered_fraction=DivideAndFilterZeroDenominator(mg_lost,mg_added)\text{mg\_weathered\_fraction} = \text{DivideAndFilterZeroDenominator}(mg\_lost,\allowbreak mg\_added)

mg_lost=mg_added+mg_end_soil_mass_fraction+mg_soil_mass_fraction_control_correctionmg_baseline_soil_mass_fraction\text{mg\_lost} = mg\_added + \overline{mg\_end\_soil\_mass\_fraction} + \overline{mg\_soil\_mass\_fraction\_control\_correction} - \overline{mg\_baseline\_soil\_mass\_fraction}

mg_added=mass_ratio_of_feedstock_to_soil×mg_feedstock_mass_fraction_surplus\text{mg\_added} = mass\_ratio\_of\_feedstock\_to\_soil \times mg\_feedstock\_mass\_fraction\_surplus

mg_feedstock_mass_fraction_surplus=mg_feedstock_mass_fractionmg_baseline_soil_mass_fraction\text{mg\_feedstock\_mass\_fraction\_surplus} = \overline{mg\_feedstock\_mass\_fraction} - \overline{mg\_baseline\_soil\_mass\_fraction}

mg_soil_mass_fraction_control_correction=mg_baseline_soil_mass_fraction_controlmg_end_soil_mass_fraction_control\text{mg\_soil\_mass\_fraction\_control\_correction} = mg\_baseline\_soil\_mass\_fraction\_control - mg\_end\_soil\_mass\_fraction\_control
Monitored inputs

Woody biomass sequestration

key: woody_biomass_sequestration CO₂e stored in a reforestation project in aboveground and belowground woody biomass, determined by the difference in CO₂e stored between the start and end of the reporting period. Calculations result=co2e_stored_t2co2e_stored_t1\text{result} = co2e\_stored\_t2 - co2e\_stored\_t1
co2e_stored_t2=co2e_agb_t2+co2e_bgb_t2\text{co2e\_stored\_t2} = co2e\_agb\_t2 + co2e\_bgb\_t2

co2e_agb_t2=3.667CO2 equivalent of pure carbon×mean_carbon_fraction×mass_agb_t2\text{co2e\_agb\_t2} = \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}} \times mean\_carbon\_fraction \times mass\_agb\_t2

co2e_bgb_t2=root_shoot_ratio×co2e_agb_t2\text{co2e\_bgb\_t2} = root\_shoot\_ratio \times co2e\_agb\_t2

co2e_stored_t1=co2e_agb_t1+co2e_bgb_t1\text{co2e\_stored\_t1} = co2e\_agb\_t1 + co2e\_bgb\_t1

co2e_agb_t1=3.667CO2 equivalent of pure carbon×mean_carbon_fraction×mass_agb_t1\text{co2e\_agb\_t1} = \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}} \times mean\_carbon\_fraction \times mass\_agb\_t1

co2e_bgb_t1=root_shoot_ratio×co2e_agb_t1\text{co2e\_bgb\_t1} = root\_shoot\_ratio \times co2e\_agb\_t1
Monitored inputs

Woody biomass sequestration with performance benchmark adjustment

key: woody_biomass_sequestration_with_performance_benchmark CO₂e stored in a reforestation project in woody biomass, determined by the net increase in carbon mass density in sampled plot areas over the reporting period, against a dynamic baseline counterfactual scenario. Calculations result=co2e_storedco2e_stored_counterfactual\text{result} = co2e\_stored - co2e\_stored\_counterfactual
co2e_stored=carbon_density_delta×project_area×3.667CO2 equivalent of pure carbon\text{co2e\_stored} = carbon\_density\_delta \times project\_area \times \overset{CO₂\ equivalent\ of\ pure\ carbon}{\text{3.667}}

co2e_stored_counterfactual=co2e_storedperformance_benchmark\text{co2e\_stored\_counterfactual} = \frac{co2e\_stored}{performance\_benchmark}
Monitored inputs

Woody biomass sequestration with performance benchmark adjustment

key: woody_biomass_sequestration_with_performance_benchmark_calculated CO₂e stored in a reforestation project in woody biomass, determined by the net increase in carbon mass density in sampled plot areas over the reporting period, against a dynamic baseline counterfactual scenario. Calculations result=co2e_storedco2e_stored_counterfactual\text{result} = co2e\_stored - co2e\_stored\_counterfactual
co2e_stored_counterfactual=co2e_storedperformance_benchmark\text{co2e\_stored\_counterfactual} = \frac{co2e\_stored}{performance\_benchmark}
Monitored inputs

Uncertainty Discount Component Blueprints

Constant CO₂ uncertainty discount

key: constant_uncertainty_discount CO₂e discounted as a result of an off-platform calculation of input uncertainty, such as Monte Carlo simulations. This component should only be used if not using the in-built variance propagation method of uncertainty discounting. Calculations result=constant_uncertainty_discount\text{result} = constant\_uncertainty\_discount Monitored inputs