> ## 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.

# GHG Protocol: Data Requirements

> Complete data dictionary for calculating a corporate carbon footprint — what data Dcycle needs, where it typically lives, and how to automate the integration

Use this guide as a reference when planning your data integration with Dcycle. For each emission category, we list the **exact fields** Dcycle needs, the **typical source systems** where that data lives, and the **recommended integration method**.

<Info>
  **Who is this for?**

  This guide is designed for **IT and data engineering teams** who are planning how to feed data into Dcycle — whether through APIs, bulk CSV uploads, or PDF/OCR processing. Share it with your technical team so they can map their internal data sources to Dcycle's requirements.
</Info>

## How Dcycle Fits in Your Data Architecture

Dcycle acts as a **data processing and calculation engine** that sits between your raw data sources and your environmental reporting outputs. You send us raw or semi-structured data, and we handle normalization, enrichment, calculation, and reporting.

```
┌─────────────────────────────────────────────────────────────────────────────────────────┐
│                          YOUR DATA ARCHITECTURE                                         │
├─────────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                         │
│   DATA SOURCES              DCYCLE                           YOUR OUTPUTS               │
│   ────────────              ──────                           ────────────               │
│                                                                                         │
│   ERP (SAP, Navision...)    ┌─────────────────────────┐                                 │
│   Fuel cards         ──────►│  Ingestion (API / CSV)  │                                 │
│   Utility bills (PDF) ─────►│  OCR & digitization     │     Data Lake (Gold layer)      │
│   Fleet management    ─────►│  Normalization          │──►  Power BI / dashboards       │
│   Travel booking      ─────►│  Enrichment (geocoding, │     Regulatory reports           │
│   HR systems          ─────►│   supplier lookup, etc) │     CSRD / EINF                 │
│   Waste managers      ─────►│  Emission calculation   │     Science-Based Targets       │
│                             │  Quality validation     │                                 │
│                             └─────────────────────────┘                                 │
│                                                                                         │
│   What Dcycle adds automatically:                                                       │
│   • OCR for PDF invoices (electricity, fuel, water)                                    │
│   • Geocoding for logistics (origin/destination → km)                                  │
│   • Supplier enrichment (company name → CNAE/SIC sector code)                          │
│   • Emission factor selection (country + fuel + year → correct EF)                     │
│   • Dual Scope 2 calculation (location-based + market-based)                           │
│   • Scope 3 Cat. 3 (fuel & energy related) — fully automatic from Scope 1 & 2 data    │
│   • Data quality alerts (missing fields, anomalies, outliers)                          │
│                                                                                         │
└─────────────────────────────────────────────────────────────────────────────────────────┘
```

<Note>
  **You don't need to clean or transform data before sending it to Dcycle.**

  Send us the rawest data you have — PDFs, CSVs from your ERP, fuel card exports. Dcycle handles OCR, normalization, unit conversion, and emission factor matching. This means your Data Lake integration can sit *after* Dcycle: pull the enriched, calculated results back via our APIs into your Gold layer.
</Note>

## Integration Methods

Dcycle supports four ways to ingest data. Choose the one that best fits each data source:

| Method                 | Best for                                                    | Automation | Setup effort |
| ---------------------- | ----------------------------------------------------------- | ---------- | ------------ |
| **REST API**           | ERP integrations, real-time data feeds, programmatic access | Full       | Medium       |
| **Bulk CSV upload**    | Periodic data dumps, spreadsheet-based workflows            | Semi-auto  | Low          |
| **PDF / file upload**  | Invoices, utility bills, fuel receipts                      | Full (OCR) | Low          |
| **Manual entry (App)** | One-off data, qualitative estimates, small datasets         | Manual     | None         |

<Tip>
  **Recommended approach for data lake architectures:**

  1. Configure your Bronze layer ingestion to collect raw data from source systems
  2. Send that raw data to Dcycle via API or CSV (no cleaning needed)
  3. Pull enriched + calculated results from Dcycle's APIs back into your Gold layer
  4. Build dashboards and reports on top of the Gold layer

  This way Dcycle handles all the Silver-layer transformations (OCR, normalization, enrichment, calculation) and you retain full control of the data in your own infrastructure.
</Tip>

***

## Scope 1: Direct Emissions

### Stationary Combustion (Fuel Invoices)

Emissions from burning fuels in fixed equipment: boilers, furnaces, generators, heaters.

<Accordion title="📋 Data Fields">
  | Field                       | Type   | Required | Description                     | Example                                  |
  | --------------------------- | ------ | -------- | ------------------------------- | ---------------------------------------- |
  | `type`                      | string | ✅        | `"heat"`                        | `"heat"`                                 |
  | `facility_id`               | UUID   | ✅        | Facility where fuel is consumed | From facility setup                      |
  | `facility_fuel_id`          | UUID   | ✅        | Fuel type linked to facility    | From `GET /facility_fuels/{facility_id}` |
  | `base_quantity`             | number | ✅        | Amount consumed                 | `5000`                                   |
  | `unit_id`                   | UUID   | ✅        | Unit (m³, kWh, kg, liters)      | From `GET /units`                        |
  | `start_date`                | date   | ✅        | Consumption period start        | `"2024-01-01"`                           |
  | `end_date`                  | date   | ✅        | Consumption period end          | `"2024-01-31"`                           |
  | `invoice_id`                | string | ✅        | Your internal reference         | `"INV-2024-001"`                         |
  | `uploaded_by`               | UUID   | ✅        | User uploading                  | User UUID                                |
  | `custom_emission_factor_id` | UUID   | ❌        | Override default EF             | Custom EF UUID                           |
