Title: Predict Carbon Emissions for UK SMEs
Version: 2.0.0
Description: Predict Scope 1, 2 and 3 carbon emissions for UK Small and Medium-sized Enterprises (SMEs), using Standard Industrial Classification (SIC) codes and annual turnover data, as well as Scope 1 carbon emissions for UK farms. The 'carbonpredict' package provides single and batch prediction, plotting, and workflow tools for carbon accounting and reporting. The package utilises pre-trained models, leveraging rich classified transaction data to accurately predict Scope 1, 2 and 3 carbon emissions for UK SMEs as well as identifying emissions hotspots. It also provides Scope 1 carbon emissions predictions for UK farms of types: Cereals ex. rice, Dairy, Mixed farming, Sheep and goats, Cattle & buffaloes, Poultry, Animal production and Support for crop production. The methodology used to produce the estimates in this package is fully detailed in the following peer-reviewed publication in the Journal of Industrial Ecology: Phillpotts, A., Owen. A., Norman, J., Trendl, A., Gathergood, J., Jobst, Norbert., Leake, D. (2025) <doi:10.1111/jiec.70106> "Bridging the SME Reporting Gap: A New Model for Predicting Scope 1 and 2 Emissions".
License: MIT + file LICENSE
URL: https://github.com/david-leake/carbonpredict
Encoding: UTF-8
Depends: R (≥ 3.5.0)
RoxygenNote: 7.3.3
Imports: dplyr, ggplot2, progress, lmerTest, networkD3, htmltools, htmlwidgets
Suggests: testthat (≥ 3.0.0), mockery, png, grid
Config/testthat/edition: 3
NeedsCompilation: no
Packaged: 2025-10-29 15:19:30 UTC; Hamza
Author: Hamza Suleman [aut, cre, cph], Alec Phillpotts [ctb, aut], Jasmine Wells [ctb, aut], David Leake [ctb, aut]
Maintainer: Hamza Suleman <Hamza.Suleman@lloydsbanking.com>
Repository: CRAN
Date/Publication: 2025-10-29 15:50:02 UTC

Batch Predict Emissions

Description

Prediction entry point for batch SME and Farms emissions

Usage

batch_predict_emissions(data, output_path = NULL, company_type = "sme")

Arguments

data

A single entry (list or named vector), a data frame, or a path to a CSV file. The data should contain company_name, 2-digit UK sic_code, and annual turnover columns.

output_path

Optional file path to save the results as a CSV. If NULL, results are not saved to a file.

company_type

A single parameter "sme" or "farm" to determine which emission prediction functions to call (defaults to "sme").

Value

A data frame with input columns and predicted emissions for each scope (in tCo2e). Optionally saved to a CSV file.

Examples

sample_data <- read.csv(system.file("extdata", "sme_examples.csv", package = "carbonpredict"))
sample_data <- head(sample_data, 3)
batch_predict_emissions(data = sample_data, output_path = NULL, company_type = "sme")

Batch SME Plots

Description

Batch plot SME Scope 1 & 2 emissions

Usage

batch_sme_plots(data, output_path = NULL)

Arguments

data

A data frame or path to a CSV file with columns "sic_code", "turnover", and optionally "company_name".

output_path

Optional directory to save plots. If NULL, plots are not saved.

Value

Donut chart plots showing scope 1 and 2 predicted emissions (in tCo2e) for each row in the data. Optionally saved to a directory as PNG files.

Examples

sample_data <- read.csv(system.file("extdata", "sme_examples.csv", package = "carbonpredict"))
sample_data <- head(sample_data, 3)
batch_sme_emissions <- batch_predict_emissions(
data = sample_data,
company_type = "sme",
output_path = NULL)
batch_sme_plots(data = batch_sme_emissions, output_path = NULL)

Predict Farm Scope 1 Emissions

Description

This function loads a pre-trained emission model to predict scope 1 carbon emissions for a British farm. The function predicts emissions for the following farm types: "Cereals ex. rice", "Dairy", "Mixed farming", "Sheep and goats", "Cattle & buffaloes", "Poultry", "Animal production", "Support for crop production".

Usage

farms_scope1(
  sic_code,
  farm_area,
  no_beef_cows,
  no_dairy_cows,
  no_pigs,
  no_sheep,
  annual_revenue,
  annual_fuel_spend
)

Arguments

sic_code

A 4-digit UK SIC code (numeric).

farm_area

Farm area in hectares.

no_beef_cows

Number of beef cows.

no_dairy_cows

Number of dairy cows.

no_pigs

Number of pigs.

no_sheep

Number of sheep.

annual_revenue

Annual revenue (£)

annual_fuel_spend

