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:
Plans Overview
Section titled Plans OverviewWe 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).
User Accounting Modes
Section titled User Accounting ModesActive User-Based Billing
Section titled Active User-Based BillingMany 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.
Estimating Active Users
Section titled Estimating Active UsersIf 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.
-
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);
-
Export the token as an environment variable with
export GITHUB_TOKEN=<your-token>
; -
Install
requests
on your system by runningpython3 -m pip install requests
; -
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.
Collaborator-Based Billing
Section titled Collaborator-Based BillingFor 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.
Annual Subscription
Section titled Annual SubscriptionMergify 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.
Checking Current Usage
Section titled Checking Current UsageYou can check your current usage by going through Mergify dashboard and clicking on the Usage panel.
Switching or Cancelling Plans
Section titled Switching or Cancelling PlansIf 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.
Understanding Your Invoice
Section titled Understanding Your InvoiceOur 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:
1. Real-time User Adjustment
Section titled 1. Real-time User AdjustmentOur 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.
2. Upcoming Period Charge
Section titled 2. Upcoming Period ChargeThe 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.
By understanding these two sections, you can more easily interpret and anticipate how changes in your active users influence your Mergify charges.