> For the complete documentation index, see [llms.txt](https://docs.rootcause.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rootcause.ai/more-details/applications/application-modules/trainmodel.md).

# Train Model

> Train a new Digital Twin model from data.

Trains a digital twin from a frame and emits the version it produced.

Durable and long-running — a large panel trains for hours — so its start-to-close ceiling is set by the longest honest run rather than a minute-scale default. `experimentMode` trains against `baseDigitalTwinId` under `experimentLabel` without moving the twin's live version.

## At a glance

|                          |                        |
| ------------------------ | ---------------------- |
| Module type              | `TrainModel`           |
| Category                 | Intelligence           |
| Default tier             | `durable`              |
| Runs on                  | `reactive`, `durable`  |
| Starts a flow            | no                     |
| Holds a body             | no                     |
| Keeps state between runs | no                     |
| Available in             | every application type |

## Parameters

### `digitalTwinId`

`string` · optional

The twin to train.

### `digitalTwinName`

`string` · optional

Its name when it was chosen, for the node's label.

### `digitalTwinVersionId`

`string` · optional

The version this module last produced.

### `dataViewId`

`string` · optional

Train from a saved data view rather than the `data` port.

### `trainConfig`

`Record<string, unknown>` · optional

Training options passed through to the pipeline.

### `experimentMode`

`boolean` · optional

Train as an experiment off `baseDigitalTwinId` without moving the twin's live version.

### `baseDigitalTwinId`

`string` · optional

The twin an experiment branches from.

### `experimentLabel`

`string` · optional

What to call the experiment.

## Inputs

| Port   | Kind        | Required | Description                                                                                                                           |
| ------ | ----------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `on`   | `event`     | no       | Implicit on every module that does not itself start a flow: wire an event here to make this module the start of what that event runs. |
| `data` | `dataframe` | yes      | The rows to train on.                                                                                                                 |

## Outputs

| Port    | Kind     | Connects to                | Description                                                            |
| ------- | -------- | -------------------------- | ---------------------------------------------------------------------- |
| `model` | `json`   | `json`, `scalar`, `signal` | The twin version this run produced, resolvable by anything downstream. |
| `done`  | `signal` | `signal`                   | Fires once training has committed.                                     |

***

[← All application modules](/more-details/applications/application-modules.md)
