Home

Awesome

Open IMO Carbon Intensity Indicator (CII) Calculator 🚢

What is this?

An unofficial open source implementation of the International Maritime Organisation (IMO)'s Carbon Intensity Indicator (CII).

The CII indicator aims to make the carbon intensity of any given ship easy to understand, transparent, and standardised. It does so by ranking all ships globally on an A to E rating (A being the best, E being the worst). Ship emission intensity calculations consider a mixture of weight, distance travelled in the calendar year, and the fuel used in their main engines (for a comprehensive explanation, see the methodology section).

<img src="./README_assets/a-e-ratings.png" alt="Each grade from A to E, coloured gradually from green to red" width="450"/>

Grades are re-calculated annually. The boundaries of what is considered "good" is a moving target, described in table 4. This moving target is intended to encourage shipping firms to constantly improve the carbon intensity of their ships to 2030. The graph below demonstrates the gradual tightening of the IMO's Carbon Intensity requirements over time. The nearer to 2030, the lower a ship's Attained CII must be to achieve an A grade.

<img src="./README_assets/cii-rating-progression-over-time.png" alt="A graph showing the gradual " width="450"/>

The specification for this software can be found in IMO's resolution MEPC.354(78), adopted in June 2022. Additional references, summaries, & resolutions can be found in the References & datasets section.

[!NOTE] The repository code & software is provided as-is. While best-efforts are made to ensure its results are acurate inline with the IMO's CII specifications, the results it produces are estimates and guidance. Results should not be considered proof of regulatory compliance.

Table of Contents

Software

Software Roadmap

The following features are on the roadmap for the application:

Getting Started

The library can be installed via Nuget. There is a C# dotnet console app at EtiveMor.OpenImoCiiCalculator.DemoConsoleApp, which demonstrates how to create a new instance of the calculator, submit data, and receive results in the format EtiveMor.OpenImoCiiCalculator.Core.ModelsCalculationResult.

When submitting data to the CalculateAttainedCiiRating method, the following parameters are required:

ShipType shipType,          
double grossTonnage,       
double deadweightTonnage, 
double distanceTravelled,   
TypeOfFuel fuelType,       
double fuelConsumption,  
int targetYear           

Multiple Fuel Type calculations

There are two CalculateAttainedCiiRating methods. One for a ship which consumes a single fuel type, and another which consumes multiple fuel types. Both methods are available at CalculateAttainedCiiRating.

Calculator Result Format

{
    "results": [
        {
            "isMeasuredYear": true,                        
            "isEstimatedYear": false,                     
            "year": 2019,                                 
            "rating": 2,                                   
            "requiredCii": 19.184190519387734,    
            "attainedCii": 16.243733333333335,
            "attainedRequiredRatio": 0.8467249799733408,
            "calculatedCo2eEmissions": 60914000000.0,
            "calculatedShipCapacity": 25000.0,
            "calculatedTransportWork": 3750000000.0,
            "vectorBoundariesForYear": {
                "year": 2019,
                "shipType": 110,
                "weightClassification": {
                    "upperLimit": 0,
                    "lowerLimit": 2147483647
                },
                "capacityUnit": 3,
                "boundaryDdVectors": {
                    "Superior": 14.579984794734678,
                    "Lower": 17.649455277836715,
                    "Upper": 21.869977192102013,
                    "Inferior": 24.939447675204054
                }
            }
        },
        ...
    ]
}
PropertyDescription
isMeasuredYeardescribes if the result array was generated based on this year
isEstimatedYeardescribes if the result array was NOT generated based on this year (is always equal to !isMeasuredYear)
yeardescribes the year in question
ratingdescribes the rating for the ship in the given year. A=1, B=2, C=3, D=4, E=5. 0 indicates an error. See EtiveMor.OpenImoCiiCalculator.Core.Models.Enums.ImoCiiRating
requiredCiiThe actual intensity required for the ship to be considered in-range of the IMO's regulations (note that from 2027 onwards, this is a projection)
attainedCiiThe estimated or actual intensity attained for the ship in the given year
attainedRequiredRatioThe ratio between requiredCii and attainedCii
calculatedCo2eEmissionsThe calculated CO2e emissions this result was based on
calculatedShipCapacityThe calculated ship capacity this result was based on
calculatedTransportWorkThe calculated transport work this result was based on
vectorBoundariesForYear.yearthe year in question (repeats .year)
vectorBoundariesForYear.shipTypethe type of ship EtiveMor.OpenImoCiiCalculator.Core.Models.Enums.ShipType
vectorBoundariesForYear.weightClassificationthe weight classification the ship has been considered for (see MEPC.354(78))
vectorBoundariesForYear.capacityUnitdescribes if this ship was measured against its Deadweight or Gross Tonnage EtiveMor.OpenImoCiiCalculator.Core.Models.Enums.CapacityUnit
vectorBoundariesForYear.boundaryDdVectors.SuperiorDescribes the highest value a ship't attainedCii can acheive, while still being considered Superior
vectorBoundariesForYear.boundaryDdVectors.LowerDescribes the highest value a ship't attainedCii can acheive, while still being considered Lower
vectorBoundariesForYear.boundaryDdVectors.UpperDescribes the highest value a ship't attainedCii can acheive, while still being considered Upper
vectorBoundariesForYear.boundaryDdVectors.InferiorDescribes the highest value a ship't attainedCii can acheive, while still being considered Inferior

