> ## Documentation Index
> Fetch the complete documentation index at: https://docs.terratwin.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Logistics hubs

> Use HUB operations to define transfer locations and include emissions from freight handling, storage, and transshipment.

A logistics `HUB` represents a site where cargo is handled between transport operations, or a logistics facility at the start or end of a transport chain.
Hubs can contribute emissions from loading and unloading, moving cargo within the facility, and freight related energy use such as lighting, heating, and cooling.

Add hubs to a [transport chain](/content/guides/transport-chains) when you know the location where one requested leg ends and another begins.
TerraTwin can automatically insert hubs between the transport operations in a calculation, including first and last mile connections, as well as at stopover airports.

<Columns cols={2}>
  <Card title="Transport boundary" icon="route">
    A `HUB` placed between two transport operations defines the end location of the incoming leg and the start location of the outgoing leg.
  </Card>

  <Card title="Location" icon="circle-nodes">
    Every hub needs a [`location`](/content/guides/locations).

    Use the same `PLACE`, `AIRPORT`, `RAIL_YARD`, or `HARBOR` locations used for origins and destinations.
  </Card>

  <Card title="Hub type" icon="warehouse">
    Use `hubType` to select the kind of facility.

    If it is omitted, TerraTwin can select a default based on the surrounding transport modes and cargo category.
  </Card>

  <Card title="Insertion options" icon="gears">
    Use `options.hubInsertion` to control automatic insertion.

    Use `options.defaultHubTypes` to change the default hub type for individual mode transitions.
  </Card>
</Columns>

<Warning>
  Including the emissions from logistics hubs is part of TerraTwin's ISO 14083 aligned calculation model.
  Setting a hub type to `NONE` can produce results that are not fully ISO 14083 compliant.
</Warning>

***

## Basic shape

An explicit hub has `type: "HUB"`, a required `location`, and an optional `hubType`.

```json theme={null}
{
  "type": "HUB",
  "hubType": "MARITIME_TERMINAL",
  "location": {
    "type": "HARBOR",
    "unLoCode": "NLRTM"
  }
}
```

Use it between transport operations to define a known transfer point:

```json theme={null}
{
  "cargo": {
    "weight": {
      "value": 8,
      "unit": "METRIC_TONNE"
    }
  },
  "origin": {
    "type": "HARBOR",
    "unLoCode": "GBSHV"
  },
  "destination": {
    "type": "PLACE",
    "postcode": "12679",
    "countryCode": "DE"
  },
  "transportChain": [
    {
      "type": "WATER"
    },
    {
      "type": "HUB",
      "hubType": "MARITIME_TERMINAL",
      "location": {
        "type": "HARBOR",
        "unLoCode": "NLRTM"
      }
    },
    {
      "type": "RAIL"
    }
  ]
}
```

In this request:

* The `WATER` leg runs from the Port of London Gateway to the Port of Rotterdam.
* The `HUB` represents handling at the maritime terminal in Rotterdam.
* The `RAIL` leg runs from the Port of Rotterdam to the Marzahn-Hellersdorf borough in Berlin.

The hub is a location boundary and an emissions-generating operation. It is not itself the rail or water movement.

<Frame caption="Cargo transfer point at the Port of Rotterdam [`NLRTM`]">
  <img className="block dark:hidden" src="https://mintcdn.com/terratwin/0hbUXmLqgbSI5-VO/images/hubs/london-gateway-to-berlin-light.png?fit=max&auto=format&n=0hbUXmLqgbSI5-VO&q=85&s=a1e5f931cc50ad5bb2c4e7d8429c82c4" width="1316" height="676" data-path="images/hubs/london-gateway-to-berlin-light.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/terratwin/0hbUXmLqgbSI5-VO/images/hubs/london-gateway-to-berlin-dark.png?fit=max&auto=format&n=0hbUXmLqgbSI5-VO&q=85&s=a9b26327deb00b0088122743717f8724" width="1316" height="676" data-path="images/hubs/london-gateway-to-berlin-dark.png" />
</Frame>

***

## Properties

| Property   | Required | What it does                                                                                                                                    |
| ---------- | -------: | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `type`     |      Yes | Selects a hub operation. Use `HUB`.                                                                                                             |
| `location` |      Yes | Defines where the hub is. Accepts any supported request location shape.                                                                         |
| `hubType`  |       No | Selects the facility category and emissions intensity. If omitted, TerraTwin uses the hub insertion and default hub type rules described below. |

