TCMF Handbook Help

Emissions reporting, full example

Scenario

Arrival to the port

According to the timetable, Aurora Botnia is planned to depart from Vasa at 8:20 and has a planned time of arrival at the berth in Umeå set for 14:00 on January 24th. Aurora Botnia departs and arrives precisely on time. The vessel is powered by both electricity and liquefied biogas (LBG). When departing from Vasa, it had 6Mwh of electricity available and 30 cubic metres (m³) of LGB. Upon arrival to Umeå, it had 2 MWh of electricity available for maneuvering in and out of the ports, along with 10 (m³) of LBG. Upon departure from Umeå, these levels were reduced to 1 MWh of electricity and 5 m³ of LBG.

Arrival TCMF Examples

Actual departure

{ "payload": { "@type": "LocationState", "timeType": "actual", "referenceObject": "tcmf:reference_object:ship:name:Aurora Botnia", "timeSequence": "departed_from", "location": "tcmf:location:port:FIVAA", "time": "2025-01-24T08:20:00:12.000Z" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:FIVAA:ar458" ], "reportedAt": "2025-01-24T08:22:52.100Z", "reportedBy": "tcmf:user:FIVAA:pc" }

Connected to this location state change is the beginning of a service representing the transport leg from Vasa to Umeå.

{ "payload": { "@type": "ServiceState", "timeType": "actual", "referenceObject": "tcmf:reference_object:ship:name:Aurora Botnia", "service": "tcmf:service:transport_leg:legit:123", "timeSequence": "commenced", "time": "2025-01-24T08:20:12.000Z", "location": "tcmf:location:port:FIVAA" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:transport_leg:legit:123" ], "reportedAt": "2025-01-24T08:22:52.100Z", "reportedBy": "tcmf:user:FIVAA:pc" }

Planned arrival

{ "payload": { "@type": "LocationState", "timeType": "planned", "referenceObject": "tcmf:reference_object:ship:name:Aurora Botnia", "timeSequence": "arrived_to", "location": "tcmf:location:port:SEUME", "time": "2025-01-24T13:00:00.000Z" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556" ], "reportedAt": "2025-01-22T13:48:52.100Z", "reportedBy": "tcmf:user:SEUME:pc" }

This change in location state concludes the transport_leg from Vasa to Umeå

{ "payload": { "@type": "ServiceState", "timeType": "actual", "referenceObject": "tcmf:reference_object:ship:name:Aurora Botnia", "service": "tcmf:service:transport_leg:legit:123", "timeSequence": "completeded", "time": "2025-01-24T14:00:12.000Z", "location": "tcmf:location:port:SEUME" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:transport_leg:legit:123" ], "reportedAt": "2025-01-24T14:02:52.100Z", "reportedBy": "tcmf:user:SEUME:pc" }

Actual arrival

{ "payload": { "@type": "LocationState", "timeType": "actual", "referenceObject": "tcmf:reference_object:ship:name:Aurora Botnia", "timeSequence": "arrived_to", "location": "tcmf:location:port:SEUME", "time": "2025-01-24T13:00:12.000Z" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556" ], "reportedAt": "2025-01-24T13:02:52.100Z", "reportedBy": "tcmf:user:SEUME:pc" }

The location state change triggers a service state change. There would be a corresponding pair of planned and actual, as above, but only showing TCMF for the actual here, for brevity

{ "payload": { "@type": "ServiceState", "timeType": "actual", "referenceObject": "tcmf:reference_object:ship:name:Aurora Botnia", "service": "tcmf:service:port_visit:portcall_id:SEUME:1556", "timeSequence": "commenced", "time": "2025-01-24T13:00:12.000Z", "location": "tcmf:location:port:SEUME:Södra Kajen" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556" ], "reportedAt": "2025-01-24T13:02:52.100Z", "reportedBy": "tcmf:user:SEUME:pc" }

The two energy sources for the ship have incoming levels that we connect to the above service state.

First, 2 MWh of electricity

{ "payload": { "@type": "AttributeState", "timeType": "actual", "referenceObject": "tcmf:service:port_visit:portcall_id:SEUME:1556:commenced", "attribute": "tcmf:attribute:ship:fuel_level:electricity:2 MWh", "timeSequence": "set", "time": "2025-01-24T13:00:12.000Z", "location": "tcmf:location:port:SEUME:Södra Kajen" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556" ], "reportedAt": "2025-01-24T13:02:52.100Z", "reportedBy": "tcmf:user:wasaline:pc" }

And 10 cubic metres of liquefied biogas

{ "payload": { "@type": "AttributeState", "timeType": "actual", "referenceObject": "tcmf:service:port_visit:portcall_id:SEUME:1556:commenced", "attribute": "tcmf:attribute:ship:fuel_level:lbg:10 m³", "timeSequence": "set", "time": "2025-01-24T13:00:12.000Z", "location": "tcmf:location:port:SEUME:Södra Kajen" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556" ], "reportedAt": "2025-01-24T13:02:52.100Z", "reportedBy": "tcmf:user:wasaline:pc" }

Berthing

When docking at the berth, three linesmen were engaged to secure the ship. They used an electric vehicle to travel back and forth from the berth during the operation. The consumption was 10kWh.

Berthing TCMF Examples

We have a mooring operations service performed by the linesmen and the emissions tracking in this case focuses on the transportation cost, in emissions. This is different from the previous example, which reports on available levels as the service commences and completes (to be shown later)

{ "payload": { "@type": "ServiceState", "timeType": "actual", "referenceObject": "tcmf:reference_object:ship:name:Aurora Botnia", "service": "tcmf:service:mooring_operations:port_visit:portcall_id:SEUME:1556", "timeSequence": "commenced", "time": "2025-01-24T13:15:12.000Z", "location": "tcmf:location:port:SEUME:Södra Kajen" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556" ], "reportedAt": "2025-01-24T13:22:52.100Z", "reportedBy": "tcmf:user:SEUME:pc" }
{ "payload": { "@type": "ServiceState", "timeType": "actual", "referenceObject": "tcmf:reference_object:ship:name:Aurora Botnia", "service": "tcmf:service:mooring_operations:port_visit:portcall_id:SEUME:1556", "timeSequence": "completed", "time": "2025-01-24T13:32:53.000Z", "location": "tcmf:location:port:SEUME:Södra Kajen" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556" ], "reportedAt": "2025-01-24T13:32:53.100Z", "reportedBy": "tcmf:user:SEUME:pc" }

Since this attribute carries information about how much energy was used to perform the service, we reference the service as a whole, rather than its commenced or completed state changes. The attribute is different, too.

{ "payload": { "@type": "AttributeState", "timeType": "actual", "referenceObject": "tcmf:service:mooring_operations:port_visit:portcall_id:SEUME:1556", "attribute": "tcmf:attribute:ship:fuel_consumption:electricity:10 kWh", "timeSequence": "set", "time": "2025-01-24T13:00:12.000Z", "location": "tcmf:location:port:SEUME:Södra Kajen" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556" ], "reportedAt": "2025-01-24T13:02:52.100Z", "reportedBy": "tcmf:user:SEUME:pc" }

Ship loading operations

Onboard Aurora Botnia were three Ahola trailers (without drivers) associated with the same shipment. These trailers accounted for 5% of the ship's total transported tonnage during this trip. Once unloaded, the port’s tractor transported the trailers to the railway yard, where they awaited being loaded onto a train scheduled to depart at 10:00 the following morning. The tractor, powered by diesel, began the task with 300 liters of fuel and completed the three round trips with 250 liters remaining.

Ship loading operation TCMF Examples

For simplicity, we are going to bundle all cargo operations for the mentioned shipment into a single service. In reality, this may be done in a more granular way. This may also be better expressed as a service describing the transport leg supplied by the Aurora Botnia, in which case the service will be commenced upon loading in Vasa and completed when the shipment's containers are unloaded in Umeå.

{ "payload": { "@type": "ServiceState", "timeType": "actual", "referenceObject": "tcmf:reference_object:ship:name:Aurora Botnia", "service": "tcmf:service:cargo_operations:port_visit:portcall_id:SEUME:1556", "timeSequence": "commenced", "time": "2025-01-24T13:52:53.000Z", "location": "tcmf:location:port:SEUME:Södra Kajen" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556", "tcmf:grouping:shipment:rodo:12345A" ], "reportedAt": "2025-01-24T13:52:53.100Z", "reportedBy": "tcmf:user:SEUME:pc" }
{ "payload": { "@type": "ServiceState", "timeType": "actual", "referenceObject": "tcmf:reference_object:ship:name:Aurora Botnia", "service": "tcmf:service:cargo_operations:port_visit:portcall_id:SEUME:1556", "timeSequence": "completed", "time": "2025-01-24T14:42:53.000Z", "location": "tcmf:location:port:SEUME:Södra Kajen" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556", "tcmf:grouping:shipment:rodo:12345A" ], "reportedAt": "2025-01-24T14:52:53.100Z", "reportedBy": "tcmf:user:SEUME:pc" }

To express how much of the transported tonnage was in this shipment, we connect the attribute state through the reference object to cargo operations and through grouping to the shipment. Please note that this is not an ideal solution and we may have to add a layer of states to find a clearer expression

{ "payload": { "@type": "AttributeState", "timeType": "actual", "referenceObject": "tcmf:service:cargo_operations:port_visit:portcall_id:SEUME:1556", "attribute": "tcmf:attribute:shipment:part_of_total_tonnage:5 %", "timeSequence": "set", "time": "2025-01-24T13:00:12.000Z", "location": "tcmf:location:port:SEUME:Södra Kajen" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556", "tcmf:grouping:shipment:rodo:12345A" ], "reportedAt": "2025-01-24T13:02:52.100Z", "reportedBy": "tcmf:user:SEUME:pc" }

The fuel levels of the tractor are connected in a similar manner as before to the service within which it operates, which in this case is cargo operations service above. We start with 300 litres of diesel

{ "payload": { "@type": "AttributeState", "timeType": "actual", "referenceObject": "tcmf:service:cargo_operations:port_visit:portcall_id:SEUME:1556:commenced", "attribute": "tcmf:attribute:tractor1:fuel_level:diesel:300 litre", "timeSequence": "set", "time": "2025-01-24T13:00:12.000Z", "location": "tcmf:location:port:SEUME:Södra Kajen" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556", "tcmf:grouping:shipment:rodo:12345A" ], "reportedAt": "2025-01-24T13:02:52.100Z", "reportedBy": "tcmf:user:SEUME:pc" }

and finish with 250 litres of diesel

{ "payload": { "@type": "AttributeState", "timeType": "actual", "referenceObject": "tcmf:service:cargo_operations:port_visit:portcall_id:SEUME:1556:completed", "attribute": "tcmf:attribute:tractor1:fuel_level:diesel:250 litre", "timeSequence": "set", "time": "2025-01-24T13:00:12.000Z", "location": "tcmf:location:port:SEUME:Södra Kajen" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556", "tcmf:grouping:shipment:rodo:12345A" ], "reportedAt": "2025-01-24T13:02:52.100Z", "reportedBy": "tcmf:user:SEUME:pc" }

End of port visit

Before the Aurora Botnia departs from Umeå, it reports its fuel levels:

It has 1 MWh of electricity left

{ "payload": { "@type": "AttributeState", "timeType": "actual", "referenceObject": "tcmf:service:port_visit:portcall_id:SEUME:1556:completed", "attribute": "tcmf:attribute:ship:fuel_level:electricity:1 MWh", "timeSequence": "set", "time": "2025-01-24T16:00:12.000Z", "location": "tcmf:location:port:SEUME:Södra Kajen" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556" ], "reportedAt": "2025-01-24T16:02:52.100Z", "reportedBy": "tcmf:user:wasaline:pc" }

And 5 cubic metres of liquefied biogas

{ "payload": { "@type": "AttributeState", "timeType": "actual", "referenceObject": "tcmf:service:port_visit:portcall_id:SEUME:1556:completed", "attribute": "tcmf:attribute:ship:fuel_level:lbg:5 m³", "timeSequence": "set", "time": "2025-01-24T16:00:12.000Z", "location": "tcmf:location:port:SEUME:Södra Kajen" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556" ], "reportedAt": "2025-01-24T16:02:52.100Z", "reportedBy": "tcmf:user:wasaline:pc" }

Train, incoming journey

An empty train departs Gävle at 22:00 on January 23, arriving port of Umeå 6:00 on the morning of January 24.The locomotive has an onboard electricity meter counting how much electricity the locomotive uses. On departure from Gävle, the meter is at 23765 MWh and on arrival to Umeå, the meter shows 23800 MWh.

Train, incoming journey TCMF Examples

Not showing the location states, for brevity.

{ "payload": { "@type": "ServiceState", "timeType": "actual", "referenceObject": "tcmf:reference_object:train:se:otn:4367", "service": "tcmf:service:transport_leg:legit:124", "timeSequence": "commenced", "time": "2025-01-23T22:00:12.000Z", "location": "tcmf:location:train:station:Gävle" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:transport_leg:legit:124" ], "reportedAt": "2025-01-23T22:22:52.100Z", "reportedBy": "tcmf:user:trv:pc" }
{ "payload": { "@type": "ServiceState", "timeType": "actual", "referenceObject": "tcmf:reference_object:train:se:otn:4367", "service": "tcmf:service:transport_leg:legit:124", "timeSequence": "completed", "time": "2025-01-24T06:00:12.000Z", "location": "tcmf:location:train:station:Umeå" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:transport_leg:legit:124" ], "reportedAt": "2025-01-24T06:22:52.100Z", "reportedBy": "tcmf:user:trv:pc" }

The electricity meter of the locomotive at the beginning of the movement

{ "payload": { "@type": "AttributeState", "timeType": "actual", "referenceObject": "tcmf:service:transport_leg:legit:124:commenced", "attribute": "tcmf:attribute:train:energy_meter:electricity:23765 MWh", "timeSequence": "set", "time": "2025-01-23T22:00:12.000Z" }, "grouping": [ "tcmf:grouping:train:se:otn:4367" ], "reportedAt": "2025-01-23T22:02:52.100Z", "reportedBy": "tcmf:user:trv:pc" }

The electricity meter of the locomotive at the end of the movement

{ "payload": { "@type": "AttributeState", "timeType": "actual", "referenceObject": "tcmf:service:transport_leg:legit:124:completed", "attribute": "tcmf:attribute:train:energy_meter:electricity:23800 MWh", "timeSequence": "set", "time": "2025-01-23T22:00:12.000Z" }, "grouping": [ "tcmf:grouping:train:se:otn:4367" ], "reportedAt": "2025-01-23T22:02:52.100Z", "reportedBy": "tcmf:user:trv:pc" }

Showing that moving the train from Gävle to Umeå has used 23800 - 23765 or 35 MWh.

Train loading operations

On the morning of January 25th, the port’s reach stacker loaded the three trailers onto separate wagons of the train. Of the train’s twenty-two wagons, five were empty. The weight of the Ahola trailers represented 10% of the train’s total carried weight. At 10:00, the train departed for Gothenburg, arriving on January 27th at 08:00. Transporting the train from Umeå to Gothenburg required 500,000 kWh of energy.

Train loading operations TCMF Examples

Loading operations for the train is represented in a service state

{ "payload": { "@type": "ServiceState", "timeType": "actual", "referenceObject": "tcmf:reference_object:train:se:otn:4367", "service": "tcmf:service:cargo_operations:train_departure:train:se:otn:4367:Hod", "timeSequence": "commenced", "time": "2025-01-25T08:42:53.000Z", "location": "tcmf:location:port:SEUME" }, "grouping": [ "tcmf:grouping:train:se:otn:4367", "tcmf:grouping:shipment:rodo:12345A" ], "reportedAt": "2025-01-25T08:52:53.100Z", "reportedBy": "tcmf:user:SEUME:pc" }
{ "payload": { "@type": "ServiceState", "timeType": "actual", "referenceObject": "tcmf:reference_object:train:se:otn:4367", "service": "tcmf:service:cargo_operations:train_departure:train:se:otn:4367:Hod", "timeSequence": "completed", "time": "2025-01-25T09:12:53.000Z", "location": "tcmf:location:port:SEUME" }, "grouping": [ "tcmf:grouping:train:se:otn:4367", "tcmf:grouping:shipment:rodo:12345A" ], "reportedAt": "2025-01-25T08:52:53.100Z", "reportedBy": "tcmf:user:SEUME:pc" }

Since we have no information on the stacker's fuel levels, we have no emissions data to associate with the cargo operations To track the energy consumed for the train transport, we create a service state representing the transport It begins in Holmsund (Hod) at 10:00

{ "payload": { "@type": "ServiceState", "timeType": "actual", "referenceObject": "tcmf:reference_object:train:se:otn:4367", "service": "tcmf:service:transport:train:se:otn:4367", "timeSequence": "commenced", "time": "2025-01-25T10:00:03.000Z", "location": "tcmf:location:railway:se:Hod" }, "grouping": [ "tcmf:grouping:train:se:otn:4367", "tcmf:grouping:shipment:rodo:12345A" ], "reportedAt": "2025-01-25T10:04:53.100Z", "reportedBy": "tcmf:user:trv:rfid" }

and ends in Gothenburg (G) at 8:00 on January 27

{ "payload": { "@type": "ServiceState", "timeType": "actual", "referenceObject": "tcmf:reference_object:train:se:otn:4367", "service": "tcmf:service:transport:train:se:otn:4367", "timeSequence": "completed", "time": "2025-01-27T08:00:13.000Z", "location": "tcmf:location:railway:se:G" }, "grouping": [ "tcmf:grouping:train:se:otn:4367", "tcmf:grouping:shipment:rodo:12345A" ], "reportedAt": "2025-01-27T08:02:23.100Z", "reportedBy": "tcmf:user:trv:rfid" }

The energy consumed for the entire train transport is 500 000 kWh, so we attibute that to the service object

{ "payload": { "@type": "AttributeState", "timeType": "actual", "referenceObject": "tcmf:service:transport:train:se:otn:4367", "attribute": "tcmf:attribute:train:fuel_consumption:electricity:500 MWh", "timeSequence": "set", "time": "2025-01-27T08:00:12.000Z" }, "grouping": [ "tcmf:grouping:ship:name:Aurora Botnia", "tcmf:grouping:port_visit:portcall_id:SEUME:1556" ], "reportedAt": "2025-01-27T08:02:52.100Z", "reportedBy": "tcmf:user:gc:mot" }
Last modified: 11 March 2025