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

# Step 4: Generate & Interpret GLEC Reports

> Generate the GLEC v3.0 company report with Scope 1/2/3 breakdown, intensity values, and per-client emissions

## Understanding the GLEC Company Report

The GLEC Company Report is the standard output of the GLEC v3.0 Framework. It provides a complete emissions breakdown for a logistics organization over a reporting period, structured by:

* **Emission scopes** (1, 2, 3) as defined by the GHG Protocol
* **Transport activity** with intensity values (gCO2e/tkm)
* **Hub operations** with intensity values (gCO2e/tonne)
* **Per-TOC breakdown** showing emissions by vehicle type
* **Per-HOC breakdown** showing emissions by hub category

```
┌──────────────────────────────────────────────────────────────────────────────┐
│                     GLEC COMPANY REPORT STRUCTURE                            │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  SCOPE 1                  SCOPE 2                SCOPE 3                    │
│  ────────                 ────────               ────────                   │
│  TTW emissions            Hub purchased          WTT emissions              │
│  (own fleet direct        energy (electricity,   (upstream fuel             │
│   fuel combustion)        district heating)       production)               │
│                                                                              │
│  Hub on-site fuel                                WTW subcontracted          │
│  (generators, heating)                           (3rd party transport)      │
│                                                                              │
│                                                  Hub emissions              │
│                                                  (subcontracted hubs)       │
│                                                                              │
│                                                  Cleaning emissions         │
│                                                                              │
├──────────────────────────────────────────────────────────────────────────────┤
│  COMPANY METRICS                                                             │
│  ───────────────                                                             │
│  Transport Activity IV: gCO2e/tkm  |  Hub Operation IV: gCO2e/tonne       │
│  Total tkm               Total tonnes handled                              │
│  Total transport CO2e    Total hub CO2e                                     │
│                                                                              │
├──────────────────────────────────────────────────────────────────────────────┤
│  BREAKDOWNS                                                                  │
│  ──────────                                                                  │
│  By TOC (vehicle type): IV, tkm, emissions, fuels used                     │
│  By HOC (hub category): IV, emissions, tonnes                              │
│  By transport mode: IV, tkm, emissions, DAF applied                        │
│  Emission factors used: all fuel and TOC factors applied                    │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘
```

<Note>
  **Two report types are available:**

  1. **GLEC Company Report** (legacy endpoint) — Full GLEC v3.0 structure with Scope 1/2/3, TOC/HOC breakdowns, and intensity values. Available via `GET /logistics/report`.
  2. **ISO 14083 Summary Report** (new API) — Simplified aggregated report with category breakdown. Available via `GET /v1/logistics/report`.

  This guide covers both, with the GLEC Company Report as the primary focus.
</Note>

## Prerequisites

Before generating a report, ensure you have:

* Transport legs created ([Step 1](/guides/emissions/glec-step-1-transport-operations))
* Optionally: hubs configured ([Step 2](/guides/emissions/glec-step-2-hub-operations)) and fuel recharges uploaded ([Step 3](/guides/emissions/glec-step-3-fuel-consumption))
* A reporting period (start and end dates)

## Step 4.1: Generate the ISO 14083 Summary Report

The new API provides a quick summary report with category breakdown:

<Accordion title="📋 Data Map: Summary Report">
  | Parameter    | Type   | Required | Description                            | Example        |
  | ------------ | ------ | -------- | -------------------------------------- | -------------- |
  | `start_date` | string | Yes      | Start of reporting period (YYYY-MM-DD) | `"2025-01-01"` |
  | `end_date`   | string | Yes      | End of reporting period (YYYY-MM-DD)   | `"2025-12-31"` |
  | `client`     | string | No       | Filter by client identifier            | `"AMAZON"`     |
