Use of sold products covers emissions from customers using the products your organization sells. According to the GHG Protocol Scope 3 Standard, Category 11 includes emissions from:
Direct use-phase emissions: Emissions from the use of products that directly consume energy or fuels
Indirect use-phase emissions: Emissions from the use of products that indirectly consume energy (e.g., clothing that requires washing)
┌─────────────────────────────────────────────────────────────────────────────┐│ SCOPE 3 CATEGORY 11: Use of Sold Products │├─────────────────────────────────────────────────────────────────────────────┤│ ││ YOUR ORGANIZATION YOUR CUSTOMERS ││ ───────────────── ────────────── ││ ││ ┌──────────────┐ ┌──────────────────────┐ ││ │ │ Product sold │ │ ││ │ Product │ ─────────────────────────► │ CUSTOMER USE PHASE │ ││ │ Manufacturing│ │ │ ││ │ & Sales │ │ ⚡ Electricity │ ││ │ │ │ 🔥 Fuel combustion │ ││ └──────────────┘ │ 💧 Water │ ││ │ │ ││ │ Over product's │ ││ │ entire lifespan │ ││ └──────────────────────┘ ││ ││ CALCULATION: ││ Total emissions = Units sold × Use-phase consumption × Lifespan × EF ││ ││ EXAMPLES: ││ • Industrial compressors (electricity during operation) ││ • Gas boilers (fuel combustion) ││ • Vehicles (fuel combustion over lifetime km) ││ • Household appliances (electricity + water) ││ • IT equipment (electricity during use) ││ ││ NOT INCLUDED: ││ • Products that don't consume energy (furniture, clothing...) ││ • End-of-life treatment (Category 12) ││ • Manufacturing emissions (Category 1 for your suppliers) ││ │└─────────────────────────────────────────────────────────────────────────────┘
When Does Category 11 Apply?Category 11 is most relevant for organizations that sell energy-consuming products — anything that uses electricity, burns fuel, or consumes water during its use phase. If your products don’t consume energy during use (e.g., passive building materials, textiles), Category 11 emissions are typically zero or negligible.For many manufacturers, Category 11 is the largest Scope 3 category — often exceeding 50% of total emissions for products with long lifespans or high energy consumption.
Dcycle calculates Category 11 emissions using a product-centric approach with four layers of data:
1
Create a Sold Product
Register each product or product family your organization sells
2
Define Reporting Periods
Add date ranges for when sales data applies (e.g., 2024-01-01 to 2024-12-31)
3
Add Country Sales
Record how many units were sold in each country during the period
4
Configure Use-Phase Consumption
Define what the product consumes during its lifetime: electricity, fuel, and/or water
5
Automatic Calculation
Dcycle calculates total use-phase emissions:
Units sold × Consumption per unit × Lifespan × Country-specific emission factor
Country-Specific Emission FactorsDcycle applies country-specific emission factors for electricity consumption. A product sold in France (low-carbon grid) will have lower use-phase emissions than the same product sold in Poland (coal-heavy grid). This is why country-level sales data matters.
┌──────────────────────────────────────────────────────────────────────────────┐│ CALCULATION FLOW │├──────────────────────────────────────────────────────────────────────────────┤│ ││ For each country where the product is sold: ││ ││ Electricity emissions: ││ = Units sold × kWh per [frequency] × Lifespan × Grid EF (country) ││ ││ Combustion emissions: ││ = Units sold × Fuel quantity per [frequency] × Lifespan × Fuel EF ││ ││ Water emissions: ││ = Units sold × Water per [frequency] × Lifespan × Water EF (country) ││ ││ Total = Σ (Electricity + Combustion + Water) across all countries ││ ││ Where [frequency] is normalized to match lifespan: ││ • daily → × 365 × lifespan_years ││ • monthly → × 12 × lifespan_years ││ • yearly → × lifespan_years ││ • all_life → × 1 (total over entire lifespan) ││ │└──────────────────────────────────────────────────────────────────────────────┘
Product catalog: Your product management system or ERP
Naming: Use consistent names across periods (one product record per product family)
Product names must be unique within your organization. Use product families rather than individual SKUs when products have similar use-phase consumption profiles.
Products are created implicitly when you first upload country sales data through the Dcycle App, or explicitly via the API. Each sold product record groups all periods and sales for that product.
import requestsimport osheaders = { "x-api-key": os.getenv("DCYCLE_API_KEY"), "Content-Type": "application/json", "x-organization-id": os.getenv("DCYCLE_ORG_ID"),}# List existing sold productsproducts = requests.get( "https://api.dcycle.io/v2/sold-products/", headers=headers,).json()print(f"📦 Sold Products:")for product in products["items"]: print(f" {product['product_name']} (ID: {product['product_id']})")
const axios = require('axios');const headers = { 'x-api-key': process.env.DCYCLE_API_KEY, 'Content-Type': 'application/json', 'x-organization-id': process.env.DCYCLE_ORG_ID,};// List existing sold productsconst response = await axios.get( 'https://api.dcycle.io/v2/sold-products/', { headers });const products = response.data;console.log('📦 Sold Products:');for (const product of products.items) { console.log(` ${product.product_name} (ID: ${product.product_id})`);}
One entry per country per period (unique combination)
All sales within the same period must use the same unit
Where to get this data:
Sales system / ERP: Units sold by country by period
Distribution records: Shipping destinations, invoicing addresses
Market reports: Regional sales breakdowns
Country sales tell Dcycle how many units of each product were sold in each market. This is critical because electricity emission factors vary significantly by country.
# Get country sales for a product periodproduct_id = "your-product-uuid"period_id = "your-period-uuid"country_sales = requests.get( f"https://api.dcycle.io/v2/sold-products/{product_id}/periods/{period_id}/country-sales", headers=headers,).json()print(f"📊 Sales Breakdown:")print(f" Total: {country_sales['total_quantity']} units")for sale in country_sales["items"]: country = sale["location"]["country_name"] qty = sale["quantity"] unit = sale["unit"]["symbol"] print(f" {country}: {qty} {unit}")
// Get country sales for a product periodconst productId = 'your-product-uuid';const periodId = 'your-period-uuid';const countrySales = await axios.get( `https://api.dcycle.io/v2/sold-products/${productId}/periods/${periodId}/country-sales`, { headers });const data = countrySales.data;console.log('📊 Sales Breakdown:');console.log(` Total: ${data.total_quantity} units`);for (const sale of data.items) { const country = sale.location.country_name; console.log(` ${country}: ${sale.quantity} ${sale.unit.symbol}`);}
CSV Upload for Country SalesFor large datasets, upload country sales via CSV through the Dcycle App. The CSV should contain columns for country and quantity. The app will validate and detect duplicates automatically.
*Required only when the corresponding consumes_* flag is true.Frequency options:daily, weekly, monthly, yearly, all_life
This is the core data that defines how much energy your product consumes during its use phase. You define what the product consumes (electricity, fuel, water) and how much, over what frequency and lifespan.
Consistency Between FieldsWhen consumes_electricity is true, you must provide electricity_quantity, electricity_unit_id, and electricity_frequency. The same applies for combustion and water. Setting a flag to true without the related fields will cause a validation error.
Once you’ve configured the use-phase data, Dcycle triggers an asynchronous calculation. You can check the status and results:
# Get emissions for a product periodemissions = requests.get( f"https://api.dcycle.io/v2/sold-products/{product_id}/periods/{period_id}/emissions", headers=headers,).json()for emission in emissions["items"]: status = emission["status"] quantity = emission.get("quantity") emission_type = emission["type"] if status == "calculation_completed": print(f"✅ {emission_type}: {quantity:,.2f} kgCO₂e") elif status == "calculation_running": print(f"⏳ {emission_type}: Calculating...") elif status == "missing_data": print(f"⚠️ {emission_type}: Missing data — check use-of-product configuration") elif status == "calculation_completed_with_errors": print(f"❌ {emission_type}: Completed with errors")# Get detailed breakdown by countryuse_of_product_data_id = emissions["items"][0]["use_of_product_data_id"]details = requests.get( f"https://api.dcycle.io/v2/sold-products/{product_id}/use-of-product/{use_of_product_data_id}/details", headers=headers,).json()print(f"\n📊 Emissions by Country:")for detail in details["items"]: print(f" {detail['country_name']}: {detail['quantity']:,.2f} kgCO₂e")
// Get emissions for a product periodconst emissions = await axios.get( `https://api.dcycle.io/v2/sold-products/${productId}/periods/${periodId}/emissions`, { headers });for (const emission of emissions.data.items) { const { status, quantity, type } = emission; if (status === 'calculation_completed') { console.log(`✅ ${type}: ${quantity.toLocaleString()} kgCO₂e`); } else if (status === 'calculation_running') { console.log(`⏳ ${type}: Calculating...`); } else if (status === 'missing_data') { console.log(`⚠️ ${type}: Missing data — check use-of-product configuration`); }}// Get detailed breakdown by countryconst useOfProductDataId = emissions.data.items[0].use_of_product_data_id;const details = await axios.get( `https://api.dcycle.io/v2/sold-products/${productId}/use-of-product/${useOfProductDataId}/details`, { headers });console.log('\n📊 Emissions by Country:');for (const detail of details.data.items) { console.log(` ${detail.country_name}: ${detail.quantity.toLocaleString()} kgCO₂e`);}
Automatic RecalculationUpdating use-of-product data automatically triggers a recalculation of all emissions for the affected period. You don’t need to manually re-trigger calculations.
If you have detailed Life Cycle Assessment (LCA) data for your products, you can use Dcycle’s LCA module to build a complete cradle-to-grave model. The LCA module uses the ecoinvent database and provides more granular impact categories beyond just climate change.Category 11 and LCA complement each other:
Category 11 (this guide): Estimates use-phase emissions from sales volumes and product specs — ideal for GHG Protocol reporting
LCA module: Detailed product-level environmental impact across the full lifecycle — ideal for EPDs, product design, and ecodesign