Annual fuel spend (£)

Value

A dataframe with predicted emissions (tCO2e)

Examples

farms_scope1(
sic_code = 1110,
farm_area = 1113,
no_beef_cows = 25,
no_dairy_cows = 8,
no_pigs = 18,
no_sheep = 29,
annual_revenue = 2986511,
annual_fuel_spend = 209055)

Plot Scope 3 Emissions Breakdown

Description

Plots a Sankey diagram showing the breakdown of Scope 3 emissions by category.

Usage

plot_scope3_emissions(scope3_df, company_name = NULL)

Arguments

scope3_df

Data frame output from sme_scope3 (must contain 'Category', 'Description', and 'Predicted Emissions (tCO2e)').

company_name

Optional company name to include in the chart title (character string).

Value

A Sankey plot showing a breakdown for predicted emissions of each Scope 3 category.

Examples

scope3_df <- sme_scope3(85, 12000000)
plot_scope3_emissions(scope3_df, company_name = "Carbon Predict LTD")

Plot SME Emissions

Description

Plot a donut chart of Scope 1,2 and 3 emissions

Usage

plot_sme_emissions(
  scope1_emissions,
  scope2_emissions,
  scope3_emissions,
  company_name = NULL
)

Arguments

scope1_emissions

Value for total Scope 1 emissions (numeric).

scope2_emissions

Value for total Scope 2 emissions (numeric).

scope3_emissions

Value for total Scope 3 emissions (numeric).

company_name

Optional company name to include in the chart title (character string).

Value

A ggplot2 donut chart showing predicted emissions for each scope.

Examples

scope_1 = sme_scope1(85, 12000000)
scope_2 = sme_scope2(85, 12000000)
scope_3 = sme_scope3(85, 12000000)
plot_sme_emissions(
scope1_emissions = scope_1$`Predicted Emissions (tCO2e)`,
scope2_emissions = scope_2$`Predicted Emissions (tCO2e)`,
scope3_emissions = scope_3[scope_3$Category == "Total", "Predicted Emissions (tCO2e)"][[1]],
company_name = "Carbon Predict LTD")

SME Emissions Profile

Description

Calls the Scope 1, 2 and 3 emissions prediction functions and returns their results as a list and plots a donut chart

Usage

sme_emissions_profile(sic_code, turnover, company_name = NULL)

Arguments

sic_code

A 2-digit UK SIC code (numeric).

turnover

Annual turnover value (numeric).

company_name

Optional company name for labeling plots (character string).

Value

A list with four elements: scope1, scope2 scope3, scope3_hotspots, each containing the predicted carbon emissions data frame (in tCo2e), the top 5 scope 3 emissions hotspots, as well as a donut chart and Sankey diagram showing the emissions breakdowns.

Examples

sme_emissions_profile(sic_code = 85, turnover = 12000000, company_name = "Carbon Predict LTD")

Predict SME Scope 1 Emissions

Description

This function loads a pre-trained emission model to predict scope 1 carbon emissions for a given SIC code and turnover.

Usage

sme_scope1(sic_code, turnover)

Arguments

sic_code

A 2-digit UK SIC code (numeric).

turnover

Annual turnover value (numeric).

Value

A data frame with predicted emissions (in tCo2e).

Examples

sme_scope1(sic_code = 85, turnover = 12000000)

Predict SME Scope 2 Emissions

Description

This function loads a pre-trained emission model to predict scope 2 carbon emissions for a given SIC code and turnover.

Usage

sme_scope2(sic_code, turnover)

Arguments

sic_code

A 2-digit UK SIC code (numeric).

turnover

Annual turnover value (numeric).

Value

A data frame with predicted emissions (in tCo2e).

Examples

sme_scope2(sic_code = 85, turnover = 12000000)

Predict SME Scope 3 Emissions

Description

This function loads pre-trained emissions models to predict scope 3 carbon emissions for a given SIC code and turnover.

Usage

sme_scope3(sic_code, turnover)

Arguments

sic_code

A 2-digit UK SIC code (numeric).

turnover

Annual turnover value (numeric).

Value

A data frame with predicted emissions (in tCo2e) for each scope 3 category.

Examples

sme_scope3(sic_code = 85, turnover = 12000000)

Predict Top 5 SME Scope 3 Emissions Hotspots

Description

This function uses pre-computed results to predict the top 5 scope 3 carbon emissions hotspots for a given SIC code.

Usage

sme_scope3_hotspots(sic_code)

Arguments

sic_code

A 2-digit UK SIC code (numeric).

Value

A data frame with the top 5 emissions hotspots for scope 3.

Examples

sme_scope3_hotspots(sic_code = 85)