<Note>
  An explicit hub does not have transport distance, vehicle, energy, or loading properties.
  Its activity is based on the weight of cargo processed at the facility.
</Note>

***

## Hub types

The `hubType` determines the emissions intensity applied to the cargo handled at the hub.

| Hub type                                                               | Use it for                                                                                                                         |
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| <code className="whitespace-nowrap">TRANSSHIPMENT</code>               | A transfer facility where more than 80% of goods move between vehicles or modes with minimal or no long-term storage.              |
| <code className="whitespace-nowrap">STORAGE\_AND\_TRANSSHIPMENT</code> | A mixed facility that combines cargo transfer and storage, where neither activity accounts for more than 80% of goods handled.     |
| <code className="whitespace-nowrap">WAREHOUSE</code>                   | A facility where more than 80% of goods are stored or processed for inventory management, fulfillment, packaging, or distribution. |
| <code className="whitespace-nowrap">LIQUID\_BULK\_TERMINAL</code>      | A specialized facility for handling, transferring, or storing liquid products such as oil or chemicals.                            |
| <code className="whitespace-nowrap">MARITIME\_TERMINAL</code>          | A harbor facility where cargo transfers between ships, or between ships and road or rail transport.                                |
| <code className="whitespace-nowrap">NONE</code>                        | A location boundary with no hub emissions.                                                                                         |

### Transshipment

Use `TRANSSHIPMENT` for a straightforward cargo transfer with little or no storage.
Typical examples include moving cargo from one truck to another, from road to rail, or from a flight to a delivery vehicle.

```json theme={null}
{
  "type": "HUB",
  "hubType": "TRANSSHIPMENT",
  "location": {
    "type": "AIRPORT",
    "iataCode": "FRA"
  }
}
```

### Storage and transshipment

Use `STORAGE_AND_TRANSSHIPMENT` when the facility has meaningful transfer and storage activity, but neither dominates the operation.

```json theme={null}
{
  "type": "HUB",
  "hubType": "STORAGE_AND_TRANSSHIPMENT",
  "location": {
    "type": "PLACE",
    "postcode": "28199",
    "city": "Bremen",
    "countryCode": "DE"
  }
}
```

### Warehouse

Use `WAREHOUSE` when storage, order fulfillment, packaging, or distribution is the main activity.
A warehouse is often modelled as the first or last hub in a chain.

```json theme={null}
{
  "type": "HUB",
  "hubType": "WAREHOUSE",
  "location": {
    "type": "PLACE",
    "postcode": "3044",
    "city": "Rotterdam",
    "countryCode": "NL"
  }
}
```

### Liquid bulk terminal

Use `LIQUID_BULK_TERMINAL` for liquid cargo handled at tank farms, and specialized rail, road, or maritime facilities.

```json theme={null}
{
  "type": "HUB",
  "hubType": "LIQUID_BULK_TERMINAL",
  "location": {
    "type": "HARBOR",
    "unLoCode": "NOMON"
  }
}
```

### Maritime terminal

Use `MARITIME_TERMINAL` when a harbor handles cargo moving to or from a vessel.
This is the normal default for transitions involving `WATER`, except where liquid cargo - in which case `LIQUID_BULK_TERMINAL` is the default.

```json theme={null}
{
  "type": "HUB",
  "hubType": "MARITIME_TERMINAL",
  "location": {
    "type": "HARBOR",
    "unLoCode": "GBSHV"
  }
}
```

### No hub emissions

Use `NONE` when the location must remain as a transport operation boundary but no cargo-handling emissions should be applied.
For example, the location may represent an operational stop where the cargo remains on the same vehicle.

```json theme={null}
{
  "type": "HUB",
  "hubType": "NONE",
  "location": {
    "type": "PLACE",
    "address": "Jubitz Truck Stop, 10210 N Vancouver Way, Portland, OR 97217",
    "countryCode": "US"
  }
}
```

<Warning>
  `NONE` removes the hub emissions for that operation. Use it only when no qualifying freight handling occurs, or when hub emissions are intentionally excluded from the calculation.
</Warning>

***

## Hubs at the origin and destination

A logistics hub can be the first or last operation in a transport chain.
Add an endpoint `HUB` when the origin or destination represents an actual hub operation that you want to model,
such as handling at a warehouse, terminal, or distribution centre.

Do not add a `HUB` solely because the transport chain has an origin or destination.

For most calculations, the top-level `origin` and `destination` define the transport boundaries without adding hub emissions at those locations.

