| 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)