Mergify Billing System

Understand how Mergify fair billing works.


At Mergify, our goal is to offer you a transparent and efficient billing system that meets your needs. Here’s a comprehensive guide to help you grasp how our billing system functions:

We offer multiple plans tailored to provide various features. At present, we primarily offer two distinct plans:

  • Advanced Plan: giving access to all our features.

  • Enterprise Plan: An on-premise plan specifically designed for those utilizing GitHub Enterprise Server (GHES).

Many enterprise solutions charge per user, irrespective of actual usage. At Mergify, we firmly believe in billing you only for what you actively use.

This is why our billing system operates on the principle of active users. Here’s how it works:

  • An active user is any individual who engages in activities on a repository. This includes opening, closing, commenting, pushing or reviewing a pull request.

  • Each user is counted only once, even if they’re active across multiple repositories.

  • The system uses a 30-day sliding window approach. This means a user is regarded as active for 30 days from their last activity. Post this period, if no further activity is detected, they are no longer considered active for billing purposes.

  • Usage is prorated to the day: if a user is seen active during 48 days, the system only bills for precisely 48 days — not 2 entire months.

If you don’t know the number of active users that Mergify might count, you can use this script to estimate the number of active users over the last 30 days.

  1. Go to https://github.com/settings/tokens (or equivalent on your GHES installation) to create a token. The token must have the permissions to access the repository (read permission is enough);

  2. Export the token as an environment variable with export GITHUB_TOKEN=<your-token>;

  3. Install requests on your system by running python3 -m pip install requests;

  4. Run the script with python3 mergify-count-active-users.py <repo1-url> <repo2-url> etc, passing the list of repositories where Mergify will be deployed.

The script will run and print its progress. It can take several minutes for the script to complete depending on the number of repositories scanned and the number of active pull requests they have.

For specific scenarios, such as public repositories, we offer an alternative billing mode based on the number of collaborators. This mode isn’t the default, but can be requested through our support.

A collaborator is identified as any user granted write access (or higher) to a repository.

Mergify does not require an annual subscription (except for the Enterprise plan), but offer substantial discount if you buy users in advance for a 12-months period.

An annual subscription allows you to buy a base of number of seats (users) at the start of the year. If your usage goes beyond the pre-purchased seats, additional seats are billed monthly, prorated to the exact day of use.

For example, let’s say you have purchased a annual license for 100 users. If your number of users increases to 110 users during 45 days, you will be invoiced for 10 extra users over 45 days.

You can check your current usage by going through Mergify dashboard and clicking on the Usage panel.

Mergify usage panel

If you wish to switch between plans or cancel your subscription, please contact our customer support. They’ll guide you through the process and ensure a smooth transition.

Our billing system aims for fairness, but its dynamic nature may result in invoices that can be complex to understand at first glance. Each invoice comprises two main sections:

Our system continually monitors the number of users in your repositories and adjusts your bill in real-time. On your invoice, you might see line items labeled “remaining” and “unused time.” These adjustments occur whenever there’s a change in your user count.

For instance, if the system identifies a change in your user count, it will credit you for the number of users you previously paid for, prorated by day. It then charges for the updated user count for the remaining days of the billing cycle.

In the following example, the initial bill was for 76 users. As this grew to 77, the system credited the $1,360.92 previously paid. It then charges $1,378.83, leading to an increase of $17.91 to account for the additional user for the rest of the month.

Invoice for previous period
Invoice lines detailing adjustments from the previous period.

The latter part of the invoice projects your charges for the next billing cycle, such as from Jul 14th to Aug 14th. This charge is based on the current number of active users. If there’s a change in this user count during this period, the subsequent invoice will account for this, similar to the real-time adjustment mentioned earlier.

Invoice for next period
Invoice lines for the upcoming billing period.

By understanding these two sections, you can more easily interpret and anticipate how changes in your active users influence your Mergify charges.