Documentation Index Fetch the complete documentation index at: https://code.dcycle.io/llms.txt
Use this file to discover all available pages before exploring further.
Understanding Capital Goods Emissions
Capital goods are physical assets with an extended life that your organization uses to manufacture products, provide services, or sell, store, and deliver merchandise. Unlike purchased goods and services, capital goods are amortized over their useful life rather than consumed immediately.
Under ISO 14064-1 Category 4, capital goods include:
Buildings and facilities : Offices, warehouses, manufacturing plants, retail stores
Machinery and equipment : Production lines, HVAC systems, generators, industrial equipment
Vehicles : Company fleet vehicles (if purchased, not leased)
IT infrastructure : Servers, data centers, computer equipment, networking hardware
Furniture and fixtures : Office furniture, shelving, storage systems
┌─────────────────────────────────────────────────────────────────────────────┐
│ ISO 14064-1 CATEGORY 4.1: Capital Goods │
├─────────────────────┬─────────────────────┬─────────────────────────────────┤
│ Buildings & │ Machinery & │ IT & Other │
│ Facilities │ Equipment │ Assets │
├─────────────────────┼─────────────────────┼─────────────────────────────────┤
│ • Office buildings │ • Production lines │ • Servers & data centers │
│ • Warehouses │ • HVAC systems │ • Computer equipment │
│ • Manufacturing │ • Generators │ • Furniture & fixtures │
│ • Retail stores │ • Fleet vehicles │ • Networking hardware │
└─────────────────────┴─────────────────────┴─────────────────────────────────┘
Purchased Goods vs Capital Goods Aspect Purchased Goods (4.3) Capital Goods (4.1) Type Operational expenditure (OPEX) Capital expenditure (CAPEX) Consumption Consumed/used within reporting year Multi-year useful life Examples Raw materials, services, supplies Buildings, machinery, vehicles Accounting Full emissions in year of purchase Can be amortized over useful life Dcycle field expense_type: "opex"expense_type: "capex"
Prerequisites
Before starting, ensure you have:
Dcycle API credentials (get them here )
Capital asset data: fixed asset register, procurement records, or investment records
Understanding of your capital asset categories and their acquisition costs or physical specifications
Using the Dcycle App? You can also manage capital goods through our web interface:
Data Map: Capital Goods Requirements Overview
┌─────────────────────────────────────────────────────────────────────────────────────────┐
│ CAPITAL GOODS DATA REQUIREMENTS │
├─────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────────┐ │
│ │ CAPITAL GOODS DATA │ │
│ ├─────────────────────────────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ Spend-Based Activity-Based Supplier-Specific │ │
│ │ ──────────────────── ──────────────── ───────────────── │ │
│ │ • quantity (€) • quantity (kg, units) • quantity │ │
│ │ • unit_id (€) • unit_id (kg, m², etc.) • unit_id │ │
│ │ • sector • product_name • custom_emission_ │ │
│ │ • product_name • sector factor_id │ │
│ │ • country • country • supplier_id │ │
│ │ • purchase_date • purchase_date • purchase_date │ │
│ │ • expense_type: "capex" • expense_type: "capex" • expense_type: "capex" │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────────┐ │
│ │ KEY REQUIREMENT │ │
│ ├─────────────────────────────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ ⚠️ Set expense_type = "capex" (not "opex") │ │
│ │ │ │
│ │ This field determines whether emissions are classified as: │ │
│ │ • Category 4.3 (Purchased goods & services) → expense_type: "opex" │ │
│ │ • Category 4.1 (Capital goods) → expense_type: "capex" │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────────────────┘
Calculation Methods
Capital goods use the same calculation methods as purchased goods, with identical emission factor sources:
Spend-Based Method
Activity-Based Method
Supplier-Specific Method
The spend-based method uses economic input-output (EEIO) emission factors based on the monetary value of capital purchases. Acquisition Cost (€) → Sector/Product Category → Exiobase EF → CO₂e
↓ ↓ ↓ ↓
Invoice/PO amount Product mapping kg CO₂e/€ Total emissions
Key characteristics:
Uses Exiobase 3.8.2 input-output emission factors
Best for buildings, infrastructure, and mixed assets
Lower accuracy but easiest to implement
Use when you only have financial data
Emission Factor Sources - Spend-Based
For spend-based calculations, Dcycle uses emission factors from:
Exiobase 3.8.2 - Multi-Regional Environmentally Extended Supply-Use Tables
Covers construction, manufacturing, and equipment sectors
Source: Exiobase
Common capital goods sectors:
Construction - Buildings and infrastructure
Manufacture of machinery and equipment n.e.c. - Industrial equipment
Manufacture of motor vehicles - Fleet vehicles
Manufacture of computer, electronic and optical products - IT equipment
Calculation Details - Spend-Based
Spend-based emissions are calculated as: CO₂e = Acquisition Cost (€) × Economic Intensity Factor (kg CO₂e/€) Where:
Acquisition Cost : Total purchase price including installation/commissioning
Economic Intensity Factor : Exiobase emission factor for the asset category
Example (Office Building): €2,000,000 × 0.35 kg CO₂e/€ = 700,000 kg CO₂e (700 tCO₂e)
Example (Industrial Machinery): €500,000 × 0.45 kg CO₂e/€ = 225,000 kg CO₂e (225 tCO₂e)
The activity-based method uses physical quantities and product-specific emission factors. Quantity (kg, m², units) → Product Category → Activity-Based EF → CO₂e
↓ ↓ ↓ ↓
Physical specs Asset type kg CO₂e/unit Total emissions
Key characteristics:
Uses physical quantities (weight, area, units)
More accurate than spend-based
Ideal for standardized equipment
Requires detailed asset specifications
Emission Factor Sources - Activity-Based
For activity-based calculations, Dcycle uses emission factors from:
Ecoinvent - Life cycle inventory database (latest version available)
Industry-specific databases - Equipment-specific factors
Construction sector databases - Building material factors
Common activity-based metrics:
Buildings: m² of floor area, tonnes of construction materials
Vehicles: units, vehicle type
IT equipment: units, weight (kg)
Machinery: weight (kg), power rating (kW)
Calculation Details - Activity-Based
Activity-based emissions are calculated as: CO₂e = Quantity × Emission Factor (kg CO₂e/unit) Where:
Quantity : Physical measure (kg, m², units, etc.)
Emission Factor : Product-specific factor from database
Example (Steel Equipment - 5,000 kg): 5,000 kg × 2.8 kg CO₂e/kg = 14,000 kg CO₂e
Example (Office Building - 2,000 m²): 2,000 m² × 350 kg CO₂e/m² = 700,000 kg CO₂e
The supplier-specific method uses verified emission data from asset manufacturers (EPDs, PCFs). Quantity → Manufacturer EPD/PCF → Verified EF → CO₂e
↓ ↓ ↓ ↓
Physical Third-party kg CO₂e/unit Total emissions
specs verified (most accurate)
Key characteristics:
Uses Environmental Product Declarations (EPDs)
Highest accuracy (±5-15%)
Available for many construction products and equipment
Reflects actual manufacturing processes
Emission Factor Sources - Supplier-Specific
Supplier-specific emission factors come from:
Building material EPDs - Concrete, steel, glass, insulation
Equipment manufacturer PCFs - HVAC, machinery, vehicles
IT equipment disclosures - Servers, computers
Vehicle manufacturer data - Fleet vehicles
EPD databases:
Calculation Details - Supplier-Specific
Supplier-specific emissions are calculated as: CO₂e = Quantity × Custom Emission Factor (kg CO₂e/unit) Where:
Quantity : Physical amount from specifications
Custom Emission Factor : Manufacturer-provided factor (from EPD/PCF)
Example (Low-carbon concrete from certified supplier): Standard: 500 m³ × 300 kg CO₂e/m³ = 150,000 kg CO₂e
Low-carbon: 500 m³ × 180 kg CO₂e/m³ = 90,000 kg CO₂e
Savings: 60,000 kg CO₂e (40% reduction)
Amortization Approaches
ISO 14064-1 allows two approaches for reporting capital goods emissions:
Option 1: Full Accounting in Year of Purchase (Default)
Report all emissions in the year the asset is acquired. This is the simpler approach and Dcycle’s default behavior. Pros:
Simple to implement
Matches accounting treatment timing
No tracking of asset useful life needed
Cons:
Creates emissions “spikes” in years with major investments
Year-over-year comparisons more difficult
May not reflect when the asset is actually used
# Default behavior: full emissions in purchase year
capital_asset = {
"description" : "New manufacturing facility" ,
"expense_type" : "capex" ,
"quantity" : 5000000 , # €5M full cost
"purchase_date" : "2024-01-15" , # All emissions in 2024
# ...
}
Option 2: Depreciation/Amortization Over Useful Life
Spread emissions over the asset’s useful life, matching financial depreciation. This approach requires manual calculation and multiple annual entries. Pros:
Smoother emissions profile
Better reflects when asset value is consumed
Aligns with financial depreciation schedules
Cons:
More complex to implement
Requires tracking useful life for each asset
Must create entries for multiple years
# Example: €5M building with 25-year useful life
annual_emissions_value = 5000000 / 25 # €200,000 per year
# Create 25 annual entries
for year in range ( 2024 , 2049 ):
capital_asset = {
"description" : f "Manufacturing facility - Year { year - 2023} of 25" ,
"expense_type" : "capex" ,
"quantity" : 200000 , # €200K annual portion
"purchase_date" : f " { year } -01-01" ,
# ...
}
Contact Dcycle support for guidance on implementing the depreciation approach for your organization.
Recording Capital Goods
Data Flow
Identify Capital Assets
Review your fixed asset register to identify assets acquired during the reporting period
Classify by Asset Type
Categorize assets (buildings, machinery, vehicles, IT, etc.) for appropriate emission factors
Choose Calculation Method
Select spend-based, activity-based, or supplier-specific based on available data
Create Capital Goods Records
Record assets via API with expense_type: "capex" to classify as Category 4.1
Query and Analyze
View Category 4.1 emissions separately from Category 4.3 in reports
Create a Spend-Based Capital Good
📋 Data Map: Spend-Based Capital Good
Field Type Required Description Example descriptionstring ❌ Asset description "New manufacturing equipment"sectorstring ✅ Economic sector "Manufacture of machinery"product_namestring ✅ Product/asset category "Machinery and equipment n.e.c."quantitynumber ✅ Acquisition cost 500000unit_idUUID ✅ Currency unit (€) "eur-unit-uuid"countrystring ✅ Country of manufacture "DE"purchase_datedate ✅ Acquisition date "2024-03-15"expense_typestring ✅ Must be “capex” "capex"supplier_idUUID ❌ Linked supplier "supplier-uuid"
Where to get this data:
Quantity : From fixed asset register, purchase orders, or invoices
Sector/Product : Map from your asset categories (see Exiobase mapping)
Country : Country where the asset was manufactured
Record a capital asset using the spend-based method:
import requests
import os
headers = {
"Authorization" : f "Bearer { os.getenv( 'DCYCLE_API_KEY' ) } " ,
"Content-Type" : "application/json" ,
"x-organization-id" : os.getenv( "DCYCLE_ORG_ID" ),
"x-user-id" : os.getenv( "DCYCLE_USER_ID" ),
}
# Get the EUR unit
units = requests.get(
"https://api.dcycle.io/api/v1/units" ,
headers = headers,
params = { "page" : 1 , "size" : 100 }
).json()
eur_unit = next (u for u in units[ 'items' ] if u[ 'abbreviation' ] == '€' )
# Create capital good (manufacturing equipment - spend-based)
capital_good_data = {
"description" : "CNC Machining Center - Model X500" ,
"sector" : "Manufacture of machinery and equipment n.e.c." ,
"product_name" : "Machinery and equipment n.e.c." ,
"quantity" : 500000 , # €500,000 acquisition cost
"unit_id" : eur_unit[ 'id' ],
"country" : "DE" , # Manufactured in Germany
"purchase_date" : "2024-03-15" ,
"expense_type" : "capex" , # ⚠️ IMPORTANT: This makes it Category 4.1
"purchase_type" : "spend_based" ,
}
response = requests.post(
"https://api.dcycle.io/api/v1/purchases" ,
headers = headers,
json = capital_good_data,
)
capital_good = response.json()
print ( f "✅ Capital good recorded: { capital_good[ 'id' ] } " )
print ( f " Description: { capital_good[ 'description' ] } " )
print ( f " Cost: € { capital_good[ 'quantity' ] :,.2f } " )
print ( f " CO₂e: { capital_good.get( 'co2e' , 'Calculating...' ) } kg" )
print ( f " ISO 14064-1 Category: 4.1 (Capital Goods)" )
Critical: Set expense_type: "capex" The expense_type field determines which category the emissions are assigned to:
expense_type: "opex" → Category 4.3 (Purchased Goods & Services)
expense_type: "capex" → Category 4.1 (Capital Goods)
If you omit this field or set it to “opex”, emissions will be incorrectly classified.
Create an Activity-Based Capital Good
📋 Data Map: Activity-Based Capital Good
Field Type Required Description Example descriptionstring ❌ Asset description "Steel production equipment"sectorstring ✅ Product sector "Manufacture of basic metals"product_namestring ✅ Specific product "Basic iron and steel"quantitynumber ✅ Physical quantity 15000unit_idUUID ✅ Physical unit (kg) "kg-unit-uuid"countrystring ✅ Country of manufacture "DE"purchase_datedate ✅ Acquisition date "2024-03-15"expense_typestring ✅ Must be “capex” "capex"supplier_idUUID ❌ Equipment manufacturer "supplier-uuid"
Where to get this data:
Quantity : From equipment specifications, shipping documents, or technical data sheets
Unit : Match the physical characteristic (kg for weight, m² for buildings)
Use activity-based method when you have physical specifications:
import requests
import os
headers = {
"Authorization" : f "Bearer { os.getenv( 'DCYCLE_API_KEY' ) } " ,
"Content-Type" : "application/json" ,
"x-organization-id" : os.getenv( "DCYCLE_ORG_ID" ),
"x-user-id" : os.getenv( "DCYCLE_USER_ID" ),
}
# Get the kg unit
units = requests.get(
"https://api.dcycle.io/api/v1/units" ,
headers = headers,
params = { "page" : 1 , "size" : 100 }
).json()
kg_unit = next (u for u in units[ 'items' ] if u[ 'abbreviation' ] == 'kg' )
# Create capital good (industrial equipment - activity-based)
capital_good_data = {
"description" : "Industrial Steel Press - 15 tonnes" ,
"sector" : "Manufacture of fabricated metal products" ,
"product_name" : "Structural metal products" ,
"quantity" : 15000 , # 15,000 kg (15 tonnes)
"unit_id" : kg_unit[ 'id' ],
"country" : "IT" , # Manufactured in Italy
"purchase_date" : "2024-06-01" ,
"expense_type" : "capex" , # Category 4.1
"purchase_type" : "activity_based" ,
}
response = requests.post(
"https://api.dcycle.io/api/v1/purchases" ,
headers = headers,
json = capital_good_data,
)
capital_good = response.json()
print ( f "✅ Capital good recorded (activity-based): { capital_good[ 'id' ] } " )
print ( f " Weight: { capital_good[ 'quantity' ] :,.0f } kg" )
print ( f " CO₂e: { capital_good.get( 'co2e' , 'Calculating...' ) } kg" )
When to Use Activity-Based for Capital Goods Activity-based is particularly useful for:
Heavy equipment : Weight-based calculation (kg CO₂e/kg of steel, aluminum, etc.)
Buildings : Area-based calculation (kg CO₂e/m² of floor space)
Vehicles : Unit-based calculation (kg CO₂e/vehicle by type)
Standardized equipment : When physical specs are readily available
Create a Supplier-Specific Capital Good
📋 Data Map: Supplier-Specific Capital Good
Field Type Required Description Example descriptionstring ❌ Asset description "Low-carbon HVAC system"quantitynumber ✅ Physical quantity 1unit_idUUID ✅ Unit "unit-uuid"purchase_datedate ✅ Acquisition date "2024-03-15"expense_typestring ✅ Must be “capex” "capex"supplier_idUUID ✅ Equipment manufacturer "supplier-uuid"custom_emission_factor_idUUID ✅ Custom EF from manufacturer EPD "custom-ef-uuid"
Where to get this data:
Custom Emission Factor : Create from manufacturer’s EPD or Product Carbon Footprint
Supplier : Link to the equipment manufacturer
For highest accuracy, use manufacturer-provided emission data:
import requests
import os
headers = {
"Authorization" : f "Bearer { os.getenv( 'DCYCLE_API_KEY' ) } " ,
"Content-Type" : "application/json" ,
"x-organization-id" : os.getenv( "DCYCLE_ORG_ID" ),
"x-user-id" : os.getenv( "DCYCLE_USER_ID" ),
}
# Step 1: Create custom emission factor from manufacturer's EPD
kg_unit_id = "61743a63-ff70-459c-9567-5eee8f7dfd5c" # kg unit UUID
group = requests.post(
"https://api.dcycle.io/api/v1/custom_emission_groups" ,
headers = headers,
json = {
"name" : "GreenTech HVAC - 2024 Product Line" ,
"description" : "EPD-verified emission factors for GreenTech HVAC systems" ,
"category" : "capex" , # Note: use capex category
"ghg_type" : 1 ,
},
).json()
# Create emission factor from the EPD
factor = requests.post(
f "https://api.dcycle.io/api/v1/custom_emission_factors/ { group[ 'id' ] } " ,
headers = headers,
json = {
"ef_name" : "GreenTech HVAC System Model GT-500 (EPD S-P-54321)" ,
"unit_id" : "unit-uuid" , # per unit
"factor_uploaded_by" : "procurement@yourcompany.com" ,
"tag" : "advanced" ,
"uncertainty_grade" : 10 ,
"factor_start_date" : "2024-01-01" ,
"factor_end_date" : "2024-12-31" ,
"additional_docs" : "EPD No. S-P-54321, Verified by SGS" ,
"emission_factor_values" : [
{ "gas_type" : "CO2" , "value" : 2500 }, # kg CO2 per unit
{ "gas_type" : "CH4" , "value" : 5.0 },
{ "gas_type" : "N2O" , "value" : 0.5 },
],
},
).json()
# Step 2: Create capital good using the custom emission factor
capital_good_data = {
"description" : "GreenTech HVAC System GT-500 (EPD verified)" ,
"quantity" : 3 , # 3 units
"unit_id" : "unit-uuid" ,
"purchase_date" : "2024-04-01" ,
"expense_type" : "capex" ,
"supplier_id" : "greentech-supplier-uuid" ,
"custom_emission_factor_id" : factor[ 'id' ],
}
response = requests.post(
"https://api.dcycle.io/api/v1/purchases" ,
headers = headers,
json = capital_good_data,
)
capital_good = response.json()
print ( f "✅ Capital good recorded (supplier-specific): { capital_good[ 'id' ] } " )
print ( f " Units: { capital_good[ 'quantity' ] } " )
print ( f " CO₂e: { capital_good.get( 'co2e' , 'Calculating...' ) } kg" )
print ( f " Method: EPD-verified (highest accuracy)" )
Finding EPDs for Capital Equipment Environmental Product Declarations (EPDs) are increasingly available for:
Construction products : Concrete, steel, insulation, windows
HVAC equipment : Heating, cooling, ventilation systems
Vehicles : Major manufacturers publish vehicle PCFs
IT equipment : Servers, computers (check manufacturer websites)
EPD registries:
Bulk Upload Capital Goods
For large capital investments or fixed asset registers:
description, sector, product_name, quantity, unit_id, country, purchase_date, expense_type, supplier_id, purchase_type
"Manufacturing facility expansion", Construction, Construction work, 2000000, eur-uuid, ES, 2024-01-15, capex, , spend_based
"CNC Machine Model X500", Manufacture of machinery, Machinery and equipment, 500000, eur-uuid, DE, 2024-02-01, capex, supplier-uuid-1, spend_based
"Fleet vehicles (10 trucks)", Manufacture of motor vehicles, Motor vehicles, 750000, eur-uuid, ES, 2024-03-01, capex, supplier-uuid-2, spend_based
"Server infrastructure", Manufacture of computers, Computer and electronic products, 300000, eur-uuid, US, 2024-04-01, capex, supplier-uuid-3, spend_based
Key points:
expense_type must be capex for all capital goods
Use appropriate sector/product mapping for each asset type
Include supplier_id when available for tracking
Upload Process
# Get presigned URL for bulk upload
upload_response = requests.post(
"https://api.dcycle.io/api/v1/purchases/bulk/csv" ,
headers = headers,
json = { "file_name" : "capital_goods_2024.csv" },
).json()
# Upload CSV to presigned URL
with open ( 'capital_goods_2024.csv' , 'rb' ) as f:
requests.put(upload_response[ 'upload_url' ], data = f)
print ( f "✅ Capital goods CSV uploaded" )
print ( f " Processing will begin automatically" )
Common Capital Goods Sectors
Here are the most common Exiobase sectors for capital goods:
Asset Type Exiobase Sector Typical EF (kg CO₂e/€) Buildings - Commercial Construction 0.30 - 0.45 Buildings - Industrial Construction 0.35 - 0.50 Machinery - General Manufacture of machinery and equipment n.e.c. 0.40 - 0.55 Vehicles - Trucks Manufacture of motor vehicles 0.35 - 0.45 Vehicles - Cars Manufacture of motor vehicles 0.30 - 0.40 IT - Servers Manufacture of computer, electronic and optical products 0.25 - 0.40 IT - Computers Manufacture of computer, electronic and optical products 0.20 - 0.35 HVAC Systems Manufacture of electrical equipment 0.35 - 0.50 Furniture Manufacture of furniture 0.25 - 0.40
Construction Projects For major construction projects (new buildings, facility expansions), consider:
Spend-based for initial estimates (total project cost × construction EF)
Activity-based for major materials (steel, concrete, glass tonnage)
EPDs for specific materials from suppliers
This hybrid approach improves accuracy while remaining practical.
Query Capital Goods Emissions
Separate Category 4.1 and Category 4.3 in Reports
# Query purchases filtered by expense_type
capital_goods = requests.get(
"https://api.dcycle.io/api/v1/purchases" ,
headers = headers,
params = {
"page" : 1 ,
"size" : 50 ,
"expense_type" : "capex" , # Only capital goods
"start_date" : "2024-01-01" ,
"end_date" : "2024-12-31" ,
},
).json()
purchased_goods = requests.get(
"https://api.dcycle.io/api/v1/purchases" ,
headers = headers,
params = {
"page" : 1 ,
"size" : 50 ,
"expense_type" : "opex" , # Only regular purchases
"start_date" : "2024-01-01" ,
"end_date" : "2024-12-31" ,
},
).json()
# Calculate totals
cat41_total = sum (p[ 'co2e' ] for p in capital_goods[ 'items' ])
cat43_total = sum (p[ 'co2e' ] for p in purchased_goods[ 'items' ])
print ( f "📊 ISO 14064-1 Category 4 Summary (2024)" )
print ( f " Category 4.1 (Capital goods): { cat41_total :,.0f } kg CO₂e" )
print ( f " Category 4.3 (Purchased goods): { cat43_total :,.0f } kg CO₂e" )
print ( f " Total: { cat41_total + cat43_total :,.0f } kg CO₂e" )
Analyze Capital Goods by Asset Type
from collections import defaultdict
# Aggregate by sector
by_sector = defaultdict( lambda : { 'co2e' : 0 , 'cost' : 0 , 'count' : 0 })
for asset in capital_goods[ 'items' ]:
sector = asset[ 'sector' ]
by_sector[sector][ 'co2e' ] += asset[ 'co2e' ]
by_sector[sector][ 'cost' ] += asset[ 'quantity' ]
by_sector[sector][ 'count' ] += 1
# Sort by emissions
sorted_sectors = sorted (
by_sector.items(),
key =lambda x: x[ 1 ][ 'co2e' ],
reverse = True
)
print ( f " \n 📊 Capital Goods by Asset Type" )
for sector, data in sorted_sectors:
pct = (data[ 'co2e' ] / cat41_total) * 100 if cat41_total > 0 else 0
print ( f " \n{ sector } :" )
print ( f " Assets: { data[ 'count' ] } " )
print ( f " Investment: € { data[ 'cost' ] :,.0f } " )
print ( f " CO₂e: { data[ 'co2e' ] :,.0f } kg ( { pct :.1f } %)" )
Troubleshooting
Issue: Capital Good Showing as Category 4.3
# Check the expense_type field
purchase = requests.get(
f "https://api.dcycle.io/api/v1/purchases/ { purchase_id } " ,
headers = headers,
).json()
print ( f "Expense type: { purchase[ 'expense_type' ] } " )
if purchase[ 'expense_type' ] != 'capex' :
print ( "⚠️ This is classified as Category 4.3, not Category 4.1" )
print ( "💡 Update the expense_type to 'capex':" )
# Fix the classification
requests.patch(
f "https://api.dcycle.io/api/v1/purchases/ { purchase_id } " ,
headers = headers,
json = { "expense_type" : "capex" },
)
Issue: What Counts as a Capital Good?
"""
CAPITAL GOODS (Category 4.1 - use expense_type: "capex"):
✅ Buildings, facilities, infrastructure
✅ Machinery and production equipment
✅ Vehicles (if purchased, not leased)
✅ IT servers, data centers
✅ Office furniture (if capitalized)
✅ Major renovations/improvements
PURCHASED GOODS (Category 4.3 - use expense_type: "opex"):
✅ Raw materials, components
✅ Office supplies
✅ Services (consulting, cleaning, etc.)
✅ Maintenance and repairs
✅ Items expensed in year of purchase
RULE OF THUMB:
- If it's capitalized on your balance sheet → Category 4.1 (capex)
- If it's expensed in P&L → Category 4.3 (opex)
"""
Next Steps
Category 4.2: Waste Disposal Track emissions from waste generated in operations
Category 4.3: Purchased Goods Track regular purchased goods and services
Custom Emission Factors Use manufacturer EPDs for equipment
Back to Category 4 Overview Return to Category 4 overview