Revenue Management: #1 What does it mean to "recognize" revenue?

Revenue Management: #1 What does it mean to "recognize" revenue?

Earning revenue isn't just about collecting cash from your customers. It's about recording the income correctly and consistently. Revenue recognition is the process of deciding when and how to record revenue in financial statements so that they reflect the true value after the goods or services are delivered.


Today's business models are more dynamic than ever. Subscriptions, long-term projects, bundled products, and usage-based pricing make it challenging to determine when a sale is truly earned.

We will be going through a series of posts on Revenue Recognition and how it works with different industries, starting with,

     What is revenue recognition?

     What are the principles behind the standards?

What is Revenue Recognition?

Revenue Recognition is an accounting principle that defines when and how businesses can record revenue in their books. It ensures revenue is reported only when the company has delivered the promised goods or service, not simply when a payment is received.

For instance, if a customer pays upfront for 12 months of service, the business cannot recognize all of that money immediately. It must recognize it gradually over the period the service is delivered.

To address these challenges, Accounting standards like IFRS 15 and ASC 606 were introduced.


What Do IFRS 15 & ASC 606 Say?

Both IFRS 15 & ASC 606 are closely aligned. They denote that companies must recognize revenue when they satisfy their performance obligation, that is, when they deliver the promised goods or services fully to the customer.

The core principle is:


Quote
"Recognize 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."

To make this consistent across industries, these standards use a five-step model.


This model helps businesses recognize revenue accurately by following a structured process. Each step ensures that income is recorded only when a company truly earns it by delivering the promise.

Steps

Description

Example

Step 1: Identify the Contract with a Customer

Confirm there is a legal, enforceable agreement with clear payment terms and obligations.

A software company signs a 12-month service contract with a client with proper terms and a clear payment schedule.

Step 2: Identify the Performance Obligations

Break the contract into separate performance obligations that provide unique values.

Contract includes access to software, onboarding support, and monthly training. These are distinct services and are treated separately.

Step 3: Determine the Transaction Price

Calculate the total expected payment, including any discount, bonus, or other variables.

The total contract worth is $12,000, but the customer gets a discount of $1000 for an annual payment upfront. The transaction price becomes $11,000 in this case.

Step 4: Allocate the Transaction Price to the Obligation

Distribute the transaction pricing across the performance obligation based on their standalone selling prices.

If software is usually sold for $9,000, support for $1500 and training for $1500, the $11,000 will be proportionally allocated to each of these.

Step 5: Recognize Revenue When (or As) Obligations Are Satisfied

Revenue is recorded either over time or at a point when the customer gains complete control of the product or service.

In case of software licensing and implementation, the revenue is recognized monthly over 12 months, but the onboarding is recognized as and when it's delivered.

 

This single contract shows how IFRS 15/ASC 606 helps businesses handle complexity like discounts, variable consideration, multiple deliverables and other aspects in recognizing revenue.

Ultimately, these standards require companies to:

Notes

    • Recognize revenue only when the performance obligation is met.

    • While selling services and goods together, consider them as individual deliverables.

    • Allocate the total contract value fairly across all deliverables.

    • Adjust discounts, bonuses, and other variable pricing.

    • Provide an audit-ready document for how and when revenue is recognized.

The bottom line of revenue recognition is straightforward. But while computing, it doesn't look the same when you are dealing with different billing models and while handling hundreds of contracts/transactions.