</Accordion>

<Accordion title="🏢 Typical Data Sources">
  | Data                         | Where it typically lives              | Notes                               |
  | ---------------------------- | ------------------------------------- | ----------------------------------- |
  | Natural gas consumption      | Gas utility invoices (PDF or digital) | Monthly billing with m³ or kWh      |
  | Diesel/gasoil for generators | Fuel delivery receipts, tank readings | Periodic deliveries in liters       |
  | LPG/propane                  | Supplier invoices                     | Delivery amounts in kg or liters    |
  | Fuel oil                     | Supplier invoices                     | Bulk deliveries in liters or tonnes |

  **Automation options:**

  * **PDF upload** → Dcycle OCR extracts consumption, dates, and amounts automatically
  * **API** → Push structured data from your ERP or utility data aggregator
  * **CSV** → Bulk upload monthly consumption records
</Accordion>

<Accordion title="⚡ What Dcycle Calculates Automatically">
  * Selects correct emission factors based on facility country (MITECO for Spain, IPCC for others)
  * Applies fuel-specific factors for CO₂, CH₄, and N₂O
  * Converts to CO₂e using IPCC AR6 GWP values
  * Handles unit conversions (e.g., m³ → kWh using calorific values)
</Accordion>

### Refrigerant Recharges (Fugitive Emissions)

Leaks of high-GWP refrigerants from HVAC and cooling systems.

<Accordion title="📋 Data Fields">
  | Field              | Type   | Required | Description                          | Example             |
  | ------------------ | ------ | -------- | ------------------------------------ | ------------------- |
  | `type`             | string | ✅        | `"recharge"`                         | `"recharge"`        |
  | `facility_id`      | UUID   | ✅        | Facility with equipment              | Facility UUID       |
  | `facility_fuel_id` | UUID   | ✅        | Refrigerant type (R-410A, R-134a...) | From facility fuels |
  | `base_quantity`    | number | ✅        | Amount recharged (= leaked)          | `15`                |
  | `unit_id`          | UUID   | ✅        | Unit (typically kg)                  | kg UUID             |
  | `start_date`       | date   | ✅        | Recharge date                        | `"2024-03-15"`      |
  | `end_date`         | date   | ✅        | Same as start                        | `"2024-03-15"`      |
  | `invoice_id`       | string | ✅        | Service invoice reference            | `"RECHARGE-001"`    |
  | `uploaded_by`      | UUID   | ✅        | User uploading                       | User UUID           |
</Accordion>

<Accordion title="🏢 Typical Data Sources">
  | Data                | Where it typically lives                  | Notes                           |
  | ------------------- | ----------------------------------------- | ------------------------------- |
  | Recharge amounts    | HVAC maintenance invoices                 | Amount refilled = amount leaked |
  | Refrigerant type    | Equipment register, maintenance contracts | R-410A, R-404A, R-134a, etc.    |
  | Equipment inventory | Facilities/maintenance system             | List of all cooling units       |

  **Automation options:**

  * **API** → Push from CMMS (computerized maintenance management system)
  * **CSV** → Annual or quarterly recharge register
  * **Manual** → Enter from HVAC service reports
</Accordion>

### Mobile Combustion (Company Vehicles)

Fuel consumed by company-owned or controlled vehicles.

<Accordion title="📋 Data Fields — Vehicle Registration">
  | Field             | Type   | Required | Description                | Example                     |
  | ----------------- | ------ | -------- | -------------------------- | --------------------------- |
  | `name`            | string | ✅        | Vehicle identifier         | `"Delivery Truck 01"`       |
  | `type`            | string | ✅        | Vehicle category           | `"truck"`, `"car"`, `"van"` |
  | `license_plate`   | string | ✅        | License plate              | `"1234ABC"`                 |
  | `country`         | string | ✅        | Registration country (ISO) | `"ES"`                      |
  | `vehicle_fuel_id` | UUID   | ✅        | Fuel type                  | From `GET /vehicle_fuels`   |
  | `ownership`       | string | ✅        | `"owned"` or `"rented"`    | `"owned"`                   |
</Accordion>

<Accordion title="📋 Data Fields — Fuel Consumption">
  | Field                   | Type   | Required | Description              | Example        |
  | ----------------------- | ------ | -------- | ------------------------ | -------------- |
  | `vehicle_license_plate` | string | ✅        | Identifies the vehicle   | `"1234ABC"`    |
  | `start_date_recharge`   | date   | ✅        | Period start             | `"2024-01-01"` |
  | `end_date_recharge`     | date   | ✅        | Period end               | `"2024-01-31"` |
  | `quantity`              | number | ✅        | Fuel amount              | `450`          |
  | `unit_measure`          | string | ✅        | `"l"` (liters) or `"km"` | `"l"`          |
  | `organization_id`       | UUID   | ✅        | Organization             | Org UUID       |
