MSDyn365: Revenue recognition
What is the Revenue? Revenue is the most important financial performance measure that company reports. Revenue it’s not the same as profit. The company can be unprofitable but can actually generate some revenue. Profit is the amount of income that remains after all expenses, costs and taxes are accounted for. Whereas revenue only considers the amount of income a business generates through the sale of its goods or services.
So, Revenue is the income earned from the sale of goods and/or provision of services:
Revenue recognition is a generally accepted accounting principle (GAAP) that identifies the specific conditions in which revenue is recognized and determines how to account for it. This accounting method is used for all contracts (like telecommunication services, license subscriptions, magazine subscriptions, telematic services, food industry etc.), except lease contracts, insurance contracts and other contractual obligations defined in the exceptions of this standard. If business operates through customer contracts, it should use revenue recognition principle.
Revenue recognition principle
International Financial Reposting Standard in the IFRS 15: Revenue from contracts with customers standard sets introduced the rules and guidelines of revenue recognition.
The most important question that is answered by IFRS 15 is WHEN and HOW to recognize the revenue.
The core principle of IFRS 15 is that an entity recognizes revenue when it’s earned (when goods or services have been delivered) not when cash is received.
Deferred revenue: when payment made in advance, but goods or services delivered in the future. Note: this term exists only in Accrual basis of accounting, not Cash basis.
Accrued revenue: when goods or service is provided in advance of payment. Note: this term exists only in Accrual basis of accounting, not Cash basis.
An entity recognizes revenue in accordance with core principle by applying the following 5-step model.
All steps below must be met in order to recognize revenue.
Let’s review the example following the 5-step model described above:
Long term contract:
Internet Service provider (ISP) is a company that provides Internet services such as access to Internet and suggests the following long-term contracts for their customers.
Step 1: Identify the contract with a customer
Consider the following differences between Plan 1 and Plan 2 from revenue recognition point of view.
According to IFRS 15: if customer decides to go with the Plan 1, then the part of the revenue (that belong to the router) should be recognized immediately as ISP provided it to the customer (since goods have been delivered) and the part of the revenue (that belongs to the internet services) should be recognized by spreading amounts across 12 months.
According to IFRS 15: if customer decides to go with the Plan 2, then the revenue should be spread over 12 months.
Imagine that customer has chosen Home Line Plus option.
ISP and customer make an agreement (written document, but can be an oral agreement as well as implied) where they defines commitments by both parties, rights and obligations, payment terms etc.
Step 2: Identify the separate performance obligations in the contract
In our example, ISP company has 2 components of the contract like router and internet services. Each component is separate performance obligation in this case since both products are distinct and they can be sold separately. As the result, we have 2 separate/independent product obligations but one contract.
Step 3: Determine the transaction price
In order to determine the transaction price for the Noncash consideration as in our case – Fair market value can be used.
Assume that Fair market value is:
Router = 150$
Internet services = 30$ per month (12 months contract = 12*30$ = 360 $)
Total Fair market value = 150$ + 360 $ = 510$
Step 4: Allocate transaction price to the performance obligations in the contract
In our example, transaction price will be allocated to the separate performance obligations in proportion to the stand-alone selling price of each element of the contract.
We will calculate proportion using our data:
Router % = 150$/510$*100 = 29.41%
Internet services % = 360$/510$*100=70.59%
So now we have percentage allocated.
Step 5: Recognize revenue when the entity satisfies a performance obligation
Let’s calculate the revenue that should be recorded immediately for the router:
Router = 480$ from the Plan1 * (29.41%/ 100) = 141.17$– this amount will be recorded right away,
where
480$ is Net total from the Plan 1 contract
Let’s calculate the revenue that should be recorded immediately for the internet services each month over 12 months contract:
Internet services = 480$ from the Plan1 * (70.59/100) = 338.83 and then 338.83/12months = 28.24 $– this amount will be recorded each month
So, IFRS 15 Total Accrual values = 338.83 + 141.17 = 480$ as equal to Net total of Plan 1
Now it’s time to configure this example in D365. Revenue recognition feature became available within 10.0.6 release. Details are here: https://docs.microsoft.com/en-us/dynamics365/finance/get-started/whats-new-finance-10-0-6
Before you can use it, you have to switch on the Revenue Recognition Configuration key. How to do it described here: https://dynamicsax-silverbullet.blogspot.com/2020/01/how-to-enable-revenue-recognition.html
Revenue recognition requires configuration. This configuration includes the following:
More details can be found here: https://docs.microsoft.com/en-us/dynamics365/finance/accounts-receivable/revenue-recognition-setup
In our scenario we are going to sell all our products individually as well as selling bundle that include these components.
Released products
2 products from Plan1 have been created: Router and Internet services. These products will be included into the bundle later on.
Go to Revenue recognition > Setup > Inventory and product setup > Released products to complete this task.
Pay attention to Product type, one is an item of the Item type and second one is an item of the Service type.
Expand Revenue recognition FastTab of the Release product details page.
Is revenue allocation active flag should be set to yes on both products since we would like to include router and internet services in the revenue allocation calculation.
Revenue schedule should be selected only on internet services item since only for this item we will have 12-month occurrence that revenue will be deferred for.
Select Essential Revenue type since it would be the primary source of an organization’s revenue.
For the Internet service product, you will need to setup the following Item model group, due to the fact that: An item cannot be associated with a BOM if it is associated with an item model group where the attribute Stocked product is not selected.
Revenue recognition configuration can be done through Item groups: Revenue recognition > Setup > Inventory and product setup > Item groups.
Check the router setup. Router will be recognized immediately that is why no need to setup revenue schedule for the router.
Revenue schedule
Revenue schedule is used to determine how the revenue price is allocated across the number of periods and is created on the Revenue schedules page (Revenue recognition > Setup > Revenue schedules).
We have 12-month contract, so let’s create 12-month occurrence.
Click on Revenue schedule details button to review the distributed 100% across defined number of occurrences.
Revenue Recognition Journal name
This journal will be used when revenue is recognized from the revenue schedule. Pay attention to Journal type, it must be Revenue recognition.
General ledger parameters
Go to Revenue recognition > Setup > General ledger parameters.
Revenue price
Go to Revenue recognition > Setup > Inventory setup > Revenue price
The same setup can be found on each released product (Revenue recognition > Setup > Inventory setup > Released products > Sell tab on the Action pane > Revenue prices in the Revenue recognition group)
Posting
Go to Revenue recognition > Setup > Inventory and product setup > Posting
Deferred revenue. Deferred revenue account will be used.
Deferred cost of goods sold. Deferred COGS account will be used.
Partial invoice revenue clearing. Bridging account will be used.
Bundles
The next steps are required if you are going to sell bundles.
Let’s create a bundle. Bundle creation process is standard through the bill of materials (BOM) functionality.
What’s matter is to configure two important fields. To set up and item as a bundle, choose Released product details > General fast tab. Set the Bundle slide to Yes (new field added within revenue recognition feature). On the Engineer FastTab, in the Production type field, set the item as a BOM item.
So, we have created Home Line Plus bundle that will include our bundle components.
Keep in mind that if you are using bundles, you have to set Base sales price (or trade agreement) for each component, otherwise you will get an error upon sales order confirmation. In our scenario, Internet services has a base sales price of $479.00; for Router, it’s $1.00.
Plus we need to set Revenue price for the bundle.
As well as Sales price based on our contract agreements. Home line Plus bundle will be placed to sales order with a total price of $480.00.
The revenue contribution for each component will be the total item sales price divided by the total extended sales value of all BOM components. The contribution of each component will be (BOM qty * sales price) / [sum all (BOM qty * sales price].
Customer
You have an ability to disable revenue price allocation for specific customer if needed.
Let’s create 2 Sales orders.
In the first sales order we will be selling our bundle – Home Line Plus package. In the second sales order we will be selling internet services and router separately.
Create a new sales order and add bundle item.
Confirm sales order. Upon confirmation, the item identified as the bundle item gets automatically expanded onto the sales order and the bundle components get populated as sales order lines. Each element will receive a portion of the bundle price based on their individual contributions. In addition to that, the original bundle amount will be stored in a Bundle Net Amount field.
Revenue schedule field gets defaulted from the released product.
Even if the bundle line has been cancelled, on the confirmation report it still appears and no components are visible.
Upon confirmation, Revenue recognition menus will become available. Keep in mind that revenue recognition will be called on only if Revenue schedule is defined on the sales order line.
Click on Revenue price allocation button.
Unit price is taken from base price of the component.
Allocation price is taken from Revenue price that has been defined as fair market value.
Allocation amount field is calculated based on the following formula:
Allocation amount = (Total unit price / Total allocation price) * Allocation price
So, for GFE-0007 Allocation amount is ((479+1)/(360+150))*360 = 338.82
for GFE-0007 Allocation amount is ((479+1)/(360+150))*150 = 141.18
It’s a little bit different (by 1 cent) from what I calculated at the beginning:
Router = 480$ from the Plan1 * (29.41%/ 100) = 141.17$
Internet services = 480$ from the Plan1 * (70.59/100) = 338.83$
Click on Expected revenue recognition schedule button to see the expected schedule before invoicing with the defined Recognize date.
Keep in mind that if you have not setup Contract dates on the sales order line, Recognize date for the first period will be based on the Confirmation date.
Let’s create the second sales order but adding only components (instead of a bundle).
Confirm sales order. If you check Revenue price allocation as well as Expected revenue recognition schedule, they are identical as for bundles.
One thing that I noticed is that if you enter Contract terms: Start date 1/22/2020 and End date 1/22/2021 having 12m schedule, the system adds up 13 Period with 0 Recognize percent. In this case if we sum up all 13 periods by Total recognizable amount, we will have 367.12 amount that is more than Revenue amount to recognize.
Anyway, let’s stick to our ideal example and proceed with the invoice posting.
Since the next steps are identical for the sales orders with bundles or just with components, I will use just one sales order created.
Post the invoice.
Invoice report shows only bundle.
And check the voucher.
As you can see from the Voucher, Customer balance is 480$ that is equal to the Invoice amount.
On the Deferred revenue account only the revenue for the Internet services has been placed and revenue for the router has been placed to the Product sales revenue account (since it should be recognized immediately).
Next step is to recognize the revenue for the internet services when the service is provided. When service is provisioned, the revenue schedule should be processed.
You can use one of the following links:
Sales order > Manage tab > Revenue recognition group > Revenue recognition schedule
Revenue recognition > Workspaces > Revenue management
Revenue recognition > Periodic tasks > Revenue recognition schedule
Run the Revenue recognition schedule for current months by clicking Create journal and selecting the dates.
You will get an Infolog message and Amount to release will be updated accordingly:
Keep in mind that system process all the schedules available, not only hose that are filtered on the form.
The following lines have been generated within the journal with the ledger entries that you can post.
The system is going to release Deferred revenue account amount and record it on revenue account.
Click Post button.
Next month Revenue recognition schedule should be executed again for the next month and the corresponding ledger entry should be posted to recognize the revenue for the next month.
Continue with this process until you provision the services and full amount of revenue is recognized.
That’s it!
This was originally posted here.
*This post is locked for comments