> ## 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.

# Data Types

> Nextedy RISKSHEET columns support a range of data types that control how values are stored, displayed, edited, and exported.

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>;
};

This reference covers every supported column data type, its storage format, display behavior, and how it relates to Polarion field types.

| Risksheet column type      | Polarion field                          |
| -------------------------- | --------------------------------------- |
| `type: text`               | String / Text                           |
| `type: int`                | Integer                                 |
| `type: float`              | Float                                   |
| `type: boolean`            | Boolean                                 |
| `type: date`               | Date / DateOnly                         |
| `type: datetime`           | Date                                    |
| `type: time`               | Date / TimeOnly                         |
| `type: currency`           | Currency / BigDecimal                   |
| `type: rating:<enumId>`    | Integer (bound to Polarion enumeration) |
| `type: duration`           | DurationTime                            |
| `type: enum:<enumId>`      | Enum Option                             |
| `type: multiEnum:<enumId>` | List of Enum Options                    |

## Real Column Type Identifiers

The following column type identifiers exist in the Risksheet engine:

* `text` (default)
* `int`
* `float`
* `boolean`
* `date`
* `datetime`
* `time`
* `currency`
* `duration`
* `rating:<enumId>`
* `enum:<enumId>`
* `multiEnum:<enumId>`
* `taskLink`
* `multiItemLink`
* `itemLink`
* `subSheet`

Workflow status data is displayed via standard `bindings` to status fields — there is no dedicated `workflow` column type.

## Data Type Summary

| Type identifier      | Storage precision       | Editable | Notes                                                 |
| -------------------- | ----------------------- | -------- | ----------------------------------------------------- |
| `text`               | Unlimited string        | Yes      | Rich text converted to plain text for display         |
| `int`                | 64-bit integer          | Yes      | Interchangeable with `rating` at the storage level    |
| `float`              | Double precision        | Yes      | Standard floating-point                               |
| `boolean`            | True/False              | Yes      | Renders as checkbox                                   |
| `date`               | Date only               | Yes      | Format: `yyyy-MM-dd`                                  |
| `datetime`           | Date and time           | Yes      | Full timestamp with timezone                          |
| `time`               | Time only               | Yes      | Format: `hh:mm:ss`                                    |
| `currency`           | BigDecimal              | Yes      | Full decimal precision for financial data             |
| `rating:<enumId>`    | 32-bit integer          | Yes      | Bound to a Polarion enumeration; used for risk scales |
| `duration`           | String-encoded          | Yes      | Polarion DurationTime format                          |
| `enum:<enumId>`      | Enum option ID          | Yes      | Single selection from a Polarion enumeration          |
| `multiEnum:<enumId>` | List of enum option IDs | Yes      | Multiple selection from a Polarion enumeration        |

<Tip title="Automatic Type Detection">
  When you omit the `type` property on a column, Risksheet infers the type from the Polarion field's native type. Explicitly setting `type` allows you to override the display behavior — for example, displaying a string field as a date column or an integer field as an enum.
</Tip>

## Text Type

The `text` type displays string and rich text content. Rich text fields from Polarion are automatically converted to plain text for grid display. Links embedded in content are processed for proper rendering.

| Property           | Value                                           |
| ------------------ | ----------------------------------------------- |
| Type identifier    | `text`                                          |
| Default for        | Polarion `String` and `Text` fields             |
| Fallback type      | Any unrecognized column type defaults to `text` |
| Rich text handling | Stripped to plain text; links auto-processed    |

Text wrapping and multi-line presentation are controlled via CSS classes defined in the configuration's `styles` section and applied through `cellCss` or `cellDecorators` — not through column-level properties.

```yaml theme={null}
columns:
  - id: description
    bindings: description
    header: Description
    type: text
    width: 300
```

<Note title="Default Type Fallback">
  Any column type not explicitly recognized by Risksheet defaults to text. This provides graceful degradation for custom or future column types and means that mistyping a type identifier will not cause errors — the column will simply render as a plain text field.