</Accordion>

<Accordion title="🏢 Typical Data Sources">
  | Data             | Where it typically lives                               | Notes                          |
  | ---------------- | ------------------------------------------------------ | ------------------------------ |
  | Vehicle register | Fleet management system, vehicle leasing contracts     | Make, model, fuel type, plate  |
  | Fuel consumption | Fuel cards (Solred, Repsol, Cepsa...), expense reports | Liters per vehicle per period  |
  | Kilometers       | Odometer readings, GPS/telematics                      | For distance-based calculation |
  | EV charging      | Charging station data, electricity bills               | kWh consumed per vehicle       |

  **Automation options:**

  * **CSV** → Monthly fuel card export (license plate + liters + dates)
  * **API** → Push from fleet management or telematics systems
  * **Manual** → Enter from fuel receipts
</Accordion>

### Waste Water Treatment

CH₄ and N₂O from on-site wastewater treatment facilities.

<Accordion title="📋 Data Fields (Daily Records)">
  | Field                       | Type   | Required | Description            | Example            |
  | --------------------------- | ------ | -------- | ---------------------- | ------------------ |
  | `facility_id`               | UUID   | ✅        | WWT facility           | Facility UUID      |
  | `name`                      | string | ✅        | Record identifier      | `"WWT-2024-01-01"` |
  | `measurement_date`          | date   | ✅        | Measurement date       | `"2024-01-01"`     |
  | `m3_water_in`               | number | ✅        | Daily influent (m³)    | `10000`            |
  | `m3_water_out`              | number | ✅        | Daily effluent (m³)    | `9500`             |
  | `kg_bod_per_m3_wwt_line`    | number | ✅        | BOD concentration      | `0.25`             |
  | `kg_n_per_m3_wwt_line`      | number | ✅        | Nitrogen concentration | `0.04`             |
  | `kg_sludge`                 | number | ✅        | Sludge produced (kg)   | `500`              |
  | `kg_bod_per_kg_sludge_line` | number | ✅        | BOD in sludge          | `0.6`              |
  | `kg_bod_per_m3_wwd_line`    | number | ✅        | BOD in discharge       | `0.02`             |
  | `kg_n_per_m3_wwd_line`      | number | ✅        | Nitrogen in discharge  | `0.01`             |
  | `m3_biogas_engine`          | number | ❌        | Biogas to engine (m³)  | `200`              |
  | `m3_biogas_flare`           | number | ❌        | Biogas flared (m³)     | `50`               |
  | `m3_biogas_boiler`          | number | ❌        | Biogas to boiler (m³)  | `100`              |
</Accordion>

<Accordion title="🏢 Typical Data Sources">
  | Data         | Where it typically lives                 | Notes                   |
  | ------------ | ---------------------------------------- | ----------------------- |
  | Flow data    | SCADA systems, flow meters               | Inlet/outlet m³ per day |
  | BOD/Nitrogen | Laboratory analyses, online sensors      | mg/L converted to kg/m³ |
  | Sludge       | Weighing systems, sludge removal records | kg per day              |
  | Biogas       | Gas meters on digesters/engines/flares   | m³ per day              |

  **Automation options:**

  * **API** → Push daily records from SCADA/PLC systems
  * **CSV** → Bulk upload from laboratory information system (LIMS)
</Accordion>

### Process Emissions

Emissions from industrial chemical/physical transformations (not from combustion).

<Accordion title="📋 Data Fields">
  | Field                       | Type   | Required | Description                  | Example           |
  | --------------------------- | ------ | -------- | ---------------------------- | ----------------- |
  | `type`                      | string | ✅        | `"process"`                  | `"process"`       |
  | `facility_id`               | UUID   | ✅        | Facility with the process    | Facility UUID     |
  | `facility_fuel_id`          | UUID   | ✅        | Process source               | Process fuel UUID |
  | `base_quantity`             | number | ✅        | Emission quantity            | `250`             |
  | `unit_id`                   | UUID   | ✅        | Unit (typically kg)          | kg UUID           |
  | `start_date`                | date   | ✅        | Period start                 | `"2024-01-01"`    |
  | `end_date`                  | date   | ✅        | Period end                   | `"2024-03-31"`    |
  | `custom_emission_factor_id` | UUID   | ⚠️       | Often required for processes | Custom EF UUID    |

  **Typical sources:** Environmental permits, production records, mass balance calculations.
</Accordion>

***

## Scope 2: Purchased Energy

### Electricity

<Accordion title="📋 Data Fields">
  | Field                       | Type   | Required | Description                                             | Example           |
  | --------------------------- | ------ | -------- | ------------------------------------------------------- | ----------------- |
  | `type`                      | string | ✅        | `"electricity"`                                         | `"electricity"`   |
  | `facility_id`               | UUID   | ✅        | Facility consuming electricity                          | Facility UUID     |
  | `base_quantity`             | number | ✅        | kWh consumed                                            | `10000`           |
  | `unit_id`                   | UUID   | ✅        | kWh unit                                                | `"ba80e6cb-..."`  |
  | `start_date`                | date   | ✅        | Billing period start                                    | `"2024-01-01"`    |
  | `end_date`                  | date   | ✅        | Billing period end                                      | `"2024-01-31"`    |
  | `supplier_id`               | UUID   | ❌        | Electricity supplier (Spain: enables CNMC market-based) | Supplier UUID     |
  | `custom_emission_factor_id` | UUID   | ❌        | Custom EF (non-Spain: enables market-based)             | Custom EF UUID    |
  | `invoice_id`                | string | ❌        | Your reference                                          | `"ELEC-2024-001"` |
  | `uploaded_by`               | UUID   | ✅        | User uploading                                          | User UUID         |
