There are three primary reasons that you may see a difference between MRR when comparing ChartMogul MRR for a customer to the MRR that Zuora reports for the same customer.
1. Zuora 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 Zuora. 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. 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. Zuora and ChartMogul will certainly disagree in some cases.
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 Zuora's API. The Zuora 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.
Article is closed for comments.