</Note>

## Integer Type

The `int` type stores whole numbers as 64-bit integers. It is functionally interchangeable with the `rating` type at the storage level, though `rating` is semantically intended for risk assessment scales bound to Polarion enumerations.

| Property             | Value                                                     |
| -------------------- | --------------------------------------------------------- |
| Type identifier      | `int`                                                     |
| Precision            | 64-bit signed integer                                     |
| Interchangeable with | `rating`                                                  |
| String parsing       | Converts string representations to integers automatically |
| Backing fields       | Polarion Integer, String (auto-parsed), Float (truncated) |

```yaml theme={null}
columns:
  - id: priority
    bindings: priority
    header: Priority
    type: int
    width: 80
```

<Tip title="Integer vs. Rating">
  Use `int` for general-purpose numeric fields like priority, count, or sequence number. Use `rating:<enumId>` when the column represents a risk assessment parameter (severity, occurrence, detection) bound to a Polarion enumeration defining the scale.
</Tip>

## Float Type

The `float` type stores decimal numbers using double-precision floating-point representation. It handles conversion between numeric types and parses string representations automatically.

| Property        | Value                                             |
| --------------- | ------------------------------------------------- |
| Type identifier | `float`                                           |
| Precision       | IEEE 754 double precision                         |
| String parsing  | Converts string representations to floating-point |
| Backing fields  | Polarion Float, Integer, String (auto-parsed)     |

```yaml theme={null}
columns:
  - id: riskScore
    bindings: riskScore
    header: Risk Score
    type: float
    width: 100
```

## Boolean Type

The `boolean` type handles true/false values with automatic conversion between string representations (`"true"` / `"false"`) and native Boolean objects. In the grid, boolean columns render as checkboxes.

| Property          | Value                                   |
| ----------------- | --------------------------------------- |
| Type identifier   | `boolean`                               |
| Display           | Checkbox                                |
| String conversion | `"true"` and `"false"` strings accepted |
| Null handling     | Null values display as unchecked        |

```yaml theme={null}
columns:
  - id: mitigated
    bindings: mitigated
    header: Mitigated
    type: boolean
    width: 80
```

## Date Type

The `date` type stores date-only values without a time component. Values are formatted in ISO 8601 format (`yyyy-MM-dd`). The system automatically converts between Polarion Date types, Java Date/Calendar objects, and ISO string representations.

| Property            | Value                                                      |
| ------------------- | ---------------------------------------------------------- |
| Type identifier     | `date`                                                     |
| Format              | `yyyy-MM-dd`                                               |
| Time component      | None (date only)                                           |
| Conversion          | Handles Polarion Date, Java Date/Calendar, and ISO strings |
| Culture sensitivity | Display format affected by `global.culture` setting        |

```yaml theme={null}
columns:
  - id: dueDate
    bindings: dueDate
    header: Due Date
    type: date
    width: 120
```

## DateTime Type

The `datetime` type stores a full timestamp including both date and time components with timezone offset. Use this type when you need to capture both the date and the time of day.

| Property            | Value                                                      |
| ------------------- | ---------------------------------------------------------- |
| Type identifier     | `datetime`                                                 |
| Format              | Full date-time with timezone offset                        |
| Conversion          | Handles Polarion Date, Java Date/Calendar, and ISO strings |
| Culture sensitivity | Display format affected by `global.culture` setting        |

```yaml theme={null}
columns:
  - id: lastModified
    bindings: updated
    header: Last Modified
    type: datetime
    width: 160
    readOnly: true
```

## Time Type

The `time` type stores time-only values without a date component. Values display in `hh:mm:ss` format.

| Property        | Value                                                      |
| --------------- | ---------------------------------------------------------- |
| Type identifier | `time`                                                     |
| Format          | `hh:mm:ss`                                                 |
| Date component  | None (time only)                                           |
| Conversion      | Handles Polarion Date, Java Date/Calendar, and ISO strings |