</Accordion>

<Accordion title="🏢 Typical Data Sources">
  | Data           | Where it typically lives                               | Notes                            |
  | -------------- | ------------------------------------------------------ | -------------------------------- |
  | kWh consumed   | Electricity bills (PDF), smart meters, utility portals | Monthly billing cycle            |
  | Supplier name  | Electricity contract                                   | Needed for market-based in Spain |
  | Billing period | Invoice dates                                          | Start and end of billing cycle   |

  **Automation options:**

  * **PDF upload** → Dcycle OCR extracts kWh, dates, and supplier from electricity bills
  * **Datadis (Spain)** → Automatic import from smart meters via Datadis integration
  * **API** → Push from energy management system or building management system (BMS)
  * **CSV** → Bulk upload monthly readings across facilities
</Accordion>

<Accordion title="⚡ What Dcycle Calculates Automatically">
  * **Dual calculation**: Both location-based and market-based are computed simultaneously
  * **Location-based**: Uses country grid EF (Ecoinvent for global, REE for Spain)
  * **Market-based (Spain)**: Uses CNMC supplier-specific EFs when `supplier_id` is provided
  * **Market-based (other)**: Uses your custom EF when `custom_emission_factor_id` is provided
  * **Scope 3 Cat. 3**: Well-to-tank and T\&D losses are auto-calculated from the same data
</Accordion>

### District Heating / Cooling

<Accordion title="📋 Data Fields">
  | Field              | Type   | Required | Description                                  | Example              |
  | ------------------ | ------ | -------- | -------------------------------------------- | -------------------- |
  | `type`             | string | ✅        | `"district_heating"` or `"district_cooling"` | `"district_heating"` |
  | `facility_id`      | UUID   | ✅        | Facility receiving the service               | Facility UUID        |
  | `facility_fuel_id` | UUID   | ✅        | Heating/cooling fuel type                    | Fuel UUID            |
  | `base_quantity`    | number | ✅        | Energy consumed (kWh or MJ)                  | `5000`               |
  | `unit_id`          | UUID   | ✅        | kWh or MJ                                    | Unit UUID            |
  | `start_date`       | date   | ✅        | Service period start                         | `"2024-01-01"`       |
  | `end_date`         | date   | ✅        | Service period end                           | `"2024-03-31"`       |

  **Typical sources:** District heating/cooling provider invoices, BMS.
</Accordion>

***

## Scope 3: Value Chain Emissions

### Category 1: Purchased Goods and Services

Typically **40-80% of total emissions**. Three calculation methods available depending on your data quality.

<Accordion title="📋 Data Fields — Spend-Based (fastest to start)">
  | Field           | Type   | Required | Description              | Example                               |
  | --------------- | ------ | -------- | ------------------------ | ------------------------------------- |
  | `description`   | string | ❌        | Purchase description     | `"IT consulting Q1"`                  |
  | `sector`        | string | ✅        | Exiobase economic sector | `"Computer programming, consultancy"` |
  | `product_name`  | string | ✅        | Product/service name     | `"Computer programming services"`     |
  | `quantity`      | number | ✅        | Monetary value (€)       | `15000`                               |
  | `unit_id`       | UUID   | ✅        | Currency unit (€)        | EUR unit UUID                         |
  | `country`       | string | ✅        | Supplier country (ISO)   | `"ES"`                                |
  | `purchase_date` | date   | ✅        | Purchase date            | `"2024-03-15"`                        |
  | `purchase_type` | string | ✅        | `"spend_based"`          | `"spend_based"`                       |
  | `supplier_id`   | UUID   | ❌        | Linked supplier          | Supplier UUID                         |

  **Accuracy:** ±50-100%. Use as a starting point, then improve high-impact categories.
</Accordion>

<Accordion title="📋 Data Fields — Activity-Based (higher accuracy)">
  | Field           | Type   | Required | Description                  | Example                              |
  | --------------- | ------ | -------- | ---------------------------- | ------------------------------------ |
  | `sector`        | string | ✅        | Product sector               | `"Manufacture of basic metals"`      |
  | `product_name`  | string | ✅        | Specific product             | `"Aluminium and aluminium products"` |
  | `quantity`      | number | ✅        | Physical quantity            | `1000`                               |
  | `unit_id`       | UUID   | ✅        | Physical unit (kg, m³, etc.) | kg unit UUID                         |
  | `country`       | string | ✅        | Country of origin            | `"ES"`                               |
  | `purchase_date` | date   | ✅        | Purchase date                | `"2024-03-15"`                       |
  | `purchase_type` | string | ✅        | `"activity_based"`           | `"activity_based"`                   |
  | `supplier_id`   | UUID   | ❌        | Linked supplier              | Supplier UUID                        |
  | `recycled`      | number | ❌        | Recycled content (0-1)       | `0.3`                                |

  **Accuracy:** ±20-40%. Requires physical quantities from procurement records.