An endpoint hub may be appropriate when the transport service specifically includes activity at a warehouse, terminal, distribution centre, or another logistics facility.

When the first chain item is a hub, its `location` replaces the top-level `origin` as the start boundary. When the last chain item is a hub, its `location` replaces the top-level `destination` as the end boundary.

<Note>
  Storage and repacking emissions should only be included when they form part of the calculation scope.
  Their inclusion is optional under the Smart Freight Center GLEC Framework.
</Note>

For example, healthcare products are processed through the Worldport sorting operation and transferred to a nearby UPS Healthcare warehouse for temperature controlled storage and subsequent distribution.

```json theme={null}
{
  "cargo": {
    "category": "MANUFACTURED_PRODUCTS",
    "weight": {
      "value": 30,
      "unit": "KILOGRAM"
    },
    "climateControl": "REQUIRED"
  },
  "transportChain": [
    {
      "type": "HUB",
      "hubType": "WAREHOUSE",
      "location": {
        "type": "PLACE",
        "address": "UPS Worldport, 911 Grade Ln, Louisville, KY 40213",
        "countryCode": "US"
      }
    }, {
      "type": "ROAD"
    }, {
      "type": "HUB",
      "hubType": "WAREHOUSE",
      "location": {
        "type": "PLACE",
        "address": "UPS Healthcare, 6200 New Cut Rd, Louisville, KY 40214",
        "countryCode": "US"
      }
    }
  ]
}
```

This calculation includes warehouse activity at both endpoints and road transport between them.

<Frame caption="Origin and destination hubs at UPS Worldport and a nearby UPS Healthcare warehouse in Louisville">
  <img className="block dark:hidden" src="https://mintcdn.com/terratwin/0hbUXmLqgbSI5-VO/images/hubs/ups-worldport-to-ups-healthcare-light.png?fit=max&auto=format&n=0hbUXmLqgbSI5-VO&q=85&s=ca303629ed3319806025515b0277633a" width="901" height="781" data-path="images/hubs/ups-worldport-to-ups-healthcare-light.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/terratwin/0hbUXmLqgbSI5-VO/images/hubs/ups-worldport-to-ups-healthcare-dark.png?fit=max&auto=format&n=0hbUXmLqgbSI5-VO&q=85&s=1bbebc2acfc37ff0bd6bac8cd24cc0f8" width="901" height="781" data-path="images/hubs/ups-worldport-to-ups-healthcare-dark.png" />
</Frame>

<Note>
  Specify `hubType` explicitly for start and end hubs. Unlike an intermediate hub, an endpoint hub does not have both an incoming and outgoing transport mode from which a transition default can be selected.
</Note>

***

## Automatic hub insertion

By default, TerraTwin inserts logistics hub operations between consecutive transport operations in the calculated route.
This includes connector operations that TerraTwin adds within a requested leg.

For air transport, TerraTwin may generate additional flight segments when the aircraft’s range requires a stopover. A transshipment hub is automatically inserted at each stopover airport.

For example, consider cargo traveling from postcode `654-0161` in Kobe to postcode `15008` in Lima, Peru.
The cargo travels by road to Kobe Airport before continuing by air.
TerraTwin divides the air transport into two flight segments, with a stopover at Tijuana International Airport (`TIJ`), and inserts hub operations at the departure, stopover, and arrival airports.

```json theme={null}
{
  "cargo": {
    "weight": {
      "value": 30,
      "unit": "KILOGRAM"
    }
  },
  "origin": {
    "type": "PLACE",
    "postcode": "654-0161",
    "city": "Kobe",
    "countryCode": "JP"
  },
  "destination": {
    "type": "PLACE",
    "postcode": "15008",
    "city": "Lima",
    "countryCode": "PE"
  },
  "transportChain": [
    {
      "type": "AIR"
    }
  ]
}
```