Methodology

A ship's Carbon Intensity Indicator (CII) is measured by calculating its transport workload in a given calendar year, then calculating the mass of $CO_2$ produced by the ship in that year. The ship's Attained CII is the product of its $transportWork$ and the $massOfCO_2Emissions$ in one calendar year.

$AttainedCII = massOfCo2Emissions \times transportWork$

Ships are split into 12 categories, for example "Bulk Carrier", "Tanker", "Cruise Passenger Ship" among others (see Table 1 for a comprehensive list). A ship is compared internally among its category peers but never across categories, for example, a Bulk Carrier is not directly comparable to a LNG Carrier in this system.

Inputs

The ship's Attained CII is then compared to its Required CII to produce an easy to understand grade for the ship. The grading scheme is in the range A to E, where A is the most efficient bracket, C represents a ship at-or-near its CII, and E is the least efficient.

GradeDescription
ACII below the Superior Boundary
BCII above the Superior Boundary and below the Lower Boundary
CCII between the Lower Boundary and the Upper Boundary
DCII above the Upper Boundary and below the Inferior Boundary
ECII above the Inferior Boundary

Graphical representation of IMO's ship boundaries, indicating the CII requirements to attain an A, B, C, D, E grade

Fig1. IMO Boundaries, after IMO MEPC.354(78)

Ship Grade Ratio Methodology

A ship's grade is calculated by comparing its Attained CII to its Required CII to give its performance $A/R$ ratio. If the ship's $A/R$ ratio falls below the boundary for its class of Ship Type, it attains a higher (better) grade. Boundaries are calculated as:

$shipTypeRequiredCII \times exp(d_i)$.

Ship Grade Worked example

The worked example below considers a Bulk Carrier, with a Deadweight Tonnage below 279,000. Assuming the Bulk Carrier's $required CII$ is:

$10g CO_2 / DWT.NM$

[!IMPORTANT] For some ship types, $GT \times NM$ should be used instead of $DWT \times NM$, see Table 1 and transport work done methodology for a comprehensive guide.

Then the boundaries are calculated with:

The $exp(d_i)$ rating boundaries for each ship type can be found in Table 3. The resultant boundaries for the Bulk Carrier in question are:

Boundary TypeRequired CIIBoundary's Lower Threshold
Superior$= 10 \times exp(d1)$ <br /> $= 10 \times 0.86$<br /> $= 8.6$$8.6 gCO_2/transportWork$
Lower$= 10 \times exp(d2)$ <br /> $= 10 \times 0.94$<br /> $= 9.4$$9.4 gCO_2/transportWork$
Upper$= 10 \times exp(d3)$ <br /> $= 10 \times 1.06$<br /> $= 10.6$$10.6 gCO_2/transportWork$
Inferior$= 10 \times exp(d4)$ <br /> $= 10 \times 1.18$<br /> $= 11.8$$11.8 gCO_2/transportWork$

Grades are then derived from these boundaries, by comparing the ship's Attained CII to the thresholds across a given calendar year:

GradeHigher thanLower thanDescription
A8.6Below Superior Boundary
B8.69.4Above Superior Boundary,<br />Below Lower Boundary
C9.410.6Above Lower Boundary,<br />Below Upper Boundary
D10.611.8Above Upper Boundary,<br />Below Inferior Boundary
E11.8Above Inferior Boundary