</Accordion>

<Accordion title="📋 Data Fields — Supplier-Specific (highest accuracy)">
  | Field                       | Type   | Required | Description           | Example        |
  | --------------------------- | ------ | -------- | --------------------- | -------------- |
  | `quantity`                  | number | ✅        | Physical quantity     | `1000`         |
  | `unit_id`                   | UUID   | ✅        | Physical unit         | kg unit UUID   |
  | `purchase_date`             | date   | ✅        | Purchase date         | `"2024-03-15"` |
  | `supplier_id`               | UUID   | ✅        | Linked supplier       | Supplier UUID  |
  | `custom_emission_factor_id` | UUID   | ✅        | From supplier EPD/PCF | Custom EF UUID |

  **Accuracy:** ±5-15%. Requires Environmental Product Declarations (EPDs) or Product Carbon Footprints from suppliers.
</Accordion>

<Accordion title="🏢 Typical Data Sources">
  | Data                   | Where it typically lives                                 | Notes                            |
  | ---------------------- | -------------------------------------------------------- | -------------------------------- |
  | Spend by category      | ERP (SAP, Navision, A3...), accounts payable             | € per supplier per category      |
  | Physical quantities    | Delivery notes, bills of materials, inventory systems    | kg, m³, units                    |
  | Supplier details       | ERP vendor master, procurement system                    | Company name, country, tax ID    |
  | Supplier CNAE/SIC code | Company registry, Dcycle auto-enriches from company name | Needed for sector classification |
  | EPDs / PCFs            | Supplier sustainability reports, EPD databases           | For supplier-specific method     |

  **Automation options:**

  * **CSV** → Export from ERP: supplier name + amount + category + date
  * **API** → Push from procurement system or accounts payable
  * **Dcycle enrichment** → Send supplier name, Dcycle auto-resolves CNAE/SIC sector code
</Accordion>

### Category 2: Capital Goods

Same data structure as Category 1, but for capital assets (equipment, machinery, buildings).

<Accordion title="📋 Key Differences from Category 1">
  | Aspect          | Category 1                     | Category 2                                 |
  | --------------- | ------------------------------ | ------------------------------------------ |
  | **What**        | Operating expenses, materials  | Capital expenditures, fixed assets         |
  | **Examples**    | Office supplies, raw materials | Machinery, vehicles (as assets), buildings |
  | **Reporting**   | Same year as purchase          | Full in year of purchase, or depreciated   |
  | **Data source** | Operating purchase orders      | Capital investment records, asset register |

  **Same API and fields as Category 1** — the classification is done by your accounting team.
</Accordion>

### Category 3: Fuel and Energy-Related Activities

<Note>
  **Fully automatic — no additional data needed.**

  Dcycle calculates Category 3 (well-to-tank emissions for fuels, upstream electricity, T\&D losses) automatically from your Scope 1 and Scope 2 data. Just ensure complete fuel and electricity data.
</Note>

### Category 4 & 9: Upstream and Downstream Transportation

Emissions from transporting goods to/from your facilities.

<Accordion title="📋 Data Fields — Logistics Shipments">
  | Field              | Type   | Required | Description                 | Example                              |
  | ------------------ | ------ | -------- | --------------------------- | ------------------------------------ |
  | `origin`           | string | ✅        | Origin address or city      | `"Madrid, Spain"`                    |
  | `destination`      | string | ✅        | Destination address or city | `"Barcelona, Spain"`                 |
  | `weight`           | number | ✅        | Shipment weight (kg)        | `500`                                |
  | `transport_mode`   | string | ✅        | Mode of transport           | `"road"`, `"rail"`, `"air"`, `"sea"` |
  | `vehicle_type`     | string | ❌        | Specific vehicle type       | `"articulated_truck"`                |
  | `date`             | date   | ✅        | Shipment date               | `"2024-03-15"`                       |
  | `client_reference` | string | ❌        | Your shipment reference     | `"SHIP-2024-001"`                    |
</Accordion>

<Accordion title="🏢 Typical Data Sources">
  | Data                | Where it typically lives                         | Notes                       |
  | ------------------- | ------------------------------------------------ | --------------------------- |
  | Shipment details    | TMS (transport management system), logistics ERP | Origin, destination, weight |
  | Carrier/mode        | Shipping contracts, carrier invoices             | Road, rail, air, sea        |
  | Distances           | Dcycle auto-calculates from origin/destination   | No need to provide km       |
  | Supplier deliveries | Purchase orders with delivery addresses          | For upstream (Cat. 4)       |
  | Customer deliveries | Sales orders with shipping addresses             | For downstream (Cat. 9)     |

  **Automation options:**

  * **CSV** → Export from TMS: origin + destination + weight + mode + date
  * **API** → Real-time push from logistics/shipping system
  * **Dcycle enrichment** → Auto-geocodes addresses and calculates distances
</Accordion>

### Category 5: Waste Generated in Operations