In the next post, we'll look at where computing revenue recognition gets tricky with some real-time business scenarios. 
    • Sticky Posts

    • Community Learning Series | Digest #5 — September 2020

      Dear customers, We're happy to bring you the September edition of our #CommunityDigest! Keep track of your subscription KPIs right from your smartphone: Last month, we enhanced our Android mobile app to help our customers get daily updates on their business health. We got to know from a lot of customers that this has made their job much more easier because they no longer have to keep a reminder to manually check on the previous day's revenue or activations. If you have not downloaded it yet, here's
    • Community Learning Series | Digest #4 - August 2020

      Dear customers, We hope you're staying safe and healthy. I'm happy to bring you the fourth edition of our #CommunityDigest with some brand-new updates from us. 1. Daily Business Updates (for Android users) The Zoho Subscriptions Android app has got a cool new update: You can now get a push notification to your smartphone that lets you know how many activations and cancellations have taken place, and what's the net revenue for the previous day. The best part is, you can tell the app when exactly you
    • Community Learning Series | Digest #3 - July 2020

      Dear customers, We hope you're staying safe and healthy. We're glad to bring you the July edition of our #CommunityDigest. New community members can view our previous newsletters here. This time, we have two major updates and three interesting topics for you: 1. Zoho Subscriptions Developer Community Since the inception of Zoho Subscriptions, our team believed that the recurring billing platform we provide should be able to offer an extensive API library that empowers businesses to automate most
    • Introducing: Community Learning Series | Digest #1 - May 2020

      Dear customers, We hope you are staying safe and healthy. Helping businesses manage their customer subscriptions more efficiently has always been, and always will be, our goal at Zoho Subscriptions. We strongly believe this is possible if we grow together as a community and share what we know with each other. To nurture this shared learning experience, here is our brand-new Community Learning Series! ​ Welcome to the first edition of our digest! Each edition of our community digest includes guides

    Nederlandse Hulpbronnen


      • Recent Topics

      • Windows Desktop App - request to add minimization/startup options

        Support Team, Can you submit the following request to your development team? Here is what would be optimal in my opinion from UX perspective: 1) In the "Application Menu", add a menu item to Exit the app, as well as an alt-key shortcut for these menus
      • integarting attachments from crm to creator

        when i tried to integrate pdf attachments from crm to creator via deluge i am getting this error {"code":2945,"description":"UPLOAD_RULE_NOT_CONFIGURED"} the code i used is attachments = zoho.crm.getRelatedRecords("Attachments","Sales_Orders",203489100020279XXX8);
      • Search Option

        🚫 Current Limitation: As of now (September 2025), Zoho FSM lacks a global search functionality, which makes it difficult to quickly: Find specific Work Orders by number or keyword Search for customer records or contact info Locate assets, jobs, or service
      • Mobile Chat Window - Full Screen

        Hello, The mobile chat window takes up the full screen, which is highly confusing for most customers! Using a desktop machine, I see the same happens when reducing the browser width to 800px or below. This suggests that it responsive web design, causing the switch to full screen. Can we fix this very annoying behaviour ourselves using a custom css file? If so, can you please let me know how? Thanks
      • Is it possible to customize ZC Themes?

        I understand you can choose a layout and customize Brand Color, App Header, Menu, and Sub-Menu components, but can you override some of the default theme settings with CSS or a config file? For example, - Table highlight color - Listview auto filter highlight
      • Is it possible to create Custom function-based Lookup field in Zoho CRM

        Is it possible to create a custom function-based lookup field in Zoho CRM? If so, how? Use case: Need to fetch users from Zoho Projects into a dropdown field in Zoho CRM.
      • @mention in comments no notification

        Hi, hope someone can help. When we @mention someone in the comments in Zoho Creator, how is that user notifed as we don't get anything on email or in the app notifications. 
      • Zoho unified inbox

        The new changes have definitely improved things for switching between accounts.  But zoho still desperately needs a unified inbox.  It sucks to have to enter filters and folders for each and every inbox.  This seems like such a simple thing, i wonder why Zoho hasn't done it?
      • Add "Running Balance" column to Account Transaction Reports

        Hello, Currently Zoho Account Transaction Reports give you the opening balance, then lists the transactions, then provides the closing balance.  It would be great if you could add a column on the far right that shows the "Running Balance" on the account after each transaction.  There are many times when analyzing or tie-ing out transactions that this would be very helpful.  I currently have to frequently run a tape on my adding machine to get balance totals after a specific transaction on the list.
      • Unified customer portal login

        As I'm a Zoho One subscriber I can provide my customers with portal access to many of the Zoho apps. However, the customer must have a separate login for each app, which may be difficult for them to manage and frustrating as all they understand is that
      • WhatsApp Channels in Zoho Campaigns

        Now that Meta has opened WhatsApp Channels globally, will you add it to Zoho Campaigns? It's another top channel for marketing communications as email and SMS. Thanks.
      • error : Object code : 6500

        b3 = map(); b3.put("name", "Test Project Name"); updateprojects2 = invokeurl [ url :"https://projectsapi.zoho.eu/restapi/portal/era0130/projects/169495000000928007/" type :PUT parameters: b3 connection:"in2" ]; info b3 ; info updateprojects2; ------------
      • How to book GST paid in zoho books

        hi, i am a new user to Zoho books and not able to book GST paid in books, kindly suggest how i can book it in books. thanks, siddharth
      • I got unknown charge from Zoho

        Good day, I need help disputing a charge I don't know from, zoho. I have ZohoMail and ZeptoMail. I purchase credits for ZeptoMail, and for ZohoMail I am not subcribed.
      • Function 56: Automatically enable the option for customers to pay via bank account

        Hello everyone and welcome back to our series! One of the key features of Zoho Books is its integration with multiple payment gateways, allowing you to receive online payments for your invoices. This ensures faster payments, automates payment tracking
      • Attach Files to Your Notecards and share them on the go!

        Hey everyone! We’re excited to share a feature many of you have been asking for — you can now attach files directly to your text notecards and share with ease! 🙌 This update was built with your feedback in mind, especially for those who wanted a simple
      • Can i connect 2 instagram accounts to 1 brand?

        Can i connect 2 instagram accounts to 1 brand? Or Do i need to create 2 brands for that? also under what subscription package will this apply?
      • Workdrive on Android - Gallery Photo Backups

        Hello, Is there any way of backing up the photos on my android phone directly to a specific folder on Workdrive? Assuming i have the workdrive app installed on the phone in question. Emma
      • How to add a % Growth column for year-over-year comparison (2024 vs 2025)

        Hello, I am trying to build a monthly revenue comparison between 2024 and 2025 in Zoho CRM Analytics. My current setup is: Module: Deals (Affaires) Filter: Stage = Closed Won Date field: Closing Date Grouping: By Month Metrics: Sum of Amount for 2024,
      • How to searchByCriteria records that are under approval?

        I need to search for both approved and pending approval records Is that possible with this method? Or I need to a different method? var priceReqID = $Page.record_id; log(priceReqID); var records = ZDK.Apps.CRM.Price_List_Item.searchByCriteria("Price_Request:equals:"
      • How to add Simple Analytics to Zoho Pages?

        I have a website with Zoho Pages, how do I add Simple Analytics on it? They seem to have code they need to be embedded https://docs.simpleanalytics.com/script
      • End Date in Zoho Bookings

        When I give my appointments a 30 minutes time I would expect the software not to even show the End Time.  But it actually makes the user pick an End Time.  Did I just miss a setting?  
      • Cant seem to delete an email account

        Hello, I have researching for 4 days how to delete an email account and I am absolutely without a clue. The email account I am trying to delete is support<AT>fyshoes<dot>com. It's the first email account I made and it (is???) was associated with the super user (me). I have since changed it to adming<AT>fychoes<dot>com and I see the support email in my list but I just cant seem to get rid of it. Ultimately I want to associate that email account with another user that I want to add. This is really
      • Commerce Order as Invoice instead of Sales Order?

        I need a purchase made on my Commerce Site to result in an Invoice for services instead of a Sales Order that will be pushed to Books. My customers don't pay until I after I add some details to their transaction. Can I change the settings to make this
      • Import data into Multi-Select lookup field from CSV/Excel

        How to import data into a multi-select lookup field from the CSV/Excel Sheet? Let's say I have an Accounts multi-select lookup field in the Deals module and I want to import the Deals with Accounts field. Steps:- 1. Create/edit a multi-select lookup field
      • Sync desktop folders instantly with WorkDrive TrueSync (Beta)

        Keeping your important files backed up and accessible has never been easier! With WorkDrive desktop app (TrueSync), you can now automatically sync specific desktop folders to WorkDrive Web, ensuring seamless, real-time updates across devices. Important:
      • Script that deletes a record?

        We're using WP Plugin "Integration for WooCommerce and Zoho Pro", and have created a couple of Feeds to send data to Zoho. We are trying to create Contact records, but only based upon condition. Tried to make it with small Deluge function and Workflow,
      • A formula that capitalises the first letter of each word

        Hi all, is there a zoho formula that can capitalise the first letter of each word in a string? INITCAP only capitalises the first letter of the first word.
      • Quotes in Commerce?

        In Zoho Ecommerce, I need to be able to generate quotes, negotiate with customers, and then generate invoices. Currently, I plan to integrate Zoho CRM to generate quotes. After negotiation and confirmation, I will push the details to Zoho Ecommerce to
      • Zoho Commerce - Mobile Application

        Does Zoho Commerce have a mobile application for customers to place an order?
      • Register user through Phone Number by Generating OTP

        In zoho commerce , I am developing website on online food store Inilialy the user get verification code to their email for registering there account for login. But I need to login using phone number by generating OTP automatically rather than verification
      • Unable to change sales_order status form "not_invoiced" to "invoiced"

        I am automating process of creating of invoice from sales_orders by consolidated sales_orders of each customer and creating a single invoice per customer every month. I am doing this in workflow schedule custom function where i create invoice by getting
      • Custom Buttons for Mass Actions

        Hello everyone, We’ve just made Custom Buttons in Zoho Recruit even more powerful! You can now create Bulk Action Buttons that let you perform actions on multiple records at once, directly from the List View. What’s new? Until now, custom buttons were
      • Zoho Vault Passwords

        Is there a way to consume Zoho Vault Manager passwords using the API? Thanks in advance.
      • Is the ChatGPT Assistant integration capable of recognizing WhatsApp voice messages?

        I was wondering: if a visitor sends me a voice message on WhatsApp, would the assistant be able to transcribe it and reply to them?
      • Zoho Creator to Zoho CRM Images

        Right now, I am trying to setup a Notes form within Zoho Creator. This Notes will note the Note section under Accounts > Selected Account. Right now, I use Zoho Flow to push the notes and it works just fine, with text only. Images do not get sent (there
      • 【Zoho CRM】レポート機能のアップデート

        ユーザーの皆さま、こんにちは。コミュニティチームの藤澤です。 今回は「Zoho CRM アップデート情報」の中から、レポート機能のアップデートをご紹介します。 目次 1. レポートのエクスポート時のレコードIDの表示について 2. 通貨項目の表示について 3. レポートの削除の監査ログへの反映について 1. レポートのエクスポート時のレコードIDの表示について これまで、レポートをエクスポートするとファイルにレコードIDが必ず含まれていました。レコードIDが識別子として役立つ場合もありますが、実際には多くの企業で参照されることはありません。
      • Translation in zoho bookings

        We cant translate zoho booking emails. The general text we can change. But what about text like: ""Here a link to join the meeting online:"" and "Add to Zoho Calendar" and "Add to Google Calendar"? No professional business have mixed languages. Its looking
      • Is there any way to bill one client in different currencies on different invoices?

        I have some customers who have their currency set as USD and most of their billing is done in USD.   However, from time to time I have a need to bill them in my base currency GBP for some specific invoices, but there seems to be no way of doing this that I can see. The only workaround that I can see is to create two client records for the same client, one for USD billing and one for GBP billing, but this is not an ideal situation. Is it likely that the (hopefully!) soon to arrive multi-currency support
      • API name for all fields in Zoho Project (Standard or custom)

        Hi! I struggle to find easily all API name of all field in Zoho Project to build my API rest with other services. We can find them very fast in CRM but not in PRoject.   Could you share a function to get the list of all API Name of any field of an App
      • Next Page