Example Results:


Ship Attained Carbon Intensity Methodology

A ship's Attained carbon intensity is calculated by taking the mass of its aggregate CO<sub>2</sub> emissions in a calendar year, and multiplying it by its transport work done in the calendar year.

$massOfCo2Emissions \times transportWork$

Method accepts:

Method Returns:

Implementation:

Returns the product of a ship's mass of $CO_2$ emissions and its $transportWork$.

Ship transport work methodology

A ship's transport work is calculated by taking its capacity and multiplying it by the distance sailed in nautical miles in the calendar year.

$capacity \times distanceSailed$

Method accepts:

Implementation:

Returns the product of a ship's capacity and its distance sailed

Ship CO<sub>2</sub> Emissions Methodology

The sum of a ship's $CO_2$ emissions over a given year are calculated by multiplying the mass of consumed fuel by the fuel's emissions factor. If the ship consumes multiple fuel types, the calculation is repeated for each fuel type & consumption mass, then those results are summed together.

Method Accepts:

Method Returns:

Implementation:

The sum of $CO_2$ emissions $M$ from fuel consumption in a given calendar year is

$M = FC_j \times C_{f_j}$

Where:

Ship Capacity Methodology

A ship's capacity is measured by either its Deadweight Tonnage (DWT) or Gross Tonnage (GT). The only exception is Bulk Carriers, which have a capacity capped at 279,000.

To calculate a ship's Capacity in accordance with the IMO's MEPC353(78) guidelines:

Method accepts:

Method returns:

Implementation:

$Capacity$ of a given ship is calculated using the following rules:

The full implementation detail can be found in Table 1's Ship Type, Ship weight, and Capacity columns.

Exceptions:


Reference Tables

Table 1: MEPC.353(78) - Shipping Capacity Tables

The following table describes how to determine a given ship type's Capacity.

Table Source: IMO: MEPC.353(78)

Ship TypeConditional SpecificationCapacity$a$$c$
Bulk carrier279,000 DWT and above279,0004,7450.622
Bulk carrierLess than 279,000 DWTDWT4,7450.622
Gas carrier65,000 and aboveDWT14405E72.071
Gas carrierLess than 65,000 DWTDWT8,1040.639
TankerDWT5,2470.610
Container ShipDWT1,9840.489
General cargo ship20,000 DWT and aboveDWT31,9480.792
General cargo shipLess than 20,000 DWTDWT5880.3885
Refrigerated cargo carrierDWT4,6000.557
Combination carrierDWT5,1190.622
LNG Carrier100,000 DWT and aboveDWT9.8270.000
LNG Carrier65,000 and above, less than 100,000DWT14479E102.673
LNG Carrierless than 65,000 DWTDWT14779E102.673
Ro-ro cargo ship (vehicle carrier)57,700 and above57,0003,6270.590
Ro-ro cargo ship (vehicle carrier)30,000 and above, less than 57,70036275,7390.590
Ro-ro cargo ship (vehicle carrier)less than 30,000GT3300.329
Ro-ro cargo shipGT1,9670.485
Ro-ro passenger shipRo-ro passenger shipGT2,0230.460
Ro-ro passenger shipHigh-speed craft designed to SOLAS chapter XGT4,1960.460
Cruise passenger shipGT9300.383

Table 2: MEPC.364(79) Mass Conversion between fuel consumption and CO<sub>2</sub> emissions

The following table describes how to convert from the fuel used by a ship's main engine $ME_{(i)}$ to the amount of $CO_2$ produced. Fuel consumption is measured in grams (g), as is the output $CO_2$ emission

Table source: IMO: MEPC.364(79)

IDFuel TypeSource/ReferenceCarbon Content$C_F (\frac{t-CO_2}{t-Fuel})$Lower calorific value (kJ/kg)
1Diesel / Gas OilISO 8217 Grade DMX to DMB0.87443.20642,700
2Light Fuel Oil (LFO)ISO 8217 Grade RMA to RMD0.85943.15141,200
3Heavy Fuel Oil (HFO)ISO 8217 Grade RME to RMK0.84933.11440,200
4aLiquified Petroleum (Propane)Propane0.81823.00046,300
4bLiquified Petroleum (Butane)Butane0.82643.03045,700
5Ethane-0.79892.92746,400
6Liquified Natural Gas (LNG)n/a0.75002.75048,000
7Methanoln/a0.37501.37519,900
8Ethanoln/a0.52171.91326,800