<Accordion title="📋 Data Fields">
  | Field                | Type   | Required | Description                            | Example                      |
  | -------------------- | ------ | -------- | -------------------------------------- | ---------------------------- |
  | `facility_id`        | UUID   | ✅        | Facility generating waste              | Facility UUID                |
  | `waste_code`         | string | ✅        | LER code (European List of Waste)      | `"150101"` (paper/cardboard) |
  | `quantity`           | number | ✅        | Waste amount                           | `500`                        |
  | `unit_id`            | UUID   | ✅        | Unit (kg or tonnes)                    | kg UUID                      |
  | `treatment_code`     | string | ✅        | R-code (recovery) or D-code (disposal) | `"R03"` (recycling)          |
  | `start_date`         | date   | ✅        | Period start                           | `"2024-01-01"`               |
  | `end_date`           | date   | ✅        | Period end                             | `"2024-03-31"`               |
  | `waste_manager_name` | string | ❌        | Treatment company                      | `"Waste Co S.L."`            |
  | `transport_distance` | number | ❌        | Distance to treatment (km)             | `50`                         |
</Accordion>

<Accordion title="🏢 Typical Data Sources">
  | Data                  | Where it typically lives                    | Notes                        |
  | --------------------- | ------------------------------------------- | ---------------------------- |
  | Waste type (LER code) | Waste manager reports, regulatory filings   | 6-digit European waste codes |
  | Quantities            | Weighing records, waste collection receipts | kg or tonnes per period      |
  | Treatment method      | Waste manager certificates, transfer notes  | R01-R13 or D01-D15 codes     |
  | Transport distance    | Waste manager contract, facility locations  | km to treatment plant        |

  **Automation options:**

  * **CSV** → Quarterly waste register from waste manager
  * **API** → Push from environmental management system
  * **Manual** → Enter from waste collection certificates (quarterly/annual)
</Accordion>

### Category 6: Business Travel

<Accordion title="📋 Data Fields">
  | Field             | Type    | Required | Description                                      | Example                               |
  | ----------------- | ------- | -------- | ------------------------------------------------ | ------------------------------------- |
  | `origin`          | string  | ✅        | Departure city/airport                           | `"Madrid"`                            |
  | `destination`     | string  | ✅        | Arrival city/airport                             | `"London"`                            |
  | `transport_type`  | string  | ✅        | Travel mode                                      | `"flight"`, `"train"`, `"rental_car"` |
  | `distance`        | number  | ❌        | Distance in km (auto-calculated if not provided) | `1260`                                |
  | `flight_class`    | string  | ❌        | Cabin class (for flights)                        | `"economy"`, `"business"`             |
  | `round_trip`      | boolean | ❌        | Return included                                  | `true`                                |
  | `start_date`      | date    | ✅        | Travel date                                      | `"2024-03-15"`                        |
  | `travelers_count` | number  | ❌        | Number of travelers                              | `1`                                   |
</Accordion>

<Accordion title="🏢 Typical Data Sources">
  | Data             | Where it typically lives                                     | Notes                      |
  | ---------------- | ------------------------------------------------------------ | -------------------------- |
  | Flight bookings  | Corporate travel agency, booking platform (Amex GBT, BCD...) | Origin, destination, class |
  | Train bookings   | Rail booking system, travel agency                           | Origin, destination        |
  | Rental car usage | Rental company reports, expense reports                      | km driven, fuel type       |
  | Hotel stays      | Hotel booking platform, expense reports                      | Nights per city            |
  | Expense reports  | ERP, expense management tool (SAP Concur, Rydoo...)          | May have trip details      |

  **Automation options:**

  * **CSV** → Export from travel booking platform or expense tool
  * **API** → Push from corporate travel management system
  * **Manual** → Enter from travel itineraries or expense reports
</Accordion>

### Category 7: Employee Commuting

<Accordion title="📋 Data Fields — Employee Setup">
  | Field           | Type   | Required | Description             | Example                             |
  | --------------- | ------ | -------- | ----------------------- | ----------------------------------- |
  | `name`          | string | ✅        | Employee name or ID     | `"EMP-001"`                         |
  | `facility_id`   | UUID   | ✅        | Office/work location    | Facility UUID                       |
  | `work_regime`   | string | ✅        | Work arrangement        | `"on_site"`, `"hybrid"`, `"remote"` |
  | `days_per_week` | number | ✅        | Days in office per week | `4`                                 |
</Accordion>

<Accordion title="📋 Data Fields — Commuting Periods">
  | Field            | Type   | Required | Description           | Example                             |
  | ---------------- | ------ | -------- | --------------------- | ----------------------------------- |
  | `employee_id`    | UUID   | ✅        | Employee              | Employee UUID                       |
  | `transport_mode` | string | ✅        | How they commute      | `"car_diesel"`, `"train"`, `"bike"` |
  | `distance_km`    | number | ✅        | One-way distance (km) | `25`                                |
  | `start_date`     | date   | ✅        | Period start          | `"2024-01-01"`                      |
  | `end_date`       | date   | ✅        | Period end            | `"2024-12-31"`                      |
</Accordion>

