There are a number of primary reasons that you may see a difference between MRR when comparing ChartMogul MRR for a customer to the MRR that Chargify reports for the same customer.
1. ChartMogul Uses Invoices, Chargify uses Subscriptions
Chargify uses the Subscription object to calculate MRR whereas ChartMogul uses Invoices to calculate MRR. Thus, certain events that "schedule a change" to a future invoice like applying a coupon code may immediately impact MRR in Chargify. However, ChartMogul uses invoices (actual events) to calculate their MRR movements and would not consider an MRR movement until the coupon discount actually hits an invoice. The good news is that this difference corrects itself upon the invoice with the change happening.
2. Manual Charges / Invoices
While this doesn't impact most customers using Chargify, it does impact some. Related to item 1 is the use of manual charges in Chargify. When manual transactions are created in Chargify they typically don't have the service periods needed to adjust MRR in ChartMogul. So, when they are imported they are treated as one time transactions that do not impact MRR. Because Chargify uses the subscription object to predict MRR, it takes into account that the next automated invoice in the sequence, no matter how far out, will include the adjustment if there is one causing MRR to possibly be higher or lower.
If you must create a manual invoice associated with a subscription, if you will put the service period and if it's prorated or not in the memo field, we can parse that out and treat the charge properly. For example:
Memo: "2022-02-22 to 2022-03-22"
Memo: "Prorated 2022-02-22 to 2022-03-05"
3. Prorated Invoices
Prorated invoices can create temporary discrepancies in MRR. While there are a few minor reasons this can happen, by far the most common is a complete fail on the part of Chargify's API. The Chargify API does not return a time stamp along with the dates it does provide for service periods on an invoice. SaaSync attempts to make an educated guess at the time we think the service period should start and end in a given day, but it's a guess. The discrepancy in MRR is usually small. However, if for example the time we choose is off by 12 hours on a very short duration service period (say 5 days long) then this could cause a ~10% temporary difference in MRR. Again, the good news is that when the next invoice hits that is not prorated, the MRR corrects itself. That is why sometimes on the anniversary date of the subscription, you might sometimes see very small adjustments to the MRR when nothing has really happened other than a non-prorated invoice was issued.
4. Lack of Standards Around Edge Cases
There are no agreed upon international standards in how MRR is calculated, especially around various edge cases. For most invoices, it's pretty obvious, but there are many edge cases that come up that require the system calculating the MRR to be opinionated. Chargify and ChartMogul will certainly disagree in some cases.
Article is closed for comments.