Revenue recognition : price allocation 1/2

Posted by
Version Française disponible ici

After the first post on this topic and just because I wanted to know, I’ve been hard digging this price allocation functionality available in this new module. I think the business application is more linked to US-GAAP than in here in France (I’m not a financial specialist so I’m not sure). Anyway – as always – I would be glad to have some comments to illustrate a situation in which this standard functionality could apply in France or even in Europe. The goal of this post is just to explain how works the standard.

This is about how to split revenue on sales orders accross lines and items. In fact, if there is more than one line invoiced for a dedicated total amount, it’s indeed possible to recalculate the weight of each line in order to reallocate the prices. Of course the total amount to invoice will remain the same.

With that, it’s impossible to make this functionality work with only one line, and we clearly better understand why the bundle functionality has been implemented in within Revenue recognition as well.

Just to notice this module is quite new, some labels are not yet French translated….


Fist, two main conditions to make it work : enable the « Enable discount allocation method » on the global parameters and check that « Apply residual method » is unticked on sales orders headers. By default, it is but be aware.

This checkbox is not defaulted anywhere else.

Then, you need to setup a « Revenue allocation price » in the « Revenue recognition module », for each item. Note that you can setup by using amount or percentage. This is here when you will setup the weight of an item against another.

Then go on the item / item group setup, and activate the « Is revenue allocation active » to yes in the Revenue recognition tab. We’ll see the other setup after ! Be patient !

Test 1 – simple situation

A sales order is created and 3 items are added. After confirmation, you can access to « Revenue price allocation » under the Manage tab. Let’s have a look.

Unit price are the price setup on the sales order lines (100, 1900 et 500 €). The Total area is displaying the net price for the line, including discounts. In here, 20% of discount have been apply for each line.

List price is the basic price setup for the item (meaning price setup on the item itself, not the trade agreements). No impact at that stage.

Allocation price retrieve the prices setup in the Revenue price allocation form for each item.

Allocation amount is the result of the split of 80, 1520 and 400 €. By checking the sum of column Total and Allocation amount, we notice the total Revenue to recognize is still 2000 €.

It’s a basic proportional rule that has been applied here. In detail : the total of Allocation price is 1840 €. Rate between Total of Allocation price and Total Amount is then 1,087. If we multiply this rate by Allocation price, we retrieve the 43,48, 1847,82 and 108,69 € (System applies a penny difference policy in addition for having the same total).

At the end, it’s the Revenue to recognize column that applies the price. Here it’s the Allocation amount price corrected by the Carve out amount (not use here).

When the invoice is run, and the journal is generated and posted for recognition revenue as described in the previous post, we retrieve the allocated amount in the ledger entries.

Test 2 – Usage of Revenue type

Let’s add a new setup in the game ! Revenue type is available in the item setup or item group with 3 Enum values : Essential, Nonessential and Post contract support (see Test 3 for that one).

Previously we just used Essential as a default value for each item.

The meaning of that setup is to allocate more weight and priority to some items of the bundle when applying discount on sales orders lines. An Essential item will not be impacted after allocation amount calculation when any discount apply. On the contrary, the Nonessential and Post contract support items may be impacted in a same situation.

To make it work : you will need at least 3 items in the order : one Essential and 2 Nonessential (to start) : one is « Exclude from crave out » and the other is non. Also, you will need to apply a discount on sales order lines.

So, the first item, the surface, is an Essential item. It means the Surface will not support discount when associated with Nonessential items.

The Support item is Nonessential and « Exclude from carve out ».

The waranty item is Nonessential and not « Exclude from carve out ».

When running a sales order, and confirming it, with a 20% discount, we’ve got :

No difference between the previous test until the Carve out amount colom. This has adjusted the first allocation amount. The surface item hasn’t change at all, as it’s an Essential item. The support item has supported more weight of the discount than the waranty item. The price is setup to 100 for the support item, meaning the amount setup on allocation price. As 2 items have fixed prices (1847,82 and 100), it’s the third item which will support the difference (the one not excluded from carve out).

Note : A 0 value in « Carve out amount » does not adjust the allocated amount to 0 but ignore carve out in fact.

Test 3 : Post contract support

This third test will require some setup. First, disable the contract terms in the main setup of the module. It will not default the start and end date on sales order lines.

Let’s move the Revenue type value to Post contract support on the support item. This mean the line can be split in the revenue to recognize. In our test, it will be splited between the surface and warranty item.

The setup basis (On the sell tab of the item record, under Revenue recognition) has to be setup. We need to add the authorized item groups on which we want to split the revenue. In our case, the warranty and surface item does not belong to the same item group, so I have added the two following item groups.

We just take back our previous example, with the surface item (Essential) and the warranty item (Nonenssentiel), and of course, the support item. We add a 20% discount as well.

As we can see, the contract terms are not defaulted. Let’s confirm the sales order, and analyse the results.

The support item has been splitted for revenue recognition, one part allocated to the Essential item and the other one to the Nonessential item. It means here that the support item would be supported by the 2 other items. The weight of the surface against the warranty is about to 97% so the total amount of the support item (108,69 €) is splitted accordingly.

In this last example, we notice that we can combine the carve out functionality with post contract support.

In the next post, we will focus on the median price !



Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.