<Accordion title="🏢 Typical Data Sources">
  | Data                   | Where it typically lives                  | Notes                            |
  | ---------------------- | ----------------------------------------- | -------------------------------- |
  | Employee list          | HR system (SAP HR, Workday, Factorial...) | Name, work location, work regime |
  | Commute details        | Employee survey, HR form                  | Transport mode, distance         |
  | Office days            | HR system, attendance tracking            | Hybrid/remote schedule           |
  | Employee home location | HR records (postal code is enough)        | For distance estimation          |

  **Automation options:**

  * **CSV** → Export from HR system + survey results
  * **API** → Push from HR system
  * **Survey** → Use Dcycle's survey feature (employees fill in commute details)
</Accordion>

### Category 11: Use of Sold Products

Downstream emissions from the use phase of energy-consuming products your organization sells. Often the **largest Scope 3 category** for manufacturers of equipment, appliances, or vehicles.

<Accordion title="📋 Data Fields — Product & Sales">
  | Field        | Type   | Required | Description                | Example                        |
  | ------------ | ------ | -------- | -------------------------- | ------------------------------ |
  | `name`       | string | ✅        | Product name or family     | `"Industrial Compressor X200"` |
  | `start_date` | date   | ✅        | Period start               | `"2024-01-01"`                 |
  | `end_date`   | date   | ✅        | Period end                 | `"2024-12-31"`                 |
  | `country`    | string | ✅        | Country where sold (ISO)   | `"ES"`, `"DE"`, `"FR"`         |
  | `quantity`   | number | ✅        | Units sold in that country | `250`                          |
  | `unit_id`    | UUID   | ✅        | Unit of measurement        | Unit UUID                      |
</Accordion>

<Accordion title="📋 Data Fields — Use-Phase Consumption">
  | Field                   | Type    | Required | Description                                    | Example          |
  | ----------------------- | ------- | -------- | ---------------------------------------------- | ---------------- |
  | `lifespan`              | number  | ✅        | Product lifespan                               | `10`             |
  | `lifespan_unit_id`      | UUID    | ✅        | Temporal unit (day/week/month/year)            | Year UUID        |
  | `consumes_electricity`  | boolean | ✅        | Does it consume electricity?                   | `true`           |
  | `electricity_quantity`  | number  | ✅\*      | Amount per frequency                           | `2400`           |
  | `electricity_unit_id`   | UUID    | ✅\*      | Unit (kWh)                                     | kWh UUID         |
  | `electricity_frequency` | enum    | ✅\*      | `daily`/`weekly`/`monthly`/`yearly`/`all_life` | `"yearly"`       |
  | `consumes_combustion`   | boolean | ✅        | Does it burn fuel?                             | `false`          |
  | `combustion_fuel_id`    | UUID    | ✅\*      | Fuel type                                      | Natural gas UUID |
  | `combustion_quantity`   | number  | ✅\*      | Amount per frequency                           | `1200`           |
  | `combustion_unit_id`    | UUID    | ✅\*      | Unit (liters, m³, kWh)                         | m³ UUID          |
  | `combustion_frequency`  | enum    | ✅\*      | Frequency                                      | `"yearly"`       |
  | `consumes_water`        | boolean | ✅        | Does it consume water?                         | `false`          |
  | `water_quantity`        | number  | ✅\*      | Amount per frequency                           | `10`             |
  | `water_unit_id`         | UUID    | ✅\*      | Unit (m³)                                      | m³ UUID          |
  | `water_frequency`       | enum    | ✅\*      | Frequency                                      | `"yearly"`       |

  \*Required only when the corresponding `consumes_*` flag is `true`.
</Accordion>

<Accordion title="🏢 Typical Data Sources">
  | Data                    | Where it typically lives                         | Notes                          |
  | ----------------------- | ------------------------------------------------ | ------------------------------ |
  | Product catalog         | PLM, ERP, product management                     | Product names and families     |
  | Units sold by country   | ERP, CRM, sales reporting                        | Quantity per market per period |
  | Product lifespan        | Product specs, warranty terms, LCA studies       | Expected useful life           |
  | Electricity consumption | Product testing, energy labels (EU), spec sheets | kWh per year or per cycle      |
  | Fuel consumption        | Product testing, performance certificates        | Liters/m³ per year             |
  | Water consumption       | Product testing, water labels                    | m³ per year or per cycle       |

  **Automation options:**

  * **CSV** → Upload country sales data via Dcycle App
  * **API** → Push from ERP/CRM for sales; configure use-phase via API
  * **Manual** → Use-phase data typically comes from R\&D or product engineering
</Accordion>

***

## Company Structure (Prerequisite)

Before loading emission data, configure your organizational hierarchy.

<Accordion title="📋 Organization Setup">
  | Field                   | Type   | Required | Description         | Example               |
  | ----------------------- | ------ | -------- | ------------------- | --------------------- |
  | `company_name`          | string | ✅        | Legal entity name   | `"Holding Corp S.A."` |
  | `country`               | string | ✅        | Country (ISO code)  | `"ES"`                |
  | `sector`                | string | ❌        | Business sector     | `"Technology"`        |
  | `vat`                   | string | ❌        | Tax identification  | `"A12345678"`         |
  | `employee_count_signup` | number | ❌        | Number of employees | `200`                 |
</Accordion>