<Steps>
  <Step title="Road to Kobe Airport">
    Cargo travels by truck from postcode `654-0161` in Kobe to Kobe Airport \[`UKB`].

    <Frame caption="`ROAD` transport to departure airport">
      <img className="block dark:hidden" src="https://mintcdn.com/terratwin/0hbUXmLqgbSI5-VO/images/hubs/yasakadai-to-kobe-airport-light.png?fit=max&auto=format&n=0hbUXmLqgbSI5-VO&q=85&s=a323f283dfe01de3cfb2869d1728766f" width="1154" height="661" data-path="images/hubs/yasakadai-to-kobe-airport-light.png" />

      <img className="hidden dark:block" src="https://mintcdn.com/terratwin/0hbUXmLqgbSI5-VO/images/hubs/yasakadai-to-kobe-airport-dark.png?fit=max&auto=format&n=0hbUXmLqgbSI5-VO&q=85&s=7909f4706fc321e1a3d813802f041472" width="1154" height="661" data-path="images/hubs/yasakadai-to-kobe-airport-dark.png" />
    </Frame>
  </Step>

  <Step title="Kobe Airport hub">
    TerraTwin inserts a hub between the road operation and the first flight segment.
  </Step>

  <Step title="Flight to Tijuana">
    Cargo travels by air from Kobe Airport \[`UKB`] to Tijuana International Airport \[`TIJ`].

    <Frame caption="`AIR` transport to stopover airport">
      <img className="block dark:hidden" src="https://mintcdn.com/terratwin/0hbUXmLqgbSI5-VO/images/hubs/kobe-to-tijuana-light.png?fit=max&auto=format&n=0hbUXmLqgbSI5-VO&q=85&s=4018bb71e302d9e58bd57f37d033afc0" width="740" height="511" data-path="images/hubs/kobe-to-tijuana-light.png" />

      <img className="hidden dark:block" src="https://mintcdn.com/terratwin/0hbUXmLqgbSI5-VO/images/hubs/kobe-to-tijuana-dark.png?fit=max&auto=format&n=0hbUXmLqgbSI5-VO&q=85&s=3e0dccf6bc2f47e0bd81e0ee1378d33f" width="740" height="511" data-path="images/hubs/kobe-to-tijuana-dark.png" />
    </Frame>
  </Step>

  <Step title="Tijuana stopover hub">
    TerraTwin inserts a transshipment hub at Tijuana International Airport \[`TIJ`] between the arriving and departing flight segments.
  </Step>

  <Step title="Flight to Lima">
    Cargo continues by air from Tijuana International Airport  \[`TIJ`] to Lima's Jorge Chávez International Airport \[`LIM`].

    <Frame caption="`AIR` transport from stopover airport">
      <img className="block dark:hidden" src="https://mintcdn.com/terratwin/0hbUXmLqgbSI5-VO/images/hubs/tijuana-to-lima-light.png?fit=max&auto=format&n=0hbUXmLqgbSI5-VO&q=85&s=ad5162581ef1aca28cf84d0aed0489a6" width="1382" height="726" data-path="images/hubs/tijuana-to-lima-light.png" />

      <img className="hidden dark:block" src="https://mintcdn.com/terratwin/0hbUXmLqgbSI5-VO/images/hubs/tijuana-to-lima-dark.png?fit=max&auto=format&n=0hbUXmLqgbSI5-VO&q=85&s=a3cd717d16fdec2bd7daa8a0468b1e05" width="1382" height="726" data-path="images/hubs/tijuana-to-lima-dark.png" />
    </Frame>
  </Step>

  <Step title="Lima airport hub">
    TerraTwin inserts a hub between the final flight segment and the last-mile road operation.
  </Step>

  <Step title="Road to the destination">
    Cargo travels by road from Jorge Chávez International Airport \[`LIM`] to postcode `15008` in Lima.

    <Frame caption="`ROAD` transport from arrival airport">
      <img className="block dark:hidden" src="https://mintcdn.com/terratwin/0hbUXmLqgbSI5-VO/images/hubs/lima-airport-to-santa-anita-light.png?fit=max&auto=format&n=0hbUXmLqgbSI5-VO&q=85&s=eef88b5330a38786edd60f71017c5b78" width="1277" height="580" data-path="images/hubs/lima-airport-to-santa-anita-light.png" />

      <img className="hidden dark:block" src="https://mintcdn.com/terratwin/0hbUXmLqgbSI5-VO/images/hubs/lima-airport-to-santa-anita-dark.png?fit=max&auto=format&n=0hbUXmLqgbSI5-VO&q=85&s=49a13a2bc4f2ee19c211f67041a6e7ce" width="1277" height="580" data-path="images/hubs/lima-airport-to-santa-anita-dark.png" />
    </Frame>
  </Step>
</Steps>

***

## Control automatic hub insertion

Use `options.hubInsertion` to control whether TerraTwin inserts hub operations automatically.

