Skip to content

Permission matrix

Roles against actions, used and unused.

Definition · Updated Nov 2, 2026

A permission matrix crosses roles with actions and marks each grant as used, unused, added or removed in a draft. Grants nobody uses stand out. Use it for role reviews and least-privilege clean-ups.

Pay once. Every update included.

Live preview

Permissions per role7 permissions across 3 roles and a draft role: 4 grants are unused; the draft role adds 2 permissions and removes 1.AGENTS · PAUSEPROMPTS · EDITPROMPTS · DEPLOYEVALS · EDITALERTS · EDITKEYS · ROTATEBILLING · VIEWADMINEDITORVIEWERDRAFTUSEDGRANTED, UNUSEDADDED IN DRAFTREMOVED IN DRAFT
Permissions per role
PermissionADMINEDITORVIEWERDRAFT
AGENTS · PAUSEUsedGranted, unusedUsed
PROMPTS · EDITUsedUsedUsed
PROMPTS · DEPLOYUsedAdded in draft
EVALS · EDITGranted, unusedUsedUsed
ALERTS · EDITUsedGranted, unusedRemoved in draft
KEYS · ROTATEUsedAdded in draft
BILLING · VIEWUsedGranted, unused

Sample data: admin, editor, viewer and a draft role across seven actions, from pausing agents to viewing billing

Size
Legend
Data shape
A grant state per role and action
Good for
Role reviews, access clean-ups
Avoid when
There is one role
Sizes
XS, S, M and L, re-laid out from the data

Anatomy

Inspect it like the Figma file.

The same layers, names and tokens as the component. Select one to read its size, fill and style.

Layers

127 / Permission matrix

chart/127-permission-matrix
plot · permission matrix
Layer
used · agents · pause · admin
Type
Rectangle
Size
10 × 10
Fill
data/cat-2
Radius
2
Group
Marks · 28

Layers

127 / Permission matrix

chart/127-permission-matrix
plot · permission matrix
Layer
used · agents · pause · admin
Type
Rectangle
Size
10 × 10
Fill
data/cat-2
Radius
2
Group
Marks · 28

Sizes

Re-laid out, never scaled.

The same data at XS, S, M and L. Every size is redrawn from the data, so text and line weights never shrink.

M against S

Width360 px480 px

Plot328 px440 px

Labels1111

Marks2828

Height212 px246 px

Same tokens at every size: text styles, 1 px lines and mark radius stay put.

When to use

Who can do what.

Three signs it fits, and three signs another type fits better.

Are several roles compared?

One key's reach.

Yes: Keep the permission matrix

Are grants yes or no?

Counts per cell.

Yes: Keep the permission matrix

Is it access, not ownership?

Owners and health.

Yes: Keep the permission matrix

Code and Figma

One name in Figma and in code.

Every Figma property is a prop with the same name and values. One command installs it.

Figma

chart/127-permission-matrix

size
legend
Property = propValuesDefault
size"xs" · "s" · "m" · "l""xs"
legendtrue · falsetrue
color"cat-1" · "cat-2" · "cat-3" · "cat-4""cat-1"
npx shadcn add @chartory/permission-matrix
permission-matrix.tsx
import { PermissionMatrix } from "@/components/chartory/permission-matrix"import { roleGrants } from "./role-grants"export function RoleGrants() {  return (    <PermissionMatrix      data={roleGrants}      size="m"      legend={true}    />  )}

Hearth widget

Permission matrix as a widget.

The chart in a Hearth card with a hero number and two blocks. One token set, light and dark.

Get the code

EmberPreset

ChartoryDefault preset

Pick the blocks, the size and the preset for your own widget.

Read the Hearth widget docs

FAQ

Permission matrix questions.

What people ask before they put a permission matrix in a dashboard.

Something else?

hello@usechartory.com
  • Used, granted but unused, added in draft and removed in draft, named in the legend.

Related types

The same question, a different shape of answer. Every type ships in Figma and in code.

Same family

Relationship

17 types in Chartory answer this question.