</Accordion>

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  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"),
  }

  # Generate ISO 14083 summary report
  report = requests.get(
      "https://api.dcycle.io/v1/logistics/report",
      headers=headers,
      params={
          "start_date": "2025-01-01",
          "end_date": "2025-12-31",
      },
  ).json()

  print(f"Methodology: {report['methodology']}")
  print(f"Period: {report['period']['start_date']} to {report['period']['end_date']}")
  print(f"Data source: {report['data_source']}")
  print()
  print(f"Summary:")
  print(f"  Total items: {report['summary']['total_items']:,}")
  print(f"  Total CO2e: {report['summary']['total_co2e_kg']:,.1f} kg ({report['summary']['total_co2e_kg']/1000:.2f} tonnes)")
  print(f"  Total distance: {report['summary']['total_distance_km']:,.0f} km")
  print(f"  Avg CO2e per item: {report['summary']['avg_co2e_per_item']:.2f} kg")
  print()
  print(f"By transport category:")
  for cat in report["by_category"]:
      print(f"  {cat['category']:12s} | {cat['items']:>6,} items | {cat['co2e_kg']:>12,.1f} kg CO2e | {cat['percentage_co2e']:.1f}%")
  ```

  ```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const axios = require('axios');

  const headers = {
    Authorization: `Bearer ${process.env.DCYCLE_API_KEY}`,
    'Content-Type': 'application/json',
    'x-organization-id': process.env.DCYCLE_ORG_ID,
    'x-user-id': process.env.DCYCLE_USER_ID,
  };

  // Generate ISO 14083 summary report
  const { data: report } = await axios.get(
    'https://api.dcycle.io/v1/logistics/report',
    {
      headers,
      params: {
        start_date: '2025-01-01',
        end_date: '2025-12-31',
      },
    }
  );

  console.log(`Methodology: ${report.methodology}`);
  console.log(`Period: ${report.period.start_date} to ${report.period.end_date}`);
  console.log(`\nSummary:`);
  console.log(`  Total items: ${report.summary.total_items.toLocaleString()}`);
  console.log(`  Total CO2e: ${report.summary.total_co2e_kg.toFixed(1)} kg`);
  console.log(`  Total distance: ${report.summary.total_distance_km.toFixed(0)} km`);
  console.log(`\nBy transport category:`);
  report.by_category.forEach(cat => {
    console.log(`  ${cat.category.padEnd(12)} | ${cat.items} items | ${cat.co2e_kg.toFixed(1)} kg CO2e | ${cat.percentage_co2e}%`);
  });
  ```
</CodeGroup>

### Filter by Client

Generate a report for a specific client:

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
# Client-specific report
client_report = requests.get(
    "https://api.dcycle.io/v1/logistics/report",
    headers=headers,
    params={
        "start_date": "2025-01-01",
        "end_date": "2025-12-31",
        "client": "RETAILCO",
    },
).json()

print(f"Client: {client_report['client']}")
print(f"Total CO2e: {client_report['summary']['total_co2e_kg']:,.1f} kg")
```

## Step 4.2: Generate the Full GLEC Company Report

The legacy endpoint provides the complete GLEC v3.0 company report with Scope 1/2/3 breakdown:

<Accordion title="📋 Data Map: GLEC Company Report">
  | Parameter     | Type      | Required | Description                      | Example      |
  | ------------- | --------- | -------- | -------------------------------- | ------------ |
  | `start_date`  | timestamp | Yes      | Start of period (Unix timestamp) | `1704067200` |
  | `end_date`    | timestamp | Yes      | End of period (Unix timestamp)   | `1735689600` |
  | `report_type` | string    | No       | `"company"` or `"client"`        | `"company"`  |
  | `client`      | string    | No       | Client name (for client reports) | `"RETAILCO"` |
</Accordion>

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
import time
from datetime import datetime

headers_legacy = {
    "Authorization": f"Bearer {os.getenv('DCYCLE_API_KEY')}",
    "Content-Type": "application/json",
    "x-organization-id": os.getenv("DCYCLE_ORG_ID"),
    "x-partner": os.getenv("DCYCLE_PARTNER_ID"),
}

# Convert dates to timestamps
start_ts = int(datetime(2025, 1, 1).timestamp())
end_ts = int(datetime(2025, 12, 31, 23, 59, 59).timestamp())