| Value                                                                      | Behavior                                                                                                                                               |
| -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <code className="whitespace-nowrap">AUTOMATIC\_ON\_ALL\_TRANSITIONS</code> | Default. Inserts a logistics hub between realized transport operations and selects a hub type from `defaultHubTypes` or the built-in transition rules. |
| <code className="whitespace-nowrap">MANUAL</code>                          | Disables automatic hub insertion. Only explicit hubs with an explicit emissions-generating `hubType` contribute hub emissions.                         |

Set the option to `MANUAL` when you want to define every emissions-generating hub yourself:

```json theme={null}
{
  "options": {
    "hubInsertion": "MANUAL"
  }
}
```

In manual mode:

* TerraTwin does not insert hubs automatically between transport operations, including first-mile and last-mile road connections or flight segments separated by a stopover.
* An explicit hub with a specified `hubType` still contributes hub emissions.
* An explicit hub without a `hubType` remains a location boundary, but does not contribute hub emissions.

<Warning>
  Manual insertion places responsibility for complete hub modelling on the request. Missing a transfer hub can understate emissions and reduce ISO 14083 compliance.
</Warning>

***

## Hub type defaults

Use `options.defaultHubTypes` to set the hub type for each incoming and outgoing mode combination when no `hubType` is specified. These defaults also apply to hubs that TerraTwin inserts automatically.

Each property name follows the pattern `<incomingMode>To<outgoingMode>`.

```json theme={null}
{
  "options": {
    "defaultHubTypes": {
      "roadToRoad": "WAREHOUSE",
      "roadToRail": "STORAGE_AND_TRANSSHIPMENT",
      "roadToWater": "MARITIME_TERMINAL",
      "airToRoad": "NONE"
    }
  }
}
```

These defaults apply when automatic insertion is enabled.

An explicitly supplied `hubType` on the hub takes precedence over `defaultHubTypes`.

### Supported mode transitions

| Property       | Incoming mode | Outgoing mode | Built-in default                                             |
| -------------- | ------------- | ------------- | ------------------------------------------------------------ |
| `airToAir`     | `AIR`         | `AIR`         | `TRANSSHIPMENT`                                              |
| `airToRail`    | `AIR`         | `RAIL`        | `TRANSSHIPMENT`                                              |
| `airToRoad`    | `AIR`         | `ROAD`        | `TRANSSHIPMENT`                                              |
| `airToWater`   | `AIR`         | `WATER`       | `MARITIME_TERMINAL`                                          |
| `railToAir`    | `RAIL`        | `AIR`         | `TRANSSHIPMENT`                                              |
| `railToRail`   | `RAIL`        | `RAIL`        | `TRANSSHIPMENT`; `LIQUID_BULK_TERMINAL` for liquid cargo     |
| `railToRoad`   | `RAIL`        | `ROAD`        | `TRANSSHIPMENT`; `LIQUID_BULK_TERMINAL` for liquid cargo     |
| `railToWater`  | `RAIL`        | `WATER`       | `MARITIME_TERMINAL`; `LIQUID_BULK_TERMINAL` for liquid cargo |
| `roadToAir`    | `ROAD`        | `AIR`         | `TRANSSHIPMENT`                                              |
| `roadToRail`   | `ROAD`        | `RAIL`        | `TRANSSHIPMENT`; `LIQUID_BULK_TERMINAL` for liquid cargo     |
| `roadToRoad`   | `ROAD`        | `ROAD`        | `TRANSSHIPMENT`; `LIQUID_BULK_TERMINAL` for liquid cargo     |
| `roadToWater`  | `ROAD`        | `WATER`       | `MARITIME_TERMINAL`; `LIQUID_BULK_TERMINAL` for liquid cargo |
| `waterToAir`   | `WATER`       | `AIR`         | `MARITIME_TERMINAL`                                          |
| `waterToRail`  | `WATER`       | `RAIL`        | `MARITIME_TERMINAL`; `LIQUID_BULK_TERMINAL` for liquid cargo |
| `waterToRoad`  | `WATER`       | `ROAD`        | `MARITIME_TERMINAL`; `LIQUID_BULK_TERMINAL` for liquid cargo |
| `waterToWater` | `WATER`       | `WATER`       | `MARITIME_TERMINAL`; `LIQUID_BULK_TERMINAL` for liquid cargo |

TerraTwin treats cargo categories representing liquids as liquid cargo for the conditional defaults in this table.

### Disable hub emissions by transition

Set any transition to `NONE` to exclude hub emissions for that incoming and outgoing mode combination.