```yaml theme={null}
columns:
  - id: analysisTime
    bindings: analysisTime
    header: Analysis Time
    type: time
    width: 100
```

## Currency Type

The `currency` type uses BigDecimal precision for financial data, wrapping values in Polarion's Currency type for accurate decimal calculations without floating-point rounding errors.

| Property         | Value                                             |
| ---------------- | ------------------------------------------------- |
| Type identifier  | `currency`                                        |
| Precision        | BigDecimal (arbitrary precision)                  |
| Polarion storage | Currency type wrapper                             |
| Conversion       | Handles numeric values and string representations |
| Use case         | Cost tracking, financial risk quantification      |

```yaml theme={null}
columns:
  - id: mitigationCost
    bindings: mitigationCost
    header: Mitigation Cost ($)
    type: currency
    width: 120
```

<Tip title="Currency vs. Float">
  Use `currency` when exact decimal precision matters (financial data, cost tracking). Use `float` for general-purpose decimal values where minor floating-point rounding is acceptable (risk scores, percentages).
</Tip>

## Rating Type

The `rating:<enumId>` type is semantically designed for risk assessment scales such as severity, occurrence, and detection ratings. It is functionally similar to `int` at the storage level, but it is bound to a Polarion enumeration that defines the available scale values.

| Property             | Value                                                      |
| -------------------- | ---------------------------------------------------------- |
| Type identifier      | `rating:<enumId>`                                          |
| Precision            | 32-bit signed integer                                      |
| Interchangeable with | `int`                                                      |
| Typical use          | Risk parameter scales (1-10, 1-5) per ISO 26262, ISO 14971 |
| Colon syntax         | References a Polarion enumeration by ID                    |

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

### How Rating Scales Are Defined

Rating scales are **not** declared inside the sheet configuration. They are real Polarion enumerations:

1. **Define the enumeration** in Polarion Administration → Enumerations (for example, an enum named `severity-scale` with options `1 — Negligible`, `2 — Minor`, `3 — Moderate`, `4 — Significant`, `5 — Catastrophic`).
2. **Create a custom field** on the risk work item type that is bound to that enumeration.
3. **Reference it from the column** using `type: rating:<enumId>` and `bindings: <fieldId>`.

The server loads the enumeration values automatically when rendering the column. There is no top-level `ratings` section in the sheet configuration.

See [Enum Columns](/risksheet/reference/columns/enum-columns) for detailed enumeration setup and binding patterns.

## Duration Type

The `duration` type handles time span values. Duration values can be backed by Polarion's DurationTime type, or stored as numeric values (integers or floats) representing duration units.

| Property        | Value                                  |
| --------------- | -------------------------------------- |
| Type identifier | `duration`                             |
| Storage         | String-encoded Polarion DurationTime   |
| Backing fields  | DurationTime, Integer, or Float fields |
| Parsing         | Uses Polarion's DurationTime format    |
| Example values  | `"1d 4h"`, `"2h 30m"`                  |

```yaml theme={null}
columns:
  - id: effortEstimate
    bindings: effortEstimate
    header: Effort Estimate
    type: duration
    width: 120
```

## Enum Type

The `enum:<enumId>` type displays single-selection enumeration fields. Enums are defined in Polarion Administration → Enumerations and referenced from the column type. The system uses enum option IDs for most fields, with the exception of the `status` field which displays the human-readable enum name.

| Property        | Value                                             |
| --------------- | ------------------------------------------------- |
| Type identifier | `enum:<enumId>`                                   |
| Selection       | Single value                                      |
| Display         | Enum option ID (name for `status` field only)     |
| Colon syntax    | `enum:<enumId>` references a Polarion enumeration |
| Backing fields  | Native enum, string, or integer Polarion fields   |