# Generate GLEC company report
report = requests.get(
    "https://api.dcycle.io/logistics/report",
    headers=headers_legacy,
    params={
        "start_date": start_ts,
        "end_date": end_ts,
        "report_type": "company",
    },
).json()
```

### Interpreting the Report

#### Scope Breakdown

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
# Scope 1: Direct emissions
scope_1 = report["scope_1"]
print("SCOPE 1 (Direct Emissions)")
print(f"  TTW emissions (own fleet): {scope_1['ttw_emissions']['value']:,.2f} {scope_1['ttw_emissions']['units']}")
print(f"  Hub emissions (on-site):   {scope_1['hubs_emissions']['value']:,.2f} {scope_1['hubs_emissions']['units']}")

# Scope 2: Purchased energy
scope_2 = report["scope_2"]
print("\nSCOPE 2 (Purchased Energy)")
print(f"  Hub emissions (electricity): {scope_2['hubs_emissions']['value']:,.2f} {scope_2['hubs_emissions']['units']}")

# Scope 3: Indirect emissions
scope_3 = report["scope_3"]
print("\nSCOPE 3 (Indirect Emissions)")
print(f"  WTT emissions (fuel upstream):  {scope_3['wtt_emissions']['value']:,.2f} {scope_3['wtt_emissions']['units']}")
print(f"  Subcontracted WTW:              {scope_3['wtw_subcontracted_emissions']['value']:,.2f} {scope_3['wtw_subcontracted_emissions']['units']}")
print(f"  Hub emissions (subcontracted):  {scope_3['hub_emissions']['value']:,.2f} {scope_3['hub_emissions']['units']}")
print(f"  Cleaning emissions:             {scope_3['cleaning_emissions']['value']:,.2f} {scope_3['cleaning_emissions']['units']}")

# Total
total = report["total_scopes"]
print(f"\nTOTAL: {total['emissions']['value']:,.2f} {total['emissions']['units']}")
```

#### Company Metrics (Intensity Values)

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
company = report["company_emissions"]

# Transport Activity IV
transport = company["transport_activity"]
print("TRANSPORT ACTIVITY")
print(f"  Intensity Value: {transport['iv']['value']:.2f} {transport['iv']['units']}")
print(f"  Total tkm:       {transport['tkm']['value']:,.0f} {transport['tkm']['units']}")
print(f"  Total emissions: {transport['emissions']['value']:,.2f} {transport['emissions']['units']}")

# Hub Operation IV
hub = company["hub_operation"]
print("\nHUB OPERATIONS")
print(f"  Intensity Value: {hub['iv']['value']:.2f} {hub['iv']['units']}")
print(f"  Total tonnes:    {hub['tonne']['value']:,.0f} {hub['tonne']['units']}")
print(f"  Total emissions: {hub['emissions']['value']:,.2f} {hub['emissions']['units']}")
```

<Note>
  **Key metrics to track year-over-year:**

  * **Transport Activity IV** (gCO2e/tkm): Lower = more efficient transport. Compare against industry benchmarks and previous years.
  * **Hub Operation IV** (gCO2e/tonne): Lower = more efficient hub operations.
  * **Scope 1 share**: Proportion of direct emissions — indicates fleet control level.
  * **Subcontracted share**: Proportion of Scope 3 subcontracted emissions — indicates supply chain dependency.
</Note>

#### Per-TOC Breakdown

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
print("\nEMISSIONS BY VEHICLE TYPE (TOC)")
print(f"{'TOC':<30} {'IV (gCO2e/tkm)':>15} {'tkm':>12} {'CO2e (kg)':>12}")
print("-" * 72)

for toc_name, toc_data in report["tocs_info"].items():
    print(
        f"{toc_name:<30} "
        f"{toc_data['iv']:>15.2f} "
        f"{toc_data['tkm']:>12,.0f} "
        f"{toc_data['emissions']:>12,.2f}"
    )
```

#### Per-HOC Breakdown

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
print("\nEMISSIONS BY HUB CATEGORY (HOC)")
print(f"{'Hub Name':<35} {'Category':<25} {'IV (gCO2e/t)':>12} {'CO2e (kg)':>12}")
print("-" * 87)

for hub_name, hub_data in report["hocs_info"].items():
    print(
        f"{hub_name:<35} "
        f"{hub_data['hub_category']:<25} "
        f"{hub_data['iv']:>12.2f} "
        f"{hub_data['emissions']:>12,.2f}"
    )
```

#### Emission Factors Used

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
# List all emission factors applied in the report
print("\nEMISSION FACTORS USED")

print("\n  Fuels:")
for fuel in report["emission_factors_used"]["logistics_fuels"]:
    print(f"    {fuel}")

print("\n  TOCs:")
for toc in report["emission_factors_used"]["logistics_tocs"]:
    print(f"    {toc}")
```

## Step 4.3: Generate Client-Level Reports

