Revenue recognition
Zenskar is ASC 606- and IFRS 15-compliant.
Although ASC 606 and IFRS 15 have some differences, both establish the principles that an entity applies when reporting information about the nature, amount, timing, and uncertainty of revenue and cash flows from a contract with a customer.
Applying either standard, an entity recognizes revenue to depict the transfer of promised goods or services to the customer in an amount that reflects the consideration to which the entity expects to be entitled in exchange for those goods or services.
Both ASC 606 and IFRS 15 have defined a 5-step model for revenue recognition:
- Identify the contract
- Identify separate performance obligations
- Determine the transaction price
- Allocate transaction price to performance obligations
- Recognize revenue when each performance obligation is satisfied
⚙️ Step 1: Identify the contract
Note
All contracts created in Zenskar are inherently ASC 606- and IFRS 15-compliant. There is no further action required of you.
Let us build an example contract that contains the following three products:
Product | Description |
---|---|
Platform annual fee | A prepaid, recurring flat fee of $3600 per year for access to the platform. |
Implementation fee | A one-time implementation fee of $600. |
Extra seats | A fee of $10 per seat for 60 extra seats. |
⚙️ Step 2: Identify separate performance obligations
Performance obligation (POB) is your promise to transfer services or products to your customer. During this step, you should itemize every distinct POB. A service or product is considered distinct when it is of value to the customer and can be transferred independently of other services or products in the contract.
Note
Identifying POs will result in the unbundling of a contract into POB. This is a crucial step to recognize revenue correctly.
Note
The following are examples of circumstances which do not give rise to a POB:
- providing goods at scrap value
- activities relating to internal administrative contract set-up
Add performance obligations in Zenskar
- To add POBs from the contract mentioned in Step 1, navigate to Accounting > Revenue Rule Library.
- The Create Performance Obligation Template page is displayed.
- Fill in the required details in the Template Information section:
- Name: a descriptive name for the POB template.
- Description: describe what the template is for.
- Revenue Account: refer to the documentation on the hierarchy of default accounts.
- Revenue Distribution: choose from Point in Time and Over Time.
- Fill in the required details in the Criteria section:
- Map a product to a POB by selecting product parameters and defining conditions.
- The following product parameters are available:
Parameter | Condition | Value |
---|---|---|
Product | equals | Select the product from the Value drop-down menu. |
Pricing Model | equals | Select the pricing model from the Value drop-down menu. |
Contract Item Name | contains not contains starts with end with | |
Product Start Date | equals | Select a date. |
Product End Date | equals | Select a date. |
Aggregate | equals is empty is not empty | Select an aggregate from the Value drop-down menu. |
Entitlement | is empty is not empty |
- One or more parameters can be used to define conditions for mapping a product to a POB template.
- To map multiple products to the same POB template, click on the Add more products to the POB checkbox. Thereafter, map the desired product to the POB template by selecting corresponding product parameters and defining conditions.
Continuing with the example: add performance obligations
The contract mentioned in Step 1 has three distinct products that could result in the contract unbundling into three potential POBs:
- Platform annual fee
- Implementation fee
- Extra seats
Note
There are circumstances that could result in services or products being combined into a POB. For example, if one service or product depends on the price or performance of another service or product, you may consider combining them into one PO.
In the current example, one potential POB, Platform annual fee, is dependent on the performance of another potential PO, Implementation fee. Therefore, it makes sense to combine them.
Let us add two POBs:
- Platform access: this POB has the following products serving as value sources.
Product | Percentage |
---|---|
Platform annual fee | 100 |
Implementation fee | 100 |
Performance obligation parameter | Details |
---|---|
Name | Any descriptive string that uniquely identifies the POB. |
Description | Describe your PO. |
POB period | Over what period do you expect the customer to make the payment? |
POB policy | Refer the documentation on POB policies. |
Value source | The products that contribute value to the POB: • a POB may have multiple products as value sources • multiple POBs may share a portion of the value of a product |
- Extra seats: this PO has only one product serving as value source.
Product | Percentage |
---|---|
Extra seats | 100 |
Note
Identifying POBs is entirely dependent on the circumstances under which your business operates. Therefore, Zenskar provides you the necessary tools and lets you decide how to identify POBs.
View performance obligations
- To view the POBs from the contract mentioned in Step 1, navigate to Contracts.
- Click on the kebab menu located at the end of the row containing the contract you are interested in.
- Click on the Revenue Recognition menu option, as shown below:
- The list of POBs associated with the contract will be displayed, as shown below:
Edit performance obligations
The following fields can be edited in a revenue plan:
Field | Details |
---|---|
Start date | This date can be different from the contract start date. For example, the implementation of your service or product may not be trivial and may take a couple of months. You can choose to start recognizing the revenue two months after the invoice creation. |
End date | This date can also be different from the contract start date based on your special circumstances. |
Revenue distribution method | Refer the documentation on revenue distribution methods. |
Revenue config change impact | If the end date of a PO is edited, the revenue plan is affected. There are two ways of handling this change: • update all periods: revenue postings are considered loked if they have already been recognized and corresponding journal entries created. Locked revenue postings cannot be altered. However, the changes affecting such locked revenue postings can be redistributed over the remaining periods using any revenue redistribution method supported by Zenskar. For example, if the revenue postings for January, 2024, through August, 2024, have been recognized, any changes affecting these postings can be redistributed in the revenue postings of September, 2024, through December, 2024. • update remaining periods: for changes that do not affect the locked revenue postings, this method can be used. |
Revenue redistribution method | In the event of a change in the end date of a revenue plan, the following revenue redistribution methods are supported: • straight-line • front-loaded • back-loaded |
Deferral account | The revenue account where deferred revenue is posted. |
Revenue account |
⚙️ Step 3: Determine the transaction price
Transaction price is the most likely value that you expect to be entitled to in exchange for the promised services or products supplied under a contract. The product definition will contain the transaction price necessary for revenue recognition.
⚙️ Step 4: Allocate transaction price to performance obligations
Allocate transaction price to each PO on the basis of the relative stand-alone selling prices of each distinct service or product promised in the contract. Continuing with our example, the following two POs can be created:
- Platform access: this PO has the following products serving as value sources.
Product | Percentage |
---|---|
Platform annual fee | 100 |
Implementation fee | 100 |
- Extra seats: this PO has only one product serving as value source.
Product | Percentage |
---|---|
Extra seats | 100 |
You can create more POBs, view and edit POs associated with a contract:
Note
Identifying POs is entirely dependent on the circumstances under which your business operates. Therefore, Zenskar provides you the necessary tools and lets you decide how to identify POs.
⚙️ Step 5: Recognize revenue when each performance obligation is satisfied
The invoice has resulted in a journal entry that has credited the deferred revenue and debited the accounts receivable for $4800.
If we perform revenue recognition of the Platform Access performance obligation for a single month and post the revenue to the general ledger, we will see the following journal entry.
Updated about 1 month ago