```yaml theme={null}
columns:
  - id: riskCategory
    bindings: riskCategory
    header: Risk Category
    type: enum:riskCategory
    width: 140
```

The enumeration values themselves live in Polarion Administration, not in the sheet configuration. The sheet configuration only references the enumeration by ID via the `type` property.

For complete enum configuration including dependent enums and icon display, see [Enum Columns](/risksheet/reference/columns/enum-columns).

## Multi-Enum Type

The `multiEnum:<enumId>` type allows selecting multiple enumeration values from a dropdown. It works with native Polarion multi-enum List fields as well as string fields containing comma-separated enum IDs. Blank options are automatically filtered out.

| Property        | Value                                                    |
| --------------- | -------------------------------------------------------- |
| Type identifier | `multiEnum:<enumId>`                                     |
| Selection       | Multiple values                                          |
| Colon syntax    | `multiEnum:<enumId>` references a Polarion enumeration   |
| Backing fields  | Polarion List of enum options or comma-separated strings |
| Blank handling  | Blank options automatically filtered out                 |

```yaml theme={null}
columns:
  - id: affectedSystems
    bindings: affectedSystems
    header: Affected Systems
    type: multiEnum:affectedSystems
    width: 200
```

<Note title="WorkItem Enum Fields">
  WorkItem enum fields require specific type syntax matching the XML custom field definition. For example, `type: multiEnum:@NoIDWorkItems[workpackage]` references a WorkItem enum with a specific configuration. Upstream and downstream WorkItem enum fields have limited support compared to row item properties.
</Note>

For multi-select enum configuration details, see [Multi-Enum Columns](/risksheet/reference/columns/multi-enum-columns).

## Type Prefix and Colon Syntax

Risksheet column types support a colon-separated syntax where the portion before the first colon identifies the base type, and the portion after carries additional configuration parameters. This is how `enum`, `rating`, and `multiEnum` columns reference their backing Polarion enumeration.

| Pattern                          | Base type   | Parameter              | Purpose                                               |
| -------------------------------- | ----------- | ---------------------- | ----------------------------------------------------- |
| `enum:severity`                  | `enum`      | `severity`             | References the `severity` Polarion enumeration        |
| `rating:occurrence`              | `rating`    | `occurrence`           | References the `occurrence` Polarion enumeration      |
| `multiEnum:affectedSystems`      | `multiEnum` | `affectedSystems`      | References the `affectedSystems` Polarion enumeration |
| `multiEnum:@NoIDWorkItems[type]` | `multiEnum` | `@NoIDWorkItems[type]` | References a WorkItem enum field                      |

The type parser extracts the prefix before the first colon to determine the base data type, then passes the remainder as configuration context. This means `enum:severity` and `enum:riskCategory` are both `enum` base type columns but reference different Polarion enumerations.

```yaml theme={null}
columns:
  - id: sev
    bindings: severityRating
    header: Severity (S)
    type: rating:severity-scale
  - id: occ
    bindings: occurrenceRating
    header: Occurrence (O)
    type: rating:occurrence-scale
  - id: det
    bindings: detectionRating
    header: Detection (D)
    type: rating:detection-scale
```

The actual scale values (1 — Negligible, 2 — Minor, etc.) live in Polarion Administration → Enumerations. The sheet configuration only references them.

## User Reference Type

User reference columns have special handling for Polarion user assignment fields. Read-only user columns display the user ID as a string. Editable user columns manage the work item's assignees collection, supporting single-user assignment.

| Property          | Value                                            |
| ----------------- | ------------------------------------------------ |
| Type identifier   | `ref:user` (auto-detected for user-bound fields) |
| Read-only display | User ID as string                                |
| Editable behavior | Clears all assignees, adds specified user        |
| Assignment limit  | Single-user assignment only                      |

When set explicitly, use the parameterized type `ref:user`, and place `userRole` inside a `typeProperties` block:

