# Risks

> A risk register per organization: risks numbered RSK-0001, scored on a configurable likelihood by impact matrix before and after controls, with an assessment history snapshotted in versions, treatment, scheduled reviews, barriers linked through relations, and a heatmap.

- Category: Work management
- Module: `risks`
- Modes: `managed`, `custom`
- Docs: https://bettersupabase.com/docs/blocks/risks
- Page: https://bettersupabase.com/blocks/risks

## Install

```bash
npx better-supabase add risks
```

The command also installs `updated-at`, `memberships`, `permissions`, `subjects`, `versions`.

## Configure

Add the block to `better-supabase.config.ts`:

```ts
import { defineConfig } from "better-supabase/config";

export default defineConfig({
  blocks: {
    // Required by risks; add installs them too.
    "updated-at": {},
    memberships: {},
    permissions: {},
    subjects: {},
    versions: {},
    // Modes: "managed", "custom". The default is "managed".
    risks: { mode: "managed" },
  },
});
```

## Client

The block has no React entry yet. Its server-side TypeScript is in `better-supabase/blocks/risks`.

## Events

- `risk.assessed`
- `risk.closed`
- `risk.created`
- `risk.review_date_reached`
- `risk.reviewed`
- `risk.treatment_changed`
- `risk.updated`
- `risk_matrix.created`
- `risk_matrix.updated`

## Related blocks

Requires: [memberships](https://bettersupabase.com/blocks/memberships.md), [permissions](https://bettersupabase.com/blocks/permissions.md), [subjects](https://bettersupabase.com/blocks/subjects.md), [versions](https://bettersupabase.com/blocks/versions.md)

Works with: [compliance](https://bettersupabase.com/blocks/compliance.md), [relations](https://bettersupabase.com/blocks/relations.md), [numbering](https://bettersupabase.com/blocks/numbering.md), [notifications](https://bettersupabase.com/blocks/notifications.md), [outbox](https://bettersupabase.com/blocks/outbox.md), [audit](https://bettersupabase.com/blocks/audit.md)

## Recipes

- [Risk register](https://bettersupabase.com/recipes/risk-register.md): The organization's risks in a data grid with their residual band, status and next review date, the highest residual score first.
- [Risk heatmap](https://bettersupabase.com/recipes/risk-heatmap.md): The open risks on the default matrix, one cell per likelihood and impact with the count in the band's color.