For carriers, generate reports per client to share emissions data with your customers:

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
# Get all clients
clients = requests.get(
    "https://api.dcycle.io/v1/logistics/clients",
    headers=headers,
).json()

# Generate report for each client
print("CLIENT EMISSIONS SUMMARY (2025)")
print(f"{'Client':<25} {'Items':>8} {'CO2e (kg)':>12} {'Distance (km)':>14}")
print("-" * 62)

for client_name in clients:
    client_report = requests.get(
        "https://api.dcycle.io/v1/logistics/report",
        headers=headers,
        params={
            "start_date": "2025-01-01",
            "end_date": "2025-12-31",
            "client": client_name,
        },
    ).json()

    summary = client_report["summary"]
    print(
        f"{client_name:<25} "
        f"{summary['total_items']:>8,} "
        f"{summary['total_co2e_kg']:>12,.1f} "
        f"{summary['total_distance_km']:>14,.0f}"
    )
```

<Tip>
  **Sharing with clients**: Client-level GLEC reports help your customers account for Scope 3 Category 4 (upstream transport) or Category 9 (downstream transport) in their own GHG Protocol inventories. The more specific your TOC and fuel data, the more valuable the report.
</Tip>

## Step 4.4: Export Report as CSV

Generate a downloadable CSV report:

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
from src.utils.filename_generator import generate_report_filename

# The GLEC report CSV follows the naming convention:
# reporte-glec_<org-name>_<start-date>_<end-date>_<timestamp>.csv
filename = generate_report_filename("glec", "my-org-name", "2025-01-01", "2025-12-31")
# → "reporte-glec_my-org-name_2025-01-01_2025-12-31_20250219.csv"
```

<Note>
  CSV export is available through the Dcycle web application. Navigate to your organization's logistics dashboard, select the reporting period, and click **Download GLEC Report**.
</Note>

## Understanding the Report Output

### Scope Allocation Summary

| Emission Source                | Own Fleet   | Subcontracted |
| ------------------------------ | ----------- | ------------- |
| TTW (direct fuel combustion)   | **Scope 1** | **Scope 3**   |
| WTT (fuel production upstream) | **Scope 3** | **Scope 3**   |
| Hub on-site fuel               | **Scope 1** | —             |
| Hub purchased electricity      | **Scope 2** | —             |
| Hub default HOC emissions      | —           | **Scope 3**   |
| Vehicle cleaning               | —           | **Scope 3**   |

### Benchmarking Intensity Values

Use these approximate benchmarks to contextualize your Transport Activity IV:

| Mode               | Good IV (gCO2e/tkm) | Average IV | Poor IV |
| ------------------ | ------------------- | ---------- | ------- |
| **Road** (general) | \< 50               | 50 – 120   | > 120   |
| **Rail**           | \< 15               | 15 – 30    | > 30    |
| **Maritime**       | \< 10               | 10 – 20    | > 20    |
| **Air**            | \< 500              | 500 – 800  | > 800   |

<Warning>
  These benchmarks are approximate and vary significantly by region, load factor, and vehicle age. Always compare against your own historical data and industry-specific benchmarks from the Smart Freight Centre.
</Warning>

### Year-over-Year Tracking

Track these key indicators each reporting period:

1. **Total CO2e**: Are absolute emissions decreasing?
2. **Transport Activity IV**: Is emission efficiency improving?
3. **Hub Operation IV**: Are hub operations becoming greener?
4. **Modal split**: Is traffic shifting to lower-emission modes (rail, maritime)?
5. **Fuel mix**: Is the share of biofuels and electric vehicles increasing?
6. **Subcontracted share**: Are you gaining more control over your supply chain emissions?

## Next Steps

<CardGroup cols={2}>
  <Card title="Getting Started with GLEC" icon="book" href="/guides/emissions/glec-tutorial">
    Review the GLEC framework overview and key concepts
  </Card>

  <Card title="Logistics API Reference" icon="code" href="/api-reference/logistics/overview">
    Complete API documentation for all endpoints
  </Card>

  <Card title="GHG Protocol Tutorial" icon="leaf" href="/guides/emissions/ghg-protocol-tutorial">
    Calculate non-transport emissions (Scope 1/2/3 corporate)
  </Card>

  <Card title="Custom Emission Factors" icon="chart-line" href="/guides/advanced/custom-emission-factors">
    Use supplier-specific or custom factors
  </Card>
</CardGroup>