```yaml theme={null}
columns:
  - id: riskOwner
    bindings: assignee
    header: Risk Owner
    type: ref:user
    typeProperties:
      userRole: project_assignable
```

<Warning title="Single Assignment Only">
  Editable user reference columns clear all existing assignees and add the specified user. Only single-user assignment is supported through the Risksheet grid interface. If you need multi-user assignment, manage assignees through the Polarion native work item form.
</Warning>

<Warning title="Do not use bare `type: ref`">
  Use **`type: "ref:user"`** for user reference columns. A bare `type: "ref"` is invalid and breaks the document load in current versions. The `userRole` property must live inside `typeProperties`, not at the column top level.
</Warning>

## Read-Only System Fields

Certain Polarion system fields are always read-only regardless of column configuration. Risksheet silently ignores save attempts to these protected fields.

| System field    | Read-only reason                          |
| --------------- | ----------------------------------------- |
| `id`            | Work item identity — cannot be changed    |
| `status`        | Controlled by workflow transitions        |
| `type`          | Work item type — immutable after creation |
| `project`       | Project assignment — immutable            |
| `outlineNumber` | Document structure — managed by Polarion  |
| `author`        | Auto-set by configuration manager         |
| `resolution`    | Auto-set by configuration manager         |
| `created`       | Timestamp — auto-set at creation          |
| `updated`       | Timestamp — auto-set on modification      |

Columns also become automatically read-only when:

* The `formula` property is set (calculated columns)
* The `serverRender` property is set (server-rendered columns)
* The column references a cross-project item (reference columns)
* User permissions deny modification of the bound field

See [System Fields](/risksheet/reference/fields/system-fields) for the complete list of system-level bindings.

## Task Data Type (`dataTypes.task`)

The `dataTypes.task` section defines the downstream linked work items used by `taskLink`, `multiItemLink`, and `itemLink` columns. Verified properties:

| Property                  | Description                                                                                                                 |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `type`                    | Polarion work item type ID. Since v25.3.1, accepts a comma-separated list for multiple downstream types                     |
| `role`                    | Link role connecting risk items to task items (e.g. `mitigates`)                                                            |
| `name`                    | Display name in the toolbar and creation menus (e.g. `Task`, `Safety Requirement`)                                          |
| `zoomColumn`              | Column ID used as the zoom target after a new task is created                                                               |
| `document`                | Restricts loaded task items to a specific LiveDoc path (e.g. `Risks/FHA-SYS-001`)                                           |
| `project`                 | Single project ID for task items                                                                                            |
| `projects`                | Array of project IDs for multi-project task loading (v23.7.0+)                                                              |
| `query`                   | Lucene query for additional task filtering                                                                                  |
| `createInCurrentDocument` | Boolean — when true, new tasks are created in the current document                                                          |
| `createInDocument`        | Target document path for new task creation (v24.8.1+)                                                                       |
| `canCreate`               | Boolean — globally disables task creation when false (default: true)                                                        |
| `linkToRisksheet`         | Boolean — when true, the task link column becomes a clickable hyperlink to the downstream risksheet specified by `document` |

```yaml theme={null}
dataTypes:
  task:
    type: safetyRequirement
    role: mitigates
    name: Safety Requirement
    zoomColumn: title
    document: Risks/FHA-SYS-001
    canCreate: true
    linkToRisksheet: true
```

### `canCreate` Operates at Two Levels

The `canCreate` flag controls inline task creation at two independent scopes:

1. **Column level** — `canCreate` on an individual `taskLink`, `multiItemLink`, or `itemLink` column controls whether inline creation is available from that specific column.
2. **Task level** — `dataTypes.task.canCreate` globally enables or disables task creation across the whole risksheet. Setting it to `false` prevents users from creating new task items anywhere; they can only link to existing items.

Combining both is useful when you want users to link to items from a shared library but never create new ones inline.

### `linkToRisksheet` for Subsheet Navigation

