SOLVED

Revenue report for SaaS ISVs: Contract duration field to help with Rev Rec

Brass Contributor

Hello, 

We are a SaaS ISV, and this is about revenue reporting for Marketplace SaaS offers that have (say) an annual commitment/contract but a monthly billing cadence. I.e., neither a month-to-month commitment plan billed monthly nor an annual commitment plan billed annually. 

 

In such cases, the TermEndDate and TermStartDate (ref: the Data Dictionary for Revenue reports) in the exported CSV appear to denote the overall commitment's start and end dates, and not the "entitlement start date" and "entitlement end date" for the billing event that the row corresponds to. This implies that for a monthly billing event of, say, USD 100, the ISV must separately infer the usage period for which these $100 are to be recognized over, as there is no other column in the CSV dictionary that codes the entitlement start and end dates. 

 

Therefore, this is a request to add an additional column for "ContractTerm" or similar that explicitly communicates the contractual context in which the other date fields of this billing event row should be interpreted - these values will likely be one of P1M, P1Y, P2Y, P3M (ref: Marketplace SaaS REST API). The other alternative is to add explict "ServiceEntitlementStartDate", and "ServiceEntitlementEndDate" fields which encode the period over which this billing amount has to be recognized over. 

 

sid6mathur_0-1720505227724.png

 The above screenshot is an example of billing events over four consecutive months linked to a one-year commitment contract. 

 

Thanks,

Sid

 

 

5 Replies

@sid6mathur thanks for the feedback here, I'll be passing your suggestion along to the appropriate team.

best response confirmed by sid6mathur (Brass Contributor)
Solution

I agree this is good feedback @sid6mathur - you should be able to reference the PurchaseRecordId from Revenue Report to find BillingTerm and BillingPlan fields in the Orders report. Not exactly what you are looking for, but hopefully helps you understand where revenue aligns with a monthly, annual, or an upfront payment for the full term. 

@KyleCallahan Great answer, thanks. Didn't realize one could "JOIN" the Revenue and Orders reports until you mentioned it. That indeed solves the problem. 

@KyleCallahan May I request that the pre-built system query for Orders (ID bd1b0cc1-ce45-4578-beba-6fe5a69fd421) contain all the columns the web dashboard offers in the table view? For example, BillingTerm and BillingPlan aren't available in the pre-built one. 

 

Expressed more generally, a pre-built query that covers ALL columns listed in the Orders data dictionary ought to exist in the system-defined list of queries: 

https://learn.microsoft.com/en-us/partner-center/insights/orders-dashboard#orders-data-dictionary

 

We could expand this even more generally to views such as Revenue, where a system-defined query should track what's on the web interface table design for the Revenue view.

 

PS: By "web interface", version I mean the CSV columns as obtained from the three-dots menu on Orders or Revenue pages.

 

Thanks,

Sid

@sid6mathur Thanks for your feedback. I have forwarded your message along to the proper product managers who work on these reports and dashboards. Your feedback will help inform where improvements can be made, so thanks for being part of the community! 

1 best response

Accepted Solutions
best response confirmed by sid6mathur (Brass Contributor)
Solution

I agree this is good feedback @sid6mathur - you should be able to reference the PurchaseRecordId from Revenue Report to find BillingTerm and BillingPlan fields in the Orders report. Not exactly what you are looking for, but hopefully helps you understand where revenue aligns with a monthly, annual, or an upfront payment for the full term. 

View solution in original post