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

# Column Type Reference

> Nextedy RISKSHEET columns are defined in the `columns` array of the sheet configuration (risksheet.json).

export const LastReviewed = ({date}) => {
  if (!date) return null;
  const formatted = new Date(`${date}T00:00:00Z`).toLocaleDateString("en-US", {
    year: "numeric",
    month: "long",
    day: "numeric",
    timeZone: "UTC"
  });
  return <p className="mt-10 text-sm text-gray-400 dark:text-zinc-500 not-prose">
      Last reviewed on {formatted}
    </p>;
};

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/yWl5nA2D0IzEnZC1/risksheet/diagrams/reference/columns/column-types/diagram-1.svg?fit=max&auto=format&n=yWl5nA2D0IzEnZC1&q=85&s=5fe1d55f41484ae48ebf316a21aebe91" alt="diagram" style={{ maxWidth: "750px", width: "100%" }} width="750" height="280" data-path="risksheet/diagrams/reference/columns/column-types/diagram-1.svg" />
</Frame>

Risksheet is a generic tool supporting any risk analysis methodology, including Failure Mode and Effects Analysis (FMEA), Hazard Analysis and Risk Assessment (HARA), Threat Analysis and Risk Assessment (TARA), STRIDE, and Common Vulnerability Scoring System (CVSS). The column system described here applies uniformly across these methodologies; Nextedy provides solution templates for typical use cases.

## Column Definition Properties

Every column in the `columns` array accepts the following properties:

