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
    • Recent Topics

    • Can't change form's original name in URL

      Hi all, I have been duplicating + editing forms for jobs regarding the same department to maintain formatting + styling. The issue I've not run into is because I've duplicated it from an existing form, the URL doesn't seem to want to update with the new
    • Can you create relationships BETWEEN contacts within the same module

      I am setting up my CRM, and I want to have a way to connect contacts within the same module.  Is there a way to do this?  If not - how do I decide how to split up contacts to make connections?  What are best practices for this? We have clients who need
    • Function and workflow to create customer payment and send receipt

       I am attempting to set up a workflow/custom function for the automatic creation of a customer payment and sending the email receipt, but am receiving the error "Improper Statement Error might be due to missing ';' at end of the line or incomplete expression" I've been over everything several times and cannot see where the error is (code is copied into the attached document).  I haven't used custom functions before with Deluge, so it's very likely something very simple, or I've completely mucked
    • Disable Sign Up option in Zoho Creator Portal and show only Sign In page

      Is it possible to disable the Sign Up option in a Zoho Creator portal? The requirement is to show only the Sign In page and completely remove or hide the Sign Up page, so users cannot create accounts directly from the portal login page. Is there any setting
    • Restrict Payment Methods

      Allow us to restrict certain payment methods specific for each customer.
    • How to install Widget in inventory module

      Hi, I am trying to install a app into Sales Order Module related list, however there is no button allow me to do that. May I ask how to install widget to inventory module related list?
    • Can I view the KB in the same way as a customer logged in as my Agent?

      Sorry if this seems a mad question.  I have some Articles that I want to be seen by my Agents and the status of these is set to Agents only.  We also have some that are set to Public. When I sign in with my private email address (as a customer) I can
    • What’s New in Zoho Inventory — Latest Features, Integrations & Updates | December 2025

      Zoho Inventory has evolved significantly over the past months, bringing you smarter, faster, and more connected tools to streamline your operations. Whether you’re managing multichannel sales, complex fulfillment workflows, or fast-moving stock, our newest
    • Which user's capacity is used for Shared Mailbox storage?

      We use shared mailboxes at our company, and their size is increasing daily. Which user(s)'s total mailbox limit is being used up by this space?
    • Evernote (ENEX) import limitations

      I have been with Evernote since 2010, but the latest price increase is ridiculous. I am currently testing Zoho Notebook as a replacement. I am impressed so far - if it were not for critical need to import legacy Evernote notes, I would 100% migrate to
    • Can I create a CODE 128 custom field for my items in Zoho Inventory and then use it for generating Sales Orders?

      Can anyone helps me, I don't want to use the SKU code for scanning my products.  ​Because all my products have a CODE-128 label attached.
    • Prevent duplicate with custom fields?

      I was wondering something about custom field/custom modules in Zoho Desk. For some reason you can make a custom field mandatory but not unique? For example, if I create a custom module to manage equipment and renewal and make a field serial number no
    • Zoho Books' 2025 Wrapped

      Before we turn the page to a new year, it’s time to revisit the updates that made financial management simpler and more intuitive. This annual roundup brings together the most impactful features and enhancements we delivered in 2025, offering a clear
    • Multiple Vendor SKUs

      One of the big concerns we have with ZOHO Inventory is lack of Vendor Skus like many other inventory software packages offer. Being able to have multiple vendor skus for the same product would be HUGE! It would populate the appropriate vendor Sku for
    • Create Invoice automated with Package

      Does anyone knows how to create an invoice from a SO when we have created the package? We do these manually. and validate that the product packed is the product invoiced (if the order is partially packed) Regards, JS
    • Unable to integrate Zoho Projects and Zoho Workdrive

      I'm a Zoho One subscriber. When I go to Zoho Projects > Settings > Marketplace > Zoho Apps I do not see an option for Zoho Workdrive but I do see one for Zoho Docs that does nothing. How do I get the option to integrate Zoho WorkDrive and Zoho Proje
    • Disable payment thank-you emails

      Hello, can someone please tell me how to disable sending of the "Payment Thank-You" emails? 
    • How to backdate record payment for the invoice

      I would like to record a payment which happened 2 days ago, but I am not able to select any date later than today. I backdated the invoice, too, but it doesn't change anything
    • Help with deluge script

      Hi Community, this is my first Deluge script. I've pieced it together from reading various articles I want to use it in a workflow to 1 Convert a lead to a contact 2. Create a record in a custom module Below is what I have got so far but it does not fire
    • Marketer's Space: Why email authentication matters in Zoho Campaigns

      Welcome back to another post in Marketer's Space! If you've recently started using Zoho Campaigns, you've probably come across terms like SPF and DKIM. You may have also noticed emails that show "via zcsend.net" in Gmail when testing or sending campaigns.
    • Feature Request: "Send Invitation" Toggle for Events

      I am writing to request a critical "Quality of Life" update for the Activities module. Currently, adding people to the Participants field in an Event triggers an automatic email invitation/acceptance tracking with no way to opt-out. For general events
    • Edit email address that appears on invoice

      Hi How do I change the email address that appears on invoices, it is showing the email address that i used to sign up to zoho with but I want to change it to another email address that we use for accounts. also is there a way to edit the position of a
    • Introducing Zoho Sprints 3.0

      Zoho Sprints is consistently evolving in steady increments. The introduction of the latest version, with its enterprise level solutions, brings to you advanced capabilities that propel your agile efforts in the right direction. Here's a quick glimpse
    • Google Fonts Integration in Pagesense Popup Editor

      Hello Zoho Pagesense Team, We hope you're doing well. We’d like to submit a feature request to enhance Zoho Pagesense’s popup editor with Google Fonts support. Current Limitation: Currently, Pagesense offers a limited set of default fonts. Google Fonts
    • Clone Entire Zoho Boooks Organization, including all transactions for testing & training

      Can Zoho Books support help with direct cloning of entire Zoho Books & Inventory Organization? including all transactions, just like a copy & paste or disk cloning. Is this possible?
    • Restrict portal signup until registration form and payment are completed

      Hi everyone, I am working on a Zoho Creator portal for a project. In our business flow, users must first fill out a registration form and pay a registration fee before they are allowed to access the portal. However, when I share the portal link, users
    • Zoho Creator In-App Notification

      Hi Team, I have implemented an in-app notification using code, as it required some customization. I followed the example in the link below: https://www.zoho.com/deluge/help/pushnotify-using-deluge.html#Example I have a couple of questions regarding this
    • Tip #64- Exploring Technician Console: Screenshot- 'Insider Insights'

      Hello Zoho Assist Community! Have you ever needed to capture exactly what's happening on a remote machine, whether to document an issue, guide a customer, or keep a record of your session? That's where the Screenshot feature in Zoho Assist comes in! With
    • Relating Invoices to Projects

      Hi Zoho team, If I have already created previously an invoice in Books, so I want to know how can I associate it with a relevant project? Thank you
    • Create a quote/estimate that includes a range of prices

      I am interested in using Zoho Books' Quote templates to create estimates for my customers. I do a mix of fixed-bid quotes and quotes based on an hourly rate. For the hourly rate quotes/estimates, I like to include a price range, for example: 2-4 labor
    • Budget

      I have just upgraded to the standard plan in order to be able to utilize the budgeting function and record budget amount
    • Capirec bank Automatic feed update

      Can anyone tell me if Zoho supports Automatic bank feed update from a Capitec bank account in south africa?
    • Free webinar! Accelerate deals with Zoho Sign for Zoho CRM and Bigin by Zoho CRM

      Hello, Paperwork shouldn’t slow you down. Whether you’re growing a small business or running a large enterprise, manual approvals and slow document turnaround can cost you time and revenue. With Zoho Sign for Zoho CRM and Bigin by Zoho CRM, you can take
    • Add Lookup Field in Tasks Module

      Hello, I have a need to add a Lookup field in addition to the ones that are already there in the Tasks module. I've seen this thread and so understand that the reason lookup fields may not be part of it is that there are already links to the tables (
    • CRM x WorkDrive: File storage for new CRM signups is now powered by WorkDrive

      Availability Editions: All DCs: All Release plan: Released for new signups in all DCs. It will be enabled for existing users in a phased manner in the upcoming months. Help documentation: Documents in Zoho CRM Manage folders in Documents tab Manage files
    • Upload own Background Image and set Camera to 16:9

      Hi, in all known online meeting tools, I can set up a background image reflecting our corporate design. This doesn't work in Cliq. Additionally, Cliq detects our cameras as 4:3, showing black bars on the right and left sides during the meeting. Where
    • 【まだ間に合う!】Zoho ユーザー交流会 | AI活用・CRM・Analytics の事例を聞いて、ユーザー同士で交流しよう!

      ユーザーの皆さま、こんにちは。コミュニティチームの藤澤です。 3月27日(金)に東京、新橋で開催する「東京 Zoho ユーザー交流会 NEXUS」へのお申し込みがまだの方は、この機会にぜひお申し込みください!(参加無料) ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー イベントの詳細はこちらから▷▷ https://www.zohomeetups.com/tokyo2026vol1#/?affl=communityforumpost3 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
    • ZeptoMail API

      Hello Since today, we experience issues with the ZeptoMail API. When trying to send e-mails using: https://api.zeptomail.eu/v1.1/email we receive the error: (503) Site unavailable due to a traffic surge. Please try again shortly. I kindly ask you to identify
    • Sender Email Configuration Error.

      Hello Team, Hope you are all doing well. We are in the process of creating the Zoho FSM environment in the UAE. When we try to add the sender email address “techsupportuae@stryker.com”, we receive the error message: “Error occurred while sending mail
    • Managing user mailbox actions

      An organization often has users with different roles and responsibilities, such as leadership, operations, or support teams. While some users may require full access to email features, others may only need limited functionality. For example, enabling
    • Next Page