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

# Add a Basic Column

> Add a new column to your Nextedy RISKSHEET grid by defining it in the sheet configuration sheet configuration.

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

<Steps>
  <Step title="Open the Configuration File">
    Open the sheet configuration file attached to your Risksheet document. You can edit it through the configuration editor or directly as an attachment.
  </Step>

  <Step title="Define the Column Entry">
    Add a new object to the `columns` array in your configuration. Each column requires at minimum a `bindings` and `header`:

    ```yaml theme={null}
    {
      "columns": [
        {
          "id": "failureDescription",
          "bindings": "description",
          "header": "Failure Description",
          "width": 200
        }
      ]
    }
    ```

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/AIn5YJnEEQyTvSQd/risksheet/images/48001173754/1.png?fit=max&auto=format&n=AIn5YJnEEQyTvSQd&q=85&s=668012780b0030e2fced41b052ad397a" alt="Risksheet column configuration defined in the risksheet.json document attachment" width="1414" height="506" data-path="risksheet/images/48001173754/1.png" />
    </Frame>
  </Step>

  <Step title="Configure Column Properties">
    Set the properties that control column behavior:

    | Property      | Default                                    | Description                                                    |
    | ------------- | ------------------------------------------ | -------------------------------------------------------------- |
    | `id`          | Auto-generated from `header` or `bindings` | Unique identifier for the column                               |
    | `bindings`    | *(required)*                               | Polarion work item field name                                  |
    | `header`      | *(required)*                               | Display text in column header                                  |
    | `type`        | Auto-detected from bindings                | Data type: `string`, `int`, `float`, `enum`, `date`, `boolean` |
    | `width`       | Auto                                       | Column width in pixels                                         |
    | `readOnly`    | `false`                                    | Prevents editing when set to `true`                            |
    | `visible`     | `true`                                     | Controls column visibility                                     |
    | `filterable`  | `true`                                     | Enables filtering by column values                             |
    | `level`       | `1`                                        | Hierarchical level (1 = top level)                             |
    | `headerGroup` | *(none)*                                   | Groups columns under a shared header                           |

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/AIn5YJnEEQyTvSQd/risksheet/images/48001173754/2.png?fit=max&auto=format&n=AIn5YJnEEQyTvSQd&q=85&s=10d6b19a0f6ffc52b504d8f14f1f9d4e" alt="The first column showing the upstream traceability item linking a risk to its function or component" width="1721" height="645" data-path="risksheet/images/48001173754/2.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/AIn5YJnEEQyTvSQd/risksheet/images/48001173754/3.jpeg?fit=max&auto=format&n=AIn5YJnEEQyTvSQd&q=85&s=d2ffdbfaea252ec3c3634d965037474e" alt="Level-3 items shown as children of the Risk item, representing downstream mitigation tasks" width="2877" height="747" data-path="risksheet/images/48001173754/3.jpeg" />
    </Frame>
  </Step>

  <Step title="Group Related Columns">
    Use `headerGroup` to organize columns under a shared group header:

    ```yaml theme={null}
    {
      "columns": [
        {
          "id": "sev",
          "bindings": "severity",
          "header": "S",
          "headerGroup": "Initial Rating",
          "type": "rating:severity",
          "width": 60
        },
        {
          "id": "occ",
          "bindings": "occurrence",
          "header": "O",
          "headerGroup": "Initial Rating",
          "type": "rating:occurrence",
          "width": 60
        },
        {
          "id": "det",
          "bindings": "detection",
          "header": "D",
          "headerGroup": "Initial Rating",
          "type": "rating:detection",
          "width": 60
        }
      ]
    }
    ```

    The group header height is controlled by `headers.columnGroupHeader.height` (default: `32` pixels).

    If you omit the `type` property, Risksheet automatically detects the type from the Polarion field definition. For standard Polarion fields like `description`, `title`, or `severity`, auto-detection works reliably. Explicitly set `type` when binding to custom fields or when you want to override the default rendering.
  </Step>

  <Step title="Control Read-Only Behavior">
    Certain columns become read-only automatically:

    * Columns with a `formula` property
    * Columns with a `serverRender` property
    * System fields: `id`, `status`, `type`, `project`, `outlineNumber`
    * Fields where Polarion permissions deny modification

    To make a column explicitly non-editable:

    ```yaml theme={null}
    {
      "id": "riskCategory",
      "bindings": "riskCategory",
      "header": "Category",
      "readOnly": true
    }
    ```
  </Step>
</Steps>

## Verification

Reload your Risksheet page after saving the configuration. You should now see the new column in the grid with the specified header text. Click on a cell in the column to verify it is editable (unless marked `readOnly`).

## See Also

* [Column Configuration](/risksheet/guides/columns/index) -- overview of all column configuration options
* [Configure Calculated Columns](/risksheet/guides/columns/calculated-columns) -- add formula-driven columns
* [Control Column Visibility](/risksheet/guides/columns/column-visibility) -- show and hide columns
* [Configure Enum Columns](/risksheet/guides/columns/enum-columns) -- set up dropdown columns
* [Add Header Tooltips](/risksheet/guides/styling/header-tooltips) -- add descriptions to column headers

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