Table 3: MEPC.339(76) - Ship Grading Boundaries

The following table describes the $dd$ vectors used to determine the rating boundaries for ship types. The columns $dd$ $exp(d_i)$ values represent the boundaries the IMO's rating system in the baseline year (2019).

Table source (2022): IMO: MEPC.354(78) Previous source (2021): IMO: MEPC.339(76)

IdShip TypeWeight ClassificationCapacity in CII Calculationdd vector exp(d1)dd vector exp(d2)dd vector exp(d3)dd vector exp(d4)
1Bulk CarrierDWT0.860.941.061.18
2.aGas Carrier65,000 DWT and aboveDWT0.810.911.121.44
2.bGas CarrierLess than 65,000 DWTDWT0.850.951.061.25
3TankerDWT0.820.931.081.28
4Container ShipDWT0.830.941.071.19
5General Cargo ShipDWT0.830.941.061.19
6Refrigerated Cargo CarrierDWT0.780.911.071.20
7Combination CarrierDWT0.870.961.061.14
8.aLNG Carrier100,000 DWT and aboveDWT0.890.981.061.13
8.bLNG CarrierLess than 100,000 DWTDWT0.780.921.101.37
9Ro-ro Cargo Ship (Vehicle Carrier)GT0.860.941.061.16
10Ro-ro Cargo ShipGT0.760.891.081.27
11Ro-ro Passenger ShipGT0.760.921.141.30
12Cruise Passenger ShipGT0.870.951.061.16

Table 4: Annual Carbon Reduction Factors (Z%)

The following table describes the reduction factor to be applied to a ship's $requiredCII$ on an annual basis. IMO have to date released figures up to 2026. In the table, the values from 2027 onwards are unofficial estimates based on the pattern to 2026. IMO aims to release new reduction factors

Table Source: IMO: MEPC.338(76)

YearReduction factor<br /> Relative to 2019Estimated Reduction Factor
20190%-- %
20201%-- %
20212%-- %
20223%-- %
20235%-- %
20247%-- %
20259%-- %
202611%-- %
2027-- %13%
2028-- %15%
2029-- %17%
2030-- %19%

Table 5: Common shipping measurement conversions

Often in shipping, non-metric measurements are used. Conversions are detailed below

MeasureMetric MeasureNotes
Deadweight Tonne (DWT)$1016.0469088kg$DWT is a ship's total weight excluding boiler water, measured in Imperial long tons
Gross Tonne (GT)$1016.0469088kg$GT is a ship's area, measured in Imperial long tons
Nautical Mile (NM)$1.852km$, $1,852m$NM is equal to 1 minute of latitude at the equator. $1NM = 1.5078 miles = 1.852km$

Shipping Terminology & Glossary

TermDescriptionNotes
Carbon Dioxide Equivalent (CO2eq, CO2, CO2e, $CO_2$)A ship's carbon dioxide emissionsExpressed in this implementation in grams (metric)
Carbon Intensity Index (CII)The relative measure of a ship's carbon dioxide emissions, taking distance travelled and fuel type used into account
Deadweight Tonnage (DWT)The measure of a the total contents of a ship, including cargo, fuel, crew, passengers, and water (Excludes water in a ship's boiler)Expressed in long tons (British Imperial)
Final Draft International Standard (FDIS)A draft status for an ISO Standard, indicating the standard is in its final stage of approval
Gross Tonnage (GT)A ship's internal volumeExpressed in long tons (British Imperial)
International Maritime Organisation (IMO)A UN Agency responsible for regulating maritime transport rules & regulations
International Organization for Standardization (ISO)Independent, non-governmental, international standard development organization
Liquefied natural gas (LNG)Gas, compressed into liquid form for easier transport
Nautical Miles (NM, nmile)Distance travelled over water, different to land measured miles (statute miles)Expressed in minutes of latitude at the equator
Resolution MEPC.353(78)Internationally standardised reference guide to shipping carbon intensity
Roll-on-roll-off (Ro-ro, Roro, Ro ro)A ship designed to take cargo which can be wheeled (or rolled) in and out of a cargo hold

References & datasets

Further Reading

Useful datasets (mixed public and private)