| Property              | Type      | Default                                    | Description                                                                                                                                                                                                                                                                                                                |
| --------------------- | --------- | ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                  | `string`  | Auto-generated from `header` or `bindings` | Unique identifier for the column. Referenced by formulas, cell decorators, views, and `sortBy`.                                                                                                                                                                                                                            |
| `bindings`            | `string`  | Same as `id`                               | The Polarion work item field this column reads from and writes to. Supports direct, linked item, and Velocity-access patterns -- see [Binding Patterns](#binding-patterns).                                                                                                                                                |
| `header`              | `string`  | None                                       | Display text shown in the column header row.                                                                                                                                                                                                                                                                               |
| `type`                | `string`  | Auto-detected from Polarion field          | Data type identifier that controls editor, display, sorting, and data conversion. See [Supported Type Identifiers](#supported-type-identifiers).                                                                                                                                                                           |
| `width`               | `number`  | See application                            | Column width in pixels.                                                                                                                                                                                                                                                                                                    |
| `minWidth`            | `number`  | See application                            | Minimum width in pixels the column can be resized to.                                                                                                                                                                                                                                                                      |
| `level`               | `number`  | `1`                                        | Visual hierarchy level (1-indexed) for cell merging. `level: 1` maps to the first entry in the `levels` array, `level: 2` to the second, and so on. An unleveled risk-item column defaults to level 1 and merges into the first level. Task columns (bindings to `task.*`) are a separate axis and have no level assigned. |
| `readOnly`            | `boolean` | `false`                                    | Prevents editing. Automatically set to `true` for formula columns, server-rendered columns, and protected system fields. Upstream columns default to `true`. Since v25.2.0, an exception allows editing the title field when creating a new linked item from an itemLink column.                                           |
| `filterable`          | `boolean` | `true`                                     | Controls whether users can filter the grid by values in this column.                                                                                                                                                                                                                                                       |
| `canCreate`           | `boolean` | `true`                                     | For `itemLink`, `multiItemLink`, and `taskLink` columns only. Controls whether users can create new linked items directly from the cell.                                                                                                                                                                                   |
| `formula`             | `string`  | None                                       | References a named formula from the `formulas` section. When set, the column becomes read-only automatically. See [Calculated Columns](/risksheet/reference/columns/calculated-columns).                                                                                                                                   |
| `serverRender`        | `string`  | None                                       | Server-side Velocity rendering script. When set, the column becomes `text` type and read-only automatically. See [Server Render Columns](/risksheet/reference/columns/server-render-columns).                                                                                                                              |
| `headerGroup`         | `string`  | None                                       | Name of the header group this column belongs to. Columns with the same `headerGroup` value are displayed under a shared group header.                                                                                                                                                                                      |
| `headerGroupCss`      | `string`  | None                                       | CSS class name(s) applied to the header group row for this column's group.                                                                                                                                                                                                                                                 |
| `headerCss`           | `string`  | None                                       | CSS class name(s) applied to this column's header cell.                                                                                                                                                                                                                                                                    |
| `collapseTo`          | `boolean` | `false`                                    | When `true`, this column remains visible when its header group is collapsed.                                                                                                                                                                                                                                               |
| `cellRenderer`        | `string`  | None                                       | Name of a function defined in the `cellDecorators` section, used for custom cell rendering. See [Conditional Formatting](/risksheet/reference/styling/conditional-formatting).                                                                                                                                             |
| `cellCss`             | `string`  | None                                       | CSS class name(s) applied to every cell in this column.                                                                                                                                                                                                                                                                    |
| `format`              | `string`  | None                                       | Display format string for numeric or date data (e.g., `n2`, `c`, `d`, `yyyy-MM-dd`).                                                                                                                                                                                                                                       |
| `showEnumDescription` | `boolean` | `false`                                    | For `enum` and `multiEnum` columns. When `true`, the column displays the enum description alongside the enum ID rather than the ID alone.                                                                                                                                                                                  |

<Warning title="Auto-Read-Only Conditions">
  The `readOnly` property is automatically set to `true` regardless of your configuration when any of these conditions apply: the column has a `formula`, the column has a `serverRender` script, the column references a cross-project item, the bound field is a protected system field (`id`, `status`, `type`, `project`, `outlineNumber`), or the user lacks write permission to the field. Since v25.2.0, the title field of a newly created linked item is exempted to allow inline naming.
</Warning>

<Note title="Text Wrapping and HTML Content">
  Text wrapping and HTML rendering are not controlled by column-level boolean flags. Wrap behavior is configured through CSS classes defined in the `styles` section and applied via `cellCss`. HTML content is produced either by the column type system or by a `serverRender` Velocity template -- there is no per-column toggle.
</Note>

## Supported Type Identifiers

The `type` property accepts the following identifiers. Types that use the colon syntax (e.g., `enum:severity`) carry the ID of a Polarion enumeration after the type prefix.

| Type                 | Description                       | Editor            | Notes                                                                                                        |
| -------------------- | --------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------ |
| `text`               | Plain text / rich text (stripped) | Text input        | Rich text is converted to plain text. Default for unrecognized types.                                        |
| `string`             | Alias for `text`                  | Text input        | Same behavior as `text`.                                                                                     |
| `int`                | Integer number                    | Numeric input     | 64-bit signed integer.                                                                                       |
| `float`              | Floating-point number             | Numeric input     | Double precision.                                                                                            |
| `boolean`            | True/false value                  | Checkbox          | Accepts string `"true"` / `"false"`.                                                                         |
| `date`               | Date only                         | Date picker       | Format: `yyyy-MM-dd`.                                                                                        |
| `datetime`           | Date and time                     | DateTime picker   | Full timestamp with timezone.                                                                                |
| `time`               | Time only                         | Time picker       | Format: `hh:mm:ss`.                                                                                          |
| `currency`           | Decimal currency                  | Numeric input     | BigDecimal precision.                                                                                        |
| `duration`           | Time span                         | Text input        | Polarion DurationTime format.                                                                                |
| `rating:<enumId>`    | Rating scale value                | Dropdown          | Scale values come from the referenced Polarion enumeration.                                                  |
| `enum:<enumId>`      | Single enum selection             | Dropdown          | Values come from the referenced Polarion enumeration.                                                        |
| `multiEnum:<enumId>` | Multi-enum selection              | Multi-select      | Values come from the referenced Polarion enumeration.                                                        |
| `itemLink`           | Single linked item                | Link picker       | Upstream traceability. See [Item Link Columns](/risksheet/reference/columns/item-link-columns).              |
| `multiItemLink`      | Multiple linked items             | Multi-link picker | Multiple upstream links.                                                                                     |
| `taskLink`           | Downstream task link              | Link picker       | Downstream mitigation/action tasks. See [Task Link Columns](/risksheet/reference/columns/task-link-columns). |
| `subSheet`           | Embedded subsheet link            | Link picker       | Hierarchical navigation to a child risksheet document.                                                       |

<Tip title="Type Auto-Detection">
  When you omit the `type` property, Risksheet infers the type from the bound Polarion field. For example, a field defined as an integer in Polarion automatically becomes an `int` column, and a native enum field becomes an `enum` column. Explicitly setting `type` overrides this inference.
</Tip>

<Note title="Workflow Status Display">
  Workflow status is displayed by binding a column to the `status` field of the work item. There is no dedicated workflow column type -- standard bindings to status fields render the workflow state using Polarion's native presentation.
</Note>

## Binding Patterns

The `bindings` property supports three patterns that determine which value the column reads and writes:

| Pattern              | Example                    | Description                                                                                                                                                                                                          |
| -------------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `fieldId`            | `bindings: severityRating` | Direct field on the row's work item (risk item or task item). Cells are editable unless other rules force read-only.                                                                                                 |
| `linkedItem.fieldId` | `bindings: harm.title`     | Field on a linked work item (e.g., an upstream harm). The cell displays the linked item's value and is read-only.                                                                                                    |
| `linkedItem.$item`   | `bindings: task.$item`     | The entire linked work item object, exposed to a Velocity template via `serverRender`. Use the `$item` suffix when the column needs custom rendering that traverses the linked item's fields, attachments, or links. |

The direct pattern is the most common. Use `linkedItem.fieldId` to surface upstream context (such as the title of a linked requirement) without writing a custom renderer. Use `linkedItem.$item` together with `serverRender` for complex rendering that combines multiple linked-item properties.

## Colon Syntax for Parameterized Types

Several column types support a colon-separated syntax: `baseType:parameter`. The parameter is the ID of a Polarion enumeration administered in **Administration > Enumerations**. Risksheet loads the enumeration values from Polarion at runtime; there is no separate definition section in the sheet configuration.

| Syntax Pattern                   | Base Type   | Parameter                                 |
| -------------------------------- | ----------- | ----------------------------------------- |
| `enum:severity`                  | `enum`      | Polarion enumeration `severity`           |
| `rating:occurrence`              | `rating`    | Polarion enumeration `occurrence`         |
| `multiEnum:affectedSystems`      | `multiEnum` | Polarion enumeration `affectedSystems`    |
| `multiEnum:@NoIDWorkItems[type]` | `multiEnum` | WorkItem enum from Polarion configuration |

The type parser extracts the prefix before the first colon to determine the base data type, then passes the remainder as the enumeration reference.

## Column Sorting Behavior

Risksheet applies specialized sorting logic based on column type and bindings. Sorting is performed client-side for immediate feedback without server round-trips.

| Column Type / Bindings                      | Sorting Behavior                                                 |
| ------------------------------------------- | ---------------------------------------------------------------- |
| `id` bindings                               | Custom alphanumeric sort (e.g., `PROJECT-2` before `PROJECT-10`) |
| `outlineNumber` bindings                    | Hierarchical sort (e.g., `1.2` before `1.10`)                    |
| `itemLink`, `taskLink`                      | Sorted by linked item's display property                         |
| `multiItemLink`                             | Sorted by concatenated labels of all linked items                |
| Linked item bindings (`linkedItem.fieldId`) | Sorted by the linked item's property value                       |
| Default (all other types)                   | Standard ascending/descending sort                               |

Configuring initial sort order uses the `sortBy` property:

```yaml theme={null}
sortBy:
  - ~rpn
  - sev
```

This sorts by RPN descending (tilde prefix `~` indicates descending), then by severity ascending.

<Note title="Baseline Comparison Sorting">
  When comparing to a baseline revision, sorting operates on the baseline snapshot values rather than current values, except for `systemItemId` and `systemItemRevision` which always reference the current item.
</Note>

## Known Limitations

| Limitation                        | Details                                                                                                         |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| First ID column cannot be renamed | The first `Item Id` column in the grid cannot have its header renamed. This is a known platform limitation.     |
| Single-user assignment only       | User reference columns support single-user assignment. Multi-user assignment requires the Polarion native form. |
| Unsaved item sort prefix          | Newly created items not yet saved display with an asterisk (`*`) prefix in their ID, which affects sort order.  |

## Column Configuration Examples

Examples use YAML, matching the editing experience in the configuration editor (v25.5.0+ supports YAML editing with syntax highlighting, error detection, and edit history).

### Basic Text Column

```yaml theme={null}
- id: failureMode
  bindings: title
  header: Failure Mode
  type: text
  width: 250
  level: 1
```

### Rating Column with Scale

```yaml theme={null}
- id: sev
  bindings: sev
  header: Severity (S)
  type: rating:severity
  width: 80
  level: 2
```

### Calculated RPN Column

```yaml theme={null}
- id: rpn
  bindings: rpn
  header: RPN
  type: int
  width: 70
  formula: commonRpn
  level: 2
```

The formula `commonRpn` is defined in the `formulas` section:

```yaml theme={null}
formulas:
  commonRpn: "function(info){ var value = info.item['occ']*info.item['det']*info.item['sev']; return value?value:null;}"
```

### Grouped Columns with Header

```yaml theme={null}
- id: sev
  bindings: sev
  header: Severity (S)
  type: rating:severity
  headerGroup: Initial Risk Assessment
  width: 80
  level: 2
- id: occ
  bindings: occ
  header: Occurrence (O)
  type: rating:occurrence
  headerGroup: Initial Risk Assessment
  width: 80
  level: 2
- id: det
  bindings: det
  header: Detection (D)
  type: rating:detection
  headerGroup: Initial Risk Assessment
  width: 80
  level: 2
- id: rpn
  bindings: rpn
  header: RPN
  type: int
  headerGroup: Initial Risk Assessment
  width: 70
  formula: commonRpn
  level: 2
```

### Upstream Traceability Column

```yaml theme={null}
- id: requirement
  bindings: requirement
  header: Linked Requirement
  type: itemLink
  width: 200
  canCreate: false
  level: 1
```

### Linked-Item Display Column

Displays the title of an upstream harm without a custom renderer. Read-only because it is a linked-item field.

```yaml theme={null}
- id: harmTitle
  bindings: harm.title
  header: Harm
  type: text
  width: 200
  level: 1
```

### Server-Rendered Column

```yaml theme={null}
- id: testStatus
  bindings: task.$item
  header: Test Status
  serverRender: testStatusRenderer
  width: 150
  level: 2
```

When `serverRender` is set, the column type is automatically forced to `text` and `readOnly` to `true`. The `task.$item` bindings pattern gives the Velocity template access to the linked task work item.

### Column That Survives Group Collapse

```yaml theme={null}
- id: rpn
  bindings: rpn
  header: RPN
  type: int
  headerGroup: Initial Risk Assessment
  collapseTo: true
  formula: commonRpn
  width: 70
  level: 2
```

When the **Initial Risk Assessment** header group is collapsed, the `rpn` column remains visible because `collapseTo` is `true`.

## Complete Example

A full `columns` array for an automotive FMEA risksheet with initial assessment, mitigation actions, and revised assessment:

```yaml theme={null}
columns:
  - id: failureMode
    bindings: title
    header: Failure Mode
    type: text
    width: 220
    level: 1
  - id: effect
    bindings: effect
    header: Effect of Failure
    type: text
    width: 200
    level: 2
  - id: cause
    bindings: cause
    header: Potential Cause
    type: text
    width: 200
    level: 2
  - id: sev
    bindings: sev
    header: S
    type: rating:severity
    headerGroup: Initial
    width: 60
    level: 2
  - id: occ
    bindings: occ
    header: O
    type: rating:occurrence
    headerGroup: Initial
    width: 60
    level: 2
  - id: det
    bindings: det
    header: D
    type: rating:detection
    headerGroup: Initial
    width: 60
    level: 2
  - id: rpn
    bindings: rpn
    header: RPN
    type: int
    headerGroup: Initial
    formula: commonRpn
    width: 65
    level: 2
  - id: mitigationAction
    bindings: mitigationAction
    header: Recommended Action
    type: text
    width: 200
    level: 2
  - id: dueDate
    bindings: dueDate
    header: Due Date
    type: date
    width: 110
    level: 2
  - id: sevNew
    bindings: sevNew
    header: S
    type: rating:severity
    headerGroup: Revised
    width: 60
    level: 2
  - id: occNew
    bindings: occNew
    header: O
    type: rating:occurrence
    headerGroup: Revised
    width: 60
    level: 2
  - id: detNew
    bindings: detNew
    header: D
    type: rating:detection
    headerGroup: Revised
    width: 60
    level: 2
  - id: rpnNew
    bindings: rpnNew
    header: RPN
    type: int
    headerGroup: Revised
    formula: commonRpnNew
    width: 65
    level: 2
formulas:
  commonRpn: "function(info){ var value = info.item['occ']*info.item['det']*info.item['sev']; return value?value:null;}"
  commonRpnNew: "function(info){ var value = info.item['occNew']*info.item['detNew']*info.item['sevNew']; return value?value:null;}"
```

## Related Pages

* [Data Types](/risksheet/reference/columns/data-types) -- detailed type behavior and storage
* [Enum Columns](/risksheet/reference/columns/enum-columns) -- enum and rating column configuration
* [Multi-Enum Columns](/risksheet/reference/columns/multi-enum-columns) -- multi-select dropdown setup
* [Item Link Columns](/risksheet/reference/columns/item-link-columns) -- upstream traceability columns
* [Task Link Columns](/risksheet/reference/columns/task-link-columns) -- downstream task link columns
* [Calculated Columns](/risksheet/reference/columns/calculated-columns) -- formula-based columns
* [Server Render Columns](/risksheet/reference/columns/server-render-columns) -- server-side rendered columns
* [Conditional Formatting](/risksheet/reference/styling/conditional-formatting) -- cell decorators and styles
* [Sheet Configuration Format](/risksheet/reference/configuration/risksheet-json-format) -- full configuration format
* [Configuration Properties Index](/risksheet/reference/configuration/properties-index) -- all property reference

<LastReviewed date="2026-06-24" />