<Accordion title="📋 Facility Setup">
  | Field        | Type   | Required | Description                     | Example                                |
  | ------------ | ------ | -------- | ------------------------------- | -------------------------------------- |
  | `name`       | string | ✅        | Facility name                   | `"Madrid HQ"`                          |
  | `country`    | string | ✅        | Country (ISO code)              | `"ES"`                                 |
  | `address`    | string | ✅        | Full address                    | `"Calle Gran Vía 1, Madrid"`           |
  | `type`       | string | ✅        | Facility type                   | `"office"`, `"warehouse"`, `"factory"` |
  | `surface_m2` | number | ❌        | Floor area (m²)                 | `2000`                                 |
  | `fuel_types` | list   | ✅        | Fuels consumed at this facility | Natural gas, diesel, etc.              |

  **Required for:** All Scope 1 and Scope 2 calculations. Each invoice/consumption record is linked to a facility.
</Accordion>

<Accordion title="📋 Parent-Child Relationships (Groups)">
  | Field               | Type   | Required | Description                         | Example                           |
  | ------------------- | ------ | -------- | ----------------------------------- | --------------------------------- |
  | `share`             | number | ✅        | Ownership percentage (0-1)          | `0.75` (75%)                      |
  | `investment_scopes` | list   | ✅        | Scopes to consolidate               | `[1, 2, 3]`                       |
  | `tag`               | string | ❌        | Relationship type                   | `"subsidiary"`, `"joint-venture"` |
  | `status`            | string | ✅        | Must be `"accepted"` to consolidate | `"accepted"`                      |

  **Required for:** Multi-entity organizations (holding companies, groups with subsidiaries).
</Accordion>

***

## Summary: Data Source Mapping

Use this table to map your internal systems to Dcycle data requirements:

| GHG Category                    | Data Needed                                           | Typical Source                | Integration | Dcycle Adds                        |
| ------------------------------- | ----------------------------------------------------- | ----------------------------- | ----------- | ---------------------------------- |
| **S1: Stationary combustion**   | Fuel type + quantity + dates                          | Utility invoices (PDF), ERP   | PDF/API/CSV | EF selection, unit conversion      |
| **S1: Refrigerants**            | Refrigerant type + kg recharged                       | HVAC maintenance records      | CSV/API     | GWP lookup                         |
| **S1: Vehicles**                | License plate + fuel type + liters/km                 | Fuel cards, fleet system      | CSV/API     | EF by fuel and vehicle type        |
| **S1: Wastewater**              | Daily flow + BOD + nitrogen + biogas                  | SCADA, laboratory (LIMS)      | API/CSV     | CH₄ + N₂O calculation              |
| **S1: Process**                 | Process type + quantity                               | Production records, permits   | API/CSV     | Custom EF application              |
| **S2: Electricity**             | kWh + dates + supplier (optional)                     | Electricity bills, Datadis    | PDF/API/CSV | Dual location + market calc        |
| **S2: District heat/cool**      | kWh or MJ consumed                                    | Provider invoices             | API/CSV     | EF selection                       |
| **S3.1: Purchases**             | € or kg + category + supplier country                 | ERP, accounts payable         | CSV/API     | Sector enrichment, EF match        |
| **S3.2: Capital goods**         | Same as S3.1                                          | Asset register, capex records | CSV/API     | Same as S3.1                       |
| **S3.3: Fuel & energy**         | *(automatic from S1 + S2 data)*                       | —                             | —           | Fully automatic                    |
| **S3.4/9: Transport**           | Origin + destination + weight + mode                  | TMS, logistics ERP            | CSV/API     | Geocoding, km calculation          |
| **S3.5: Waste**                 | LER code + kg + treatment method                      | Waste manager reports         | CSV/API     | EF by waste + treatment            |
| **S3.6: Business travel**       | Origin + destination + mode + class                   | Travel agency, expense tool   | CSV/API     | Distance calc, EF by mode          |
| **S3.7: Commuting**             | Employee + transport mode + km                        | HR system + survey            | CSV/API     | EF by mode, work-day calc          |
| **S3.11: Use of sold products** | Lifespan + energy consumption + units sold by country | Product specs, ERP/CRM sales  | CSV/API     | Country-specific EF, lifespan calc |

<Tip>
  **Progressive approach: start broad, then deepen**

  1. **Month 1:** Upload PDFs (invoices, bills) + basic CSVs from ERP (purchases, fuel cards)
  2. **Month 2-3:** Set up API integrations for high-volume data (logistics, vehicles, electricity)
  3. **Month 4+:** Engage suppliers for EPDs, connect IoT/SCADA for real-time data
  4. **Ongoing:** Pull calculated results back to your Data Lake via Dcycle APIs

  You don't need 100% automation on day one. Dcycle is designed to work with whatever data format you have today and improve over time.
</Tip>

## Next Steps

<CardGroup cols={2}>
  <Card title="GHG Protocol Tutorial" icon="book" href="/guides/emissions/ghg-protocol-tutorial">
    Step-by-step implementation guide with API examples
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/introduction">
    Full API documentation for all endpoints
  </Card>

  <Card title="Automation & AI" icon="robot" href="/guides/automation/overview">
    Set up automated pipelines and multi-org management
  </Card>

  <Card title="Custom Emission Factors" icon="chart-line" href="/guides/advanced/custom-emission-factors">
    Use supplier EPDs and PCFs for highest accuracy
  </Card>
</CardGroup>