```json theme={null}
{
  "options": {
    "defaultHubTypes": {
      "airToAir": "NONE"
    }
  }
}
```

This excludes hub emissions for `AIR` to `AIR` transitions while leaving automatic insertion enabled for all other transitions. Use this when an aircraft stops only to refuel and the cargo remains on board.

### Override a built-in default

Use any supported hub type as a transition default when your operating model differs from the built-in assumptions.

```json theme={null}
{
  "options": {
    "defaultHubTypes": {
      "roadToRoad": "WAREHOUSE",
      "railToRoad": "STORAGE_AND_TRANSSHIPMENT"
    }
  }
}
```

This is useful when a lane consistently passes through a distribution center or mixed storage facility rather than a simple transfer terminal.

### Weighted modes transitions

For a [`WEIGHTED_MODES`](/content/guides/weighted-modes-transport) operation, TerraTwin evaluates the possible incoming and outgoing child mode combinations.
It determines a default hub type for each combination, then uses the hub type with the highest emissions intensity.

Use an explicit `hubType` when the actual facility type is known and should not depend on the weighted alternatives.

***

## How a hub type is selected

For a hub between two transport operations, TerraTwin applies the following precedence:

<Steps>
  <Step title="Use the explicit hub type">
    If the `HUB` element contains `hubType`, TerraTwin uses that value.
  </Step>

  <Step title="Check manual insertion">
    If `hubType` is omitted and `options.hubInsertion` is `MANUAL`, no hub emissions are applied.
  </Step>

  <Step title="Use a configured transition default">
    If `options.defaultHubTypes` contains the matching incoming-to-outgoing mode property, TerraTwin uses that value.
  </Step>

  <Step title="Use the built-in default">
    Otherwise TerraTwin selects the type from the incoming mode, outgoing mode, and, for applicable transitions, whether the cargo is liquid.
  </Step>
</Steps>

<Note>
  `STORAGE_AND_TRANSSHIPMENT` and `WAREHOUSE` are not selected by the built-in transition rules. Supply them explicitly on the hub or configure them through `defaultHubTypes` when they represent the real facility.
</Note>

***

## Hub locations

A hub `location` uses the same schema as a top-level origin or destination.
Choose the location type that best represents the facility.

<Columns cols={2}>
  <Card title="General facility" icon="building">
    Use `PLACE` for warehouses, distribution centers, depots, and other sites identified by coordinates, address, postcode, or city.
  </Card>

  <Card title="Airport" icon="plane">
    Use `AIRPORT` for airport cargo terminals.
    Provide an `iataCode` when the airport is known.
  </Card>

  <Card title="Rail facility" icon="train">
    Use `RAIL_YARD` for rail terminals and network connection points.
    Identify a specific facility with coordinates or address information.
  </Card>

  <Card title="Harbor" icon="ship">
    Use `HARBOR` for maritime and liquid bulk terminals at ports.
    Provide a `unLoCode` when the harbor is known.
  </Card>
</Columns>

The `location.type` and `hubType` describe different things.
For example, a hub may use `location.type: "HARBOR"` to select the Port of Rotterdam and `hubType: "LIQUID_BULK_TERMINAL"` to select the facility activity and emissions intensity within that harbor.

```json theme={null}
{
  "type": "HUB",
  "hubType": "LIQUID_BULK_TERMINAL",
  "location": {
    "type": "HARBOR",
    "unLoCode": "NLRTM"
  }
}
```

See the [locations guide](/content/guides/locations) for all supported identifiers, geocoding behavior, and facility selection rules.

***

## Recommendations

<Steps>
  <Step title="Use explicit hubs for known transfer locations">
    Add a `HUB` between requested transport operations whenever you know where the cargo changes vehicle, mode, provider, or handling process.
  </Step>

  <Step title="Specify the actual facility type">
    Set `hubType` explicitly when the site is a warehouse, mixed storage facility, liquid bulk terminal, or another known category that differs from the built-in transition default.
  </Step>

  <Step title="Use transition overrides narrowly">
    Configure only the `defaultHubTypes` properties that differ from TerraTwin's built-in defaults. Use `NONE` only for transitions where no qualifying handling emissions occur.
  </Step>

  <Step title="Type endpoint hubs explicitly">
    When a hub at the start or end of the chain represents logistics activity included in the calculation, specify its `hubType`. TerraTwin does not assign a default hub type to endpoint hubs.
  </Step>
</Steps>
