# Seats and invitations

> Dormant members, dormant outside collaborators, and invitations that hold a seat.

GitHub bills Team and Enterprise organisations per seat. A seat is held by every member, by every outside collaborator with access to a private repository, and by every pending invitation.

## Dormant members

`seats.dormant_member`

A member is dormant when none of these happened in the last 90 days:

- a push to any branch, a pull request, a review, or a comment, in any repository opsen can read;
- any Copilot activity, by GitHub's own `last_activity_at`.

Bots (`type: Bot`, or a login ending `[bot]`) are never counted.

```text title="How it is priced"
monthly = dormant members × seat price
```

The seat price is your contract price if entered under **Settings**, otherwise GitHub's list price for the organisation's plan.

:::note
opsen does not remove members. Removing someone loses their forks of private repositories and their team memberships, and the person may be on leave. The finding exports as CSV for whoever owns that decision.
:::

## Dormant outside collaborators

`seats.dormant_outside_collaborator`

The same rule, applied to outside collaborators. On paid plans an outside collaborator with access to a private repository occupies a seat. Removing their access is done per repository in GitHub, so this finding also exports rather than acts.

## Stale invitations

`seats.stale_invitations`

An invitation pending for more than 7 days, or one GitHub reports as failed. Pending invitations count towards the organisation's filled seats.

**Action:** select invitations and press **Cancel selected invitations**. Each is withdrawn with `DELETE /orgs/{org}/invitations/{id}`. The person can be invited again at any time.

## When these are withheld

Dormant-seat findings need to see every repository a person could be working in. They are [withheld](/docs/how-it-works#what-is-withheld) when the installation has a repository selection, or when too many repositories' activity could not be read. Stale invitations do not depend on activity and are always reported.
