Calculation Methodology

Understanding how CII, EU ETS, and FuelEU metrics are calculated

Data Source

All calculations are based on data from the common_consumption_log_data collection in MongoDB. Each record represents a reporting period (typically daily) with:

  • imo - Vessel IMO number
  • voyageName - Voyage identifier
  • portOfOrigin / portOfDestination - Port and UN/LOCODE
  • totalCo2(T) - CO2 emissions in tonnes
  • distanceOverGround(Nm) - Distance in nautical miles
  • ciiAttained / ciiRequired / ciiRating - Pre-calculated CII values

CII (Carbon Intensity Indicator)

CII measures the carbon intensity of ship operations - how efficiently a ship transports cargo relative to CO2 emissions. It's an IMO regulation effective from January 2023.

CII = CO₂ Emissions (grams) / (Capacity × Distance)

Where Capacity = DWT or GT depending on ship type

RatingDescriptionAction Required
ASuperior performanceNone - exceeds requirements
BGood performanceNone - meets requirements
CModerate performanceNone - at threshold
DBelow standardCorrective action plan within 3 years
EInferior performanceImmediate corrective action required

Data Note

CII values displayed in this dashboard are pre-calculated in the source data. The dashboard reads the ciiAttained, ciiRequired, and ciiRating fields directly from the database.

CII Playground

Experiment with CII calculations using different ship parameters and fuel consumption data.

Calculated Values

Reference CII9.54 gCO2/t-NM
Reduction Factor (2025)9%
Required CII8.68 gCO2/t-NM

Rating Boundaries

AAttained CII7.20
BAttained CII8.16
CAttained CII9.29
DAttained CII10.33
EAttained CII> 10.33

Formula Applied

Reference CII = 1984 × 55,000^(-0.489) = 9.54

Required CII = 9.54 × (1 - 9%) = 8.68

Backend Services

Services

  • FleetService.ts - Fleet-level EU ETS & FuelEU aggregations
  • VesselService.ts - Vessel voyage & leg calculations
  • portClassifier.ts - EU/EEA port detection logic
  • fuelEUCalculator.ts - FuelEU GHG intensity calculation

Key Functions

  • isEUPort() - Check if UN/LOCODE is EU/EEA
  • extractVoyageLegs() - Break voyage into port-to-port segments
  • calculateLegsETSEmissions() - Sum covered emissions by leg
  • calculateFuelEUCompliance() - Calculate WtW GHG intensity & penalty