---
id: contributor-tiers
title: Contributor Tiers
---

These tiers of contributors, committers, and maintainers roughly reflect how we've worked the past several years.

<table>
  <thead>
    <tr>
      <th>Tier</th>
      <th>Entry Requirements</th>
      <th>Monthly Expectations</th>
      <th>Monthly Reimbursement</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>Contributor</th>
      <td>1 point</td>
      <td>
        <em>(none)</em>
      </td>
      <td>
        <em>(none)</em>
      </td>
    </tr>
    <tr>
      <th>Code Contributor</th>
      <td>1 point in authoring pull requests</td>
      <td>
        <em>(none)</em>
      </td>
      <td>
        <em>(none)</em>
      </td>
    </tr>
    <tr>
      <th>Committer</th>
      <td>
        ~5 points in issues

        ~5 points in authoring pull requests

        ~15 points total
        <br />2 of 4 consecutive active months
      </td>
      <td>
      ~10 points in total (across all activities mentioned in the [Pointing](#pointing) section)

      Committers may stick to a focus area of contributions, or may expand to contribute throughout the repo.
      </td>
      <td>~1 share / active month</td>
    </tr>
    <tr>
      <th>Maintainer</th>
      <td>
        ~10 points in issues

        ~10 points in authoring pull requests

        ~30 points total
        <br />3 of 6 active months
      </td>
      <td>
      ~20 points in total
      </td>
      <td>~2 shares / active month</td>
    </tr>

  </tbody>
</table>

:::note
We treat everything here as approximate numbers.
We're a small enough team to informally discuss changes ad hoc and allow off-by-one-or-two months.
:::

## Advancement

Are you looking to graduate from _contributor_ to _committer_?
Great!

Roughly speaking, we're looking for folks who are interested in growing towards:

- Being able to contribute to docs & ideation discussions, not just chores + rule fixes & features
- Being able to empathetically understand the needs of lint rule users (i.e. not just their own personal preferences)
- Consistently sending high-quality issues and PRs
  - It's expected that some will have long rounds of discussion; we're more looking to avoid making "common" mistakes repeatedly (requesting review with failing builds, clear large gaps in logic, etc.)

If you've been sending issues and pull requests to typescript-eslint for a few months and want to get more involved, please reach out to one of the maintainers over Discord or email.
We'd love to support you in joining the team.

## Pointing

Although it's impossible to accurately estimate software projects, we want to roughly establish expectations of effort+time spent on the tiers.
These are all rough estimations and should be taken as approximate starting guides to consider.

We treat both the creation and review of issues and PRs along the rough scale of:

<table>
  <thead>
    <tr>
      <th>Size</th>
      <th>Description</th>
      <th>Points</th>
      <th>Examples</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>Trivial</th>
      <td>Small typos or single-file bugfixes</td>
      <td>1</td>
      <td>
        <a href="https://github.com/typescript-eslint/typescript-eslint/pull/6976">
          #6976
        </a>
        ,{' '}
        <a href="https://github.com/typescript-eslint/typescript-eslint/issues/6992">
          #6992
        </a>
      </td>
    </tr>
    <tr>
      <th>Straightforward</th>
      <td>2-3 files at most, with minimal logical changes</td>
      <td>2</td>
      <td>
        <a href="https://github.com/typescript-eslint/typescript-eslint/pull/6780">
          #6780
        </a>
        ,{' '}
        <a href="https://github.com/typescript-eslint/typescript-eslint/pull/6910">
          #6910
        </a>
      </td>
    </tr>
    <tr>
      <th>Large</th>
      <td>Multi-file logical changes that require real review+thought</td>
      <td>3</td>
      <td>
        <a href="https://github.com/typescript-eslint/typescript-eslint/pull/6107">
          #6107
        </a>
        ,{' '}
        <a href="https://github.com/typescript-eslint/typescript-eslint/pull/6907">
          #6907
        </a>
      </td>
    </tr>
    <tr>
      <th>Unusual</th>
      <td>Dozen+ file logical changes that require deep investigation</td>
      <td>≥5*</td>
      <td>
        <a href="https://github.com/typescript-eslint/typescript-eslint/pull/6084">
          #6084
        </a>
        ,{' '}
        <a href="https://github.com/typescript-eslint/typescript-eslint/pull/6777">
          #6777
        </a>
      </td>
    </tr>
  </tbody>
</table>

> \*Unusually large efforts may be >5 points at maintainer discretion depending on time spent.

Any other activities (e.g. responding to Discord threads, working on upstream dependencies, …) should be treated as gaining points equal to their nearest equivalent point task in terms of complexity and effort.

### Recognition

We place committers and maintainers on [typescript-eslint.io/maintenance-team](./Team.mdx).
See existing bios for examples of what information will be asked.

:::note
You can decline to opt into the site recognition, and you can always opt out after the fact.
Nothing is mandatory.
We just like including recognition as thanks for working with us. 💕
:::

## Reimbursement

Team members will be reimbursed the minimum of their activity level and their tier.
Each month:

- Committers and maintainers who hit their expectation receive their full shares
- Committers and maintainers who hit roughly half their expectation receive half shares

Reimbursements are generally handled through [our Open Collective page](https://opencollective.com/typescript-eslint).

### Community Reimbursements

Contributors who contribute nontrivial changes in a month (roughly ≥5 points and at least one _Large_ item) may be privately nominated at any time by a committer or maintainer to be reimbursed at the equivalent shares.

Our intention is to always do this for contributors who submit _Large_ or greater contributions and don't need significant assistance in getting them merged.