When `dataTypes.task.linkToRisksheet: true` is set, the task link column becomes a clickable hyperlink that opens the downstream risksheet document specified by `dataTypes.task.document`. This enables master-detail (subsheet) architectures: a parent sheet lists hazards or risks, and each row's task link navigates into a child risksheet for detailed analysis.

## Complete Example

A complete column configuration demonstrating multiple data types in a realistic FMEA scenario:

```yaml theme={null}
columns:
  - id: failureMode
    bindings: title
    header: Failure Mode
    type: text
    width: 250
    level: 1
  - id: riskCategory
    bindings: riskCategory
    header: Category
    type: enum:riskCategory
    width: 130
    level: 2
  - id: sev
    bindings: severityRating
    header: Severity (S)
    type: rating:severity-scale
    width: 80
    level: 2
  - id: occ
    bindings: occurrenceRating
    header: Occurrence (O)
    type: rating:occurrence-scale
    width: 80
    level: 2
  - id: det
    bindings: detectionRating
    header: Detection (D)
    type: rating:detection-scale
    width: 80
    level: 2
  - id: rpn
    bindings: rpn
    header: RPN
    type: int
    width: 70
    formula: commonRpn
    readOnly: true
    level: 2
  - id: mitigated
    bindings: mitigated
    header: Mitigated
    type: boolean
    width: 80
    level: 2
  - id: dueDate
    bindings: dueDate
    header: Due Date
    type: date
    width: 120
    level: 2
  - id: mitigationCost
    bindings: mitigationCost
    header: Cost ($)
    type: currency
    width: 100
    level: 2
  - id: affectedSystems
    bindings: affectedSystems
    header: Affected Systems
    type: multiEnum:affectedSystems
    width: 180
    level: 2
  - id: effortEstimate
    bindings: effortEstimate
    header: Effort
    type: duration
    width: 100
    level: 2

formulas:
  commonRpn: "function(info){ var value = info.item['occurrenceRating']*info.item['detectionRating']*info.item['severityRating']; return value?value:null;}"

cellDecorators:
  rpn: "function(info){ var val = info.value; $(info.cell).toggleClass('boldCol', true); $(info.cell).toggleClass('rpn1', val>0 && val<=150); $(info.cell).toggleClass('rpn2', val>150 && val<=250); $(info.cell).toggleClass('rpn3', val>250);}"

styles:
  .rpn1: '{background-color: #eaf5e9 !important; color: #1d5f20 !important;}'
  .rpn2: '{background-color: #fff3d2 !important; color: #735602 !important;}'
  .rpn3: '{background-color: #f8eae7 !important; color: #ab1c00 !important;}'
  .boldCol: '{font-weight: 600;}'
```

The `severity-scale`, `occurrence-scale`, `detection-scale`, `riskCategory`, and `affectedSystems` enumerations referenced by the `rating:` and `enum:` columns are defined in Polarion Administration → Enumerations — not inside the sheet configuration.

## Related Pages

* [Column Type Reference](/risksheet/reference/columns/column-types) — column definition properties and configuration
* [Enum Columns](/risksheet/reference/columns/enum-columns) — enum and rating enumeration configuration
* [Multi-Enum Columns](/risksheet/reference/columns/multi-enum-columns) — multi-select enumeration setup
* [Calculated Columns](/risksheet/reference/columns/calculated-columns) — formula-based calculated columns
* [Date and Time Columns](/risksheet/reference/columns/date-time-columns) — temporal column configuration details
* [User Reference Columns](/risksheet/reference/columns/user-reference-columns) — user assignment columns
* [Field Mapping](/risksheet/reference/fields/field-mapping) — Polarion field to Risksheet column binding
* [Supported Field Types](/risksheet/reference/fields/supported-field-types) — Polarion field type compatibility
* [Configuration Properties Index](/risksheet/reference/configuration/properties-index) — full property reference

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